Saturday, March 8, 2008

I believe in Java for future web applications

Will Java become the dominant platform for web applications? Actually, I think it has a good chance.

How will the future web applications be? I think we can expect the following:
* Highly interactive
* Complex, more work will be done on the client
* Collaborative, not only for games, but also for other applications
* Mobile
* Location aware

AJAX is fantastic compared to "web 1.0", and technology like GWT (Java) makes it relatively easy to develop complex user interfaces. But HTML and HTTP still sucks as an application platform, something they were never meant to be. I believe that if Microsoft hadn't managed to kill the Applet, Java would be the dominant platform for more complex web applications today.

I think Consumer JRE can be that platform. Java can be used to make complex, interactive applications that communicate with each other client-to-client.

This doesn't mean we have to implement in Java. When consumers have a JRE ready, there is nothing stopping us from developing applications in Groovy, JRuby and Scala and deliver them over the web.

I don't know much about Flash, but I am sure it is at least as good as Java for making flashy applications. But when it comes to complex collaborative and mobile applications, I think Java has the upper hand.

And Java has one more powerful force behind it: The community. The Java community has developed hundreds of libraries and frameworks. Too many, perhaps. But this community is capable of revolutionizing the way web applications are developed in ways we cannot predict now.


Brian said...

Hi, Lars,

Java is a powerful language and isn't going anywhere anytime soon, but I don't see it becoming the dominant platform for web applications. It's just as easy (in some cases, easier) to provide AJAX functionality with other web development languages such as PHP or ColdFusion (though the latter does run on top of Java).

You mentioned that HTML and HTTP are not technologies well-suited for supporting applications, and you seemed to hint that Java applets could do the job more effectively. Well, if you bypass or replace those technologies in your application, then it's not really a web application anymore, is it?

As for Flash: Adobe (which now owns Flash) designed a development language called Flex so that programmers could build applications that run on the Flash engine. However, Flex is designed such that Flash is only used for the front-end: you can use any technology on the back end, like Java, to handle data transactions and business logic. One of the Adobe developers even put together
a 30-minute guide to help Java developers get a taste of Flex

But who knows: things may change when JavaFX finally hits the street.

S9 said...

We have alot of applications that can do exactly what java's webapplications can. Look at Silverlight, its cross platform (mac, linux and windows) and can run with the Windows Presentation Foundation (one of the flashiest UI's around).

I think the web application has a long shelf life to go, but I think how they are delivered to the consumer is going to change. The browser is starting to become old and a pain in the butt for developers.

Rich Client applications that communicate via client / server technology has been around for a very very long time in many different frameworks, java is just yet another piece of technology in that space.

I think the java webstart applications are a good direction, they provide the developer with more control and a sandbox on the client machine with automatic updates. Of course you can get that in the .net world also.

So my point is, we have choice, and thats what is exciting to me.

Lars said...

Hi Brian,

I am not just talking about AJAX, I am talking about much richer applications delivered over the web. I don't want page-oriented applications and a back button. I want desktop applications, delivered over the web, where people can collaborate.

Lars said...

Hi s9,

Yes, web start is the right direction. I hope it finally becomes popular with Consumer JRE, and I believe it will.