Geertjan Wielenga's recent post What is Happening vs. What is Interesting immediately caught my interest. The opening paragraph is:
Devoxx 2011 was yet another confirmation that all development everywhere is either on the web or on mobile phones. Whether you looked at the conference schedule or attended sessions or talked to speakers at any point at all, it was very clear that no development whatsoever is done anymore on the desktop.
As you read further into the post, you realize this is not Geertjan's actual opinion. Rather, it represents what you'd think was happening if Devoxx 2011 and informal conversations that occured there were all you had to go on. Yet, there are thousands of desktop applications that are completely ill-suited for porting to the web or mobile phones (Geertjan lists, for example, apps "that have processing requirements, security requirements, and the requirement that they'll be available even when the network is down or even completely unavailable").
Is what's happening with the desktop a matter of divergence of client platforms in multiple directions? With clients that can be lightweight moving away from desktop computers and onto mobile devices; clients that can be ported to the web moving there; and clients that are tightly bonded with highly reliable, secure back-end processing remaining on desktop systems? But, if these latter clients are on desktop systems, and consumers increasingly utilize mobile devices that increasingly look and feel less and less like desktop computers, don't traditional desktop applications become almost invisible to all except those who develop them or who use them in their daily jobs?
It seems to me that, in a sense, these types of critical desktop applications are today more akin to the back-end enterprise processing with which they're integrated than they are to the apps people download onto mobile devices. As though the traditional desktop application now resides almost exclusively in, or nearby, or in conjunction with the corporate data center.
Java EE gets plenty of attention. For this reason, it would seem that the rich desktop applications that enable corporate users to utilize their highly reliable and secure back-end processing should also get plenty of attention. But this doesn't seem to happen. One possibility is that this evolution of what a desktop application is, where it's located (in homes and businesses, or just in businesses), has lent desktop applications an unfair disadvantage, added confusion, etc. Are mobile apps desktop apps? Maybe? Not really?
The definition of highly reliable, secure, enterprise processing hasn't changed much in the past couple decades. But "the desktop" has changed immensely. So, the topic of conversation for Java EE hasn't really changed -- it's still the same type of problem that's being solved. Can you say the same for the desktop?
Figure 1. Powerful desktop application platform, circa 1996. The device featured 8 MB RAM, a 411 MB hard drive with compression, and an integrated modem; the software bundle included software that enabled using the device to send and receive faxes, and special added software that permitted the device to function as a telephone answering machine.
Fifteen years ago we were addressing enterprise data center problems, the typical consumer in richer countries owned one or more PCs, there wasn't much of a Web, email was new to many of us, and cellular phones were, basically, telephones. How different today's world is in these areas -- except for the enterprise side. How different everything is today on the client side! So, what indeed is "the desktop" today?
Our current java.net poll is related to this discussion. It asksWhy does development for the desktop receive so little publicity today?. What's your opinion? Voting will be open until Friday, December 9.
- Osvaldo Pinali Doederlein, JavaFX Balls 3.0;
- Otavio Santana, Party 10 year with Eclipse, around the Brazil; and
- Mamadou Lamine Ba, What JSF should become?
Here are the stories we've recently featured in our Java news section:
- Peter Pilgrim presents his first Devoxx 2011 Report;
- Neal Ford presents Functional thinking: Functional features in Groovy, Part 1;
- Stephen Colebourne responds to Scala EJB 2 feedback;
- Alexis Moussine-Pouchkine provides instructions for Migrating from GlassFish 2.x to 3.1.x;
- Michael Kopp discusses The reason I don