Is C# (Microsoft Developed Proposed Alternative to Java Software Platform) a Big Failure?By Angsuman Chakraborty, Gaea News Network
Wednesday, August 17, 2005
C# was a much hyped language not so long back. These days we don’t hear about it anymore anywhere. Can it be shelved as a failure, a has-been technology?
The first reason I can attribute to C#’s struggle is that the Java platform did not stand still. Many of the benefits that the Java platform delivered were not solved by moving to C#, the most significant difference being OS independence. While C# was in rapid release mode, the Java platform was able to fine-tune the language and at the same time invest heavily in stability and scalability. At an application level, the differences are even more marked. Deploying a .NET service leaves a company a small choice of application servers and OS versions. The reverse is true of Java and J2EE, where there were almost too many J2EE application servers to choose from. The market has now moved to an open source J2EE application server model, which brings me to my next point: the open source movement.
I think Java Software Platform will see yet another meteoric rise in adoption with Java EE 5. What is very exciting for me as a developer and an architect is the simplification of procedures required to develop enterprise class applications using EJB. Adopting annotations for generating EJB’s may be a small step in implementation. However it is a big step in simplifying usage of EJB’s. Personally I got sick and tired of creating and managing configuration files. It is back to the simple world of Plain Old Java Objects (popularly nicknamed as POJO).
In short I agree with him so far.
While developers had to get budget approval for MSDN licenses, their Java colleagues were able to deploy a system for free. Now with the advent of a new crop of open source J2EE application servers to follow JBoss, the justification for a team to spend thousands of dollars on basic development tools becomes harder, especially if it means a choice between deciding on a new laptop and a renewal of your existing desktop tools.
I don’t fully agree with him. Even C# compilers were freely available.
The so-free version of compiler however didn’t come with any development environment (not even near 1/10 of even JDK to begin with) which surely have contributed to the much slower rate of adoption of C#.
Not to mention the plethora of free tools and application frameworks available for development of Java software.
Personally one of my bigger beefs were with the massive runtime required to run C# applications coupled with their availability in only MS platform. Most corporate environments today contains a judicious mix of Windows, Linux and Sun machines with few Mac’s primarily for executives. It is important to have a software which can seamlessly run across a wide spectrum of operating systems. If I have to install a gigantic runtime then it better run on all platforms.
BTW: This is why web applications are so popular.
Calvin covers the cross-platform part of story - “the most significant difference being OS independence”.
The growth of open source Java hasn’t stopped there. You only have to look at Hibernate, the Spring Framework, and Struts/Shale to see that developers can work together to solve their own problems.
In fact today the problem with Java is that there are far too many open source frameworks to choose from. But that is a problem I am happy to live with and much better than having no alternatives.
Being open source doesn’t necessarily mean those developers have to work for free; however; it does provide a way for individuals and companies to work together without being restricted by working group policies or internal company politics.
I don’t agree. In fact I think the Open Source business model is dubious at best.
However his statement above doesn’t have any bearing on the theme of the article - Is C# a dead-end street. So we move on.
The Mono project, which aims to provide an open source implementation of C# and .NET, has also been around for four years now and is now part of Novell. Providing the compiler is only part of the challenge. The .NET platform uses many Windows services that until Mono started didn’t even exist on Linux.
Mono as it stands today can only support a small subset of .NET applications. It is very much a hype today rather than reality.
Microsoft has awoken to the open source movement; how much they will help Mono is yet to be seen.
I seriously doubt Microsoft will do much to foster open source community. It is not in their business interests.
Mono today is still a development project much as .NET is still looking for full traction.
I think so too.
What is missing from the article is hard facts and figures. However they are not so hard to get -
According to Forrester survey data and analysis, Java’s 66% penetration is the highest among strategic programming languages for enterprise applications.
In comparison C# has merely 15% adoption.
Dino, Microsoft’s VS.NET product manager, responds to Calvin. I tried really hard to say something good about the response. But I could do no better than Cay Horstmann who commented in Calvin’s blog. It is truly a lame response by any standards. It doesn’t address any of the important points which Calvin raised. Rather it focusses on really trivial issues in the article like some url should be .org and not .com and whether some site is secretive or not!
It is definitely not worth reading and wasting your time.
Calvin pithily concludes - “C# isn’t going anywhere soon but its best days may be behind it.”
Trust me, that was the worst mistake I have made in probably 10 years! It was a disaster from start.
- Quoted from an article summarizing my experience with C#.
Based on my experience and understanding of the .NET platform and the C# language and programming in general I have to agree with Calvin’s conclusions. I would go even further and say that I think the only way for C# lanuage is gradual but sure oblivion over time.
Tags: Austin, Budget, Ejb, Fact, Mac, Open Source