C# and CLI Now Under Community Promise

By | 2009/07/06

I just read here and here regarding a move by Microsoft to put the ECMA 334 and 335 specs under the Community Promise. From the Port25 blog:

ECMA 334 specifies the form and establishes the interpretation of programs written in the C# programming language, while the ECMA 335 standard defines the Common Language Infrastructure (CLI) in which applications written in multiple high-level languages can be executed in different system environments without the need to rewrite those applications to take into consideration the unique characteristics of those environments.

This means that the core C# programming language and the Common Language Infrastructure are now legally free to use, without fear of being sued. For those interested, the full terms of the Community Promise are found here.

One major point that you’ll notice in the Community Promise agreement is this:

Q: Is this Community Promise legally binding on Microsoft and will it be available in the future to me and to others?

A: Yes, the CP is legally binding upon Microsoft. The CP is a unilateral promise from Microsoft and in these circumstances unilateral promises may be enforced against the party making such a promise. Because the CP states that the promise is irrevocable, it may not be withdrawn by Microsoft. The CP is, and will be, available to everyone now and in the future for the specifications to which it applies. As stated in the CP, the only time Microsoft can withdraw its promise against a specific person or company for a specific Covered Specification is if that person or company brings (or voluntarily participates in) a patent infringement lawsuit against Microsoft regarding Microsoft’s implementation of the same Covered Specification. This type of “suspension” clause is common industry practice.

I find this to be a big step forward for the pro-mono camp in that they now have a document to show that the implementation of and distribution of mono applications is not and will not be a legal issue. This gives them reassurance as individual developers, and distribution maintainers that their work will not be called into question by the patent holders in the future. While this should mean that the mono wars should finally stop, I have no faith that they actually will. I know full well that the people on the anti-mono side of the fence will grasp for something else instead. It is the same infighting the community has been doing since the beginning, and if it isn’t mono it’ll be something else. As a group I don’t think we are capable of simply getting to work without bickering about something.
To the folks in the mono camp I say congratulations. Keep up your hard work! For those that are still determined to fight against it, please try to find something productive to do with your time.

