Hacker News new | ask | show | jobs
by ksec 2555 days ago
"no one wants a language ecosystem to stagnate"

I used to be so happy when there was a new Java version every year, something new is good, something better is good, some hype is good. Now I am getting old I just want to use the same tools for the next 15 years. I mean it is not like most of the problem we are trying to solves were limited by the languages itself. ( Mostly the ecosystem around it )

3 comments

A difference with Java is that new Java releases tend to come with changes to the JVM. The language's semantics and the abstract machine are intertwined in a way where the JVM might be changed to enable a new language feature, or vice-versa. And the JVM itself improving is pretty much always an unalloyed good, so people tend to look forward to releases of Java to see what JVM improvements it has in store.

Elixir doesn't hold the same position for its abstract machine. BEAM, the abstract machine, has its development intertwined with that of Erlang's language development, but not-so-much with Elixir's. Elixir can stabilize while BEAM+Erlang continue to evolve "underneath" it. Given that Erlang syntax is pretty much† always valid Elixir syntax, Elixir doesn't even need to change to expose new Erlang stuff!

† There were big changes when maps were introduced, but another change of that scale seems unlikely at this point. (Unless Erlang gets a mutable byte-array type or something.)

Unless you are using Android J++, then you get some Java features at the expense of de-sugaring.
Also earlier versions of Java were a pain. The flexibility of a well thought out functional and dynamic language means new syntax to reduce boiler plate or extend generics don't need to be added. Compare Clojure to Scala for extreme examples in the JVM land. Similarly I think modern OO languages seem to be adding new syntax to handle OO complexities, e.g. much of the newest syntax additions to Python3 aren't useful (walrus operator? Well everything is already an expression... Etc).

In the end, I agree that the idea of a language which could be stable for a decade or more sounds fantastic! Given macros could add almost any other required feature should a good idea arise. Plus the BEAM and elixir compiler can continue improving performance and tooling.

Thank you. That's what I should have said. :)