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.
Order by: Score:
Oh well...
by J.R. on Mon 20th Jul 2009 16:37 UTC
J.R.
Member since:
2007-07-25

Did anyone expect anything else? Sometimes I wonder if the whole community is built around hating Microsoft ;)

Reply Score: 1

RE: Oh well...
by molnarcs on Mon 20th Jul 2009 17:15 UTC in reply to "Oh well..."
molnarcs Member since:
2005-09-10

Did anyone expect anything else? Sometimes I wonder if the whole community is built around hating Microsoft ;)

Apart from broad sweeping statements like that, do you have any specific arguments to counter any of the points raised in the FSF statement?

Reply Score: 7

RE[2]: Oh well...
by Almafeta on Mon 20th Jul 2009 18:25 UTC in reply to "RE: Oh well..."
Almafeta Member since:
2007-02-22

Apart from broad sweeping statements like that, do you have any specific arguments to counter any of the points raised in the FSF statement?


Well, we could start with their logical fallacies and work from there.

They take Ballmer's quote of "So how do we somehow get the appropriate economic return for our patented innovation...?" as proof positive that "The company has been quite clear about its intentions since late 2006." Of course, they take for granted that someone would make the jump from 'trying to get appropriate economic return' and 'will attempt legal action to gain recompense for what they have lost.'

Never mind that between this and other actions, the way Microsoft has been dealing with "getting "appropriate economic return" on GNU/Linux's use of their works lately is to work more and more with the open-source community. (Sure, it's burning the company's long-term survival for short-term gain, but it wouldn't be the first time a company that had recently switched management, changed from sustainable but low-margin goods to short-term high-margin goods, and then wondered why management left town when the bill came in.) Logical fallacy: Hasty generalization (Because Microsoft wants to make money off of their work, they must want to sue).

