Explained: Java Is A Dead-End For Enterprise Application Development

Whoa. My post Java Is A Dead-End For Enterprise App Development received record-breaking readership and passionate comments. Thank you for reading, and thank you for your comments. Clearly it hit a nerve. Many of the comments legitimately called for an expansion of my arguments. Fair enough. I have done that in a 50 slide presentation that I delivered as a teleconference on January 24, 2011. Forrester is making this presentation available to download, free to anyone who registers at the site. Registration is free, so please feel free to register and download the presentation. I welcome your comments on the presentation here, at the original post, or on Twitter.

Click here for free registration and to download the Is Java A Dead-End For Enterprise App Development slides.

Comments

-1. Make a claim that is

-1. Make a claim that is unbalanced, lacks evidence and logical clarity
-2. Get burned by a community that points out the faults in your posts
-3. 'Oops, better collect 50 slides of proof' (Slides as proof, really??)
-4. Make the slides available behind some corporate 'register-first' wall

The majority of us are not going to register to read more crap. The first article just wasn't promising enough and lacked quality. I feel for the souls that can't distinguish your flapdoodle from facts and are going to base their decisions around it.

The argument is expanded in the slides for clarity

These slides answer many such as you who asked for more details of why I think Java is a dead-end for application development. I guess you just don't want to hear it. No problem.

I'll be happy to go through

I'll be happy to go through the slides if you publish them here on your blog. If you value discussion, publish them out in the open, just like you did with your original claims.

And no, I am not blind to Java's troubles (there are many), I am in fact a happy Groovy user. But I've heard across-the-board statements like yours from many people and they're usually not very well founded. Yours seems no exception to that rule which is unfortunate for somebody working for Forrester.

It's not that we don't want to hear it...

... it's just that there are so many places on the big old Internet where we can read the kind of FUD we have come to expect from the first post, without even having to jump through registration hoops. How gracious of Forrester not to demand payment for it though! Pfffft.

Let us know when it's available on SlideShare or unregistered download.

Not FUD

I am not arguing FUD (fear, uncertainty, and doubt). I am confident about the changing trends in business apps, the arguments that Java does not completely fit the bill, and that alternatives are available now. Look at my Swiss army knife slide and you will understand that one miraculous tool like Java platform is not best for all. Would you use the saw on a Swiss Army knife to cut a cord of wood?

Silly conclusion

After wading though all the slides, I found many that were misleading and some just wrong. It seems like the entire presentation can be summarized as: "Java isn't the right solution for every problem".

Well, NO KIDDING!

Any company that needs a BPM (or SOA, or event management) and writes it themselves (in whatever language!) deserves what they get. I fail to see how any of the issues you described in this presentation are specific to Java.

Thanks for actually reading the slides

Hi Scott, First of all, thank you for actually reading the slides. Many people comment without even reading them. Which slides do you think are misleading and wrong? I am very willing to hear counter arguments. Our survey shows more than a majority of large organizations use Java for custom-developed apps (as is shown in one of the slides). So many are using Java as the solution for every problem. You and I know it is not the solution for every problem - but many don't. I think you have to admit though that Java is many weaknesses when it comes to the two megatrends I highlighted: faste change and user experience.

megatrends

Unless you are locked in (i.e. mobile), every platform has UX issues. The browser is currently a terrible environment for building rich UIs. It's getting better but way too slowly. If there was a UX solution in the enterprise that was so much better than everything else, don't you think most of us would be using it? We're all struggling to find ways to work around a lousy delivery target.

What's confusing to me is that you have 46 of 50 slides trying to make a case that "Java" is the wrong solution and then you give "recommendations", many of which are built on Java platforms. Consistent message or not?

Your bold assertion on slide 30 that "Java innovation has reached its limit" has no supporting evidence and no followup - that's pretty weak.

I disagree with your fast change assertion. If you choose the wrong technologies for your particular requirements, then of course you'll be slower to deploy than some other team that chose a better one. Writing a simple app in RoR with a team of 3 people is not the same as an app with dozens of different transactions and hundreds of pages and maintained for years by 30+ developers. Choosing the right technologies is the critical issue here and the fact that some people are choosing Java when they shouldn't doesn't make Java a "dead end". I think that's a bad conclusion.

Java is an excellent choice for...

