onsdag, februari 14, 2007

The new base

I have for a time argued that the JVM should become more like an Operating System, and Java the language for OS development. Other languages should run on top of the JVM for running applications. It seems I'm not alone in this line of thought. Robert Varttinen wrote some about it here. To me it seems like a compelling future. But it seems the next logical step for enterprise applications would be further virtualization. I would for example like my beans implemented in Ruby. But not only that, I would want all the business logic to be OS agnostic. I would like my Ruby logic to live on top of a JVM J2EE server, but that logic should be able to move, transparently, to a .NET-server and provide the same business logic at that place. What would be even better is if I didn't have to deploy it manually to all places, but the logic would just move to the places where it's needed. Will we see that anytime soon?

4 kommentarer:

Raphaël Valyi sa...

I pretty much agree with your vision of the JVM as the new platform with appropriate languages running of the top of it. Specific problems would finnally be handled by the languages that can model them the best: some functionnal for execution predictability, some statically typed for design by contract in large teams, some duck typed for generic productivity, some declarative DSL (like CSS or Finite State Machines) for design by contract again...
All them being able to share objects.

Also I think some languages will die because they attempt to do the same as others but aren't as good (I my opinion: python and groovy loose against ruby and might disappear). And this game of life might arrise even sooner when those language will be easily swappable because they share the same runtime.

The opposite trend attempting to code everything with a single 'god' language seems rather steril in comparison. I think the common pretext that people from a company can only know one or two languages will be invalidated by what will matter the most in the future: trustability of freshly discovered open sources (=> language able to proove things behave like expected; or why java will still enjoy nice days) and power of each language to adress very specific and different issues. (I quit a well paid job a few month ago just because the decisions makers were stucked in that 90's vision).

This also stands for client side apps, be them heavy clients or thin ones.

Still, especially on the client side, some giant companies are doing their best to impose their vendor lockin everywhere they can to prevent such large interoperability and productivity to emerge. When you don't have a good language or even a good JVM (.Net to name it), you really need a good $$ IDE, and it seems that some very influent companies really prefer forcing people to buy their entropic IDE's rather than emancipate themselves with productive languages.

They will hopefully fail in their lockin strategy (it's very fun to see them confronted to Rails for instance), but still they are making us loose a pretious time by spreading their poor lockin runtime and tools and their propaganda preventing decision makers to make rationnal choices.

May be I'm naive, but I believe Sun just made a very smart move with JRuby rather than killing themselves to sell their JSF (even if some people might still be doing so).



Jonas sa...

This is indeed the future of Java (and the only future I see) - by being a platform and not a language.

Regarding the Java as an OS idea - JRockit has already implemented this vision with its "Bare Metal" project.




Anonym sa...

Well... principally, I would want to wait and see how well the JVM weathers the coming transition to massively-parallel asymmetric processing. It isn't really well-equipped for that right now.


Warren Henning sa...

It's definitely not a good idea and you're not the first to have it, Ola.

The major prior art here is Squeak. It is pretty much its own operating system, which is what scares people away from Smalltalk.