It’s not really new to anybody in the IT industry: trends need to come and make big bucks and they also need to go and free the stage for new ones, so that even more bucks can be made.
Analysts do play their role in making a trend come or go.
This time, they are on a mission to declare Java as legacy which will be replaced. It’s not yet fully clear what’s coming next, but Java is in our way (Well, I somehow agree to this one but I already agreed to it 8 or 10 years ago).
The latest mosaic piece is a blog post named “Java Is A Dead-End For Enterprise App Development” by Mike Gualtieri from Forrester Research, in which he explains why Java does not look into a bright future. His advice is:
Java development is too complex for business application development. Enterprise application development teams should plan their escape from Java.
Amen!
There are quite a few arguments in his article that make a lot of sense:
Java frameworks prove complexity. Hibernate, Spring, Struts, and other frameworks reveal Java’s deficiencies rather than its strengths. A future platform shouldn’t need a cacophony of frameworks just to do the basics.
True. But when it comes to Struts and other web frameworks, we must be fair and say that the complexity of web applications is not really Java’s fault, it’s because the mess of technologies like HTML, CSS, AJAX, JavaScript, HTTP is extremely complex and the whole web application chaos comes from the fact that we always nail new additional technologies onto this ball of mud to save a particular problem, rather than just come up with new and improved bas technologies. Java with its static typing just adds a few dozen adaptors, beans, templates and xml files on top of that for the simplest jobs. Partly due to the fact that we still fear to throw away code and want everything configurable to a degree where programming is the smallest part of assembling a web application. But that’s another story, let’s continue looking at Mike’s post:
Java is based on C++. Is this really the best way to develop enterprise business applications?
No, it’s not, but nobody ever really said so – apart from Sun and IBM. And the reason for that was not really altruism but the quest for big Bucks
Java’s new boss is the same as the old boss. Oracle’s reign is unlikely to transform Java. [...] So far, it appears that Oracle is continuing with Sun’s same failed Java policies.
Right. Larry wants to see some return on his investment in Sun, so being a Java Superstar is not on his list of priorities. I’d say arguments like this are just a sign of disapointment about the fact that the industry is still a place were people want to make money. Which I think is not too bad, since I am part of it and need to feed my kids. So this is neither a technical nor a rational argument. Java could still be great even if it cost 10000 Dollars per developer seat. But it’s not, even though it’s for free.
On the other hand, the community has added a lot of valuable code around Java that really makes Java a powerful platform.
Gualtieri comes to these conclusions:
What It Means: Application Development Teams Must Find A Better Way To Develop Apps
He’s oh so right. What I see in may daily practice at major IT shops is so depressing. Levels of complexity layered by the dozens, and nobody can draw a picture of their part of the overall architecture which would help anybody understand how The Enterprise System really works. No idea who to call when a Transaction fires some weird error message. Badly educated architects with a wall full of certificates and methodology popes sitting in their ivory towers. Java is just a little piece in the puzzle which adds complexity within software systems. But it does a great job of it.
The next generation of app dev tools will:
-
- Dramatically increase developer productivity.
- Allow developers to delegate change to business end users.
Unfortunately, he forgot to name them. But I somehow have the feeling I read sentences like this in the early nineties. And maybe people with a longer history in IT may know these wishes even from the 70ies or 80ies.
Interestingly, technologies like that have existed for decades. Smalltalk for example allows for high productivity, is highly adaptable, can be learned quite fast (I do train people in Smalltalk that come from very diverse backgrounds, and they learn pretty fast). It’s just that Smalltalk has been covered in articles from colleagues of Gualtieri 15 years ago
