2 ms·
Yes, one can be reductive to the extreme and lump all programming languges into a Turing Tarpit[1]. However, the more interesting comparisons happens above tha
by jasode 11y ago
Yes, one can be reductive to the extreme and lump all programming languges into a Turing Tarpit[1].
However, the more interesting comparisons happens above that level. There are real differences in the implied semantics, the lightness/heaviness of the syntaxes for common tasks, the division of labor between the programmer and the compiler (aka static vs dynamic typing, unit tests vs compiler error, etc.) A language with deep metaprogramming (Lisp, Ruby, etc) will feel different than a language that requires writing adhoc custom code generation tools to approximate the safe effect.
Discussion about languages at a layer above the Turing Tarpit means Lisp, Haskell, Prolog, C++, Python, Java, Bash, x86-assembly, BASIC, etc are all very different.
[1] https://en.wikipedia.org/wiki/Turing_tarpit https://en.wikipedia.org/wiki/Turing_tarpit
- jpolitz 11y agoFor an interesting dive into one formal definition of the expressiveness of different features, see [1]. It defines expressiveness of features by asking questions like (I'm really simplifying here) "If I add this feature to my language and start plugging it into programs that didn't use that feature before, can I write any programs that I couldn't before?" This is a useful definition because a feature like an enhanced for-loop doesn't have global effects on the program if it's plunked into some local context -- the same program could have been written without it. But adding something like, say, exceptions does have interesting nonlocal effects, and allows for differently-shaped computations than before. The useful point here is that the feature is added as an incremental change on an already-existing language, so its effects can be measured relative to the original language. The original and extended language can both be Turing-complete, and this is still a useful definition. [1] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.51.4656 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.51.4...