Thursday, 17 September 2009, the Communities and the Companies

I really believe that today's high-productivity languages and frameworks like Ruby, Python, Groovy, Scala, F#, Clojure, Rails, Django, Grails, Lift and others could change the software engineering landscape forever and a lot of that comes from the fact that they can now interoperate: now and more so in the future, developers will be polyglot and able to use the right tool for the right area / job even within the same project.
This is largely due to these languages being built on (or ported to) well-established runtime platforms like the JVM and Mono/.NET.

Of course it all depends on whether those platforms are going to evolve rapidly enough to accomodate their feature and performance needs; something is being done, like invokeDynamic, thanks to projects like the Da Vinci Machine AKA Multi-language VM; it still remains to be seen if platform-backing companies are going to use effectively this exceptional (largely FOSS community-provided) contribution.
I wonder, for example, why key JRuby developers had to choose to leave Sun for Engine Yard and why more of the MLVM extensions (like continuations for example) aren't being brought into the upcoming JDK 7.
I also wonder why Sun has chosen to compete with Flash in the thin-client rich-graphics RIA area by creating JavaFX (and this late, too). Don't get me wrong: it's a nice technology but why another language? They seem to have augmented Java with a few extensions for first-class functions and closures, DSL-enabled syntax and generally more of declarative, scripting-flavoured, functional- and data transformation-oriented programming constructs. The thing is: Scala and others already had all of the above and more: they could simply spare time and have written an applet to interpret one or several of them as scripting languages instead of creating a new one. And it could have been the occasion to officially show some support for them, as they really are the platform's future.
Could that have something to do with Oracle acquiring Sun? Oracle has a lot of interest in the Java platform being alive and well too as it has many products built on it, so it's perhaps not the case.

It's still a fact, though, that the platforms needs to evolve better and faster. Is that going to happen and how? Through Sun / Oracle support or though the community? Is the Java/JVM ecosystem at risk?

Time will tell and we'll see for sure sooner than later but I'll be glad to hear your thoughts through comments.


  1. I guess solutions like Grails, Scala and the others that easily integrate in Java solutions will be easier to fit in new incoming projects as long as they prove their valid contribution.
    Or do you think a more radical copernican revolution is needed?

  2. That's for sure although I believe they can be integrated in existing projects as well. The question is more whether the JVM platform is going to keep the pace of the languages and tools and it seems not to be the case.