3 ms·
I actually think this is a subtle parody of the "Scala/Haskell/Java/Ocaml is impractical because you can't write performant code in it" crowd. On tiny and cont
by michaelochurch 15y ago
I actually think this is a subtle parody of the "Scala/Haskell/Java/Ocaml is impractical because you can't write performant code in it" crowd.
On tiny and contrived micro-benchmarks, it's nearly impossible for a (non-contrived) expressive language to beat less expressive languages like machine code, X86 assembly, or C. For real, large software projects, the case for a less expressive language is not nearly as convincing, because the shortcomings of the language mean that programmers aren't able to write the same quality of code. For example, compare the outright mess that is concurrency in C or Java to the much easier concurrency available in more expressive languages. As parallelism becomes far more important for people who need high performance (yes, I know concurrency and parallelism aren't exactly the same thing, but they're similar) this advantage of the less expressive languages is likely to diminish, if not disappear outright.
[Edit: Added-- This is analogous to the static/dynamic typing debate. Dynamic typing test drives extremely well but multi-developer projects in dynamically typed languages usually turn into outright nightmares, due to problems around interfaces. Static typing's better for large projects. Same with expressive languages: assembly's going to win on microbenchmarks, but writing good code in less expressive languages becomes impossible as the size and scope of the project gets large.]