Forrester Research: Java Is A Dead-End For Enterprise App Development

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 ;-)

Java on the Mac: no need to worry

A few days ago, Apple revealed their plan to give up providing Java Runtime versions for Mac OS X. There was quite some speculation if this means Apple plans to diss Java similarly to Flash.

But obviuosly, they really just said: we’re not investing anything any more, but we welcome Oracle to do that for our platform.

Which is what will happen: Apple just announced that they will support Java 6 on Snow Leopard and Lion, and Java 7 will be provided by Oracle. This is true for many platforms, so the Mac will be like all the others.

So we’ll have Java and Eclipse on our Macs for quite some years to come.

Hat Tip to MacRumors

How closed will the Mac universe be in, say, 5 years?

I love using my Mac. I like my iPhone. The new Air is really an interesting piece of hardware.

Part of the reason I like my Apple products is that they run quite stable and offer a pleasant overall experience with installing/uninstalling applications. I also like the fact that I can use my Linux/Unix shell commands on it.

But there are times when I wonder how long I’ll like to use Apple products.

The newly announced MacApp Store will probably make finding and installing (and, of course buying) applications easier than ever.  But there is a back side to the coin. Apple wants the experience to be as good as possible and so tries to keep everything out of the App Store that may disturb this. By explicitly disallowing all programming languages other than C/Objective-C and runtime environments, they try to make sure that you cannot install anything from the App Store that’s not perfect. But what’s perfect is defined by Apple.

As long as it is still possible to install software on a Mac that is not purchased in the App Store, I still have a choice, and if I want a Java/Ruby/Smalltalk/Clojure/Scala-written program on my Mac I still can do so. But what if Apple decides to lock Mac OS 11 completely and only allow Apps from their App store on it?

Will we have to jailbreak our Macs to run Eclipse or Pharo in a few years?

And what if Apple is succesful with this policy? How long will we be able to install software of choice on any other commercially available OS?

Let’s hope I am just dreaming a nightmare and reality is different…

Is Apple hinting at Java’s exit from Mac OS X?

Back in 2006 when I made the move to a Mac, Apple had put a lot of effort into making Java/Swing Applications feel like native on Mac OS. Adopting Java and integrating it well with MacOS was key to attract new users to the Mac.

But Apple today is self-confident enough to declare mainstream technologies a legacy on their machines. It seems Adobe’s Flash (which is not shipped pre-installed on the new MacBook Air and is not available on any iOS device) now has a prominent friend.

Apple today announces that they won’t maintain a JRE for Mac any more:

As of the release of Java for Mac OS X 10.6 Update 3, the version of Java that is ported by Apple, and that ships with Mac OS X, is deprecated.

This means that the Apple-produced runtime will [..] may be removed from future versions of Mac OS X.

This does not mean that Java will go away from the Mac any time soon, but there will (very likely) be no Java Runtime from Apple any more. So now it is up to Oracle (or any other third party) to provide a Java Runtime for the Mac, because it seems Java 7 (if that ever becomes real) apps will not run on Macs any more. But it also means that betting on languages that run on the JVM for development on the Mac is not a good idea (I am especially thinking of Clojure and Scala here).

Some may think that’s no big deal, since Java is a server-technology and the overall market share of Macs is quite small.

But this also makes life harder for providers of software packages that are portable, like IBM (Lotus Notes, Symphony, DB2 tools etc), the Eclipse project, Oracle (admin tools) and many others. What will happen if they cannot install on Macs any more?

Will this hurt the Mac platform or the software vendors? Will the possible inability to run a Scala-App on Macs influence the developers’ decisions, or will it make the Mac an unattractive platform for users due to missing applications?

Is this just Apple moving away from the mainstream or is the mainstream becoming irrelevant for some corners of the IT industry?

Hat tip to macrumors

The former Instantiations Java tools are back – for free!

Google has finally announced what they will do with WindowBuilder, WindowTester and CodePro:

We’re happy to announce today that we’re relaunching the following former Instantiations products under the Google name and making them available to all developers at no charge

So this means that these great tools are now free for commercial and non-commercial use. I can hear a few people take a deep breath and frolick ;-)

On the other hand, we’ll have to see what some of the announcement may actually mean mid-term:

…we hope you’ll start using them within your GWT projects…

because a fair amount of tools that were relaunched have nothing to do with the GWT at all. But at least they available and will help a lot of Java developers make their GUI design  and testing a lot easier.

I guess we’ll know in a few months if I am just too picky about the way GWT is mentioned in the announcement…

