Why free software shouldn’t depend on Richard M. Stallman’s advice

There’s been a long running rant about how using Mono is um, bad. But I just don’t get it. Now we have Richard M. Stallman coming out against Mono and C# with an argument that sounds kinda like “we shouldn’t use it just because we shouldn’t.” Hmm, Ok. [ok, that is way too much of an over simplification and taking some things out of context. However, I’m still not sure what’s bad: C#, Mono, or both?]

The odd thing about the post if that it focuses on C#, but none of the other languages that the the Mono CLR supports. Second, he goes on to state that “If we lose the use of C#, we will lose them [the applications] too.” Given that C# is an ECMA standard (as is the CLR itself), I think the conerns about not being able use C# are unwarrented. If we have to worry that the ECMA would allow Microsoft to pull rank on C#, then web developers should be rethinking thier use of JavaScript.

But the wierd thing is that Stallman doesn’t make the same point about any other langauage that the Mono CLR supports. For example, if Tomboy were written in the Boo programming language but remain on the Mono CLR, would evertyhing be ok? Why is there such a profound hatred of C# and not other lanagues supported by the CLR? Why not come out against the use CIL? Or is Stallman just not making his point clear enough?

As somone who uses Ubuntu 9.0.4 on a daily basis, I can apprciate what Mono has to offer from an end user perspecitive. I’m a HUGE fan of GnomeDo, which has turned out to be a better implementation of Quicksilver than Quicksilver. Then of course there’s Banshee, which is blosoming into an excellent media player. And also there F-Spot for photo management. I could go on, but the point is here that there are a lot of really great applications for GNOME that happen to be built on Mono.

Overall, I find that the post is weak on sound technical and legal arguments and high as a kite on FUD. Where’s the meat? Specifically, what can Microsoft go after that’s not GNOME if people start rewriting Mono applications in C++? Jo Shields has a lengthy, but excellent, post called Why Mono Doesn’t Suck. Jo’s post makes a lot of really good points about Mono if you don’t have a short attention span.

In the end, i think that a Mono is ultimately a good thing for Linux on the desktop. Anything that gives developers better productivity, and choice is a good. Part of being free is being able to make a choice: we should be free to choose whether or not we actually want to use applications developed with Mono.

