As I told a buddy earlier, the piece is below RMS' usual standard: "This is a serious danger, and only fools would ignore it" - poisoning the well rather than arguing the case properly...
> I cannot be sure they won't sue people for anything they have patented that's used in Mono.
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.
This is not to say that implementing C# is a bad thing. Free C# implementations permit users to run their C# programs on free platforms, which is good. (The GNU Project has an implementation of C# also, called Portable.NET.)
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?
That was my reaction. I would think that by publishing the ECMA standard (and there have even been revisions to the original standard), they have pretty much given up any patents on C#/.NET. Besides, if Microsoft was going to use their patents against open source projects, what would stop them from going after closed-source software as well?
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.
Publication does not affect your rights under patent law. In fact the patent itself is formally considered as publication (though in comparision to most RFCs, I find the writing style nearly incomprehensible).
"Publication does not affect your rights under patent law."
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.
That's right, the longer they know Mono exists and let it slide, the more they risk losing an infringement suit over laches. But I don't think the existence of the ECMA standard matters.
According to the Wikipedia page on DotGNU [ http://en.wikipedia.org/wiki/DotGNU ], Mono doesn't just aim to by compliant with the Common Language Specification, but to maintain compatibility with .NET releases as they come out. DotGNU, on the other hand, is only concerned with implementing the standard. So, at least in theory, Mono could get into trouble where DotGNU wouldn't.
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..."
> I don't get it. Why is the GNU Project developing their own C# implementation but is seemingly anti-Mono?
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.
I personally find the 'Non sequitur' more obvious: "If we lose the use of C#, we will lose them [applications written in C#] too."
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.
A few days back I read the story of 'The Tiger and the Traveller' from the Hitopadesha: http://tinyurl.com/kqsw39
. My first thought was 'That's microsoft !'
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?)
I agree with that, (he believes all software should have to be open-source, I believe) but I also agree with this post.
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.
One cool thing about C# (and the .NET platform in general) is the ability to translate your code into another programming language (aside from some possibly incompatible differences in programming languages). So there's really not much stopping anyone from writing a C# to Java converter that would handle a decent chunk of the porting (so you wouldn't lose any software), and then you could just fix up the minor stuff yourself.
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.
The ability to translate between two programming languages is called a compiler. There is theoretically nothing stopping anyone from writing a anything-to-anything "converter" (you mean compiler).
No, the right word is translator. A compiler generally creates a form optimised for execution, like machine code or bytecodes. A translator creates source code files from other source code files.
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.
I do not want to enter a dispute concerning naming, but I'll just point out that many consider a compiler to be anything that you might call translator. What would you call a program that transforms C code in assembler code? Isn't assembler code source code?
Of course, there's a chicken/egg thing here. Might as well say "it seems a bit extreme to include Python" just because the occasional app is written with PyGTK, for example.
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.
This is absolutely absurd on its face. Far from facing patent problems, the only interaction Microsoft and Mono has had is for Microsoft to officially support Mono/Moonlight as the official Linux silverlight client.
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?
Why would you expect Java to be supported by RMS and the FSF before it was fully open sourced? That's fairly basic to their worldview. Throwing out absurd accusations about them trying to protect C/C++ makes you seem a bit partisan on this issue.
It's one thing to complain before gcc.gnu.org/java/, kaffe.org, etc showed up. However, once there is an open source compiler and JVM it's time to complain about something else.
Java is fine as free software. There is a reason. The JVM's specification was always open. So as long as you write a custom VM adhering to the JVM spec you are good. There are a few competitors to Sun claiming to have faster VMs.
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?)
When was the last time you've seen a C# app that conforms to the ECMA standard? Most apps written in C# make such heavy use of the Windows API that they are as importable as possible.
If you believe that MS is pushing open standard, you are at best naive.
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.
The negativity in this article isn't necessary. I like C# I would want to say that the more Linux / Unix C# code will be written maybe and just maybe it will get MS to write an open source .NET framework not just for windows. That's the words I want to read
I wish he'd spend his time on more constructive and realistic concerns instead of dreaming up doomsday scenarios and generally sounding like a zealot bent on destroying any chance of Linux having a mainstream future on the desktop. How about:
"Therefore, we should not include any obnoxious orange and bathroom brown colored themes in the default installation of GNU/Linux distributions"
This marks the second time that I've read an article linked on Hacker News, come away with the impression that it was written by a raving lunatic conspiracy theorist, followed the "comments" here, and discovered that it was written by this same author.
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?
Microsoft is estopped by law from asserting patents on C#. That's one of the benefits of submitting specifications to a standards-granting organization.
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).
49 comments
[ 3.4 ms ] story [ 85.3 ms ] threadI 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.
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?)
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?
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.
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.
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.
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?
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).