Not to mention the preface lists other companies with patents for things that have since been released under copyleft licenses - Sun and IBM. Why are we to lose sleep over Microsoft working with open source, yet give no thought to other companies (in IBM's case, larger) doing the same? Why - because this is Microsoft. The reason Microsoft can't be trusted is beause it's Microsoft, and the reason Sun and IBM can be trusted is because they're Sun and IBM. Logical fallacy: Circular logic (Microsoft can't be trusted because Microsoft can't be trusted).

And it ends with the continual assertion that things would all be better, somehow, if Microsoft gave away their patents or patents for everyone were taken away. Logical fallacy: Appeal to belief (The FSF is correct because most people reading their argument would assume it was correct).

For the document as a whole, we can add the fallacy of Appeal to Fear (the assumption that the reader will be afraid of the target from the beginning) and Bandwagon (The FSF is right because everyone knows Microsoft is the devil).

Reply Score: 5

RE[3]: Oh well...
by JAlexoid on Mon 20th Jul 2009 19:54 UTC in reply to "RE[2]: Oh well..."
JAlexoid Member since:
2009-05-19

Well. You know what they say about trust? You work to gain it for years and loose it in a second forever.

The main issue, that I see, is that Microsoft did not got for the standard legal term - license, but labeled it a promise. That is why the is a big issue with that promise.

As for patents, I believe IBM has the biggest portfolio and is a part of the Open Invention Network, that pledges to allow open source to use the patents and defend open source with those patents.


Well, we could start with their logical fallacies and work from there.

They take Ballmer's quote of "So how do we somehow get the appropriate economic return for our patented innovation...?" as proof positive that "The company has been quite clear about its intentions since late 2006." Of course, they take for granted that someone would make the jump from 'trying to get appropriate economic return' and 'will attempt legal action to gain recompense for what they have lost.'

Never mind that between this and other actions, the way Microsoft has been dealing with "getting "appropriate economic return" on GNU/Linux's use of their works lately is to work more and more with the open-source community. (Sure, it's burning the company's long-term survival for short-term gain, but it wouldn't be the first time a company that had recently switched management, changed from sustainable but low-margin goods to short-term high-margin goods, and then wondered why management left town when the bill came in.) Logical fallacy: Hasty generalization (Because Microsoft wants to make money off of their work, they must want to sue).

Not to mention the preface lists other companies with patents for things that have since been released under copyleft licenses - Sun and IBM. Why are we to lose sleep over Microsoft working with open source, yet give no thought to other companies (in IBM's case, larger) doing the same? Why - because this is Microsoft. The reason Microsoft can't be trusted is beause it's Microsoft, and the reason Sun and IBM can be trusted is because they're Sun and IBM. Logical fallacy: Circular logic (Microsoft can't be trusted because Microsoft can't be trusted).

And it ends with the continual assertion that things would all be better, somehow, if Microsoft gave away their patents or patents for everyone were taken away. Logical fallacy: Appeal to belief (The FSF is correct because most people reading their argument would assume it was correct).

Reply Score: 1

RE[3]: Oh well...
by lemur2 on Mon 20th Jul 2009 23:24 UTC in reply to "RE[2]: Oh well..."
lemur2 Member since:
2007-02-17

Never mind that between this and other actions, the way Microsoft has been dealing with "getting "appropriate economic return" on GNU/Linux's use of their works lately is to work more and more with the open-source community. (Sure, it's burning the company's long-term survival for short-term gain, but it wouldn't be the first time a company that had recently switched management, changed from sustainable but low-margin goods to short-term high-margin goods, and then wondered why management left town when the bill came in.) Logical fallacy: Hasty generalization (Because Microsoft wants to make money off of their work, they must want to sue).


Rubbish. Utter nonsense.

There is ample evidence to show that the approach Microsoft has adopted is to let (or even encourage) open source development continue, without even a murmur in the direction of the developers themselves, and then to extort royalty payments (via threats to sue) from any company that tries to use the resultuing open source software in a product.

Tom Tom and Buffalo show this strategy up very well indeed.

Reply Score: 5

RE[2]: Oh well...
by chrish on Tue 21st Jul 2009 13:00 UTC in reply to "RE: Oh well..."
chrish Member since:
2005-07-14

It's FUD just as much as MS' actions and vague Community Promise are. There's no specific threat, there have been no actions against Mono or companies using Mono (there's a commercial game IDE and engine called Unity3D that uses Mono for scripting, for example).

C# and .NET are good technologies, despite the source; I'm much, much more productive in C# than in Java and I won't even consider using C/C++ anymore unless I need to fix something that's already in those low-level languages.

FUD like this helps hold back the free software community, which is a Microsoft goal, not an FSF goal. Using C# and Mono might help force the issue and give us a concrete response or even help bring down software patents.

MS' claim to a huge pile of their patents in Linux is ridiculous; if they had a case, they'd be going after Oracle, RedHat, etc... all of the big players who are stealing their database/enterprise/whatever sales.

- chrish

Reply Score: 3

RE: Oh well...
by robojerk on Mon 20th Jul 2009 17:15 UTC in reply to "Oh well..."
robojerk Member since:
2006-01-10

Well, Microsoft has announced itself as the enemy. Can't blame the FSF for not trusting them.

Reply Score: 4

v RE[2]: Oh well...
by BallmerKnowsBest on Mon 20th Jul 2009 20:42 UTC in reply to "RE: Oh well..."
RE[3]: Oh well...
by TechGeek on Mon 20th Jul 2009 23:23 UTC in reply to "RE[2]: Oh well..."
TechGeek Member since:
2006-01-14

Thats funny, cause Bill Gates himself said that the biggest threat Microsoft faced was Linux. And that people were putting their best work into open source. And that was long before this Mono crap was invented.

Reply Score: 4

RE[4]: Oh well...
by robojerk on Tue 21st Jul 2009 04:02 UTC in reply to "RE[3]: Oh well..."
robojerk Member since:
2006-01-10

Why even argue with him?

I mean his name is BallmerKnowsBest.

Reply Score: 1

RE[5]: Oh well...
by BallmerKnowsBest on Tue 21st Jul 2009 15:56 UTC in reply to "RE[4]: Oh well..."
BallmerKnowsBest Member since:
2008-06-02

Why even argue with him?

I mean his name is BallmerKnowsBest.


I chose that name to demonstrate that Freetards are a bunch of mindless sheep who are incapable of seeing past their blind hatred of Microsoft.

Thank you (and everyone who modded my post down) for proving my point.

Reply Score: 0

RE[6]: Oh well...
by robojerk on Tue 21st Jul 2009 18:22 UTC in reply to "RE[5]: Oh well..."
robojerk Member since:
2006-01-10

I chose that name to demonstrate that Freetards are a bunch of mindless sheep who are incapable of seeing past their blind hatred of Microsoft.
With that name I assumed that you're blinded by your love for Microsoft have nothing but contempt for any alternative. By calling people that like free and open software "Freetards" suggests I hit the nail on the head, and that you're the mindless sheep.

Thank you (and everyone who modded my post down) for proving my point.
Thanks for proving my point.

Reply Score: 2

RE[7]: Oh well...
by BallmerKnowsBest on Wed 22nd Jul 2009 00:22 UTC in reply to "RE[6]: Oh well..."
BallmerKnowsBest Member since:
2008-06-02

By calling people that like free and open software "Freetards" suggests I hit the nail on the head, and that you're the mindless sheep.


When the shoe fits... and hey, look! Here's a size Freetard with your name on it, my easily-trolled little friend.

Thanks for proving my point.


So your only comeback is to shamelessly copy my post? Thank you for proving that, like all Freetards, you don't have a single original idea in your head.

Reply Score: 2

RE[6]: Oh well...
by Beta on Tue 21st Jul 2009 19:38 UTC in reply to "RE[5]: Oh well..."
Beta Member since:
2005-07-06

"I mean his name is BallmerKnowsBest.

I chose that name to demonstrate that Freetards are a bunch of mindless sheep who are incapable of seeing past their blind hatred of Microsoft.
"
Ahhh, so you are a troll! I’m glad the -1 troll vote exists

Reply Score: 3

v RE[7]: Oh well...
by BallmerKnowsBest on Wed 22nd Jul 2009 00:24 UTC in reply to "RE[6]: Oh well..."
RE[4]: Oh well...
by BallmerKnowsBest on Tue 21st Jul 2009 15:52 UTC in reply to "RE[3]: Oh well..."
BallmerKnowsBest Member since:
2008-06-02

Sorry to break it to you, but the FSF is not Linux - despite Stallman's constant attempts to take credit for Linux.

There are practical reasons why a person (or, more importantly, a business) might use Linux - at least, as long as you don't mind being perpetually 5 years behind current Microsoft (and even Apple) technology.

But with the FSF, why should anyone give a damn about a bunch of ivory tower wannabe-radicals who spend most of their time spewing naive Utopianism?

Reply Score: 3

not exactly empty...
by google_ninja on Mon 20th Jul 2009 16:51 UTC
google_ninja
Member since:
2006-02-05

rhetoric aside, the article boils down to

1) if ms sells a patent to someone else, that person could theoretically sue everyone. Sorta like if IBM sold something that it promised OSGI royalty free access to. It is literally impossible to develop completely non patent infringing software, which is the main problem with software patents in the first place. A company promising not to sue you is much better then no assurance at all.

