

Ask HN: What is the future of jvm as a platform? - z3phyr

Are there any competitors? If there are no (Don't take mono) competitors, is the future of jvm locked?
Will I see Java being used when I am grandfather? (I am 17 right now.)
======
MatthewPhillips
Fogus wrote recently[1] about hosted languages, and how going forward it makes
more sense to build a language on top of an existing runtime rather than
creating one from scratch.

[1] <http://blog.fogus.me/2012/10/09/hostiness/>

~~~
plinkplonk
of course if everyone chose existing runtimes, there would be no new ones ;)

From the blog

"So if I were insane enough to create a programming language for use by
others, I would, without hesitation pick one of the following hosts:

    
    
        Factor: the concatenative programming language has a stunning compiler and runtime
        GHC: the Haskell compiler and extensions with the appropriate runtime libraries
        Java Virtual Machine: world-beating megatech
        JavaScript itself or a specific JavaScript targets like Node.js or V8
        Erlang’s virtual machine
        A Common Lisp implementation
        Racket via its #lang feature

"

Fair enough, but...

    
    
      if all those "hosts" had also made the decision to 'build on top of existing runtimes' they wouldn't be potential " plug and play" hosts today for others to target ;)
    

We these choices today, only because _some_ people who ignored the 'build on
an existing language's runtime vs creating your own' idea.

V8 is (relatively) very new but they didn't choose to build on top of the JVM,
say. As a result we have new and exciting technology vs being locked into an
aging, sorry, "mature" JVM.

"Moving into the future I believe one would need to be gutsy, ill-informed or
insane (or a mix of the three) to create a language runtime from scratch."

You _always_ needed to be gutsy, well informed and knowledgable, and yes just
a little insane, to build a language runtime from scratch.I hope we get _more_
and not less of these types of people. There is a lot of research that hasn't
made it into runtimes yet.

The Factor runtime for e.g is quite different from the GHC runtime and both
teach different lessons and embody different design decisions. We need more of
these, not less, till there is some solid math/theory on what makes a good
runtime.

In any case, if a language is good enough on its native runtime, it will
probably get ported to the JVM or whatever the latest 'mature' runtime is.

~~~
MatthewPhillips
Aren't language design and runtime design different skills though? I think one
of the reasons we've had an explosion in languages in the last few years is
that it is very easy to take your ideas and staple it onto the JVM or
transpile to JavaScript. I contribute to a to-JS language myself and I
wouldn't know where to begin with writing a runtime/vm. And I have no interest
in doing so.

~~~
plinkplonk
They aren't unrelated or orthoganal skills, just different points on a
spectrum.

fwiw nobody is asking _you_ to learn runtime design if you don't want to. If
you want only to compile new 'language designs' down to existing VMs,bytecode
etc, then sure, you have that option (and you always had this option once the
first 'host runtime' was in existence).

All I am saying is that one needs to be careful not to paint with too broad a
brush, and reccomend that no one explore runtime design because we have all
these platforms already and it is 'too hard' (so don't go there).

------
plinkplonk
"Will I see Java being used when I am grandfather? (I am 17 right now.)"

We can still "see" (if we try hard enough) COBOL being used. Have no fear,
Java (and even the JVM, but to a lesser extent) will be safely oboloscent by
the time your grandchildren are programming. We are still very much in the
Bronze Age of programming languages and environments. We have a very long way
to go.

~~~
z3phyr
I do think that, Java may be another COBOL, but I am specifically talking
about the JVM (I think, they should change its name.) I am concerned about the
likes of Clojure (I am especially waiting for a Clojure-on-Clojure), Scala
(Tweet it!) and Ceylon (Hey, I am new Java-Boy).

So specifically talking about the CVM (um, Clojure Virtual Machine :)) will do
some good to me.

~~~
plinkplonk
The JVM will last longer than Java to be sure, but by the time today's 17 year
old is a grandfather (say in his 50's) the JVM will be a museum piece. I
wouldn't worry too much about the JVM somehow shambling into the distant
future (technology has very short horizons) killing new lifeforms and
assimilating all flesh.

------
taligent
The JVM will be around for decades to come.

Java as a language is still dominant in the enterprise and the growth of
Scala/Groovy will see it branch into new areas. Oracle has been a fantastic
steward of the platform to date so overall there are lots of positives ahead.

------
cmccabe
Well, on the plus side, all the modern JVMs do just-in-time recompilation, and
have a had fair amount of optimization work done on them.

On the minus side, JVMs take a long time to start up and don't really
interface very well with native code (JNI sucks). The JVM also tends to be
pretty poor at using memory effectively. All objects need to contain class and
lock pointers, for example. On a 64-bit machine, this generally means that the
minimum size of an object is around 16 bytes (may vary by JVM).

Will Java still be used decades from now? Of course. I mean people are still
using FORTRAN, COBOL, and Lisp, some of the first compiled languages ever to
be developed in the 1950s and 1960. (Yes, Lisp is that old-- and FORTRAN came
first.)

How popular will it still be in X years? Who knows. Consult a fortune teller--
sorry, "analyst."

