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."
chromatic:
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

|