Linked by Thom Holwerda on Mon 20th Jul 2009 15:54 UTC, submitted by Brandon L
Mono Project As you would have guessed, the Mono debate is long from over. Two weeks ago, Microsoft extended its legally binding and perpetual community promise to cover the C# and CLI ECMA standards, which was generally seen as a good thing for Linux-centric fans of the C# language as well as for the Mono project. The FSF has responded now, and it isn't too impressed with Microsoft's move.
Permalink for comment 374223
To read all comments associated with this story, please click here.
Who wants that crap anyway?
by tuttle on Mon 20th Jul 2009 19:56 UTC
tuttle
Member since:
2006-03-01

The .net framework is less than 10 years old, yet it is full of cruft.

For example, .NET remoting is deprecated in favor of WCF, yet all the remoting related classes and interfaces are still present in the system namespace! Many of the core .net classes such as AppDomain inherit from MarshalByRefObject, which is obsolete due to remoting being obsolete.

Another example: core .NET interfaces such as IEnumerable<T> are not in the system namespace but in the System.Collections.Generic namespace. So either you always use the long type name System.Collections.Generic.IEnumerabe<T>, or you always import all the crappy and badly named default collections of .NET.

Next example: in .NET 2.0 collections have methods that take delegates such as List<T>.Filter(Predicate<T> x). In .NET 3.5 there are finally default generic functions, so a predicate would be of type Func<T,bool> (takes a T, returns a bool). But Func<T,bool> is not compatible with Predicate<T>, so if you have one and need the other you have to write an adapter.

I could write another 10 pages of these inconsistencies and bad design decisions. And the predominant .NET language C# could be used to write a book about the perils of nonorthogonality.

I have to work every single day with this crap. At least I get paid good money for it. But you would have to be a complete masochist to use .NET/C# for fun.