Oracle may hurt Java much more than it wanted to…

The Blogosphere is heating up on the Lawsuit of Oracle vs. Google. It seems people start to worry a lot about what level of openness they can expect from Java, and what consquences it may have for their projects. I stumbled upon a very interesting thought by Bruce Eckel:

Now, if you are choosing a programing language, aren’t you more likely to consider something truly unencumbered like Ruby or Python — where something like this just wouldn’t happen — than you are Java? Joel West points out a problem that Sun always had — that of semi-openness — which now comes back to bite those that trusted it.

Interesting thought. The current lawsuit does not effect an end user of Java, but an implementor of an alternate virtual machine, so it’s probably a bit over the top at this point in time.

It is, however, interesting what kind of movement such an action can cause. Maybe people will develop an even stronger tendency to avoid Java than they did before. Not only because it has never really become open source, but also because it is now in the hands of a “dark power”.

This train of thought, combined with growing interest in dynamic languages, could raise the traction towards technologies like Ruby or Python.

Not sure I’d think of these in the first place, but you get the idea. If you think about future platforms for your project, why not consider Smalltalk? Over in Smalltalk-land, you can get a lot of what you really need for your projects:

  • Smalltalk has been very influential to all of today’s object oriented languages like Objective-C, Ruby, Python, and, heck, even Java
  • Multiple Decades of stabilizing and evolution
  • Modern and reliable frameworks for web services, web applications, database access and so on
  • You can choose between open source implementations like
  • And commercial offerings like

[Update] In the meantime, ever more blog posts and news articles show up that show how much Oracle is playing a risky game marketing-wise, like “Oracle’s Java lawsuit undermines its open source credibility” by ars technica:

It raises very serious questions about the company’s stewardship of other open source technology that it obtained during the acquisition of Sun. The resulting uncertainty will likely not be conducive to retaining the customers and mindshare that Sun had built around certain open source products. It will also likely have a serious chilling affect on community involvement and third-party contributions. It’s important to recognize that the impact of this lawsuit will be felt far beyond the scope of Java [...]

Oracle is arguably shooting itself in the foot, because Android has helped to restore Java’s relevance as a client-side programming language as well as attract developers. With the lawsuit, Oracle is seriously undermining Java’s prospects for growth outside of the enterprise server software space.

The full article is well worth reading…

Is Oracle sunsetting Java?

Not likely, at least not by intention.

But the latest lawsuit against Google can mean much more than just one giant pressing lots of money out of another. It’s probably more than  Oracle wanting Google to pay them some hundreds of millions because Google is not licensing their Java ME. Here’s what Mark Driver from Gartner writes about it:

If Oracle wins,  it will send a strong message to the industry that Java isn’t as open as was assumed.  There is already an under-current of bleeding edge developers that consider Java to be ‘legacy’ 20th century technology.  If it looks like Oracle is aggresively ascerting its control over Java then these discussion get really interesting.  You think the JCP is dead today?  You ain’t seen nothing yet.

Mark’s Blog entry is very interesting and links to some very interesting material on the matter. This whole thing sounded very boring to me until I read Mark’s post. So I encourage you to read his full article and follow the links as well.

I wasn’t really aware of the fact that Java is making Oracle real big money in the mobile arena, and this whole “open source but patented” thing sounds weird and complicated – it may even explain why Apple tries to completely do their own thing and build up their own kingdom.

Is there a market for Java tools?

Now that the smoke has settled on the news of Google’s acquisition of the Java GUI building expertise of Instantiations, it is probably time for wild speculation. If Google was only interested in Instantiations’ GWT Designer, they could have bought only that product and the development team behind it. But Instantiations has sold all their Java/Eclipse products and staff to Google. This could also be another proof of the fact that it is extremely hard to make real money in an eco-system that’s associated with FREE.

FREE is a price tag that makes people put aside their intelligence for a while. It works even better than CHEAP. The tools from Instantations were not really expensive, even though they are best of breed in the Java GUI Design arena. Our customers were and still are extremely satisfied with WindowBuilder, SWT Designer or Swing Designer. We’ve had very faithful customers who’ve renewed their support every year.

But we also had many prospects who wanted SWT Designer or RCP Developer but were not able to get a budget of a few hundred bucks per seat, because all their eclipse tools in use were free. So even if they saw the benefits of atool they wouldn’t want to pay for it. They’d rather throw lots of person days at the problem.

