9 hours ago,fanbaby wrote
Several things (this is a religious war, isn't it ):
1) I think c# proponents overestimate those many useful additions to the language (compared to Java). For example, operator overloading. I once heard the following debate. Operator overloading is very important especially in math-related calculations (matrices, vector etc.), check this:
a++ vs. a.set(a.get().add(1))
The counter argument is: well, you just need this method:
2) Isn't C# getting close to being a black hole, mass-wise? I mean, they've thrown everything in there (a la Perl 6). It's the best in every paradigm.
Java isn't that different in this sense, it has less features but is slowly piling them. But compare these to Google Go please. (Which is far more open in licence and development, i think). Explicit design goals are: Minimize verbosity, compile time, keywords. Support multiprocessing, GC, and is a (semi) systems language. When it was designed it was targeted mainly at web-servers and networking, but was found to excellent general purpose language.
Since it's quite radical (multiple self-growing stacks for example), not everything is ironed out yet, like interface to other languages (i'm not totally sure bout this, it may have been fixed by now), but it's getting there fast. I think it's important (sorry, no IDE yet )http://golang.org.