| By Joseph Ottinger | Article Rating: |
|
| July 2, 2004 12:00 AM EDT | Reads: |
16,054 |
JavaOne is here at last, and while it's not really my place or choice to issue a "State of the Union" for Java, I think we need to do some straight talking.
Sun has, for what it's worth, given us a language and platform. It has restrictions and limitations based on a long-range view of requirements. Originally the requirements were set by Sun Microsystems alone; they then created the JCP to allow the user and vendor community to offer input on what the future requirements would be and how they would be met. What I fear is that some of the recipients of Sun's largesse have decided, in a fit of pique, to reject Java as a gift horse that's simply missing too many teeth. Many people have decided that Java is almost acceptable but "almost" doesn't cut it, because there's this blemish or that problem that simply cannot be overlooked.
The problems are certainly relevant to those who see them, but their inability to see past the problems has turned out to be a major problem for Java, to the point where it's no longer as relevant as it was.
As one example of Java's problems: we have a splintering of user interfaces in such a way that it renders the JVM less important than the libraries being used. The state of things now is that most users accept this, and some excuse it, saying that the platform you run the JVM on is now more important (again) than the fact that you're supposed to be using Java as the platform. The problem here is so bad that some expect authors to willfully abandon the Java platform in favor of Linux or Windows, which begs the question of why they're using Java in the first place, in my opinion.
That's not to say that Java isn't a powerful language apart from the concept of the Java platform. It's certainly capable, and I suppose I'm happy that people want to use the language while not really caring about the platform. However, I don't think there's a legitimate separation there, especially when you consider Java's history and remember J++.
As another example: we see choirs of cacophony (O, sing!) that are begging Sun to release Java from its proprietary licensing. The licenses offered as replacements don't allow Sun to preserve any real meaning of what Java is, but most people assume that variant implementations will "do the right thing" and preserve the concept of a unified platform. Unfortunately, relying on good will doesn't work when real money is involved (again, remember J++?), and complying with this kind of request is very difficult - unless Sun's intent is to gut Java and expose it to external and internal attack.
"From where?" you might ask. Well, apart from "minor" languages like Python, Ruby, and Perl, we have the possibility of multiple virtual machines running libraries that don't provide the services that the platform requires; we have a 400-pound gorilla competing with Java on its own terms, first with J++ and now with .NET, promising the same cross-platform strengths of Java.
Of course, that "cross-platform" means "...as long as you're running Windows," and for those of you who are thinking of Mono right now, I'd like to point out that I had to massage Mono to get it to install on any OS besides...Windows.
Remember, though, that our first example showed us a core group of users and developers for whom Java's cross-platform quality is irrelevant for all intents and purposes. My personal desire would be to ignore them as outliers, but I don't think that's really a valid conclusion.
In yet another example: we have a whole gamut of conflicting mechanisms by which we can persist data, process data, present data, or even think of data. Each of these different mechanisms have their proponents, all waving their flags like mad, trying to shout each other down.
They represent a tyranny of choice and, in the end, the array of options actually makes doing something in Java harder rather than easier. What's more, this problem shows no signs of going away.
In (thankfully) my last example: we have the JVM itself, slowly morphing and growing into a behemoth all its own. Far from UCSD's concept of p-Code, the VM now far supersedes anything we're likely to deploy on it (unless we're BEA, IBM, or Sun), and even there it's not sufficient: witness the proliferation of third-party libraries implementing (and overriding!) core mechanisms, such as SWT and Thinlets, in a reference to my very first example.
As an administrator, programmer, architect, and user, I like Java. I enjoy working with Java more than I have any language since I first really grokked C, honestly. Java has a certain simple clarity that allows and encourages me to focus on the problems at hand, and a lot of that can be credited directly to Sun's stewardship. I can't say I think everything Sun's done has been "right" or "good for Java," necessarily, but I think Sun's done a bang-up job, all things considered.
Sun doesn't exist in a vacuum, however. There are a lot of forces at play, some of which I've tried to enumerate, and I wonder now if Java hasn't started to go past the point of maturation to the point where it'll be spoken of the same way COBOL is today: in use in the sweatshops, still carrying its load, but no longer glamorous or entirely desirable, no longer really growing and improving publicly and measurably. Sure, improvements are made, even important ones - but Java's only keeping the mind share it has, not really garnering new converts in large quantities.
My problem is that I don't know what will replace it. There are lots of technologies out there, but right now they seem to be all glitz, all flash-in-the-pan technologies that impress you but don't make you want a second date.
What do you think?
Think long term, and enjoy!
Published July 2, 2004 Reads 16,054
Copyright © 2004 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Joseph Ottinger
Joseph Ottinger, formerly editor-in-chief of JDJ (2003-4), is a consultant with Fusion Alliance in Indianapolis and is one of the contributors to the OpenSymphony project.
![]() |
Robert Wilson 08/02/04 09:13:21 AM EDT | |||
JDJ Ranks No. 1 in the World in Digital Magazine Circulation, and it runs on a coldfusion server, with code written in CFML |
||||
- Cloud CEOs, CTOs & SVPs to Speak at 4th International Cloud Computing Expo
- Kindle 2 vs Nook
- Why IBM’s Server Chief Got Busted
- The Difference Between Web Hosting and Cloud Computing
- Cloud Computing Journal Opens "Readers' Choice Awards" Nominations
- Cloud Computing Expo: Exclusive Q&A with Yahoo! SVP Cloud Computing
- Industry Experts Discuss the State of Cloud Computing
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- It's the Java vs. C++ Shootout Revisited!
- The End of IT 1.0 As We Know It Has Begun
- An Introduction to Abbot
- Java Kicks Ruby on Rails in the Butt
- Interviewing Java Developers With Tears in My Eyes
- Cloud CEOs, CTOs & SVPs to Speak at 4th International Cloud Computing Expo
- 1st Annual Government IT Expo: Call for Papers Deadline July 15
- How to Diagnose Java Resource Starvation
- REA Is Where RIA Becomes the Norm
- Kindle 2 vs Nook
- Anatomy of a Java Finalizer
- Why IBM’s Server Chief Got Busted
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- JavaServer Faces (JSF) vs Struts
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- What's New in Eclipse?






























