Linked by Thom Holwerda on Mon 20th Jul 2009 15:54 UTC, submitted by Brandon L
Thread beginning with comment 374387
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[5]: Who wants that crap anyway?
by Moochman on Tue 21st Jul 2009 21:12
in reply to "RE[4]: Who wants that crap anyway?"
RE[6]: Who wants that crap anyway?
by tuttle on Tue 21st Jul 2009 21:48
in reply to "RE[5]: Who wants that crap anyway?"
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.





Member since:
2006-03-01
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.
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.