2) Microsoft possibly having unspecified, general purpose runtime related patents is another rather nebulous issue. First of all, this is a threat to python, ruby, java, LLVM, etc just as much as a threat to mono. Secondly, this could again be applied to quite a few companies with large software patent portfolios, and is not a micrsoft specific threat.

3) There are "core" libraries (like xpath, regex, serialization) that are not covered under the standard. The mitigating factor here is they are only core in the java "everything and the kitchen sink" meaning of the word. If MS decided to sue over them, it would just be a matter of binding to libxml, libregex, etc. That would mean binary compatibility with windows would be gone, but a) that isn't the primary mono use case, and b) if MS starts suing the pants off everyone that will probably happen anyways for other reasons (aka asp.net, winforms, ADO.net)

Here is the funny thing: I make my money doing .net work, and I don't particularly like mono or think its a good idea. C# is a good systems language, but scala is miles better. ASP.net is a good RAD platform, but rails is miles better. There are reasons to choose .net over alternatives if you are in a corporate windows environment, but I can't think of a single reason to choose it on linux. It's not that its bad, and it is the worst choice, but there are other technologies that are more modern/elegantly designed/feature rich out there.

That being said, this particular article is typical FSF FUD.

Reply Score: 11

RE: not exactly empty...
by umccullough on Mon 20th Jul 2009 17:55 UTC in reply to "not exactly empty..."
umccullough Member since:
2006-01-26

