Why free software shouldn't depend on Mono or C#
fsf.org
fsf.org
Jo Shields wrote an excellent rant a few months ago that completely destroys the patent argument (among other things): http://www2.apebox.org/wordpress/rants/124/
If RMS was being ideologically sound, he would oppose the use of C/C++, on which patents are held by the convicted monopolist AT&T. Instead, he only opposes languages like C# and Java, the success of which poses a credible threat to the vast quantity of C/C++ code the FSF controls.
For those of you who don't know, C# is an EMCA and ISO standard, protected by numerous pledges not to sue, and the use in question is a Debian desktop app to expand and promote Debian Linux as a viable desktop platform; everything is 100% free software all the way down. By RMS's own purported ideological views, this is a great thing.
All I can say is, it feels like I'm trapped in a dreamworld where somehow RMS and MS have switched places; now MS is pushing open standards, and RMS is railing against them and spreading FUD. WTF?
While Sun's JVM only recently went open source, the spec was always open and sun does not have a history of suing open-source competitors to oblivion to prevent competition.
What this guy is saying is that C# is not like that. You take a risk when using C# that eventually you might wind up being forced to use proprietary windows-only software.
I still think the rant is rediculous. MS will never kill mono. MS wants to give everyone a first hit. Then they come in in shining armor with bags of coke claiming that now that you know mono, check out these libraries; now that you know these libraries writing windows-only programs is super easy.
Essentially C# + .Net is MS' Objective-C + Coca. They don't want it to die. The fact that people REALLY like .net and ported it to linux is an indication that .Net might be a good piece of work if anything. come to think of it... if Objective-C is so wonderful why is it not widely used in linux??? In fact I never heard of objective-c in linux (does it even exist?)
If you believe that MS is pushing open standard, you are at best naive.
I cannot be sure they won't sue people for anything they have patented that's used in Mono.
As far as I've understood, they were just stances and FUD. They haven't made any specific claims. That's as vague as it can get.
Some info on the latest patent workaround suggested for the kernel: http://lwn.net/Articles/338941/
They claim to have another 250 such patents.
With the current state of patents, you really can't be sure of anything. Even SUN got sued by Kodak for Java.
I have a problem with the arguments for "free software" in general. People say that RMS is usually right, but being anti-Mono because you're pro-freedom, is like saying you're anti-abortions because you're pro-life. The state of affairs is never black and white like that.
I don't get it. Why is the GNU Project developing their own C# implementation but is seemingly anti-Mono? Hypocritical much? They want to discourage the use of C#... so they're developing their own C# suite? Doesn't make sense to me.
Question to those who may know: If C# is an ECMA standard, how can Microsoft shut down C# implementations legally? Aren't ECMA standards free for all to use?
Also, is there anything stopping anyone from writing an open source JIT that compiles C#/VB.NET/F# to Java bytecode? Or, converting .NET bytecode to/from Java bytecode? Then, you wouldn't be locked into a single system.
I'm actually working on a new open source project right now that is written in C# and is going to be released under either the BSD or MIT license (I haven't decided yet). So I probably couldn't disagree more with this article. I think that if more open source were written in C# or Java, it would be much easier to port Linux (BSD, etc.) to other platforms, since most/all of the software that people will want to use doesn't even need to be rewritten for that platform.
True, but letting Mono flourish for as long as it has without taking legal action against it opens up a can of worms that can screw with future action against it. Patent law recognizes the idea that implicitly letting someone infringe and not doing anything about it until it's most profitable for you/most damaging to them isn't the way the game's supposed to be played.
Add to that the fact that patent suits are the global thermonuclear war of the technology industry (the only way to win is not to play), and I'll be surprised if anything serious ever happens.
Still, this isn't making a lot of sense. My understanding is that Microsoft has been very helpful to the Mono project. But what really gets me is "it's a really good thing to have free implementations of C# but a really bad thing to use them..."
Did you read the article? Having a free C# implementation is important because it allows people to run their C# program on free platforms according to the FSF. However, writing and distributing apps in C# is not encouraged as people might get sued. RMS points that he has nothing against mono or any other free C# implementations (proof is that GNU has its own Portable.NET) as it allow people to move to a free platform.
It's obviously possible to port C# applications to other programming languages. One example is Tomboy, which was ported to C++ (the port is called gNote). Also, a GNOME developer once tried to port a C# application to Java: His conclusion was, IIRC, that it's rather easy since both languages are very similar. This shows that even if the community looses all free C# implementations, it would not loose all the C# applications.
Anyway, what I find more interesting: You seem to say that Stallman usually argues his case properly. I find this hard to believe.
Could you show me any important argument made by him that does not rest on a logical fallacy? I'd be deeply grateful.
This post is not saying "we shouldn't make anything relying on any non-free software because all software should be free software." It's a pragmatic post saying, "look, it's likely that all of the man-years going into C# free software will be lost when we can't run that software on our machines. So write it in something that we'll be able to use on Unix forever." If someone chose a proprietary framework with official implementations on Unix systems, this post wouldn't say that those are bad as well.
For an example, check out the .NET reflector. By default, it lets you convert between C#, VB.NET, (Managed) C++, and CIL. You can also get plugins for IronPython and so forth.
http://www.red-gate.com/products/reflector/ (it's free)
The program the poster was referring to is actually a disassembler, taking Microsoft IL (assembly for the virtual machine) and converting it to a .Net language. So you might;
- compile C# to Microsoft IL - decompile the IL back to IronPython - use that as the basis of a CPython version.
Why throw the baby out with the bath water?
That story is very short, the Hitopadesha is much longer (it's a collection of tales, a bit like Aesop's Fables which are more well-known in the west.
It's set up as a morality play, but it occurs to me that there is a certain amount of market wisdom embedded in such tales too. Maybe they contribute to the success of Indians as traders (if that isn't just a stereotype?)
Has anybody else here had the same experience?
This confirms to me that I don't have any personal bias against this guy (since I'm reading his articles blind). I just can't find any common ground from which to empathize with anything he has yet written. He's somewhat well known, is he not? Is all of his writing like this?
Also, you can check out the 'Success Stories' page at the Mono Project's website: http://www.mono-project.com/Companies_Using_Mono
There are plenty of folks writing applications in C# using the GTK bindings, which in turn need Mono. Tomboy is just one that's become popular enough that people want it to ship as part of Debian's distribution of GNOME (not the only one; IIRC there are three apps in there now which need Mono). So sooner or later somebody's gotta ship it by default to support an application, and then folks who don't have religious attachments to avoiding Mono will think it's no more unusual than any other shared dependency of commonly-used applications.
If yes, are there no threats there? If no, have they given any thought to having an official recommendation for new GUI (GNU) projects, at least a language with garbage collection.
As for writing GUIs, how about Perl/Ruby/Python/Lua/... + GTK?
"Therefore, we should not include any obnoxious orange and bathroom brown colored themes in the default installation of GNU/Linux distributions"
I could get down with that one.
The EFF should know this, but then again, having seen some of their legal work in the past, I'm surprised that they ever manage to win a case.
Edit Estoppel is a legal doctrine (which applies to most areas of law), which means that MS has performed certain actions (in this case, submitting the C# specification to the standards body) which would cause 3rd parties to reasonably assume that MS is waiving (patent) protections (or other legal rights in the matter at issue).