Java Is A Dead-End For Enterprise App Development

Before Java was invented, one of the key industry trends was to increase the productivity of both developers and end users. For example, fourth-generation programming languages (4GL) such as Powerbuilder, Progress, and Uniface provided professional developers with faster ways to develop business applications than using COBOL, Pascal, C, or C++. For end users, tools such as Dbase, Lotus Notes, and Visicalc provided them with the unprecedented ability to create mini-apps without the need for professional developers. In the early '90s, this productivity trend was thrown into a tizzy by the Internet. Now, software vendors and enterprise application developers had to rush to write a whole new generation of applications for the Web or risk becoming irrelevant. The Internet forced developer productivity and 4GL’s to take the back seat.

Java Was At The Right Place At The Right Time For Web Applications

Java was designed in 1990 as an easier and more portable option than C++ to develop embedded systems.  The invention of the WWW in 1993 started a meteoric change in IT application development. Sun Microsystems moved quickly to take advantage by selling “network” servers like hotcakes and offering Java as the platform for Web development. Most other software vendors were caught off guard and Java became the de facto Internet development standard for enterprise Web application development.

Fast-Forward 20 Years

Forrester data reveals that Java is still firmly planted in enterprise IT shops for custom-developed applications (see figure). But, data always tells us what happened in the past and does not predict the future. Application developers should also not make the mistake that adoption means goodness.

