← Back to context

Comment by OkayPhysicist

2 days ago

I have to disagree about the author's described purpose of programming languages. PLs exist to provide elegant expression to a curated subset of ways of expressing solutions to problems.

At the extremes, we call these paradigms. Functional languages, Object Oriented languages, Array languages, etc. But every language exists to make some subset of "shapes" of solutions easier to read and write. Elixir encourages you to describe your programs as a distributed system of programs each running a series of transformations to data, thanks to its pipeline system, and to push your branching to function-call level with its pattern-matching multiple dispatch.

Java encourages you to write your application as a collection of things, that know stuff and do stuff, including telling other things to do stuff based on things they know.

C and Go encourage you to write your programs as an ordered series of atomic tasks for the computer to complete.

SQL has you describe what you want your output to look like.

Etc, etc. There are inherent trade offs between languages, because what you make inelegant to express or even inexpressible carries value, too.