First, my excuses for posting in English, I have my own reasons.
Days ago I was looking for fresh news at stackoverflow.com. For those that who don’t know, it is a useful website where you can post programming issues or others topics related to development and programming languages, you can even find trends in programming or How-To get started with it. As a geek, I love to be up-to-date on this, and to know how people are doing things and how to use the best practices with new technologies.
Along the way, I’ve found a post where a guy is questioning “Why is C# suddenly so popular?“. For your information, C# is a programming language designed and supported by Microsoft in its .NET platform (.net framework). This language has features that you can find with C++ but with a Java syntax, so it’s a good point for newbies and proficient programmers. (I was with C# four years ago, when I was a MS’s servant).
Nowadays C# is used to develop a lot of applications, such as games (C# + XNA = Xbox’s games), desktops apps, web apps and electronics apps. But, there is more good news: .NET Framework runs over linux and Macs, Wow!. With the Mono platform you can do it, a decent and respectable .net porting to *nix platforms.
Now, you know you can run .NET apps over linux and macs. That’s a great approach for developers who actually are working with MS platforms because they can port with minimal changes their developments to *nix based OSs.
In my personal opinion, C# it is a step forward over Java, because it has features that all Java programmers would like to have. The following features describe what I’m talking about:
- Value Types
- Delegates and Events
- Global Assembly Cache
It’s constantly evolving, both in terms of library support and new language features. For example:
- LINQ (it will change the way you iterate a collection!)
- Lambda Expressions
And coming up in C# 4:
- Dynamic types and the DLR (i.e. runtime type binding, like python)
- Named and Optional arguments
- Covariance and Contravariance
This is my post at Stackoverflow.com:
I think C# is a respectable language since it has come up in the world. Java is a great language but has the same situation as C# with respect to its future because both languages are controlled by very-closed corporations (SUN&MS).
Open sources languages are growing up nowadays, maybe in the future there will be an open C# controlled by the community and running over mono.
The Aquiles’s tale of Java is that it is controlled by the JCP but not for the community, so Java is driven by the market changes not by the programmers that do the hard work out there everyday
After all, Java continues being the best platform to deploy apps because you have enterprise, desktop and mobile solutions.