O'Reilly From the Editors List
BooksSafari BookshelfConferencesO'Reilly NetworkO'Reilly GearLearning Lab

The State of Java

Edited by chromatic
October 2004

Is the Java revolution over? Has the big business-friendly approach turned Java into the new COBOL? Is the momentum behind .NET and Mono stealing away the cool factor that Java once enjoyed? Are those even bad things? In a recent discussion on the Editors List, several editors—programmers themselves—debated these questions.

Brett McLaughlin:

So Tony Stubblebine sent me some mail the other night. I asked him if he was a Perl guy, or did Java, too. He said he was "skipping the Java fad, and going right to Mono and .NET." It was such an interesting comment, especially as we're all seeing the Java space become a bit stale, that I blogged about it: Ho Hum Java.

I think it's worth reading these entries for anyone who's in a program that's stabilized, and that's primarily in business-oriented use. Seems like these responses should really inform our publishing in these areas. No conclusions yet, but interesting reading all the same.

Nat Torkington:

That's a great line, Tony! :-) I think Java's just been built out. It's useful out of the gate, and runs on our Unix machines, but it seems very strongly focused on back-end stuff despite the best efforts of J2ME and desktop GUI frameworks. The write-once-run-anywhere thing hasn't proven as attractive as was first thought: the web may be ugly, but it's usurped a lot of that portability motion by letting you distribute your app and give the client (fairly) portable HTML. So the only things I'd use Java for would be the server, like Andy's work on Treemap. [ Editor's note: Treemap is a graphical representation of hierarchical structures that makes them easy to compare visually. ]

.NET wouldn't be interesting to me without Mono, a way to run it on a platform other than Windows. What makes Mono interesting is that it's still growing and expanding, that it's very immature and there are green fields for hackers. The very things that make it unusable for business right now (or at least all but the bravest businesses) make it interesting to the alpha hackers.

The interesting test will be whether Mono and .NET become Java with a different name, or whether they take us into a new application space. I sense there are some killer desktop information management apps coming in the next two years, and chances are that they'll be written in Mono. I say this because the people pushing the boundaries with Mono are big on the Linux desktop, thanks to Novell, and they'll be building out Mono in directions that suit their work. Java has a different niche from Perl, and what these hackers do will determine whether Mono has a different niche from Java or even Python.

Tim O'Reilly:

You may be right about Java, but not about Treemap. This is a client-side applet—not server usage at all.

Michael Loukides:

It's a fairly good example of the sort of things applets are good at: pushing computation away from the server. Would you really want a server generating piles of GIFs in real time?

The big problem with Java is that people are so damn anxious to believe it doesn't work.

Edd Dumbill:

Speaking of [Mono], here are some cool apps that just popped up:

  • Tomboy, a desktop Wiki/post-it note thing. Very well done.
  • autopano-sift, a panorama-stitching app

I'm tracking new Mono apps as well as I can right now. An article called Seven Cool Mono Apps just published on O'Reilly Network, and we'll keep writing on an ongoing basis.

Also of interest to Mono watchers, the first preview of Mono 1.2 is out. Now AMD64, S390, and 64-bit Sparc have ports too, plus there's loads of new stuff from C# 2.0 and .NET 2.0 in there, better *BSD support for XSP, and the Basic compiler's almost done.

PS. I'm not sure I take the "mature = no fun" argument. Python's just as old, but still is fun.

Tony Stubblebine:

I was just needling you when I said Java was a fad. I actually think Java is the new COBOL. My friends in big business still rave about it. I assume they're building huge applications that will live forever.

Java-based social software does seem like a fad. If the only people running Java social software are running it on corporate servers, then the software is destined to become corporate groupware (and development is destined to move at corporate speed). Meanwhile, PHP and Perl software will continue to adapt to the demands of a more dynamic audience. That's the main reason I have a language preference for the software we integrate into O'Reilly Network.

Brett McLaughlin:

I realized that. But it was this perfect line. . . . It launched the whole (rather well responded to) line of thought over at java.net. And I do think that the COBOL parallel is a really good one. (I may steal that, too. You're good at this.) Java isn't unimportant, but it's big business in many cases, and that tends to suck experimentation and fun out in sneaky ways.

Yeah, I've used MT, roller, and several others, and MT was by far the easiest. There were some quirks in making it work with Java and the JSP on my site, but nothing compared to the hassle of several of the Java-based solutions.

In any case, I'm glad you said what you did. Much needed discussion in the Java community!

Bob Eckstein:

I see valid points on both sides here.

A good number of Java APIs suffer from the second system syndrome. I had a long talk with a manager at Sun Microsystems on Wednesday and asked him what the current state of thinking of developers at Sun was right now, and he acknowledged that starting with EJB 3.0, there is a large focus on simplicity in APIs, instead of trying to bloat the APIs to satisfy every developer need there is.

I don't think that Sun is making that particular mistake with J2ME. Currently, interest in J2ME is starting the bubble. The trouble is that the newer APIs are (like J2EE) designed with SPI interfaces, meaning that it's up to phone and PDA manufacturers to come up with framework plugins to make things work. Sometimes, however, they don't, even though the hardware is there. (For example, it's pretty frustrating when you can't use Java to take a picture with your Nokia phone camera simply because they didn't hook in the APIs.) So, incomplete or fragmented functionality is an issue right now with J2ME, but definitely not second system. There are too many physical constraints for that.

Despite those problems, Java works, and it has worked for some time now. I spoke with an individual of a local contracting shop yesterday, and he's about as "in the trenches" as you can get. Interest in Java and J2EE is not shrinking here in Austin, and believe it or not, the majority of clients that he is getting are falling into the extremely-conservative-with-their-data category: biomedical and health care companies. They have some bucks to spend right now, but not to experiment with newer libraries and systems. They just want something that works, and Java is now considered "old and dependable."


I think of it the other way around; JDS is Sun's attempt to make .NET with a different name.

Return to: From the Editors List

O'Reilly Home | Privacy Policy

© 2007 O'Reilly Media, Inc.
Website: | Customer Service: | Book issues:

All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.