Java is not going away for business applications, just as COBOL is not going away. Java is still a great choice for app dev teams that have developed the architecture and expertise to develop and maintain business applications. It is also an excellent choice (along with C#) for software vendors to develop tools, utilities, and platforms such as BPM, CEP, IaaS, and elastic caching platforms (ECP). Software such as operating systems, databases, and console games  are still mostly developed in C++.

 Java Has Served Its Purpose, But Now It Is Time To Move Forward

Java development is too complex for business application development. Enterprise application development teams should plan their escape from Java because:

  • Business requirements have changed. The pace of change has increased.
  • Development authoring is limited to programming languages. Even though the Java platform supports additional programming languages such as Groovy and  JRuby, the underlying platform limits innovation to the traditional services provided by Java. You can invent as many new programming languages as you want, but they must all be implementable in the underlying platform.
  • Java bungled the presentation layer. Swing is a nightmare and JavaFX is a failure. JSF was designed for pre-Ajax user interfaces even though some implementations such as ICEfaces incorporate Ajax. There is a steady stream of new UI approaches reflecting Java's lack of leadership in the presentation layer.
  • 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.
  • Java is based on C++. Is this really the best way to develop enterprise business applications?
  • Java’s new boss is the same as the old boss. Oracle’s reign is unlikely to transform Java. Oracle’s recent Java announcements were a disappointment. They are focused on more features, more performance, and more partnerships with other vendors. So far, it appears that Oracle is continuing with Sun’s same failed Java policies.
  •  Java has never been the only game in town. C# is not the alternative. It is little more than Java Microsoft style. But, there are new developer tools such as Microsoft Lightswitch and WaveMaker -- and traditional but updated 4GL tools such as Compuware Uniface and Progress OpenEdge. And don’t forget about business rules platforms, business process management (BPM), and event processing platforms that enable faster change offer by enterprise software vendors such as IBM, Progress, TIBCO, Software AG.

What It Means: Application Development Teams Must Find A Better Way To Develop Apps

Many enterprise application development teams are already using a combination of tools and technologies to overcome the complexity and inflexibility of Java applications. BPM is used to quickly define and change business processes, and collaboration suites like SharePoint and Lotus are used to respond to the increasing demands of long-tail apps. Progress Software’s responsive process management (RPM) combines the best of BPM and business events to help businesses respond to real-time events and change business processes. This is just a small sampling of the next generation of business application development tools

Clear standard alternatives to Java and C# for custom-developed applications do not exist. There are issues with many of the alternatives. For example, BPM tools are great for defining and implementing processes but a poor choice for implementing compelling user experiences. The market for application dev tools is beginning to change though. The next generation of app dev tools will:

  • Dramatically increase developer productivity.
  • Allow developers to delegate change to business end users.

You Must Transform To A Lean, Mean Change Machine

Application development teams should create a three-year application development strategy and road map to include architecture, process, talent, tools, and technology. All options and trends should be put on the table and up for discussion. Development platforms are not the only items to consider. Cloud computing and mobile, to name a few, are other trends that must factor into your new strategy.

Learn how to apply customer-centric practices to develop killer mobile apps with our complimentary report: Design Mobile Apps From The Outside In.

Categories:

Comments

Most responses are from coders ...

Mike, i understand most of the answers from the perspective of a developer. They look at it from a functional perspective and the stuff they understand surely is the best. But that does not mean that it is the best for a business. New approaches will be necessary.

Anyway, I think you have been very courageous to write this post and I by looking at the huge volume of responses you hit the nail on the head. You don't get many responses for going with the mainstream.

Thanks, Keep it up!

Same procedure as every year ...

Java is doomed.
Cobol is dead.
M(umps) is the best kept secret of the IT industry.
4GL will result in much better code.
Generative programming will save us.

Each year people want to convince us that we are close to yet another abyss.
Each year they warm up the old soups of OS, programming language, IDE, framework, network technology flamewars keeping people from simply doing their job.

Being almost 20 years in the IT industry, I tend to believe that projects fail BECAUSE of Java as much as they fail BECAUSE of SQL or BECAUSE of COBOL or BECAUSE of the Hüzzelgrüzzel Framework.

So I wondered,
- who's advantage would it be if Java is A Dead-End?
- how much does it cost to get a different solution if Java is A Dead-End?
- how many will fail to apply this brand new solution if Java is A Dead-End?

Ask yourself ...

Answers to your questions

J. Kindler, Answers to your questions:
1. Who's advantage would it be if Java Is A Dead-End?
The advantage will accrue to businesses that will find more productive tools, processes, and architectures to develop applications faster!
2. How much does it cost to get a different solution if Java Is A Dead-End?
The answer can only be expressed in how much they will save in development time and time to market.
3. How many will fail to apply a new solution if Java Is A Dead-End?
App development are already failing. More than 60% of IT projects fail or are challenged according to the Standish Chaos report. There are many reasons for this and app dev platform is only one of many reasons. But, with a more productive development environment developers can focus on understanding the business better rather than doing plumbing with frameworks.

The article is kind of a mythological/mystical read

The entire article is kind of a mythological/mystical read ... Java is a dead-end because *something* better needs to be done for business apps.

The problem for an article like this is to ask yourself - what that something is ? The answer in the wide scope is - nothing better really exists except when we look at the small scope. So the small scope is 4GLs. That small-scope answer of 4GL languages is very, very limiting - yes for a small set of apps somethings might be more convenient - but probably not "better" (again because of limitations, cost, trade-offs). The other question is to ask - what is the scope ? Java's scope is extremely wide and the tools it is offering transcend developer tools and currently run the bulk of commerce and business on the web. d

Look at it another way... If you took away Java from the current web the majority of business e-commerce backend software, web infrastructure, banking back-end software, a large portion of stock trading software and a host of other financial software would disappear with it. The business part of the web as we know it ... would collapse. It is very simple to say - "hey something better needs to be built" while at the same time ignoring the strength and pervasiveness Java.

Finally, the focus on software development failures lays the blame on the language - rather than software development practices and management of projects. My view is that the majority of software projects generally that fail has a lot more to do with management of those projects.

If we separate the mythology and desired mystical cure for our ills from the reality - we find that most large business projects use Java today for a reason. It offers the best chance for success.

I'm sorry but I don't agree

I'm sorry but I don't agree with a single point of your answers. An average American enterprise won't save anything and in all likelihood will loose a mountain to consulting companies.

1. The advantage is to the "next best thing ever" language/tool/vendor.
2. Last time I took business class ROI term was used to express it - bean-counters that run companies don't care in productivity or time-to-market. They do care about bottom line right now - forget 2 years down the road.
3. Most of them fail thanks to business changing horses mid-stream or grossly uneducated programmers.

If IT shops finally got the idea that the key term is "engineering" and not "programming" then 60% of the failures will come down dramatically. In the end though language of development doesn't matter. If engineering is sound the application will be working too.

Unfortunately outsourcing the work to the lowest bidder in India that can spell Java just does not work.

Projects fail because of people

Projects do not typically fail due to the incorrect choice of programming language. Projects fail because of people. People who change the scope, people who can't accurately define requirements, people who can't accurately develop to meet the requirements. The language will have some impact on the outcome and costs based on how experienced and expensive devs are.

But in my experience the vast majority of businesses believe developers are a pluggable resource and cheaper is better. That is why projects fail to deliver. And that is why processes like scrum and kanban are producing results, in whatever language. To suggest java is dead is naive at best. Yes there are better languages out there but if you're looking for a large pool of developers then java or c# are no-brainers.

Yet another...

guy who wants his 15 minutes of fame with a "Java is dead"-like blogpost. This is getting really boring, guys...

I sincerely doubt this conclusion

In a way I'm validating this whole article by commenting, but I can't help myself.

Java has been around for 20 years because it's versatile and because of the ideas of Java; openness, platform independence, "make it hard for the developer to do mistakes".

Real Computer Science work is based on skill and understanding. For most developers the language is just a tool. Sure, if the language it is too verbose or cumbersome for the job we might complain... but otherwise it doesn't really matter. The RAD tools or 4GL can be interesting for prototyping and I'm sure there might be actual scenarios where they should be used (I am however unable to think of any...). The simple truth of the matter is that skilled developers rarely use those kind of tools, because they limit control or break down when you have to fine-tune the results.

The analogy is HTML generators, like DreamWeaver. Web pages are still written using text editors because the generated HTML is too verbose and the kind of dynamic JS integration we have nowadays doesn't play well with tools like DreamWeaver.

The fundamental flaw of the 4GL implementations we see today is that they strive for enabling non-technical developers to build systems. I'm afraid that if you want to develop leading software, then you have to understand what you do. The CS education still teaches you assembler, the inner workings of a CPU and so forth. If you don't at least understand it, then you shouldn't do development.

Once, in the past 10 years have I encountered a 4GL application, it was made in PowerBuilder and the source of a tremendous amount of problems. Most likely because the developer didn't understand low level limitations, like concurrency... (Client/Server app that kept on foobaring locks in the database)

I've never heard of Uniface before... Not in the past 20 years has it even entered the radar for any Computer Engineer that I know of. I looked it up on Wikipedia... they started in 1986, if you haven't succeded by now then you probably never will...

4GL says we need more abstraction... I say we get that from frameworks in Java...
If anything it's 4GL that is dead... the list of 4GL languages are long on Wikipedia, the only successful one in that list is SQL, that's used quite a lot in enterprise development.

A fool with a tool is still a fool

Hi Mikael, I agree with you that many easy to use tools have been misused. That is absolutely true with Java as well. I have developed Java applications for more than 10+ years and I have seen the worst design and code imaginable. So, I don't think bad programming is a result of the tools but rather the result of the one using the tool. The point of 4GL is not to let neophytes develop applications. Rather the purpose is to free the expert developer from mundane tasks so they can focus on what is really important: understanding the business problem and desiging a great solution for the business and the users.

4GLs are quick to market

I agree Mike, application builds need to be in line with business change so it makes sense that using tools such as Uniface and Progress can alleviate the programmers working on mundane under the covers bits. A lot of developers and teams forget the big picture of business and 4GLs helps the whole team get solutions to market faster than most. These applications have stood the test of time and if you have a look at the Petshop written in .Net and Pet store written in Java and compare it with Pet Plaza written in Uniface you will see that the number of lines of code to develop exactly the same application was less with .Net and substantially less with Unifacethan Java. Uniface completed and tested the app 10 times faster than Java.

Developers need to keep their eye on the Business goal to see what will get the them there the best possible way and the quickest to market.

this blog makes a forrester

this blog makes a forrester report become untrusted. and what the hell forrester doing :) world need more open movement, but the choice is make an enterprise that lazy become harder to get but if they want and have brain enough to select before just believe big brand, they can get best products.