19 thoughts on “C# and CLI Now Under Community Promise

  1. sidi

    "For those that are still determined to fight against it, please try to find something productive to do with your time"

    Noone is fighthing AGAINST Mono, some people just fight the for safety of their GNU/Linux distribution. This being said, a blog post announced that C# would be under the MS CP. It's still not the case according to microsoft.com, since it is not listed there. Maybe you should check your information before spreading it 😉

    PS : i'm just hoping that microsoft.com will say C# is free to implement. Not because i care about Mono (i don't need it so i'm not much concerned), but because i care about seeing Ubuntu and Debian being safe from sue because of Mono.

    And if the Mono people had been a little more honest, they would have waited for C# to be on the MS CP before distributing Mono as LGPL.

  2. antistress

    "And if the Mono people had been a little more honest, they would have waited for C# to be on the MS CP before distributing Mono as LGPL."

    Agree.
    They've said "everything is fine" whereas they knew it wasn't and were working with MS to find a solution

  3. Franck

    There are still two points (but I hope it will be cleared) :

    – the promise only applies to C# and CLI, not the extensions. So Mono will have to be split into complying part (safe) and the rest (potentially unsafe, but quite in the same way as any new line of code is potentially unsafe)
    – the promise only apply if the C# and CLI implementations are complete, not partial. So Mono will have to make it clear that they are complete implementations, otherwise the promise does not apply…

    Hope then can.

  4. sidi

    And let's be crazy and believe that the Mono developers will state what is unsafe, but since they say all their code that violates patents is safe from day 1, I have some doubts regarding this…

  5. Zac

    I am no fan of mono but I agree. The energy put into fighting mono and Microsoft should be channelled into making the linux platform better and more appealing for the average consumer, getting OEM's to pre-install linux, positive marketing, etc, that is, to move forward and not be sidetracked, because that is exactly what Microsoft wants people to do.

  6. HadEnoughofMono

    For crying out loud… A blog has questionable legal worth in a court, and the official link has no sign on C# or the CLI…

    When it's in big letters on Microsoft's web page, I'll believe it.

  7. Josh

    Why would anyone WANT to use Mono anyway? I just don't get it. Use Python or Java. They're both better than C#/Mono, and neither directly or indirectly helps Microsoft.

  8. atoponce

    I don't get you people. Even after a direct promise from Microsoft themselves, you still don't believe it! Yet, Microsoft has said that our Linux kernel violates over 200 patents, yet you're not afraid to run that. How about running Samba- a direct implementation of the CIFS protocol- A MICROSOFT PRODUCT!!! Not afraid to run that either, are you? The FAT filesystem? Yeah, remember TomTom was sued for using that in their GPS devices? NTFS anyone?

    Hypocrites.

    Floors me, I swear. Microsoft uses FUD about the Linux kernel, and we call bull shit! Then, all of the sudden, in our very own community, we spread our own FUD vicariously for Microsoft about Mono, when we have absolutely ZERO evidence to show any interest from Microsoft in taking Mono out of GNU. And Microsoft doesn't have to do a damn thing.

    Here's the thing, for all you anti-mono, FUD slinging monkeys- show me a patent number where Mono infringes C# AND show me intent from Microsoft to take Mono out of GNU, THEN and ONLY THEN, will I take your argument seriously. Otherwise, you're no different then any other FUD loving whore.

    Oh, while you're at it, chew on this for a while (memorize paragraph seven while you're at it): https://lists.ubuntu.com/archives/ubuntu-devel-an

  9. sidi

    Aaron Toponce : you signed the Ubuntu CoC incase you forgot : https://launchpad.net/codeofconduct/1.0.1 If you can't speak a respectful and polite maneer, feel free to revocate your signature. If you keep insulting other people because of their differences of opinions, I will complain to the Community Council.

    Microsoft did NOT promise C# was free (as in freedom) to use. And even if it was in MS CP, there would still be cases when you could use Mono accordingly to their LGPL license and get sued by Microsoft for patent violation (if you embed a part of Mono in another project, which would be a partial implementation of C# and wouldn't be coverable by MS CP).

    As for FAT / NTFS, I don't use them ! As for the 200 patent violations in the Linux kernel, I'm still waiting for proofs from Microsoft. Up to you to believe all the words they spread, I personally am a rational person and only relay on facts. If they proof there is a patent violation in the Linux kernel, then we will see.

    By the meanwhile, Mono implements patented software without explicit agreement. I don't see what you don't get here, Aaron.

  10. Josh

    @atoponce: I can't speak for any other anti-Mono folks, but I oppose Mono because I oppose Microsoft. I'm not afraid of their patents. My goal is to promote the dissolution of the Windows monopoly, and supporting .NET is not a means to that end. .NET is a Microsoft product end-to-end. Even if it is standardized, supporting Mono is tacit support for .NET and Windows. Windows provides the only official platform for .NET and that will not change.

    It isn't the same as SAMBA anyway. SAMBA reverse-engineered the SMB/CIFS protocol, thereby opening up Windows networking to additional platforms. Mono does no such thing. All it does is create an additional platform for which to develop Windows applications. As soon as Microsoft decides to extend .NET away from its standardized base, Mono will wither and die.

    Besides, as a developer, there's nothing in C# or .NET that is even worth my time or interest. It's a boring, cheap imitation of Java, that can't even get its garbage collector to plug up memory leaks. It's another pale imitation of innovation produced by a company that exists solely to gobble up competition.

  11. Aaron (not atoponce)

    I am definitely no expert in this, but i just read http://en.wikipedia.org/wiki/C_Sharp_(programming… and it seems as though since Novell and M$ have a deal with each other and Novell created Mono, if M$ really wanted Mono to die they would have destroyed Novell by now, which I have full confidence they could do. Whether you like it or now M$ has the means to destroy most other software companies, some exceptions I am sure. They have done it before. M$ makes a lot of promises some it keeps and some it breaks. However so far any promises they have made about C# and Mono they have kept. If they are going to attack GNU/Linux do you not think they will go about it some other way that is proven and more widespread than mono, which is a weak argument for them anyways. Why not FAT lawsuits, why not any of their other 200 patent infringements.

    Does the community always assume that M$ is going to do the exact opposite of everything they say? They say they will sue for patents in the kernel and we don't believe them, then they say they are not going to sue for C# patents and we don't believe them. Sounds like spin city to me.

    Like I said I am no expert just wanted to throw my thoughts out there. My logic may be all wrong my information may be all wrong, but I do not think I am spinning anything to make a point. M$ hates linux and they will find something to attack if they want to, they have the money to do that. Hell they could probably create someone to corporate espionage and put M$ code in a project just so they could sue.

  12. jpeddicord

    From UDS:

    "This was mostly a discussion that went into various different directions. The Ubuntu Code of Conduct came up and it was discussed how new users sometimes are a bit too diligent trying to enforce it on everyone else in the community. It was agreed that the CoC is a guideline on how people should conduct themselves and that it shouldn’t be used to through books at people, so to speak. Keeping users and developers motivated was also discussed, and the possibility of some kind of showcase of success stories from users around the world."

    Ahem.

  13. Josh

    Microsoft doesn't want to destroy Linux. Why would they? That wouldn't be a very smart business move, especially considering that they used Linux's existence as a legal defense against arguments of monopoly. Linux is not much of a threat to Microsoft. And a stupid notetaking application is certainly not a serious concern to a multi-billion dollar company like Microsoft. You have to think bigger, and you have to trace it back to the money.

    On the enterprise server, Microsoft continues to struggle against Java. This is where the real money lies and, since the future of computing is in distributed computing and web applications, Microsoft would love to see .NET gain more traction. .NET is, after all, native to Windows and only partially (and unofficially) ported to competing platforms. If you were developing a web application using .NET, your IT group is much more likely to purchase a Windows box to run it on. And they would be right to do so. This is just an extension of .NET's attempt to fight Java on the server. And what hurts Java ultimately hurts Linux (and Solaris) on the server. Anything that promotes the use of C# or .NET over Java is ultimately a win for Microsoft, regardless of who is using it… and HOW they are using it.

    While this argument mostly concerns Mono on the desktop, my point remains valid: Microsoft is attempting to gain credibility with developers by claiming that C# and .NET are somehow superior to Java (which it most certainly is not), and now hordes of free software developers — led by an increasingly self-defeating Canonical — will be drinking the kool-aid.

    Extend, embrace, extinguish. This situation is no different, except that Microsoft has spent millions lobbying standards organizations to convince good people like yourself that they're just trying to play nice. Don't buy it.

  14. Josh

    Err… that's supposed to read: Embrace, extend and extinguish.

  15. atoponce

    First, If calling out FUD violates the Ubuntu Code of Conduct, you won't need to tattle tale on me, I'll revoke it personally. I have no tolerance for FUD, and the Code of Conduct only talks about how to handle situations in projects representing Ubuntu specifically. It does not have any influence over my actions that do not pertain to Ubuntu, for example, driving my car, or calling out FUD in regards to Mono. I'm not violating the CoC.

    Second, in the software world, you're bound to violate patents. Did you know there's a royalty-based patent on popup windows? Everytime you call the JavaScript "alert()" function, you're violating that patent. There's no doubt in my mind that GNU and Linux both violate all sorts of software patents. However, without knowing the patent, how do you know you're violating them?

    Third, I never mentioned anything about C# or .NET. I only specifically mentioned Mono. Mono is Free Software as defined by the Free Software Foundation. The question is not the freedom of Mono, but whether or not Microsoft will use its patents against the Free Software community, and here, we have WORD FOR WORD DIRECTLY FROM THE HORSES MOUTH that Micrsoft WILL NOT use the portions submitted to the ECMA against the community. If you are familiar with the Mono stack, and I am, you'll learn that the vast majority, and I'm talking roughly 90% of Mono, is based on the ECMA standard. For those parts that aren't, such as WinForms, ADO.NET and ASP.NET, they are not required for use, when building a Mono application. Further, when using only the ECMA stack, your application will also run on the .NET platform.

    Fourth, you stated yourself that you're waiting for proofs from Microsoft to back up their patent claims against the Linux kernel. Yet, you have no problem with tossing out Mono, although it falls under the exact same camp. Where's the proof? Where's the patent that Mono is infringing? If you're that eager to throw out Mono, when why not throw out the Linux kernel? Both SUPPOSEDLY infringe patents, but we have yet to see a single patent number from either project. Thus: Fear UNCERTAINTY and Doubt..

    So, to use your words:

    If they have proof there is a patent violation … then we will see.

  16. atoponce

    Why oppose Microsoft? Seeing Mono as the "evil empire" just because they're mainstream seems very fan boy to me. Further, we're not supporting .NET. We're supporting Mono. They are different projects. .NET is so much more than Mono. What we have done, is taken ECMA standards, and brought them to developers in the Free Software world. However, you can't call garbage on one product, and embrace another. AJAX is possible, because of the XMLHttpRequest developed by Microsoft. The Linux kernel uses the DOS partitioning structure, developed by Microsoft. The list goes on, and on, and on. The wonderful thing about development, is taking existing implementations that others have innovating on, and improving them.

    While it is true that Samba is reverse-engineered, that does change the fact that it could potentially violate patents. Microsoft has made no such agreement with the community regarding Samba and OpenChange. For all we know, these products are just as patent infringing as Mono or the Linux kernel. While Mono is a direct implementation of the ECMA standards, and not reverse engineered, it's still in the same camp as every other Microsoft product we have at our disposal. What about WINE- a Windows emulator. Per the Windows Vista and Windows 7 EULA, they are NOT to be virtualized or emulated in any form. WINE makes it possible to directly violate that agreement. What do you think Microsoft will do?

    My point is this- we could spread FUD all day long on just about every last product GNU/Linux has deployed. Or, we could remain practical, realizing that many of these implementations are based on standards, and Microsoft just isn't interested in suing end users or developers. The only ones at any risk, whatsoever, would be companies, like Red Hat or Canonical. And yet, when Microsoft slings the FUD, we call it out, and wait and see. Year after year after year, nothing. And yet, we, meaning the community, throw out our own FUD at ourselves. How productive is that? Please. When the case of patent infringement is brought to the table by the patent holder, then let's look at the claims, and make the adjustments as needed. Until then, let's ditch this FUD slinging war, and get to work!

  17. anonymous

    Does nobody else see it the way I do? If the pro-Mono camp acknowledges the value of the CP, they should also acknowledge that it is a response to uproar on behalf of the anti-Mono commiunity! This is a WIN-WIN situation folks! Except that the Mono community now has a lot of work on their hands splitting it up into different parts… Well boo-hoo 😛

  18. Stefano F. (tacone)

    I believe you're unfair in your post.

    The Community Promise is a step forward, but not big enough to close the issue. See the FSF comments on that. FSF doesn't have to be right on anything, but they have lawyers and that means they are probably more qualified in taking a stance regarding mono.

    Finally, the CP is the proof of a need. So who said it was needed actually was right.
    On a final note, applications like Banshee (for example) fall out of the cited ECMA specifications and shuold be considered actually not-safe.

    Frankly, I'd advise you to find someone productive yourself instead of mindless bashing a whole category of people basing on your lack of understanding about the matter.

Comments are closed.