But somebody has to pay the people who build and support these great tools. They won’t do it just for the love of it (well, I know some people who might, but they don’t count ;-) ). Eclipse has been largely paid for by IBM and many other companies, and thus by their customers, so neither Java, nor Eclipse, nor any other high quality tool really is for free. You subsidize them by buying DB2 or Oracle or any other products.

So coming back to my speculation: This whole thing might just mean that all the investment in developing and supporting WindowBuilder didn’t really pay back or there were signs for a negative trend. So while many people are excited in hopes for a free WindowBuilder in the near future, there will probably also be some drawbacks. Even Google will need a business model for supporting users of these tools.

An interesting question here is: being a web centered company, where could the benefit of a rich client GUI builder be? What could be an attractive reason for Google to give away SWT Designer or SWING Designer? There even is no real competition to cause any trouble to, because WindowBuilder didn’t have much competition. No question: GWT Builder is a tool that’s attractive for Google. But Rich Client tools that work completely offline? Maybe in the form of a GUI Builder for Android gadgets…

I hope I am wrong and Google’s altruism will make them open source and/or give away WindowBuilder. Maybe there will be some support contract constellations for large customers which will finance the tool. But why, exactly, should that work better at Google than it did at Instantiations?

We’ll hopefully know more soon.

Instantiations sells their Java Business to Google

Google and Instantiations today announced that Instantiations is being acquired by Google. So this is what the Instantiations website looks like this morning :

In a first short interview with Mike Taylor, CEO of Instantiations, I found out the following:

  • Google is acquiring Instantiations’ Java business. The agreement includes all Java products, trademarks and staff
  • All Java products from Instantiations are not being sold any more, at least for “a while”. I am sure they won’t disappear, but for the moment all sales of licences and support contracts has stopped. All reseller agreements were terminated.
  • Instantiations’ Smalltalk Business is going to be spun off as a new, independent (privately held) company called (surprise!) Instantiations
  • The management team and technical staff of that new Instantiations will be essentially the same as the one of yesterday’s Instantiations

So what does this mean for Java developers?

Since I do not have any insight into the deal, I can only speculate. In the best of all possible cases, some of the tools will be open-sourced sooner or later, my hottest candidate for the first one is the GWT Designer, which is Instantiations’ tool for visually constructing applications for the Google Web Toolkit.

I am quite sure tools like WindowBuilder or WindowTester will not go away, because there is a really big user base out there. Many big shops do use Instantiations’ tools for boosting their productivity and improving the maintainability of their code.

Here’s what Instantiations announced in a mail to all customers of their java products:

From our new Google home, we will be able to leverage our Eclipse Java industry knowledge, award-winning technology and world class development team to continue advancing the state-of-the-art in software development tools. But first and foremost we want to say how much we appreciate your patronage and support through the years. Thank you!

How does this affect you? Please rest assured that your existing Support Agreement will be honored. Our highly responsive tech support team is in place and ready to take care of you.

New downloads for the Eclipse Java products will disabled for a short time during the transition. Please stay tuned for exciting new announcements coming soon on the Google Web Toolkit blog.

As in the past, you may use both e-mail support and product forums to address support issues. Please note the new support e-mail addresses and forum URLs below [not added to this blog post to avoid spam. We will notify you when they become active. In the meantime, please continue to use the existing Instantiations product support channels.

I will keep you updated as soon as I hear more details. We need to know more since we need to tell our customers about the future oft heir tools, so you can be sure we’re going to find out more.

So what does all this mean for objektfabrik?

For now, it means we’re not a reseller of any of these products any more:

  • The Window Builder family (including SWT Designer, Swing Designer and GWT Designer)
  • The WindowTester family
  • The CodePro family
  • RCP Developer

No matter what happens to the tools at Google, we’ll continue to provide knowhow in their use to our customers, and we’re going to use them in our Java projects as much as we can.

Stay tuned for more news

The “feels like dynamic” trend

I found an interesting tweet by Gilad Bracha through pharoproject:

Mainstream programming language syntax is like human sacrifice: evil, yet once entrenched, difficult to get rid of.

But one answer to it is even nicer:

Every new typed programming language says it “feels like a dynamic language”. What does this tell us about how typed languages feel?

Indeed there is so much going on in order to make Java or C# more and more “like” dynamically typed languages by introducing more and more complex language features and disabling type checking (by using Reflection for example). More and more languages try to achieve the flexibiliy and effectivity of dynamically typed languages (most of the times only getting close with some tricky side effects). Now that even Objective-C gets Blocks for Grand Central Dispatch, shouldn’t people just try and see if the real thing is even better? Why not try Ruby or  – even better – Smalltalk?