i see that forrester like a paid company by vendor, and bring a perception to the world that more monopoly and propietary, and said that is good, for their bancrupcy is yes, but for another one. and the market is not only US and Europe anymore, China bought USA now...

This is not a post about open source

Frans, This is not a post about open source. Do you realize that if all you will choose is open source then you are not being open. The future of application development platforms can come from commerical or open source. It doesn't matter to me where it comes from, but come it must if we are to keep up with the needs of the business and stay competitive.

There's a new language going

There's a new language going round called DSL. It's apparently easy for non-professional developers to learn, and runs pretty fast on the JVM. Check it out.

Rob, but need 10 years to

Rob, but need 10 years to become main stream. C# need big cash to get mini tiny marketshare, and forrester is not collect all the marketshare of Java. and where is the other, in enterprise i believe forrester try to eliminate the data in this segment.

is this report just for Fortune 1000, and we have millions companies in global that may be in next 5-10 year will kick current fortune 1000, market is moving. america in banckrupcy

The opinion of the mike does not reflect the reality of things

You were not the first to say this and yet the world goes increasingly Java. Some many weaknesses that you have described are true others are completely without foundation. The weaknesses have been improved by Sun, Oracle and new products. I would not agree with your opinion! If you were right we would not have the android and new products for TV based in Java. Let's wait to find out how it goes....
See ya !

