Bobulate

Home [ade] cookies

C#, see submarine

There have been two posts about C# and mono on PlanetKDE this week (e.g. Richard and Andreas). The comments on Andreas’ entry are quite cogent, as are those replying to Richard, but it deserves a wider audience. As far as asking RMS at Gran Canaria this weekend, it’s worth a shot if you abstract the question away from specifically-C# and specifically-mono.

At issue is the notion of a Free Platform. Or perhaps an unencumbered platform. The latter is a weaker term because it does not stress the Freedom aspect of the software we write, but it might better express the uncertainty around what constitutes such a platform. There are many things that might encumber a software program or software platform. Dictionary check:

encumber 1. weight down, burden 2. to impede or hamper the function or activity of 3. to burden with a legal claim (as a mortgage)

Here’s a non-exhaustive list:

  1. Technical inadequacies (functional)
  2. Technical inadequacies (maintainence)
  3. Poor documentation
  4. Lousy management structure
  5. Licensing troubles
  6. Copyright management trouble
  7. Patents

To phrase the first four even more informally, that’s “it doesn’t work well”, “the code inside it sucks”, “i can’t figure out how to use it”, “the people working on it are jerks”. They are technical or organizational and well outside the scope of what the FSF (and sister organizations FSFE, FSFI and FSFLA) are normally involved in. Comparisons between C# and other languages on the first three points (Objective-C has a defrobnicator and C# doesn’t, nyah nyah nyah) miss the point. Project management is, I think, largely a personal choice and unless there are other indicators, I don’t think you can say “community management is better than having a single entity”. So contrasting Java’s Sun^WOracle^WJCP management process with whatever C# / mono uses misses the point again, except where it touches on those other indicators.

But then we get to licensing, copyright consolidation and patents, and these are the relevant indicators for determining whether a platform or software program is encumbered (vs. Free). For licensing, the question to ask is “is this a Free Software license?”. If you’re cheeky, you could check the Open Source definition as well. Mono is under a mix of GPLv2, LGPLv2.0 (not 2.1!) and MIT/X11, so the code of Mono itself and its derived works is Free Software (by this measure) and works linked to the libraries are not encumbered.

Copyright management is one of those topics close to project management style, but I believe that a project with a clearly stated management style — almost regardless of what that style is — is better-off than one with a confused, ambiguous or stupid copyright management style (an example of the latter being: publish all the source with no attribution and no copyright headers). In any case, the Mono project with its mandatory copyright assignment (to Novell) is clear.

Which is when we come to the last item on the list, patents. Software patents per se do not exist in the EU, but they do in the US. Other parts of the world I am insufficiently aware of. There is the notion of the “submarine patent” (a term whose use has mutated over time, see this article for instance about long-pending patents). In current use, it seems to be a patent that is not-well-known, but applies to some piece of technology that is incorporated into a standard (either official through a standards organization or as a de facto standard). That’s odd from a patent perspective, because the whole point of patent (dict: shown, open to public inspection, well-known) is to make sure that knowledge is pushed into the public domain at some point (that’s the social contract around patents). In any case, Aaron phrases it quite well:

there is a rather higher than zero chance of Microsoft taking advantage of its patents and coming down on C# implementations when and if it feels like it. they have an agreement with Novell, and Novell thinks it covers everyone but Microsoft seems to disagree. and that’s their public position.
however, we don’t know for sure. so it’s “only” a risk, not an absolute.

You will find similar statements about the risk entailed in using the possibly-patent-encumbered Mono .net framework in the comments to Andreas’ blog entry (the first comment, by STiAX, in particular).

So the whole issue isn’t about licensing, management or technical features, but purely about the risk involved with using a platform that is encumbered by patents. This is an issue on which the Free Software developer community has been either split or ambivalent for years. GIFs? MP3s? .NET apps? All encumbered at some point or in some way.

A similar kind of encumbrance would be if MIT (or Xorg) could retroactively re-license the X11 libraries to something proprietary (note: they cannot), thereby removing the platform upon which all Free Software X11 applications are built; it would be a risk, and given the importance of Free Software, a risk where the expected value of a manifestation is huge.

This isn’t to say there’s not other submarines in the water. We don’t know. Maybe we should. The known submarine should be treated with caution. And the side of caution is to treat C# as a non-Free platform to be avoided.

Tags: , ,

