The future of java
blog.headius.com
blog.headius.com
LLVM is interesting, but aims a bit below all of these. What I'd really like to see is some of the other language specific VMs try branching out. Lua, Io, Erlang, heck -- even Smalltalk, could all be viable candidates.
Whilst for many things I like the VM "platform" idea, I still think of lower level compile-to-the-metal languages are more real to me, and always necessary for some things, but perhaps thats my age and experience, and in time VMs will be the norm and native compilation will be like asm code... who knows..
I know, its probably all in my head, but still, in my head the real stuff happens on the metal, not in abstractions (I am an elec engineer at heart, trained as one and will always be one).
!troll, I'm genuinely curious.
Mono is one to watch, though.
This will never work. It never worked with C++. You need sharp C++ programmers to produce C++ code; you can't use mediocre programmers using a subset of the language. Even if you enforce simplicity internally, debugging and external library dependencies force all C++ programmers to cope with the full complexity of the language.
Java is an excellent language for exploiting the abilities of average programmers. Average programmers can be self-sufficient in Java. Outstanding programmers, exploiting the full power of Java, produce code and APIs that average programmers can understand and use. Scala cannot fill that role.
C++, the elegance of a subset is replaced with a grab-bag of features when you zoom out.
Scala, the grab bag of features are replaced with an elegant unified language when you zoom out.
Scala gives average programmers an upgrade path and rewards them for following it. C++ gives average programmers a headache. In Java the average programmer thinks he knows the language, but that won't do him any good if all the important patterns are above the language at library level or higher.
One strategy that might help is to be brutally honest about how long it might take in Java, and how much cheaper it would be in a JVM-hosted dynamic language. But obviously if you don't already have enough experience with an alternative language to make a confident estimate, it would be a crazy gamble.