There is no other choice

Java with all weaknesses is the only platform that gives us multiple solutions for enterprise requirements. There is no alternative. When you look at pre-build open source frameworks and business products you see there is no serious competitor.

Java Strength

When you see other portable and platform-based specification, perhaps Java will be dead !! As I say, we'll see........

This article is so full of shit

"Java is a 20-year-old language based on C++. Is this really the best way to develop enterprise business applications?" - even this statement alone shows how full of shit this article is.

This article is just another hype-mongering piece; like these scary stories about fall of the Internet due to the increasing amount of viruses we used to read years ago :).

Please get your facts straight next time.

Happy To Get The Facts Straight

Andrey,
Which facts do you disagree with?

Well, Mike, for a start "Java

Well, Mike, for a start "Java appeared in 1995".
Next, check this article:
http://cs.gmu.edu/~sean/stuff/java-objc.html (Java Was Strongly Influenced by ...)

Sorry for coming on harsh, but I am tired of hearing all this overhyped (sensationalistic) stuff about the fall of Java.

If anything, Java is only increasing its base.

huh?

I agree with the previous poster's comment. What does this mean? "Java is based on C++. Is this really the best way to develop enterprise business applications?" It's such a superfluos statement that it has no value. Do you mean Java is an OO language and therefore is obsolete? I disagree. Are you even a dev?

Its Forrester. They review

Its Forrester. They review products, of course they don't understand Java.
Mike's got incorrect facts and a bad understanding of the Java platform, but I agree with his one point that Java presentation layer (at least on the desktop APIs) sucks.

Here's my input: http://georgemao.com/2010/11/29/forrester-says-java-is-a-dead-end-um-what/

how about Android, another

how about Android, another Java :) why device vendors invest heavily in that.. a silly bad Java?

Android is not proof that Java is wonderful

The success and adoption of Android is proof that the world was hungry for a iPhone alternative on carriers other than AT&T. Are you saying that Objective C should be used to develop enterprise business applications because iPhone is a resounding success in the smartphone market?

Android using Java to develop

Android using Java to develop apps, even Android recompile the Java bytecode to Dalvik's bytecode. Java community used by Android, and Android success kick JavaME in the future. So, Java will still in the desktop, but yes, Swing, JavaFX, and most of Oracle's Java product related to desktop, is useless, because Sun and Oracle is not desktop company, but anyway, is google desktop company? Apple.. Yes. Apple Store, i believe they use WebObject, another Java container which Apple failed sell it in the market.

Java & Android

I think that is the place for Java. Embedded (Android) and small devices. Not so much in the enterprise.

Android developer from day 1. (Memory,MemoryPro,Bubbles, Reversi etc)
+ Certified Java devloper.

More than 10 years experience, so I think I have some knowledge in the area. And I love Java but I stay realistic. Use Java in the place where it strength is.

Just my 2 cents
Jasper de Keijzer

Android /= Java

Android is not technically Java, because it uses a different JVM (Dalvik) This is precisely what the Oracle lawsuit against Google is over.

Provocation?

Mike you are definitely trying to get the attention to sell something.

Just a quick sight at statistics graph you use to support your lies:
"Rich interface in browser" is develompment platform? Maybe at Forrester but not in the rest of the World!

What's your stake in Java?

Jan, I am trying to sell the idea that application developers must think for themselves rather than blindly following the pack.

I think you are selling your

I think you are selling your researches (aren't you?) rather than the good ideas. Using really kinkery method.
My bet is java in the enteprise apps will fade-out very, very slowly, and will overlive you.

i bet Mike will dead faster

i bet Mike will dead faster than Java :)... anyone ready to bet start with US$1, Java will survive more..

the IBM and ORacle work is just starting.

You mean... Clipper will save us?

Not only clipper, but cold fusion also.

As someone said in TheServerSide:

"... Forrester once again pitches sensationalism instead of research ..."

The title is provocative, the article is only aiming gain notoriety.

Nice try folks.

Know where the "sensationalism" claim is coming from

Christian, I believe you are refering to Cameron Purdy, Vice President of Oracle who said on the Serverside that "It's a popular trend to throw stones, and Forrester once again pitches sensationalism instead of research.". I am sure Mr. Purdy would rather dismiss my post as "sensationalism" than address the points I made since he and his employer, Oracle, have a huge stake in Java's future.