18 Responses to “C#, see submarine”

  1. Dan Leinir Turthra Jensen Says:

    The problem, to me, is that people insist on saying that C# is the problem. This is not entirely true. The real problem is .NET, which is a larger toolkit, useable by e.g. IronRuby, IronPython and many other languages as well. In essence, Microsoft could pull the plug on .NET and all of these would suddenly be affected – not just C#.

  2. adridg Says:

    You’re largely right. The .net platform is the real looming problem. I’m not familiar enough with C# at all to say if the language is useful without the platform as well. Nor do we know where the patents lie exactly (this is why one would have to do some actual patent searches), so it may be that the C# compiler — perhaps *any* C# compiler — is covered by the patents in question, and that therefore the language is encumbered too.

  3. shamaz Says:

    mmm… You are completely right,the only possible problem with Mono is… patents. And it’s the same with mp3, h264 and, let’s say it 90% of what we do computer. IBM and Sun have a lot of patents that could be used to attack a linux.

    Ok “M$ is 3vil !”, and IBM and Sun are part of the ‘Open Invention Network’.
    But I think RMS is not fair. If we start to be paranoiac and have to be cautious about anything which can be patented by MS, we should do the same with ANY constructor (including IBM, HP etc.)

  4. Richard Dale Says:

    I can’t really argue about how likely an anti-Mono attack from Microsoft would be. My best suggestion would be to play a game of pretending to be a Microsoft executive, and trying to come up with a business case for suing either individuals or companies that would improve Microsoft’s bottom line. You would be allowed to sue anyone anywhere. I have personally tried thinking about the problem that way and have been unable to come up with any outcome where Microsoft actually gets anything and avoids losing C#/.NET developers.

    I do take issue with the description of Mono as ‘patent encumbered’ because no one has pointed out specific patents or patent applications that actually exist. Hence, you are describing the risk as a ‘known known’, when I think it is best described as a ‘known unknown’.

  5. setecastronomy Says:

    “My best suggestion would be to play a game of pretending to be a Microsoft executive, and trying to come up with a business case for suing either individuals or companies that would improve Microsoft’s bottom line”

    They don’t have to sue in order to increase their bottom line, they just have to approach small(er) players without OIN protection that rely on mono individually (which – at least according to Miguel et al – increasingly is used outside classical FOSS channels, e.g. as an bridge to Mac OSX or gaming platforms), demanding royalities for their precious IP. Or they could increase fear, uncertainity and doubt (perhaps with lets-sue-no-lets-settle TomTom like cases) in the market place while fostering their special relationship with Novell.

    Personally, I have nothing against mono or .Net. Chances are that I will have to use it someday in my job if it really proves to be as technically superior to everything else we currently have as many Mono fans proclaim it is. But I fail to see why we should embrace technology where the party controlling the juicy parts (MS) has a track record of shady behaviour and obviously no interest in clearing the fear, uncertainity and doubt that has evolved around their IP portfolio and .Net/Mono.

    And I have to add that – sadly – the Mono developers themselves also have failed to at least get a list of potentially conflicting / infringing patents from MS. Admitted, the Samba guys had an anti-competition EU ruling at their side, but I would expect that all this often blogged about good-will between the Mono project and MS would allow for a little bit bit more openess when it comes to legal risk management.

  6. Kyle Cunningham Says:

    Software patents are a problem, not only for open source software but for software in general. Because of the system surrounding software patents within the United States I can guarantee that even the most trivial pieces of software are infringing on patents. Because of this, most large software companies have amassed huge patent portfolios which are then generally fully cross licensed with other companies to prevent legal wars.

    I think what it comes down to is that if Microsoft feels that Mono is a threat to their business they will find some way to sue Novell or anyone they can. However, I think because of the Open Innovation Network Microsoft’s options on what they can do are pretty limited unless they want patent litigation aimed at themselves as well.

  7. shamaz Says:

    Richard, there are a lot of patent regarding .net
    For example :
    http://www.patentstorm.us/patents/6898604/description.html

    You can find more here :
    http://www.patentstorm.us/assignee-patents/_Microsoft_Corporation/478/1.html

    But, there is this little pdf signed when the ECMA standard for C# (1.0 !!!!!!) was accepted :
    http://www.ecma-international.org/publications/files/ECMA-ST/Ecma%20PATENT/ECMA-334%20&%20335/2001ga-123%20&%202002ga-003.pdf

    You will agree that this is not really a good protection

    Anyway, imho nobody want to start a patent war.

  8. shamaz Says:

    Just another proof that Mono is not the only risk on a linux distribution :
    http://www.patentstorm.us/patents/7552243/description.html

    Another patent which could affect World of Warcraft X)
    http://www.patentstorm.us/patents/7549924/description.html

    There is also the “1-click ordering” patent of Amazon and lot of other silly patents.

    The question is : is focusing on Mono a rational attitude ?

  9. STiAT Says:

    You spelled my nick wrong :-( ..

    Anyway, the credit for this goes to zdnet (see source I mentioned).

    I’ve done researches for a quite long time now. I live in Europe, but I’m very interested in this topic, since I can only see harm in patents rather than protection.

    It is known, that Microsoft charges companies in example for the linux vfat implementation (look for the vfat patent and google up who bought the license – a lot of vendors selling linux embedded devices). This is forbidden by the GPL, and by this the company would loose the right to redistribute the kernel at all, since the GPL covers patents as well.
    Microsoft went around this problem by setting up NDAs with the companies they charged.
    The first public example was TomTom, since they denied the silent payment – a way was found to still sattle this.

    I think the same way it could go for .net / mono in Linux. Microsoft could start charging companies using .net in the products they’re selling – if mono really violates patents by microsoft.

    As you say, and as Aaron mentioned: It is only a risk. There is no way to be sure they’ll start charging companies or entities as you and me (i think that’s the case which will very likely never happen).

    Either this is a strategy by microsoft to get some extra cash, or to make linux expensive to use in your own products if you get sued about patents by microsoft, and win some marketshare (long-term). Who knows what Microsoft is really planning – and this is one of the major problems I can see.

    That’s my point of view about this, and of course I know there are plenty others. Comments and constructive critism is always welcome.

  10. joel Says:

    In response to Richard:
    The issue is more complex than just finding a case where MS would sue a user/distributor of Mono et al. The problem also encompassses the fact that MS is (and has proven) more than willing to simply rattle the sabre of *possible* lawsuits. If MS can give the impression that they *might* sue someone for infringing on unspecified patents, then they can accomplish the same goal as if they actually did sue. They would not actually care about the patents being infringed, but would be concerend about how to leverage them to drive potential customers away from competitor’s offerings.
    In short, by simply making noises, MS could cast doubt on the use of the platform without having to risk any actual action or retaliation by the OIN.

    This is similar to their approach in the past of hinting that the Linux kernel infringes on their patents, but taking no overt action, or even enumerating said patents.

  11. Ciprian Mustiata Says:

    I really see anti-mono complains pointless. I start from here: https://lists.ubuntu.com/archives/ubuntu-devel-announce/2009-June/000584.html

    If we will use the logic of patents, probably you should not use OpenOffice as it is possible to be covered on patents by Microsoft and Novell (as those were the first two main word processors).

    I really don’t get affraid of a Mono attack from MS. It will happen that MS to attack Mono? Mono will create a dalvik like solution and will get rid of Microsoft if it will ever happen that MS will attack Mono. MS will attack Windows.Forms? Few applications will be affected.

    I really believe that Mono is not a problem. It is simply an opensource virtual machine/compiler that follows a specification.

    I cannot imagine that we will not use moc as Nokia can attack us as it can be patent encumbered. And no one will be as honest to put this talk straight.

    The biggest problem in my opinion is that we still rely on nVidia cards with proprietary drivers to render two triangles that appear on any desktop. I also get afraid that there are a lot of areas that OpenSource in itself have no good replacement (or I don’t know it), even it start going to change.

    Here is a bit of hypocrisy because we always tend to look to other’s projects (do you really use Mono in your daily life and you are concerned about it’s viability, I don’t believe you!) instead simply find a technical solution that works as well. The biggest issue of Qt till 2009 was the license. GNOME was here not as GLib + C was such a great platform, but just because Qt was closed and proprietary. And still is. Are you not concerned that a phone corporation guides your preferred toolkit future? What if it will cease (or slow down so deeply) the desktop counter part and will improve only Qtopia side?

  12. nilsson Says:

    “because no one has pointed out specific patents or patent applications”

    found this on a mono blog post the other day:
    http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=/netahtml/PTO/srchnum.html&r=1&f=G&l=50&s1='20030028685'.PGNR.&OS=DN/20030028685&RS=DN/20030028685

    IANAL, but the patent application does seem to cover .Net

  13. k3ninho Says:

    “Software patents per se do not exist in the EU”

    As such, computer programs are not patentable. However, the European Patent Office is granting patents for whole systems where the inventive part is in a computer program within the system. Infringement of the patent is done by using the computer program in a general-purpose computer. The twist comes in the way the EPO patents have legal force: in each member country, an EPO-granted patent application can be registered as a national patent, having the full effects of a patent examined and granted in that country. The real test of whether software patents exist is whether a court case for infringement (often paired with the patent’s validity) in your country is rejected for being a patent for a computer program.

  14. maninalift Says:

    @shamaz “The question is : is focusing on Mono a rational attitude ?”

    Yes.

    (1) Widespread use of a language (c#) or framework (.net) is a greater danger than patents regarding e.g. a method of finding printers on a network. I think the X11 analogy is a good one.

    (2) IANAL but I guess that a direct clone of another product for aspects of which patents were registered is going to look like a much clearer case than the same functionality included in a different product

    (3) Microsoft has shown that it is inclined to use legal action or theats of legal action to strengthen its position, to extract fees or to damage its competitors

    Sure you can use stuff you find lying around but don’t build the foundations of your house from it cos the owner might come ’round and ask for it back.

    p.s. especially if the bricks you find say “badass motherfucher with a recking ball” on them

    p.p.s. ok so I pushed the analogy a bit to far :)

  15. maninalift Says:

    erm… fluffed that, should read

    p.s. “belongs to badass…”

  16. Eduardo Sebrango Says:

    . But I fail to see why we should embrace technology where the party controlling the juicy parts (MS) has a track record of shady behaviour and obviously no interest in clearing the fear, uncertainity and doubt that has evolved around their IP portfolio and .Net/Mono.
    —- —- —-

    I think that this part above is grossly overlooked.
    We have many alternatives for frameworks, why do we need one that doesnt bring any new yet whose ‘juicy parts’ are controlled by a company which doesnt mind free software on Windows but is terrified by Linux.
    Take away technical merits (It’s not like Mono/C# offers features never before available on X11 platforms. Qt, GnuStep, and Python are well supported) and potential liabilities and ask yourselves just why we need for .NET/Mono to be an integral part of the desktop.
    What does it bring to free software than we dont have?
    And no, please dont say more developers.

    I use both Opera and Skype on Linux and pay for proprietary games too. I have no problems using non-free software on top of Linux so its not a freer than thou thing.
    A plugin/apps is one thing, an underlying infrastructure is another altogether.

    Problem is this isnt going to go away any time soon.
    De Icaza is VP at Novell, creator of Gnome and of Mono so you know he wont budge and I dont see anyone from those three orgs stepping out of the company line.

    Since Ciprian mentioned hypocrisy (then proceed to totally misrepresent/lie about Qt which was dual licensed both GPL and commercial in 2000-2002 with Qt2.2. The LPGL was added in 2009.) and there is quite a bit of irony in the fact that De Icaza started Gnome because he thought that the then non-free Qt toolkit wasnt free enough and his response was to start a competing desktop that was ‘freer than thou’ or KDE. I wonder if the reaction he received when he split the community was akin to the one he dishes out now that he is on the other side of this debate.

    Seriously Ciprian, I dont agree with your post but that’s life. However, I find your last paragraph to be absolute false garbage sentence after sentence.

  17. Ciprian Mustiata Says:

    If you read write the Mono’s licenses, from the first day of Mono project, they were always more open/free and are fairly open and possible to use as LGPL from the first days. The single part that is proprietary is CLR implementation but is still opensource. All the rest are more free (at least for developers/companies) as most of code is GPL/LGPL/MIT as far as I’m concerned.

    My point with hypocrisy is that if the company of potential treat was not named Microsoft, everything would be all right. Nokia at least theoretically can become the same treat for Qt/KDE desktop as is Microsoft for GNOME. Even if Mono will be squashed, etc. supposedly because there is no workaround (there is GSOC project to run Mono on LLVM this year, but this is not point) and the project will cease to exist, for certain it will affect much less than is in itself Qt for KDE desktop. I am completely sure that Nokia have a good faith, but that good faith is not signed on a paper. Mono in itself have less reasons to be concerned as technology.

    MSIL and it’s JIT it will enforced? There is Grasshopper and LLVM that can substitute the Mono JIT. It’s some libraries? As much as don’t cover Linux desktop, there is no complain, can be rewritten replacements.

    The infrastructure possible future treats in itself cannot make a project to die. I give to you the example of Wine. Wine cannot implement the SEH Windows’ exception handling as were patented by Borland/CodeGear/Embarcadero. Does it make Wine to not run almost any application/game? Wine does not exist because of Microsoft? It always exists Wine and there was FUD around.

    The companies I’m really concerned that can harm as they DEVELOP on opensource desktops are: Apple, as they own CUPS which is fairly important piece of Linux desktop, NVidia as the best performance today on Linux can be achieved only on their proprietary drivers, IBM with their Lotus Symphony: they do a new UI for OOO but they don’t contribute as much back, and probably Nokia.

    OOO for me seems the most vulnerable piece of software around of patents, for sure implements a lot of format specific implementations. Office as far as I know is a much bigger “cash cow” than .NET and if I will be afraid of an attack, it will be to use Abiword or KOffice but with only an obscure format remade as to not store bolded fonts as they were an extra attribute patented by an obscure company.

    Linux kernel maybe, if we trust Microsoft. But what should mean this? That we will not use Linux as there is FUD against it? Who wants FreeBSD? I still wait for a GNU Mach kernel which seems never to happen to replace those FUD patents treats, but till then, I am not concerned.

  18. Ciprian Mustiata Says:

    Just in case you’re not up to date: http://port25.technet.com/archive/2009/07/06/the-ecma-c-and-cli-standards.aspx

    I’m glad that it is a spot of light, but still someone will see a submarine around.