1) if ms sells a patent to someone else, that person could theoretically sue everyone. Sorta like if IBM sold something that it promised OSGI royalty free access to. It is literally impossible to develop completely non patent infringing software, which is the main problem with software patents in the first place. A company promising not to sue you is much better then no assurance at all.


I think the problem in this case is that Microsoft has allegedly setup/purchased subsidiary companies in the past for explicitly this purpose. Don't ask me for citations, but I'm pretty certain I've read about this behavior before :/

That being said, this particular article is typical FSF FUD.


Well, yes - I totally agree that it's FUD, but after all, FUD in the FOSS community doesn't have the same purpose as it would coming from a larger corporation who is trying to stifle competition. I would say it should be categorized as: paranoia. Perhaps time will tell if it's really justified or not.

Reply Score: 4

RE[2]: not exactly empty...
by google_ninja on Mon 20th Jul 2009 18:29 UTC in reply to "RE: not exactly empty..."
google_ninja Member since:
2006-02-05

Well, yes - I totally agree that it's FUD, but after all, FUD in the FOSS community doesn't have the same purpose as it would coming from a larger corporation who is trying to stifle competition. I would say it should be categorized as: paranoia. Perhaps time will tell if it's really justified or not.


The problem with zealots of any kind is the whole "ends justifies the means" thing. I know people in developer division, and they genuinely want people using mono. If MS turns around and sues people over mono patents, it wont have anything to do with the people who pushed for this in the first place (remember, MS is an international company of about 80, 000 people, its comprised of good guys and bad guys like any company of that size)

FSF slamming MS for promising not to sue may be heralded as a good thing by their supporters, but will hurt the people trying to reach middle of the road corporate types who will see it as yet another reason to believe linux guys are just a bunch of angry nerds.

I finished watching most of the Google I/O vids. During one of the keynotes, the speaker said (to paraphrase) "Now, you may be wondering why we aren't demoing anything in internet explorer. Microsoft has said they will support HTML 5 standards, and lets just say we are are very pleased at that, and are awaiting signs of them following through on that statement, and we'll leave it at that". That is classy. If the FSF had said something like "We are very glad that Microsoft is taking these steps, but we have concerns that there are still parts of the System.* namespace that are not covered by this promise. We have made Microsoft aware of this oversight, and hopefully it will be rectified soon" That would make them sound reasonable, not like a bunch of angry nerds, and probably have a much more positive effect in the grand scheme of things then yet another angry rant by the FSF.

Reply Score: 5

RE[3]: not exactly empty...
by lemur2 on Mon 20th Jul 2009 23:32 UTC in reply to "RE[2]: not exactly empty..."
lemur2 Member since:
2007-02-17

If the FSF had said something like "We are very glad that Microsoft is taking these steps, but we have concerns that there are still parts of the System.* namespace that are not covered by this promise. We have made Microsoft aware of this oversight, and hopefully it will be rectified soon" That would make them sound reasonable, not like a bunch of angry nerds, and probably have a much more positive effect in the grand scheme of things then yet another angry rant by the FSF.


Sigh!

Did you realise that FAT LFN functionality was put into the Linux kernel in the first place because Microsoft promised not to sue over it?

Mircosoft kind-of kept to that promise BTW ... Microsoft did not sue any developer who had anything to do with the original coding of FAT LFN functionality in the Linux kernel.

Instead, Microsoft just threatened to sue any company that made a product that used the Linux kernel, becuase the kernel included FAT LFN functionality.

Judge by actions and deeds, not by words.

PS: Thankfully, it looks now as if there is a way to keep the essential FAT LFN functionality in the Linux kernel without infringing any of Microsoft's patents, regardless of vague half-promises from Microsoft.

Edited 2009-07-20 23:44 UTC

Reply Score: 3

Paranoid
by Gone fishing on Mon 20th Jul 2009 16:54 UTC
Gone fishing
Member since:
2006-02-22