Not that I support Oracle

Not that I support Oracle (they're doing ok so far to be fair to them... well they've not annoyed me), but what points do you want Cameron to address? I don't think your blog post clearly sets them out and with a title like "Java Is A Dead-End For Enterprise App Development" but little to back it up it does feel like a "sensationalist" statement. I think if you retitled your blog post as something like "Java development is too complex for business application development" then that would be more accurate with what you're trying to put across, but personally (and it seems a lot of others agree) I feel that Java is perfectly suited for a lot of "Enterprise App Development".

My last nip

When I read this I remember the javatar video - http://www.youtube.com/watch?v=9QFK1cLhytY&feature=related
I dont know why !!! lollll
See you

http://fernandofranzini.wordpress.com

Absolutely LOL

Fernando, Thanks for this.

The bold statement has

The bold statement has definitely provoked some passionate and critical dialog as seen in the comments section. Every reviewer has expressed their individual experience dealing with the application development. I think the pursuit for solving the challenges of the systems development and more so business applications continues. The software industry still runs a high risk of failure. The reason may be language, project practices or resources but the fact is that collectively we need to solve that. The business paradigm and models will continue to evolve and so should the software industry whether it is a DSL, a new UI framework etc. however for many of these to take shape it requires early adopters.

Well Said

Arvinder, Very well said. You get my point that my goal is not to bash Java, but rather to inspire app devs to find architectures, processes, tools, and languages that will make us better business app developers.

If this is right Mike, then

If this is right Mike, then why name the article how you did....., you where trying to get attention.....
I´ts obvious that people in Oracle are calling this article is sensationalism.
You should have named the article different.

The name of the article

I agree...

Java should never have been mentioned as the 'scape-goat'... it's not got much to do with Java at all, besides the fact that Java technology got us thus far... in many ways...

But still, not a fair title...

Inaccurate Statement

"JSF was designed for pre-Ajax user interfaces even though some implementations such as ICEfaces incorporate Ajax. There is a steady stream of new UI approaches reflecting Java's lack of leadership in the presentation layer."

This statement would have been true as late as mid-2008 - JSF 1.2 wasn't designed with Ajax in mind. To fill the void, several third parties created libraries that worked with JSF to include Ajax capabilities. When JSR-314 was created, those same groups worked together with Sun/Oracle to include Ajax support in JSF 2.0 and consequently Java EE 6.

That evolution shows Java in the enterprise is not dead; it continues to grow and evolve. When something thought missing, someone develops a package for it. When it is important enough that several vendors create their own solutions, efforts are made to develop a standard API and include it in the platform. JPA is another example.

I suggest you do some better research before drawing broad conclusions.

Java facts clarification

John, My wording was a bit awkward but I did say that JSF was designed for "pre-Ajax" ui - meaning not designed for ajax. The fact that third-parties keeping filling the voids is one of my arguments why Java is too complex for business application development. Also, please note that I do not say Java is dead. I say that Java is a dead-end. I even included a chart showing Java's widespread use. My point is that widespread use does not mean it is the best way forward. Why do vendors and open source communities constantly have to fix Java by introducing APIs and frameworks to do the basics like data access and ui. Innovation means that new APIs are needed, but I wish for a higher level of abstraction so that developers can focus on creating great business applications rather than struggle with the basic plumbing.

Even that ...

"but I wish for a higher level of abstraction so that developers can focus on creating great business applications rather than struggle with the basic plumbing."

... is readily available to you in the Java ecosystem. You even mention exellent examples of such products yourself, they offer both a high abstraction level and are Java based. Surely this must contradict your view of the world ...

Every

Every language/approach/toolset is eventually a dead-end to a greater or lesser extent.

Well done ... you've announced the obvious.

Let's rephrase the question...

Forget the "Is it dead or not?" false dichotomy. Instead, let's ask the question that Mike was really posing: Is Java advancing, stagnating, or backsliding?

The indications are mixed, as both Mike and several of the comments have pointed out. For example, I know that individuals at Oracle are genuinely dedicated to being good stewards of Java. However, there's a difference between what an individual architect or executive intends, and how Oracle as a larger organization acts. To whatever extent the future of Java depends on Oracle the company, the important question is how well it executes on future platform development, developer community sponsorship, support for frameworks and standards, and other activities that sustain Java. (Not merely Larry Ellison's presumed intentions towards Java.)

On another point, it's easier to judge whether a vacuum is forming in the place that a technology previously existed than to predict what will fill it.

Piling on

Ok,

