From Languages to Language Sets

15 points by veqq


franta

C should not fall into the same category as C++ and Rust (where is D?). Even if you call both „manual memory management“ (I would rather say: not garbage collected) there is big difference: SBRM (RAII). This feature significantly increases safety and programmers comfort.

(you can have GC even in C or C++ and other typically non-GC languages – however it is not common)

Java has rich possibilities and would span over multiple categories. Bytecode is both compiled and interpreted. GraalVM can compile it into native binary (even static). Java itself (the language) is strongly statically typed but JVM can run also scripting languages like Groovy, JavaScript, Python, PHP etc. and in GraalVM you can mix all together in a single program and call e.g. JavaScript functions from Python and vice versa.

So Java can be your „Level 2“, but also 3 and 4 (the platform runs and integrates various scripting languages with similar syntax to Java) and even 1 (Java Card – runs on smart cards like banking or phone that has very limited computing power and there is usually no GC).

dist1ll

The author assumes that the compilation model is fundamentally too slow to compete with interpreters on iteration speed. I think that’s wrong. I believe it’s possible to design modern languages that perform clean builds of 10M+ loc codebases end-to-end within a fraction of a second on a laptop.