RIA is currently populated by AJAX and Flash/Flex. Silverlight is an interesting newcomer because it provides one designer/developer experience for the all the UI offerings: Desktop, RIA, Mobile. And you can use your language of choice in a rich Design/Development experience.
Sun is attempting to get in to the RIA space with, in my opinion, a weak offering. JavaFX. Mary Jo Foly, of Microsoft Watch, I think has the most succinct analysis:
Sun's JavaFX fannouncement elt more to me like Sun's to reset Java and get the platform back on track than to break new ground.
The Implications of the Dominance of .NET over J2EE
One of the pleasures of defending the .NET platform is that one can do so from an economic basis, which is something that even non-techies can understand. While I signed on to the .NET wave in the spring of 2001 because .NET provided a far better developer experience from many angles, it is no longer necessary to drop to that level of detail. The argument can be made on cold dollars and cents.
The September 2004 Forrester Research report .NET Versus J2EE: .NET Has Clearly Arrived ($$) shows that a majority of software decision makers considers .NET to be their primary development platform. From the executive summary:
Four years ago, when Microsoft announced .NET as a major new architectural direction for its products, there was a big question as to whether it could get its customers onboard with the change, not to mention whether it could attract new customers. That question has been answered: Microsoft has successfully done both. ...
How has Microsoft been able, in three short years (Visual Studio 2002 was released in February 2002), to come to dominate the market? Four ways:
- Superior technology
- Developer focus
- Backwards compatibility
- Value
Superior Technology
After .NET was initially introduced, it was praised for major advances in several emerging technologies, including Web, XML and Web Services (see footnote). Next came the famous face off between the J2EE Blueprint PetStore application and the .NET Pet Shop application in studies from VeriTest and The Middleware Company (reg. req.).
Currently, Gartner’s Magic Quadrant for Web-Services-Enabled Software ($$) places the .NET technologies as the market leader in the Web Services space. IBM holds a close second. As mentioned in the report, the future deployment of the Indigo technology and other Longhorn technologies may further enhance Microsoft’s standing.
The final important technology aspect is that Microsoft owns desktop development. It is clear at this point that Java will never compete successfully in the desktop environment. Meanwhile, in the Longhorn timeframe, Microsoft is moving forward with an entirely new user interface, Avalon, written in .NET itself!
Developer Focus
Microsoft’s focus on the development community is legendary, and often quoted as a prime reason for the success of their technology. The impact of this must not be underestimated. Time and again, Microsoft has taken a technology space: user interfaces, rapid development, web development; and has turned it into an industry creation opportunity: custom controls, ActiveX controls, and ASP.NET server controls. The tools are powerful, easy to use, and, now, almost completely integrated in one IDE. The developer support materials are stellar and the community is vibrant.
Backwards Compatibility
The ability of the .NET technologies to interoperate with legacy technologies such as DLLs, COM, COM+, and unmanaged C++ provides a path of least resistance when migrating legacy code. That it works on legacy operating systems is also important. Finally, and often overlooked, is the ability to migrate both legacy code and developer language skills, due to the .NET CLR’s ability to incorporate many languages.
Value
TCO, however, is where the .NET/Wintel stack really shines. The previously mentioned July 2003 Middleware study on Application Server and Web Services hints at the value proposition of developing an N-tiered application in .NET given what appears to be a large amount of design choices and tuning necessary on a J2EE/Linux platform to approach .NET’s performance. In addition, a September 2003 Giga Research survey-based study shows a whopping 25% savings for .NET applications over J2EE/Linux applications from a total cost of ownership perspective.
However a clear picture is drawn from a September 2004 Middleware study (reg. req.) directly comparing .NET and WebSphere Studio Application Developer (WSAD) in the full development, deployment and management of an N-tiered application. The test was independently audited (reg. req.) by CN2 Technology. From the overview page:
This endeavor is a massive study that compares IBM WebSphere / J2EE against Microsoft .NET on a number of dimensions: developer productivity, manageability, reliability and application performance.
The J2EE team developed using Rational Rapid Developer (RRD), a model-driven development tool. Since RRD performed so poorly in almost every measure, the J2EE team reimplemented the application using the standard code-centric WSAD toolset. (Interestingly, the RRD homepage references another Middleware Company study comparing the two WSAD approaches.) In this controlled study, the .NET application performed nearly equal or better than either WSAD toolset. Development time compared with RRD was about half. .NET development time was 10% faster than using the WSAD toolset, even though the WSAD implementation was completed with the benefit of having already implemented and tuned the RRD implementation. Though I would have preferred them to compare .NET directly with the WSAD toolset, this outcome gives credence to the 25% TCO savings in the September 2003 report findings. Given that human resources is often the largest component of a company's total IT costs, a 25% savings is quite significant.
Conclusion
One important conclusion of the September 2004 Forrester Research study is that we will be living in a two stack reality for many years to come. The reasons are simple. Desktop applications will be written in .NET and cross-platform applications will be written in Java. Any company that has needs for both must live on both stacks. That said, many applications could be successfully developed in either platform. That .NET has gained dominance is testament to Microsoft’s commitment to superior technology, developer focus, backwards compatibility and value. That commitment shows no sign of slacking.
Microsoft claims that the ASP.NET 2.0 web development platform within forthcoming Visual Studio 2005 will reduce the amount of code written up to 70%. SQL Server 2005 will be fully integrated with Visual Studio, just as BizTalk Server 2004 is already. Visual Studio 2005 Team System will break new ground in enterprise development tool value and productivity. Forthcoming innovations in Longhorn such as Indigo and Windows Framework promise even more enhancements in productivity. It is likely that the .NET dominance over J2EE will grow even stronger.
Footnote
Tim Bray is the co-inventor of XML and employee of Sun Microsystems. In the referenced interview with C|Net news, Mr Bray singled out .NET technologies for XML parsing and Web Services in the sections headed by What about the Web services part, where it seems like it's been more sizzle than steak to date? and You've made some comments about XML being too hard for developers. Does that still hold true?
I was at the 2000 JavaOne mentioned in this C|Net article when I worked for a SF Java-based Web consulting company (remote employee). I don't think I was at the keynote in question but I was certainly in awe of the 18,000 attendees. Microsoft's PDCs paled in comparison. Ah, but I did not know about the CLI as-of-yet. I did an analysis for the company on .NET in January 2001. .NET was better in every way. It did not take me long to find a company that was in the .NET early adopter program. The rest, as they say, is history.
In our next installment of .NET subsuming Java, Miguel de Icaza shows us how to run Eclipse, JBoss and friends hosted by the Mono Runtime. That's right, full on Java with full access to the .NET runtime (under Mono, of course). Nice work! It's not exactly as easy as falling falling of a log, but, hey, Java engineers like doing things the hard way.
It's time for the Java folks to start looking over their shoulders. I'll think I'll start a JavaDoom category.