Slide 29 - "Java is an excellent choice for development software and some business and Web applications".

consistency is a good thing

And how does slide 29 refute anything I've said?

If anything, I get the impression that you've got "editor's disease" - pick a sensational headline that probably doesn't match the content but I need eyes to increase my reputation. In other words, pandering to the least technical audience.

But, I guess I shouldn't really be surprised since the technies aren't Forrester's target audience.

Your first Tweet

"Check out Microsoft Dryad for massive scale distributed data/computing http://bit.ly/i7QmDR
— 1:36 PM Jan 28 from TweetDeck"
explains mostly why you wrote it... Sure, there could be other languages here and there, but when it comes to true scalability and large distributed Enterprise systems, even Facebook and many other social networking sites use Java in the Middle Tier or Backend (I know this from the source ;-)

Beside Microsoft, Apple, RIM and other Mobile vendors increasingly favour their own proprietory languages or platforms, that is true. And even Oracle so far hasn't done the Java Community and Platform much of a favor by fighting to the teeth with providers like Google who managed to get some Enterprise features even onto the mobile with Android. Based largely on "Java-like" technologies, let's not call it "compatible" at the moment, but technically it is in most cases.

Complexity shifting selling points

The question is, whether tooling and frameworks will really get us quicker on new tracks or just moves the complexity out of one domain into another.

I say: Not much. Just more pigs with lipstick to sell (proprietary software) and other languages/tools to learn to be cool again and get a raise of the day rate. And it always gets 'funny' when we like to extend and maintain the SOA/BPM/Yawn we glued together sooooo much faster.

Agree, but also applies to open source

LOL on "raise of the day rate". Premium day rates are also to be had from firms that insist on using a half-baked open source software simply because it is "open". There are many great open source platforms and frameworks out that will save time and money. But, there is a lot of garbage out there too. I absolutely agree that the purveyors of buzz words such as SOA do not help. Swiss army knifes don't work. Try cutting a cord of wood with the saw on a Swiss army knife. Multiple tools and approaches are necessary. But, I am with you. Complexity in proprietray and open source software makes more money for porgrammers and costs firm smore money.

There is some point in that,

There is some point in that, and although a lot of momentum especially among VC firms is currently created around many new "Professional Open Source" startups, or even more companies in the Cloud, that has to settle before we can see which ones are worth their investment both from VCs and the Community? (investing their time and creative energy) and which ones aren't...?

Mike's making a good point

I've read these posts and the TSS blogs. many posts seem to be from coalface developers. It's disappointing to see such naked aggression but when you confront the status quo and the livelihood of many that is the predictable outcome.

Personally I'm a bit of a veteran these days having started with COBOL in 1990 and then moving to UNISYS LINC and then onto Powerbuilder. Later I went onto Java and then into other fields removed from application development but still in technology.

I remember the excitement of Java and the beginning of 'online' websites and applications. Little did we know how much could be done and what has been achieved with the toolsets so far and on mobile phones in particular is fantastic.

Mike's pack in my view does NOT do that good a job of conveying his point but his core point is on the mark. I'd re-phrase it as - 'Java has enabled new types of applications to be written and underpinned profound growth in technology utilisation, but developer productivity and the cost profile of applications developed with it indicate that a replacement needs to be evolved'.

To use an analogy 'Oil has enabled great advancements for man, with many positives, but when considered from a macro standpoint, we as the masters of the planet now acknowledge that alternatives to it need to be found, and evolved to be commercial such that we can stop using oil'.

Some have made the point that Mike has not provided an alternative but I don't think he is duty bound to. The industry needs to first accept that the status quo is far from ideal and then let the capitalist system produce challengers that will be compelling alternatives.

Prior research produced about 5 years after Java entered the mainstream has shown that Java applications cost more and take longer to develop. .NET is not that much better. As Mike points out there are many frameworks to use on top of the basic language and it is simply too hard to build UIs with it. Of course we do build business applications with it but its not ideal. The language itself is a problem but the bigger issue is that the developer tools built using Java do not hide the complexity and C++ programmatic nature of the language such that the tools deliver high levels of developer productivity and cost (which is better than the 4GLs).