Just because your paranoid doesn't mean they're not out to get you.

Reply Score: 3

RE: Paranoid
by BallmerKnowsBest on Mon 20th Jul 2009 20:43 UTC in reply to "Paranoid"
BallmerKnowsBest Member since:
2008-06-02

Just because your paranoid doesn't mean they're not out to get you.


And just because one of your paranoid delusions turns out to be correct, that doesn't make you any less delusional. Even a broken clock tells the correct time twice a day - but at least broken clocks aren't susceptible to confirmation bias (unlike most passengers of the anti-Microsoft bandwagon).

Reply Score: 1

RE[2]: Paranoid
by BallmerKnowsBest on Tue 21st Jul 2009 15:57 UTC in reply to "RE: Paranoid"
BallmerKnowsBest Member since:
2008-06-02

To everyone who modded me down: thank you for proving that I'm right and that Freetards just can't handle the truth.

Hahaha!
- BallmerKnowsBest

Reply Score: 1

Wouldn't that be nice..
by jpobst on Mon 20th Jul 2009 17:00 UTC
jpobst
Member since:
2006-09-26

"If Microsoft genuinely wants to reassure free software users that it does not intend to sue them for using Mono, it should grant the public an irrevocable patent license for all of its patents that Mono actually exercises."

This would be quite the FSF coup, since Mono could then implement anything in the world, and it would force MS to give up any patents it has.

Mono.FAT? There goes those patents.

Somehow I doubt this is something MS, or any other company in the world, will do.

Reply Score: 1

RE: Wouldn't that be nice..
by KermitTheFragger on Mon 20th Jul 2009 18:06 UTC in reply to "Wouldn't that be nice.."
KermitTheFragger Member since:
2008-06-12

Here in Europe most (if not all) of these patents aren't even valid. So I don't think it should be that big of a problem for most companies.

Reply Score: 2

Bill Shooter of Bul
Member since:
2006-07-14

Granting them a license for everything Mono now covers would essentially Kill Mono. It would prevent Mono from evolving.

