| By Joseph Ottinger | Article Rating: |
|
| July 2, 2004 12:00 AM EDT | Reads: |
17,255 |
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 17,255
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
I am a software evangelist for GigaSpaces technologies, as well as a writer and musician. I've been the editor-in-chief of Java Developer's Journal and TheServerSide.
GigaSpaces Technologies is a leading provider of a new generation of application platforms for Java and .Net environments that offer an alternative to traditional application-servers. The company's eXtreme Application Platform (XAP) is a high-end application server, designed to meet the most demanding business requirements in a cost-effective manner. It is the only product that provides a complete middleware solution on a single, scalable platform. XAP is trusted by Fortune 100 companies, which leverage it as a strategic solution that enhances efficiency and agility across the IT organization.
![]() |
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 |
||||
- It's the Java vs. C++ Shootout Revisited!
- Patterns for Building High Performance Applications
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Cross-Platform Mobile Website Development – a Tool Comparison
- Three Buzzwords That Every CIO Hears but One They Should Listen To
- Write Once Run Anywhere or Cross Platform Mobile Development Tools
- Immersing into JavaScript Frameworks
- Workday Reportedly Prepping to Go Public
- Cloud Expo New York: The Java EE 7 Platform - Developing for the Cloud
- Book Review: Sams Teach Yourself Java in 24 Hours
- OpenOffice.com Lives
- Book Excerpt: Introducing HTML5
- Adobe Sends Flex to the Apache Foundation
- Five Years Waiting for JRE 7: Is It Justified? (Part 1)
- Book Excerpt: Java Application Profiling Tips and Tricks
- i-Technology in 2012: Five Industry Predictions
- It's the Java vs. C++ Shootout Revisited!
- Patterns for Building High Performance Applications
- OpenXava 4.3: Rapid Java Web Development
- The Next Web Architecture
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Is Write Once Run Anywhere Ever Going to Be a Reality?
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- JavaServer Faces (JSF) vs Struts
- The i-Technology Right Stuff
- 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
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- What's New in Eclipse?
- i-Technology Predictions for 2007: Where's It All Headed?


















