Not yet, but slowly!
They may rise to a certain level before they die, but they will!
Clarification
Before I continue let me clarify that this post is not about whether C# or .NET is a good technology or not; .NET might be very good concept coming out of Microsoft’s closet, but again popularity and sustainability of a language is not governed by a language being the best in terms of syntax or it’s robust compiler or the object code it generates and the like.
Desktop
For the desktop we already have a plethora of languages available, so C# might eat into that share but wouldn’t be able to dominate that domain. VB6 is far better in terms of development time and ease of code writing that the new VB.NET and C# for creation of desktop applications. And now that Microsoft has announced that their new OS, Vista, will have support for legacy VB6 and COM objects, there is no point for these developers to switch to something entirely different from what they are used to.
Let’s face it, still the majority of desktop apps written in .NET use the interop mechanism to interface with COM objects. And that’s not going to change any soon. This means extra burden for the programmer, interop is more of a workaround than a feature. Most of my peers have this to say about interop wrappers “When I can write do_this( ); to do a thing, why write do_this( ); do_that( ); do_this_too( ); do_that_too( ); now_using_something_else_do_what_I_want( );” Not a pretty thing to look at too!
Web
After the prospects of desktop apps being bleak for C# and .NET, the other arena where C# might try to fight a losing battle is the web! The reason it will be a losing battle is that there are already many scripting languages available for server side scripting and development. The other fact that Unixes and Linux Boxes are now becoming the first choice for web servers makes it even more difficult for .NET to survive. At least I don’t see, that, in foreseeable future windows will release a .NET framework for *nix boxes. There have been some attempts by some people and groups to create a .NET framework for Linux, but they have all not been a hit to the extent required.
PHP, Python and even Perl are the choice of programmers for server-side development. C# does not provide any uniqueness that the programmers will love to adopt, at least not on the surface level.
The final words
All said, programmers do not want to learn a new language just for the sake of the language being new. The new language needs to have that something “special” in to attract the masses. C# and .NET family of languages lack this very basic essence. They are essentially camouflaged Java!
Leave a Reply