Erik Engheim
1 min readMar 15, 2021

--

Thanks, you are right. The whole story follows kind of journalistic principles of making the abstract concrete. Embody some of the trends we see by a specific concrete language like Go. You might have noticed that I mentioned Swift and Rust as well. But neither of those have quite assumed the sort of obvious role as contender to Java.

And of course at some point Go could become obsolete. That is the nature of our industry. Hardware changes and software practices evolve.

My preferred language of choice, Julia, may very well push Go aside further into the future. And that would be somewhat ironic given that it is a JIT compiled language, which currently is about as clumsy as Java and C# when it comes to distributing self contained binaries.

However as I argued I do think JITing has merit for dynamic languages. It is the key reason why Julia despite being a dynamic language is able to outperform most other languages, including static ones.

For Julia it opens the doors for so much next-gen stuff that isn’t even available for Java and C#, such as semantic transformation of the code by the JIT. E.g. one example would be to compute the gradient of an arbitrary function. This is very powerful ability for machine learning.

To accomplish this you cannot use byte code which Java and C# distribute. You would need to use code at higher level, such as lowered code (first stage in translating code towards byte code and machine code).

--

--

Erik Engheim
Erik Engheim

Written by Erik Engheim

Geek dad, living in Oslo, Norway with passion for UX, Julia programming, science, teaching, reading and writing.

Responses (1)