Before TomTom, I would have disagreed with the FSF. I am slowly coming over to their side, however. I wouldn't write anything for my company that depends on Mono, but I wouldn't mind using a desktop app for my own personal use while advocating against their default installation ( I don't want Ubuntu/RedHat/ any other GNU/Linux distributor to be sued ).

Reply Score: 4

FSF has the uncanny ability
by Rahul on Mon 20th Jul 2009 17:36 UTC
Rahul
Member since:
2005-07-06

They might seem like extremists and in some senses they are but the arguments they make are usually sensible. RMS's wrote a essay long back called the "The Right to Read"

http://www.gnu.org/philosophy/right-to-read.html

Now at the time it was written and even a few years back, it seemed very far fetched. Now with the recent Amazon story, it doesn't seems almost obvious. Isn't it?

Similar stories around the software patent fight and other things where FSF's stand points have time and again proven true. I wouldn't dismiss their concerns without considering them carefully.

Reply Score: 6

CCCP
by fretinator on Mon 20th Jul 2009 17:47 UTC
fretinator
Member since:
2005-07-06

Dear Consolidated Chicken Coop Partners:

We wish to thank you for stepping up to protect your fellow chickens by signing our corporate non-raiding agreement. By taking a stand for innovation and partnering with us in these troubled times, you have taken the first step in assuring the safety of the roost. You need no longer fear the loss of your valuable Edible Property (EP). We stand committed to your protection and safety. We embrace your boldness in these confusing times, and wish to extend to you the paw of friendship and cooperation. We hope this extinguishes any fears you have, and look forward to a long and fruitful realtionship.

Yours truly,
A. Wolfe

Reply Score: 9

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.

Reply Score: 6

RE: Who wants that crap anyway?
by google_ninja on Mon 20th Jul 2009 20:39 UTC in reply to "Who wants that crap anyway?"
google_ninja Member since:
2006-02-05

The more proficient you are with a language, the more you recognize its warts.

First thing you need to do is buy resharper. Its been years since I have typed out a using statement, let alone worried if it was System.Collections, or Systems.Collections.Generic. If you are using a verbose language, IDE features for minimizing typing are gold, and resharper pretty much fills in the gaps that studio leaves.

I am not sure about your predicate issue (Filter is not a member of List<T>), but something like this works fine, even though the Find method signature has Predicate and not a Func.

var strings = new List<string>(new[] { "Foo", "Bar" });
var result = strings.Find(s => s == "Foo"); // result will equal "Foo"

Lastly, if you want pain, work with java for a bit. All these "enterprisey" languages accumulate amazing mounts of cruft, because they have promise support for a bajillion years for anyone to think of using it. Your options are keep bolting things on as nicely as you can (C#), or just don't add anything to the language, even when it gets horribly out of date (java)

If you compare C# to something like C++ or java, it is fantastic (things like closures, implicit typing, verbose-yet-still-neat functional list processing). If you compare it to something like python, it is pretty damn clunky.

Reply Score: 2

RE[2]: Who wants that crap anyway?
by tuttle on Mon 20th Jul 2009 21:37 UTC in reply to "RE: Who wants that crap anyway?"
tuttle Member since:
2006-03-01


I am not sure about your predicate issue (Filter is not a member of List), but something like this works fine, even though the Find method signature has Predicate and not a Func.

var strings = new List(new[] { "Foo", "Bar" });
var result = strings.Find(s => s == "Foo"); // result will equal "Foo"


That is not what I meant. If you have a delegate of type Predicate but need a delegate of type Func or vice versa, you have to write an adapter. That can be as simple as a small lambda expression like the one above, but it comes with considerable performance cost and is also quite ugly.

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.


Lastly, if you want pain, work with java for a bit. All these "enterprisey" languages accumulate amazing mounts of cruft, because they have promise support for a bajillion years for anyone to think of using it. Your options are keep bolting things on as nicely as you can (C#), or just don't add anything to the language, even when it gets horribly out of date (java)


At least most language features of java work well with other language features. Half of C#'s language features are no longer usable if you for example use generic types: no operators, no static methods etc.

And at least the java class library contains some decent collections. The .net framework does not even provide an interface for a set. And there is not even a default implementation of the most basic concurrency data structure: a blocking queue.

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

If you compare C# to something like C++ or java, it is fantastic (things like closures, implicit typing, verbose-yet-still-neat functional list processing). If you compare it to something like python, it is pretty damn clunky.


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.

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.

Edited 2009-07-20 21:48 UTC

Reply Score: 1

google_ninja Member since:
2006-02-05

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.

At least most language features of java work well with other language features. Half of C#'s language features are no longer usable if you for example use generic types: no operators, no static methods etc.


I wouldn't say half, but yes, there are some, and yes, that sucks when you run into it. However, I would rather have features that work fine in the 80%-90% case rather then not have them at all.

The few interfaces they do provide in .net (e.g. IEquatable<T>) 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.

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++.

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?

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++.

Reply Score: 2

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 Score: 3

RE[3]: Who wants that crap anyway?
by iliks on Tue 21st Jul 2009 11:52 UTC in reply to "RE[2]: Who wants that crap anyway?"
iliks Member since:
2008-07-08


The .net framework does not even provide an interface for a set.


There is the HashSet class that implements sets.

public class HashSet<T> : ICollection<T>, IEnumerable<T>,
IEnumerable, ISerializable, IDeserializationCallback

Various set-related functions are available as extension methods in the IEnumerable<T> interface.

Edited 2009-07-21 11:58 UTC

Reply Score: 1

RE: Who wants that crap anyway?
by Moochman on Mon 20th Jul 2009 20:56 UTC in reply to "Who wants that crap anyway?"
Moochman Member since:
2005-07-06

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.


I can only assume this is a prime example of how behind the times Visual Studio is compared to just about every Java IDE. Are you telling me you can't just type in the class and have a pop-up option automatically let you import it, without your hands leaving the keyboard or your cursor leaving the position? IntelliJ, NetBeans and Eclipse have had that feature for years....

Reply Score: 3

RE[2]: Who wants that crap anyway?
by jpobst on Mon 20th Jul 2009 21:06 UTC in reply to "RE: Who wants that crap anyway?"
jpobst Member since:
2006-09-26

Visual Studio 2008 does that, and yes, it is a great feature. ;)

Reply Score: 1

RE[2]: Who wants that crap anyway?
by tuttle on Mon 20th Jul 2009 21:10 UTC in reply to "RE: Who wants that crap anyway?"
tuttle Member since:
2006-03-01

"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.


I can only assume this is a prime example of how behind the times Visual Studio is compared to just about every Java IDE. Are you telling me you can't just type in the class and have a pop-up option automatically let you import it, without your hands leaving the keyboard or your cursor leaving the position? IntelliJ, NetBeans and Eclipse have had that feature for years....
"

Of course there is code completion. But code completion and automatic code generation does not make the code easier to understand.

The issue I have is that core interfaces like IEnumerable<T> are mixed with the collections library that I do not want to use.

This is just one example out of hundreds for bad design decisions.

Reply Score: 2

Moochman Member since:
2005-07-06

What do you have against the collections library? It's not like you need to import the whole thing, you only import the classes you need.... So why bog down the System namespace with this stuff (since that's essentially equivalent to importing it by default).

Reply Score: 2

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 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 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 Score: 2

Puts them in good company
by deathshadow on Mon 20th Jul 2009 22:19 UTC
deathshadow
Member since:
2005-07-12

Since increasingly I think the FSF is TRYING to make themselves irrelevant. Simple fact is at this point they aren't 'happy' with anything that isn't GPL v3, they just have enough common sense to not bitch about it on the 'shining gems' of the open source community NONE of which use their latest license, reserving their wrath for the 'big evil corporations'.

Look at the major open source successes, how many of the following even use a variation of the GPL?
Apache, Gecko, Firefox, PHP, Zend, QT, Darwin, Bittorrent, OpenSSL, Jabber, LaTeX, Python, Java...

The answer for the above list? NONE OF THEM. The FSF only begrudginly agrees that the above are even open source.

Increasingly even the open source community is starting to give the FSF the finger as their dirty hippy naive idealism conflicts with reality, and the first generation of open source developers ages to the point they realize they've been wearing rose coloured glasses.

As I've said a dozen times when someone starts throwing around the word freedom the way the FSF does, when as it's charter uses 5700+ words of nothing but restrictions wrapped in legalese... an over-glorified EULA crafted for the sole purpose of circumventing actual law using loopholes in contract law... well... does the term 'snake oil' ring a bell?

Of course one of the things the FSF's more rabid zealots often forgets is that freedom often involves tolerating things you don't like - including the freedom to choose a closed source solution if it works better than the open one - including the freedom to make your product closed if you think it's the best way to get paid for your work. Freedom strictly by the rules set forth by the FSF is no freedom at all.

I'm reminded of the tale of the two shepherds...

The first shepherd oppressed his flock with a harsh set of rules.

1) Sheep will be shorn and the wool confiscated

