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.
Thread beginning with comment 374387
To view parent comment, click here.
To read all comments associated with this story, please click here.
tuttle
Member since:
2006-03-01

What do you have against the collections library?[q]

The collections library is incomplete (almost no concurrent collections, only recently added a set class. No interface for sets, confusing and inconsistent naming).

[q]It's not like you need to import the whole thing, you only import the classes you need....


The using statement does not work for generic classes or interfaces. Try importing just System.Collections.Generic.List<T>. It is not possible.

So why bog down the System namespace with this stuff (since that's essentially equivalent to importing it by default).


Because IEnumerable is used everywhere. There are various language features (foreach, yield, LINQ) that depend on IEnumerable. So it is a core interface just like System.Array is a core class.

And the system namespace is bogged down with lots of less important stuff like the obsolete MarshalByRefObject and other remoting-related classes.

Reply Parent Bookmark Score: 3

Moochman Member since:
2005-07-06

wow, that, uh, kind of sucks. everyone's always saying how much better generics are on .NET than Java, but this makes me question it a wee bit.

Reply Parent Bookmark Score: 2

tuttle Member since:
2006-03-01

wow, that, uh, kind of sucks. everyone's always saying how much better generics are on .NET than Java, but this makes me question it a wee bit.


.NET generics are much more memory efficient than java generics because they are preserved at runtime. On the other hand, the java approach of making everything an object at runtime makes covariance for collections in modern languages like scala easier.

I actually think that martin odersky (the author of java generics and of scala) has created java generics with something like scala in mind.

I am not sure which approach is better. There are some gaping holes in .net platform like the inability to use operators on generic types or the lack of inlining of the JIT compiler, but it seems that nobody at microsoft will do anything about this any time soon. See for example these feedback items from almost five years ago:

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.asp...

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.asp...

The new native APIs like Direct2D and DirectWrite that do not even have a managed wrapper suggest that microsoft has given up on .NET for windows application development, and now see it as a platform for business applications and glue code.

Reply Parent Bookmark Score: 2