By now we as a industry should be onto 5GLs and 6GLs. Instead we went from 4GLs and then back to a 3GL (java). Toolsets for developing applications are not delivering the productivity of the old 4GLs like UNIFACE or INGRES or POWERBUILDER or SQLWINDOWS.

In fact the java language resulted in a huge expansion in the types of enterprise enabling applications we use such as ESBs, BPMS, Portals, rules engines, document generation engines and so on. Many of these offer great leaps in productivty but they break down at the edges when Java or UIs are needed.

Take for example just using Java. I have to put a semicolon at the end of every line. Its 2011 and that sort of rigidity still persists? I don't understand why.

As for being non-proprietary, well nearly every mainstream business organisation is using vendor based solutions which are based on java and these ARE PROPRIETARY so where are we getting the benefits?

We've not demanded as an industry that Java evolve to be a 5GL or 6GL or that software development vendors make it easier, cheaper and faster to develop with it. It needs to be a whole lot less complicated as complication means bottom line cost going up. Just have a look at how many framework, and JSR acronyms are out there. When 4GLs did abound a company dealt with one name - the 4GL that was it.

In summary its time the market begin the journey to develop commercial 5GL app dev products. In my view large scale businesses would have no issue paying proprietary licence fees in exchange for a development platform that is cost-effective and very rapid to devdlop in. In fact by now there should be no technology programmers, the business should develop themselves using business friendly software. The two teams merged into a single functioning business. Today you cannot put Java in the hands of the business.

Of course this evolution is not in the software vendors' interests. They make too much money from the downsides of Java.

We achieved a great deal but java's usefulness will start to impair us going forward.

Complexity shifting selling points 2

To get my rant straight. Java is not dead. There is an increasing amount of tools and products on the market, that offer higher abstractions of business enabling features built on platforms like Java. That's the evolutionary process of software (or better 'product') development. And its simply an indication for the JVMs maturity. In fact, if you say that Java is dead, you also need to call the death of .Net or even C++. To get to the hilltop of higher abstraction and productivity, many lines of code of 3GLs, 2GLs and even ASM are required to be written resulting in much more complex platforms as we see today. So the complexity is not out of the system. It is hidden away and eventually popping up if you have to leave the path the platform forces you into. This trend results into standardization efforts (JSRs, Sharepoint), questioning existing standards (WS-* (WTF!), EJB) and redefining them (Rest, actor platforms). Talking about business change, the tooling/4GL/5GL that likes to support this change by its higher abstraction must increasingly standardize and know common patterns of change and targeted processes. That obviously leads to standardized business processes as well. As a summary, I think, we will see more complex solutions (that need to be maintained, integrated and so on) and companies having the same processes implemented (that's why everybody likes to invent the next Haskell/Ruby/NodeJS/... - to fight boredom and get those higher day rates and the credit ;).

(Maybe, I should write a generator on top of cloud computing, that generates functioning code by brute-force directly out of a CEOs head...)

Mike, it sure was an old wine

Mike, it sure was an old wine presentation, with a title like "Java Is A Dead-End..." you are sure to get some visitors. I am not sure what background you have in Software development, and some comments seem to show you views may be stale by many many years.

We have seen similar presentations/claims from the Rails community around 5 years back. Although I agree Rails has contributed greatly to a small awakening in the Java community, it sure has not tilted the landscape by any measure, even with some great talent base. Yes there are changes happening in the Microsoft and Java (outside of Oracle) like Scala, Clojure, Groovy/Grails, ROO, Play..., but nothing significant to create a revolution or evaluation.

Do a job search to see how many Java job opening are available? Check to see how much is invested by huge software vendors on their Java based solutions, I would say Billions, even this very year... and does not seem to have slowed down in adoption either. Yes Java programming is heavily cluttered, but with smart programming and good understanding of Groovy and Scala you can overcome this... Scala learning curve is higher, if not for that it should have taken over by now.

Your slides do raise some very valid issues/drawbacks, and you history lessons are correct :) but I really feel you are not in touch with the community... Many 'experts' and communities have said this before... Java is not the best solution but sadly, there is no evolutionary alternative either.

Nice post

Great post.. I really like this blog and I am looking forward to see more content like this.. I'll always visit this site. :) Keep it up!

If you have time you can visit this site that i managed to surf in:
Solarium and Solariums

Enterprise app store

Hello webmaster,
Can You please tell me about enterprise app store