I'll pile on here a bit.

I too think Java on the client is a dead end unless some things change in the market - take a look at http://riastats.com/ - note that the JVM is installed on only a fraction more end user devices than Microsoft's Silverlight plugin? You could easily make the argument that Silverlight is every bit as strategic to the future of the client as Java based on the numbers.

Oh, and which mobile client smartphone/tablet OSes can you write Java apps on? Android is not Java (TM) - see the Oracle lawsuit against Google. iOS? - no. Winphone - no. RIM - yes. WebOS? Symbian?

And while we're at it, anyone asked Apple whether Oracle picking up the OSX work for the JVM means that Java apps will be supported in the upcoming Mac App Store? Not clear to me at this point. The future of client apps is user self provisioning through these app stores - they are a new strategic control point, and vendors like Apple, Microsoft, and Google will use them to their own advantage.

I think there is a long, long future in sticking Java behind Web services of all types - just like COBOL - a server language. Java will also have a long future as an embedded systems platform, unless it is so rigidly controlled through the OpenJDK process that innovation is constrained and CE organziations look elsewhere.

I'll close this statement with a koan - is OpenJDK open? Can I fork it? The license says yes, but if I substantially modify my fork won't I get sued for IP infringement? If that's the case then from a practical point of view Java is no more open than .NET.

Great post, Mike - and I

Great post, Mike - and I think it's accurate.

It seems many posters are missing your point about productivity. The more a programmer can focus on what the business is trying to achieve and less on *how* it gets done, the more productive that programmer is. And that immediately translates to a better bottom line for the company. Good businesses understand this and choose technology accordingly.

I've run a successful consulting business over the past decade by helping customers implement better business processes using great technology *cost-effectively*. I've used Java as part of many solutions but using it as the foundation for app development would have been far more expensive and less productive than using a commercial offering. In my case, that commercial offering has been Lotus Notes/Domino. Obviously, Notes/Domino is not appropriate for all types of enterprise app development but it does have its place and it shines because it abstracts away lower level programming constructs from everyday development. The result is that a developer can spend more time thinking about actual business objectives and less time with the plumbing.

Business objectives versus plumbing

Rich, I agree with you completely that more successful developers will "spend more time thinking about actual business objectives and less time with the plumbing". The phrase "horses for courses" comes to mind when thinking about appropriate platforms for business application development.

Who needs 4gl?

Java is general purpose, 4gl is specific purpose. Developers will always be more attracted to general purpose - they don't wan't to limit themselves to a business niche - its just not a smart career move even if productivity is higher. And while you don't like frameworks this is actually an excellent way to adapt to new patterns of integration and I/O in general. It's what gives Java the means to support new trends and stay relevant while 4gl language risk strandring.

I would also like to add that you overlooked the 4gl like solutions running on Java - for instance you can build database driven webapps using "click-and-guess-no-code-involed" with oracle platform - its about high productivity, its been available for ages, its just not very widespread and likely will never be because just like any other 4gl it does not adapt to your needs - you must conform with it.

Business Realisation Trumps Technology

Hi Mike,

I completely agree with the thrust of your article and also with Max Puchers comments regarding people missing the point. Technology is becoming increasingly commoditised - and this will only accelerate as the cloud gains momentum and outcomes become more important than implementation; hence the old discussions about which languages, tools and platforms are best are no longer interesting.

I believe that the next frontier should be about capturing business intent and then realising it as quickly and cheaply as possible through industrialising platforms, patterns and modelling languages to allow people to move from intent to realisation as quickly as possible. This will require a broad set of tools targeted at realising different kinds of services (rather than one general purpose language or approach). For all I care the underlying execution language could be Java, C# or Ruby - the fact is it doesn't matter given that people will increasingly only care about quality of outcomes, not implementation.

In this respect I also agree with Todd Biske - increasingly it's going to be about modelling an organisation as a combination of internal and external business capabilities and the way in which they combine to realise value; to raise our purview we need higher levels of abstraction to give us the chance to concentrate on this new level of cross-organisational design and the place of our own business capabilities within it. To this latter point I still believe that enterprises will continue to capture IP in software for the 20% of differentiated business capabilities they retain in-house and therefore won't exclusively become consumers of external services (from whom if everyone does that?); in realising this 20%, however, I just don't think that they should always have to write code or that the supporting IT should be completely disassociated from the business intent.

I wrote a few articles on this a couple of years ago if you're interested, starting with: http://wp.me/p3Ou1-1k

Thanks for the article :)

Ian