2) Sheep are not allowed to speak except to say "Baaaaaa"

3) Sheep are to be confined to pens at all times

4) Sheep with poor wool yields will be slaughtered

The sheep grew unruly and eventually overthrew their cruel oppressor when a new shepherd came to the flock with a charter of freedom.

1) Sheep have the right to be freed of wool.

2) Sheep have absolute freedom of speech

3) Sheep will be protected from predators in their pens

4) Sheep lacking wool will be posthumously honored.

... and the sheep all cheered a loyal "Baaaaaa!!!"

Edited 2009-07-20 22:31 UTC

Reply Score: 1

RE: Puts them in good company
by JMcCarthy on Mon 20th Jul 2009 23:00 UTC in reply to "Puts them in good company"
JMcCarthy Member since:
2005-08-12

Err, a few of those items mentioned are actually available under the GPL. Qt for instance has been available under the GPL for just under a decade, and just went LGPL. Java is mostly GPL now AFAIK, Firefox is available under the GPL.

And never has the FSF said you're not allowed to use proprietary software, or you're not allowed to create proprietary software. Just that you can't do it with GPL'd code.

Edited 2009-07-20 23:02 UTC

Reply Score: 4

RE: Puts them in good company
by lemur2 on Mon 20th Jul 2009 23:39 UTC in reply to "Puts them in good company"
lemur2 Member since:
2007-02-17

