Skip to main content

Is Java (on the desktop) dead? Or is the desktop itself dying (except for programmers)?

Posted by editor on September 7, 2010 at 5:45 AM PDT

On August 28, I featured on the front page of java.net a forum post, asked by java.net user cowwoc and titled Is Java (on the desktop) dead? In this forum post, cowwoc noted:

There was a time when java.net contained lots of exciting Desktop Java articles. Now all I ever see arOr is the desktop itself dying (except for programmers)?ound server-side enterprisy stuff. The same goes for javalobby.org and Oracle's direction with Java in general.

I've had previous online interactions with cowwoc and I respect his/her views. So, to hear that java.net no longer contains "lots of exciting Desktop Java articles" attracts both my attention and concern. Despite the fact that java.net no longer publishes Desktop Java articles in part because we no longer publish any articles at all (due to the economy) I am very sensitive to cowwoc's commentary.

People who read my blogs know that I myself live today as a developer on the server-side. But, I don't think that's cowwoc's point. I mean, of what use is server-side technology without the client side? The client side is the customer of the server side. Without an appropriate interface for utilizing what the server side can provide, the server is useless.

The server side needs to serve a wide realm of clients. Just because the server runs Java doesn't mean it will only serve Java-based client apps. Likewise, Java-based client apps are designed to interface with multiple types of servers. Back in the early 2000s I worked on a project where we were developing a single Java-based client that was the interface to either a Unix-based or a Windows-based server back-end.

A lot has happened in the past few years. In one sense, it's easy to think, "Well, Java has proven itself on the server side, and all the current action is in the mobile arena, so who cares about the desktop?" Is that where we are? I don't know. I myself think not; but then I've been around quite a long time, I like my big screen and a client app that lets me do lots of nice things on that big screen.

Still, I wonder if an important question is: for the general public, is the desktop itself dying? Is the iPad a desktop? Or is it just a larger iPhone? A couple years ago Tim O'Reilly commented that he felt almost behind the times carrying a laptop computer at conferences. So, is the desktop itself disappearing, except for programmers, who need a big screen in order to see source code with large enough letters and appropriate indentations such that the code is readable? And what do 15-year-olds care about the desktop? But aren't they the future?

I think cowwoc has asked an important question. Is Java (on the desktop) dead? has certainly received a lot of interesting responses. Please consider continuing the discussion on the forum; or if you think my question "Is the desktop itself dying?" is worthy of discussion, consider posting a comment here. Having embraced Java on the client side way back in 1998 at the Data Center where I still work, I'm very interested in hearing what developers think about these questions today.

Java Today

Markus Eisele notes that it's the simple things that typically make everything complicated in Hyphen usage in package names:

As always, the simple things in live make everything complicated. A co-worker came up with this and I would like to answer the question and point you to some additional links. Do we have a prefered way about our Java package names? Do we use the short...

Hudson Labs reports that HudsonMobi dons a black turtleneck and jumps to iOS4:

Last time I talked about HudsonMobi 2.0 there were some hiccups with the QR code which made me pretty irritated. Now the leading mobile app for Hudson users has regained my trust with their lastest release for iOS 4, the latest incarnation of Apple's mobile operating systems for iPhones and iPod Touches...

Geertjan Wielenga discovered Search for UNHCR on the NetBeans Platform:

It turns out that not just UNESCO, but also the UNHCR is working with the NetBeans Platform. I've known this for a while, because I've been in touch with Stanyslas Tamayo from the UNHCR , who's been asking questions off and on for some time already. Then Alexis Moussine-Pouchkine mentioned the UNHCR project in his recent trip report from the jCertif conference in Congo: "Stanyslas from Kinshasa presented the NetBeans Platform for building rich applications and in particular the RAMS (Refugee Assistance Management System) application he's building for the United Nations' HCR (refugee organization)." That's all pretty cool...

At the Aquarium, Eduardo Pelegri-Llopart recently posted Friday Tips #6: Port Unification, ASAdmin Options, PrimeFaces Support, Grizzly 2.0...

Here are some tips that have been recently published on Java EE 6 & GlassFish: • Port Unification in GlassFish 3 - Parts 1, 2, 3 and 4...


Poll

Our current java.net poll asks Compared with past JavaOnes, will this year's JavaOne have a greater or lesser "corporate" feel? Voting will be open until next Monday.


Spotlights

Our new java.net Spotlight is from the JavaOne Conference Blog, JavaOne Preview on TechCast Live! (Tues., Sept. 7, 10am PT):

You've read the blogs, you've consumed the tweets and Facebook updates. Now how about hearing from some live humans? Next Tuesday morning (Sept. 7, 10am PT), Oracle Technology Network offers you a JavaOne preview via a live video chat with Sharat Chandar and Tori Wieldt, two people intimately familiar with the content and community aspects of the conference. You'll get insights into the content contribution process, hear about particularly interesting technical sessions and BOFs, and get a sneak peek of the contents of the Mason St. tent, where Oracle Technology Network will host the community in all its glory...

We're also still highlighting java.net Community Manager Sonya Barry's JavaOne Conference Blog post Java.net Activities at JavaOne:

I'm excited about JavaOne this year.  It's going to be different in a lot of ways, but we are doing our best to ensure that the Java.net presence for the community is just as good if not better then previous years.  In years past Java.net has had a "community corner" booth in the JavaOne pavilion at Moscone... This time we'll be housed in the Mason Street tent, which will be a large comfortable space for people from all of the technology communities to hang out, pick up swag, watch the videocasts, and see some live events too..,


Subscriptions and Archives: You can subscribe to this blog using the java.net Editor's Blog Feed. You can also subscribe to the Java Today RSS feed and the java.net blogs feed. You can find historical archives of what has appeared the front page of java.net in the java.net home page archive.

