This article <https://www.infoworld.com/article/4069133/the-top-4-jvm-languages-and-why-developers-love-them.html>
gives an intro to 4 languages all implemented on top of the Java
byte-code interpreter (called a “VM” for some reason): Kotlin, Scala, Groovy and Clojure.
Kotlin, of course, has won support from Google as the preferred
development language for Android, as a raised middle finger to Oracle
over its absolutely stupid and vindictive lawsuit over Java.
According to the article, Scala “differentiates itself from other JVM languages by making functional programming foundational and
implementing it rigorously”. But I see the example Scala code has “println” in it, which is a procedural, not functional, construct. It
is simply not possible to create a language that implements the pure-functional concept “rigorously”, as otherwise I/O becomes impossible.
Groovy I find interesting, because I discovered that it combines
custom operator overloads with making parentheses optional around
arguments to method calls in many situations, to allow you to create a “DSL” -- a language customized for a particular application domain,
with its own custom-looking syntactic constructs.
Metaprogramming in Groovy ... I followed the link to the intro
article, but didn’t see anything in there to match the power of
Python’s metaclasses. Prove me wrong, I guess ...
Clojure -- yeah, it’s another Lisp dialect. What special features
could it possibly offer that could not be retrofitted in the form of
library function/macro calls to an existing Lisp or Scheme dialect?
| Sysop: | DaiTengu |
|---|---|
| Location: | Appleton, WI |
| Users: | 1,075 |
| Nodes: | 10 (0 / 10) |
| Uptime: | 88:00:28 |
| Calls: | 13,797 |
| Files: | 186,989 |
| D/L today: |
4,520 files (1,286M bytes) |
| Messages: | 2,438,135 |