23 thoughts on “Why free software shouldn’t depend on Richard M. Stallman’s advice

  1. But Mono is not a complete re-implementation of the MS .NET stack, nor will it ever be. In fact, Mono has it’s own bag of goodies like GTK#, Gendarme, Mozilla, as well as several Mono-specific libraries. Mono is growing up and it and even if you took away the non-ECMA stuff, Mono would still be a very usable framework.

    Like

  2. But Mono is not a complete re-implementation of the MS .NET stack, nor will it ever be. In fact, Mono has it’s own bag of goodies like GTK#, Gendarme, Mozilla, as well as several Mono-specific libraries. Mono is growing up and it and even if you took away the non-ECMA stuff, Mono would still be a very usable framework.

    Like

  3. But you could also make the arguments against Samba and the OpenChange MAPI connector, or even MS Office support in OpenOffice.

    Sure, absolutely. And they’d be legit arguments. The difference isn’t qualitative, but quantitative, so it’s entirely possible that the current Mono-bashing is more paranoid than sensible.

    Obviously I can’t speak for Stallman or anybody else, but the main thing that makes me jittery about Mono is the size of the attack surface. Specifically, the volume of code that deliberately duplicates MS libraries and architecture.

    I don’t worry as much about Samba or MAPI or Exchange or AD connectors or protocol-oriented reimplementations of MS code generally, precisely because they’re data-driven. Samba’s purpose is to deal with wire data that’s in a MS-controlled format. They only have to replicate the behavior of MS code long enough to get the data off the wire. Likewise OOO, except that it’s non-wire data.

    That’s risky, but (to me at least, IANAL) it seems substantially less risky than Mono. Mono has as its purpose the reimplementation of MS libraries and MS code behavior. That’s makes it useful and convenient, but increases the risk of collision with patents.

    Just $.02. I wouldn’t want to discourage anyone from supporting Mono, and I think the hubbub has as much or more to do with the distributions issues as any vulnerability of Mono itself.

    Like

  4. But you could also make the arguments against Samba and the OpenChange MAPI connector, or even MS Office support in OpenOffice.

    Sure, absolutely. And they’d be legit arguments. The difference isn’t qualitative, but quantitative, so it’s entirely possible that the current Mono-bashing is more paranoid than sensible.

    Obviously I can’t speak for Stallman or anybody else, but the main thing that makes me jittery about Mono is the size of the attack surface. Specifically, the volume of code that deliberately duplicates MS libraries and architecture.

    I don’t worry as much about Samba or MAPI or Exchange or AD connectors or protocol-oriented reimplementations of MS code generally, precisely because they’re data-driven. Samba’s purpose is to deal with wire data that’s in a MS-controlled format. They only have to replicate the behavior of MS code long enough to get the data off the wire. Likewise OOO, except that it’s non-wire data.

    That’s risky, but (to me at least, IANAL) it seems substantially less risky than Mono. Mono has as its purpose the reimplementation of MS libraries and MS code behavior. That’s makes it useful and convenient, but increases the risk of collision with patents.

    Just $.02. I wouldn’t want to discourage anyone from supporting Mono, and I think the hubbub has as much or more to do with the distributions issues as any vulnerability of Mono itself.

    Like

  5. @radish
    But you could also make the arguments against Samba and the OpenChange MAPI connector, or even MS Office support in OpenOffice. For some reason or another, these projects don’t get the same level of scrutiny as Mono does. From a big picture perspective, the argument that only Mono is point of contention from MS patent issues. There’s plenty of other projects that offer just as much risk.

    Like

  6. @radish
    But you could also make the arguments against Samba and the OpenChange MAPI connector, or even MS Office support in OpenOffice. For some reason or another, these projects don’t get the same level of scrutiny as Mono does. From a big picture perspective, the argument that only Mono is point of contention from MS patent issues. There’s plenty of other projects that offer just as much risk.

    Like

  7. @Ryan

    Stallman’s description is just unclear is all. No, the problem is not C# the language. The problem is that the Mono apps that you’re a huge fan of are vulnerable to lawsuits. They’re free-as-in-beer, but there’s no way to be sure that they’re free-as-in-speech. Because of their architecture and dependencies, Microsoft has the option of deciding, at some later date, to argue in court that Mono, or those apps, or whatever, are *not* free-as-in-speech after all. Despite the free-as-in-speech Mono license that supposedly protects them. In fact there may be deliberately concealed vulnerabilities. It wouldn’t be the first time.

    Stallman’s point is that MS knows a lot more about the legal vulnerability of Mono than you do, which makes it much easier for them to try to alter the legal status of those apps at some point in the future. And the inclusion of those apps in distros allows MS to attack the distributors.

    Which means that somebody — probably lots of somebodies — then have to go to court and defend the free-as-in-speech-ness of the apps. How much effort are you willing to put into that defense in exchange for easy access to Mono apps today? Because at that point it would be a much bigger question than whether or not you have to start paying MS or give up the use of the apps. A lawsuit like that could easily eat up all the resources the EFF could throw at it.

    If MS does decide to go after Canonical (or whomever) the purpose of the suit won’t be to get you (Ryan) to stop using Tomboy (or to start paying for it). The purpose will be to either take out or take over Ubuntu and any other distros or institutions that are vulnerable.

    Like

  8. @Ryan

    Stallman’s description is just unclear is all. No, the problem is not C# the language. The problem is that the Mono apps that you’re a huge fan of are vulnerable to lawsuits. They’re free-as-in-beer, but there’s no way to be sure that they’re free-as-in-speech. Because of their architecture and dependencies, Microsoft has the option of deciding, at some later date, to argue in court that Mono, or those apps, or whatever, are *not* free-as-in-speech after all. Despite the free-as-in-speech Mono license that supposedly protects them. In fact there may be deliberately concealed vulnerabilities. It wouldn’t be the first time.

    Stallman’s point is that MS knows a lot more about the legal vulnerability of Mono than you do, which makes it much easier for them to try to alter the legal status of those apps at some point in the future. And the inclusion of those apps in distros allows MS to attack the distributors.

    Which means that somebody — probably lots of somebodies — then have to go to court and defend the free-as-in-speech-ness of the apps. How much effort are you willing to put into that defense in exchange for easy access to Mono apps today? Because at that point it would be a much bigger question than whether or not you have to start paying MS or give up the use of the apps. A lawsuit like that could easily eat up all the resources the EFF could throw at it.

    If MS does decide to go after Canonical (or whomever) the purpose of the suit won’t be to get you (Ryan) to stop using Tomboy (or to start paying for it). The purpose will be to either take out or take over Ubuntu and any other distros or institutions that are vulnerable.

    Like

  9. Pingback: Why free software shouldn’t depend on Richard M. Stallman’s advice « Jasper Blog

  10. @bwtaylor
    I’ll agree with that statement. However, he is too focused on issues with C#, not on the CLR which I find incredibly confusing. Consider for a moment if an open C# implementation compiled directly to native code. Are the same concerns valid? He’s not specific enough.

    Furthermore, what if Mono didn’t offer C# as a language choice? Does Mono now become ok?

    Like

  11. @bwtaylor
    I’ll agree with that statement. However, he is too focused on issues with C#, not on the CLR which I find incredibly confusing. Consider for a moment if an open C# implementation compiled directly to native code. Are the same concerns valid? He’s not specific enough.

    Furthermore, what if Mono didn’t offer C# as a language choice? Does Mono now become ok?

    Like

  12. I have to agree that Stallman just isn’t making his point clear enough. I see no reason to fear C# as a language from the MS patent infringements.

    As you say, C# is submitted as an ECMA standard. There are a number of namespaces not included in that group, but since Microsoft have already reached an agreement not to pursue patent infringement with Novell directly, I don’t see how their implementation within Mono can be questioned.

    I’m all for choice as a developer and an end-user, and for me – Mono provides just that.

    Like

  13. I have to agree that Stallman just isn’t making his point clear enough. I see no reason to fear C# as a language from the MS patent infringements.

    As you say, C# is submitted as an ECMA standard. There are a number of namespaces not included in that group, but since Microsoft have already reached an agreement not to pursue patent infringement with Novell directly, I don’t see how their implementation within Mono can be questioned.

    I’m all for choice as a developer and an end-user, and for me – Mono provides just that.

    Like

  14. Maybe he focused on C# because that is the reason why some have adopted the use of Mono, who in their right mind would use VB.NET for example? Though, now that you mentioned it, what if the event/delegate system is patented? What will you use C# for if that is so and Microsoft starts enforcing..?

    There are some good comments @ http://andreasdevblog.wordpress.com/2009/06/29/c-and-the-rights-to-use-it/ related to the same subject, mostly clearing up the original author misreading of RMS’s warning.

    Like

  15. Maybe he focused on C# because that is the reason why some have adopted the use of Mono, who in their right mind would use VB.NET for example? Though, now that you mentioned it, what if the event/delegate system is patented? What will you use C# for if that is so and Microsoft starts enforcing..?

    There are some good comments @ http://andreasdevblog.wordpress.com/2009/06/29/c-and-the-rights-to-use-it/ related to the same subject, mostly clearing up the original author misreading of RMS’s warning.

    Like

  16. The issue is clearly spelled out by RMS as “software patents”, not that “we shouldn’t use it just because we shouldn’t.” What’s not to understand — RMS is saying that MS could attack your work in C# as violating the law if you don’t have a license. Even if they don’t currently want to, they *could*. Are you prepared to defend C# apps in court as not violating MS patents? If not, you should stop using C#.

    The fact that ECMA, a standards making body agrees that C# is a standard does not give you a license to patents needed to implement the standard. A court will have no problem with a standard that requires you to pay if you implement it, because being “standard” has no legal importance.

    Like

  17. The issue is clearly spelled out by RMS as “software patents”, not that “we shouldn’t use it just because we shouldn’t.” What’s not to understand — RMS is saying that MS could attack your work in C# as violating the law if you don’t have a license. Even if they don’t currently want to, they *could*. Are you prepared to defend C# apps in court as not violating MS patents? If not, you should stop using C#.

    The fact that ECMA, a standards making body agrees that C# is a standard does not give you a license to patents needed to implement the standard. A court will have no problem with a standard that requires you to pay if you implement it, because being “standard” has no legal importance.

    Like

  18. You say:
    “M. Stallman coming out against Mono and C# with an argument that sounds kinda like “we shouldn’t use it just because we shouldn’t.” Hmm, Ok.”

    Actually in his post he clearly says:
    ” The danger is that Microsoft is probably planning to force all free C# implementations underground some day using software patents. (See http://swpat.org and http://progfree.org.) This is a serious danger, and only fools would ignore it until the day it actually happens. We need to take precautions now to protect ourselves from this future danger. This is not to say that implementing C# is a bad thing.”

    hope it clarifies.

    Like

  19. You say:
    “M. Stallman coming out against Mono and C# with an argument that sounds kinda like “we shouldn’t use it just because we shouldn’t.” Hmm, Ok.”

    Actually in his post he clearly says:
    ” The danger is that Microsoft is probably planning to force all free C# implementations underground some day using software patents. (See http://swpat.org and http://progfree.org.) This is a serious danger, and only fools would ignore it until the day it actually happens. We need to take precautions now to protect ourselves from this future danger. This is not to say that implementing C# is a bad thing.”

    hope it clarifies.

    Like

  20. Mono, to me and probably many other people, has always appeared as more of a ‘tactical’ maneuver than an actual technology. In a sense, if Mono exists, then C# is not just a Microsoft-only technology. It is not a deliberate lock-in by a well-known aggressive software company to (yet again) try to corner the applications development market. If Mono exists, then Microsoft is not just being it’s usual evil self.

    At first that perspective seemed to gain ground, but then it appeared as if .NET was rapidly out-pacing Mono. It was growing way too fast. Suddenly, Mono is not a “real” alternative because the developers just can’t keep pace with the hordes from Redmond. Mono then becomes more of a hollow “if-only” sort of possibility, and less of a real alternative. Interesting, because it drives all of the developers right back to where MS wants them to be: just building code for Windows. Just reinforcing their near monopoly.

    Truthfully, these issues are so much more about market domination, then they are about technology. The technology may be good or bad, but it’s how it is used in the market that really matters in the end. Enough of us have been burned again and again over the years, that we’ve learned to beware of the tactics long before we’ve actually seen the technology.

    Like

  21. Mono, to me and probably many other people, has always appeared as more of a ‘tactical’ maneuver than an actual technology. In a sense, if Mono exists, then C# is not just a Microsoft-only technology. It is not a deliberate lock-in by a well-known aggressive software company to (yet again) try to corner the applications development market. If Mono exists, then Microsoft is not just being it’s usual evil self.

    At first that perspective seemed to gain ground, but then it appeared as if .NET was rapidly out-pacing Mono. It was growing way too fast. Suddenly, Mono is not a “real” alternative because the developers just can’t keep pace with the hordes from Redmond. Mono then becomes more of a hollow “if-only” sort of possibility, and less of a real alternative. Interesting, because it drives all of the developers right back to where MS wants them to be: just building code for Windows. Just reinforcing their near monopoly.

    Truthfully, these issues are so much more about market domination, then they are about technology. The technology may be good or bad, but it’s how it is used in the market that really matters in the end. Enough of us have been burned again and again over the years, that we’ve learned to beware of the tactics long before we’ve actually seen the technology.

    Like

Comments are closed.