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

"By the way: that the list handling functions are called differently than in all other languages is another bad design decision: ConvertAll instead of Map, FindAll instead of Filter etc.


IMO that is hands down the worst thing about MS, their tunnel vision and inability to look outside of redmond.
"

Something we can agree on. They should just ask somebody from microsoft research like Simon Peyton-Jones on questions like these.

By the way: that is one of the many advantages of scala. Martin Odersky (the creator of scala) does not leave writing collection classes to some intern. He does it himself.

"The few interfaces they do provide in .net (e.g. IEquatable) are not even consistently used by the basic language constructs (e.g. enums do not implement IEquatable).


I find in general, the java core libs are over engineered, to the point where you need to do boatloads of implementation to get the smallest thing done, while the .net core libs are under engineered.
"

Then maybe I just prefer overengineered to underengineered. For example in swing, the pervasive use of MVC makes writing small applications a bit tedious sometimes. But writing a big application without MVC is a major torture.

Maybe I should just write less big applications :-)

"If you compare C# to a modern JVM language like scala it looks like a toy. And C++ allows a much higher level of abstraction than C# ever will because of template metaprogramming.


Agree 100% with scala, I do not with C++.
"

As long as we agree on scala, we can agree to disagree on C++. But C++ is very powerful if used correctly. It is just very easy to shoot yourself in the foot with it.


"Every single language feature of C# looks pretty neat in small examples. But whenever you dig a bit deeper you see that that is all just a facade. To every rule there are hundreds of exceptions. Properties look just like fields, but you can not use ref parameters with properties. Every abstraction is leaky.


Again, I see where you are coming from, but how often do you do ref parameters?
"

Every time I use one of the various TryParse or TryGetValue methods?

I've run into some of the things you mentioned as well, but again, it is a once in awhile thing, and overall I find having it work the majority of the time the way I want to is better then not having it at all. Events vs anonymous types? Automatic properties vs getter and setter methods? foreach vs for? Typed exceptions? Closures? LINQ vs loops? Implicit typing (as crappy an implementation as it is) vs even more verbosity?

I am not saying C# is the be all or end all by any stretch of the imagination. Scala I think puts pretty much every systems language that came before it to shame. But I would rather use c# then java, and I would rather use java then c++.


For me it's scala, java, C++, C#. For a project with lots of mediocre programmers or one that does not require high performance, I would put C++ last.

Reply Parent Bookmark Score: 3