Monday, February 04, 2008

The Great Migration: J2EE to .NET

With all the excitement around Java alternatives like Rails, a much more important and less commented upon migration has been occurring

For ten years, the ponderous J2EE standard has made the lives of Java programmers everywhere miserable. While various Java standards committees considered gravely what to do next, corporations have been steadily moving to .NET.

In our market research for WaveMaker, we have found that a over 30% of the corporate IT market has moved from Java to .NET. As with many other Microsoft technologies (SQL Server comes to mind), Microsoft has gone from having a laughable solution to getting the last laugh.

We have also found a surprising number of Java developers who tell us that the complexity of J2EE and the difficulty of finding experienced Java developers is forcing them to embrace .NET despite their loathing of all things Microsoft.

Spring and WaveMaker are two companies addressing the core problems underlying this market shift. Spring is the application server that J2EE should have been – lightweight and powerful. WaveMaker is the visual development platform J2EE never had.

Together, Spring and WaveMaker offer a compelling and highly productive alternative to .NET.

How compelling? One of our Fortune 500 customers built the same application (57 web pages, 28 database tables) in both .NET and WaveMaker. The app built with WaveMaker was completed with one third the man-hours and 98% less code (more on this in a later post).

The conclusion is stark - either the Java and open source community needs to put good productivity solutions in the hands of corporate customers, or the data center will go the way of the desktop.


Anonymous said...

We recently threw in the towel on Java - wish we knew Wavemaker existed when we made that decision!

GMz said...

Are you sure? About the security risk of Microsoft Windows will not make lost significant data.

JEE 5 uses EJB3. It is powerful. You can use all OS all Web Application such as FreeBSD or OpenSolaris that they are more security than Windows.

The data of Organization is the hearth of Business.

You should not look productivity only but you should see securities too.

There are Eclipse and NetBeans for J2EE which are powerful productivity tools.

I think we should J2EE for Backend only (Web service and SOA)then should .NET for frontend.

Anonymous said...

Where's your data supporting Java migration to .NET? What markets are you finding this in? Internal/departmental development? External facing web sites? SaaS/PaaS solutions?

I think the comment by "oo" is accurate. Having recently spent 4 months re-evaluating the .NET vs Java question, and the Java/Spring option, we have concluded that .NET is only viable for small internal projects.

We also concluded that .NET developers are generally less skilled, and lack a basic understanding of security and scalability; subjects that typically are of less importance in intranet development, but critical for larger, externally facing applications.

SharePoint is the closest thing to an application server that MS has, but there are very few people willing to bet their livelihood on it for an externally facing application.

When it comes to the cost of doing business, open source is several years ahead of anything Microsoft has to offer. From AJAX to ORM's Microsoft has failed keep up with open source innovation.

I've never had much use for EJB, but that has changed with Java 5 EE. They are finally getting it right. In the process, Spring Framework's value has been diminished.

The UI development experience in Java has been excruciatingly painful for years. JSF has gotten closer to useful, but still a struggle when it comes to getting the eye candy from a non-technical website designer connected to the backend. Fortunately AJAX solutions, such as WaveMaker and TIBCO GI, are making this much simpler while providing a better end-user experience.

Use the right tool for the job: .NET is useful for quick internal development; Java is best for highly scalable, secure, external facing applications; portal servers provide the best runtime configuration; AJAX provides the optimum user experience for the web, and quite possibly the desktop as well.

Anonymous said...

I think the point of the main post is not that there are no good modules in Java ecosystem. There are. The point is that Microsoft.NET is a strong contender. May be it is not ripe for big applications and no app server of reputation is available. But .NET is advancing, slowly (or may be fast) and surely.

I don't know about .NET developers not being well trained. Some are. Some aren't. The thing about them is that their number is legion. Microsoft does a good job pushing the technology with books, classes, free tools, videos online, what not.

It usually takes microsoft a number of iterations to get things right. Yet they persist in trying and more often then not, get it right in the end.

Not to fall victim to this persisance, Java community should be less dismissive adn more observant of what Microsoft is doing.

Christopher Keene said...

@Michael - you are spot on. The risk is in not taking Microsoft technology seriously. Even more important than technology is training - Smalltalk may still be the most productive development environment for all I know, but just try staffing a Smalltalk development team these days! In a similar way, Microsoft's superior training programs may well ultimately topple Java from the top of the enterprise development food chain, even if Java technology stays in the lead.

GMz said...

For Asia countries, Java is helper, It is opensource. My country is not rich. If you use .NET, you have to pay anything for its environment such as Operating System, Office Tool and etc.

More organizations in mine have been migating to opensource based (Operating System too).

Although you will tell me as .NET is opensource too. But how you remain to use in Microsoft Environment that paid money to them. Then but to be not J2EE, there are more selected ways for free environments now.

RIDHA said...

Intrestant subject you wrote
take a look at
and leave a comment please

Anuj Varma said...

This site has good information on some top reasons to migrate from J2EE to .NET. Basically, J2EE is dying - and .NET is experiencing unsurpassed adoption. Cost wise, the .NET runtime is free, any app server worth any support costs a good sum (30K per processor). Developer productivity with .NET is about twice that with any J2EE environment - including Eclipse.