-- Kevin Farnham

Twitter: @kevin_farnham

Comments

Yes, it is dead, Jim

Yes, Java on the desktop is dead. It didn't happen just recently, it didn't happen with Oracle buying Sun. It happened because Sun letting the desktop rot and neglect it for more than ten years.

Every time when Sun needed to make a decision about the desktop they made the wrong one. They gave up solid engineering principles in favor of buzzwords and hype, promising much, delivering little. Never ever finishing something. Sun alway quited early, thereby making lots of noise about some new amazing technology real-soon-now. Java desktop is the Duke Nukem Forever of desktop technology.

Not taking the desktops serious, being dishonest to desktop developers and ultimately driving desktop programmers away is one of the many reasons why Sun ended up where Sun rightfully ended - on the scrapheap of computing history.

Yes, Sun dropped the ball

I agree that Sun completely dropped the ball on desktop Java. But that doesn't mean that the concept itself is flawed. Again, see Apache Pivot, or any of the comparable non-Java UI frameworks such as Flex or Silverlight. Developers like cross-platform solutions, and, IMO, Java still offers the best alternative for building them.

 

 

 

The desktop is not dead, and neither is desktop Java

First off, the desktop is most certainly not dead. Mobile devices are great for consuming small amounts of information, but they are (in my opinion) terrible for producing or managing data. Desktop apps, because of the availability of a keyboard, mouse, and larger screen, will most likely continue to be very relevant for a long time.

Secondly, I am really, really surprised that Apache Pivot doesn't come up in these kinds of discussions more often (note - I am one of the founders of the Pivot project). We have tried really hard over the past several years to make Pivot a more modern and compelling alternative to Swing (in essence, what we think "Swing 2.0" should, or could, have been). We have always envisioned it as something along the lines of "Flex or WPF for Java". Both of these are great platforms, but the one thing they lack is...Java. We believe that we have created a platform that can help bring the best of these worlds together, and we'd really like other developers to be as excited about it as we are.

I think that part of the problem is that Java in general is not currently viewed as the "hot topic" on the client. However, I believe that there is still quite a bit of life in it, and I think it (along with the other RIA technologies) offers a much better alternative for many kinds of applications than HTML-based apps, which often have to jump through hoops to do things that are really quite simple in a "real" UI toolkit.

I myself would like to see more discussion about client-side Java on java.net as well as javalobby.org. Java on the desktop is what got me (and many others) excited about the Java platform to begin with, and it is what keeps me here. There is simply no better way to build high-quality, cross-platform, enterprise-grade applications.

Greg

I just had a look at

I just had a look at Pivot--very impressive. I guess you just have to do more to get the word out. It can't hurt to advertise it a "what Swing should have been" :-)

Thanks!

Thanks Cay! Coming from you that means a lot, since I first learned Java by reading your books!  :-)

We're always trying to come up with new ways to promote Pivot, but as an open-source effort that can be tough. That's one of the reasons I would like to see a renewed emphasis on the desktop on sites like java.net and javalobby.org. It would provide a better vehicle for spreading the word about Pivot specifically and client-side Java in general.

 

Filthy Rich Clients

I am concerned at the downfall of Filthy Rich Clients. How many people develop graphically-rich clients nowadays? Web applications do not count in my books but something like iPod does.

My employer develops 3D games using Java. Shocking, I know :) Gone are the days of Josh Bloch, Romain Guy and Chet Haase. Who will champion Java in their place?

Swing might be mature, but it's also full of design and implementation flaws. Call me a cynic, but I refuse to build software on top of a flawed library that will never get fixed.

We can only wonder at what would have happened if Google would have bought Java instead of Oracle... I hope Oracle proves me wrong.

 I think you've got your

 I think you've got your finger on one essential problem, that being that the term "desktop" isn't really useful in the iPad era.

"Client-side" isn't any better, because so many of the little apps people are using on their mobile devices -- calorie counters, novelties ("I Am T Pain"), games, etc. -- aren't really clients to anything.

For a while, I was using the term "user-facing" to describe desktop, mobile, and webapp software that shared similar concerns: graphic user interface, presenting information cleanly, affording some ability to work with that data, etc.  But a webapp never really feels like a "real" app, and that's led me to start adding another distinction, "user local", meaning code that runs where the user is, like on their PC or phone, as opposed to running somewhere across the network.  There are essential differences to this kind of execution environment: much lower latency, installation and update challenges, security (some users who will entrust their financial data to a Quicken application on Mac or Windows won't do the same with the equally capable quicken.com website).  And for myself, I've found this is something I find compelling: I don't really care about "mobile computing", per se, but I do find it more interesting to have my code running at the user's location, rather than on a server somewhere.  Of course, "user-facing" and "user-local" are two different traits.  A web app is user-facing but not user-local.  Some sort of daemon process on a phone is user-local but not user-facing.  What we think of as the desktop is, of course, both.

The idea of running wherever the user is, regardless of whether we're talking a PC or a mobile device, seems an ideal application of Java's bytecode portability, but after all these years, few people seem to have been genuinely interested in using Java in this way. I never really understood why neat ideas like Jini didn't pan out, except perhaps that they depended on Java being more ubiquitous then it was.

Meanings change: what is today's "desktop"?

Hi Chris! Thanks for the thoughtful response. Things indeed change, and words that fairly accurately depicted a technological state from the past can be overcome by new technologies. What exactly is the "desktop" today? The meaning of "server-side" remains as clear as it has always been, and "mobile" just means you can hold the device in your hand. Yet, today's "mobile" is quite different from what "mobile/cellular phones" were 10 years ago. Then, they were for talking, and that was it.