Of course one of the things the FSF's more rabid zealots often forgets is that freedom often involves tolerating things you don't like - including the freedom to choose a closed source solution if it works better than the open one - including the freedom to make your product closed if you think it's the best way to get paid for your work. Freedom strictly by the rules set forth by the FSF is no freedom at all.


Excuse me? WTF?

The FSF says absolutely nothing about what you do with your own code, your own work. Not a word. Zilch. Nada. Zip.

The FSF places restrictions only on its own code ... and even then the "restriction" that it places on its own code is only that any recipient of its code who wants to re-distribute that code must do so under the same conditions as they themselves received that code.

Edited 2009-07-20 23:46 UTC

Reply Score: 2

RE[2]: Puts them in good company
by deathshadow on Tue 21st Jul 2009 03:03 UTC in reply to "RE: Puts them in good company"
deathshadow Member since:
2005-07-12

REALLY, then what is the article even ABOUT? If what you said was true, nobody would give a flying **** what the FSF thinks about Microsoft open source efforts!

Nice try though.

Reply Score: 2

RE[3]: Puts them in good company
by lemur2 on Tue 21st Jul 2009 03:17 UTC in reply to "RE[2]: Puts them in good company"
lemur2 Member since:
2007-02-17

REALLY, then what is the article even ABOUT? If what you said was true, nobody would give a flying **** what the FSF thinks about Microsoft open source efforts! Nice try though.


Can't you read the article?

It says that free software developers (i.e. people who want their work to be distributed as open source freedom software) shouldn't write their code in C# despite Microsoft's vague promises.

To quote:
"Until that happens, free software developers still should not write software that depends on Mono."


That is what it is about.

The FSF's reasons for saying this are given in the article. Perfectly logical reasons.

As to the reason WHY people would want their work to be distributed under a freedom license, perhaps you can take a clue from this vision of dystopia:

http://www.gnu.org/philosophy/right-to-read.html

PS: Regarding "If what you said was true" ... what I said was absolutely true. The FSF uses the GPL license for code under its remit. The GPL license works via copyright law. The owner of the copyright on any piece of work is the author of that work. Therefore, the the terms of the GPL for the works distributed by the FSF apply ONLY to the work itself. In other words, the GPL applies ONLY to GPL'd code.

Edited 2009-07-21 03:30 UTC

Reply Score: 4

deathshadow Member since:
2005-07-12

Can't you read the article?

Funny - I would ask you the same question... particularly in regards to the paranoid whackjob nonsense you linked to in their 'right to read' page.

Almost the entirety of which is FUD, and what little 'facts' are presented are taken out of context and without actual references. Just try to find ANY proof of the alleged 2001 "thinly veiled rape threats by the BSA in Argentina" online apart from their site. The alleged Community ConneXion lawsuit only existing as works of fiction on cu-digest.org and not to be found in ANY official court record. The closest you can find is a class action suit in Georgia over a transmission law dating from 1996, of which the much more prominant "Tripod" was a plaintiff and yet strangely goes unmentioned in Stallman's little fantasy.

The GPL license works via copyright law.

No, the GPL supplements and in many cases circumvents copyright law by use of loopholes in Contract law - being little more than an overglorified EULA. It uses contract law to effectively create it's own distribution rules outside that determined by a judiciary or lawmaking body. So far the only legal cases in which it's been upheld (like that german case back in '04) was becuase the part they were pursuing lined up with existing laws within the scope of the case.

Reply Score: 2

Microsoft: Windows on EVERY computer
by TechGeek on Mon 20th Jul 2009 23:30 UTC
TechGeek
Member since:
2006-01-14

There are many reasons why people should fear Microsoft. Their corporate motto was and maybe still is: "Windows on EVERY computer". Reading some of the documents from their court cases really opens your eyes to just how far they would go to achieve their goals. They have openly and publicly attacked Linux and open source for years. Should they ever be trusted?

Reply Score: 2

The Big Bad Wolf
by rramalho on Tue 21st Jul 2009 15:12 UTC
rramalho
Member since:
2007-07-11

Big
Bad
Wolf

Be afraid... very afraid! lol

Reply Score: 1