DISQUS

Miguel de Icaza's blog: From Microsoft: C# and CLI under the Community Promise - Miguel de Icaza

  • Stony · 5 months ago
    Where do the basic classes like System.Xml, System.Data etc sit in regards to this decision? Are they covered too?
  • Sergio · 5 months ago
    I had the same question so I checked the ECMA-335 spec. From what I can see the CLI includes the assemblies mscorlib, System, and System.Xml so I guess those are the parts of the framework covered (I'm I right?). If that's the case, it's a lot of classes but still leaves out a huge part of .NET.
  • Stony · 5 months ago
    You're more observant than I am, lol. I checked too and I didn't notice that XML file listing the classes. You're right there's a lot missing, but it is still a pretty decent foundation to build on. Although I would imagine that a lot of projects use System.Data.
  • Avatar X · 5 months ago
    This is great news indeed. i wonder what excuse Boycott Novell and RMS will have to come up with now. This pretty much puts an end to most of the debate with you, mono and Novell getting impaled?. or that will still proceed like planned? :P
  • migueldeicaza · 5 months ago
    Facts have never prevented Roy from making something up. That is not about to change. If anything, this will be presented as irrefutable proof of the existence of the body snatchers.
  • Bert · 5 months ago
    And not to forget that they will continue to keep harping on the ASP.NET, ADO.NET and Winforms implementations (which are not used in any gnome-application anyway but they don't give a monkey's about it). And of course, Microsoft will still be the great demon which you can never trust, and which has still something hidden in the small print and whose technology is, of course, tainted until the end of time. Sun and IBM are the good guys because they are basically welfare groups which are completely supporting the free software idea, making all their stuff free without any hidden agenda. The world is just that simple - the good ones and the bad ones.

    I can hardly wait reading Boycott Novell the next days ...

    Congratulations to all of the mono team. This is a great day. March ever on ...
  • Avatar X · 5 months ago
    Hahaha....i am with Bert. I cannot wait reading not only Boycott Novell response (tangent or whatever), the FSF site and of course Slashdot.... :D

    *UPDATED*

    After reading both Boycott Novell and slashdot takes on this i found myself baffled....you were 100% right Miguel..
  • jpeddicord · 5 months ago
    And the Boycott Novel blog explodes into a flurry of confusion.

    Excellent to see. Now the wars should finally end.
  • Avatar X · 5 months ago
    If only XKCD made a strip page out of it with him ending with the classic "FFFFFUUUU" expression after reading the announcement.
  • z · 5 months ago
    Wohoooo! Finally! Thanks for this good news. I hope now all this mono bashing will come to an end.
  • jay · 5 months ago
    Yeah, thank fucking god (or Miguel, same person anyway). Will this finally shut up the pansies and Microsoft haters? Probably....not. Oh well. Thanks for keeping us in the loop.
  • Bevan · 5 months ago
    Wow, that is great! Time for some humble pie from the Nay sayers (yeah... like we will ever see that). Splinting the code is probably not a bad idea anyway, aside from making the patent situation clearer, it means that people can just use the C# part if they wish.
  • jay · 5 months ago
    What about Winforms or .net platform
  • David · 5 months ago
    You *are* a man of action!
  • KeithCu · 5 months ago
    This is great.

    In my Lang.Net 2009 talk in April: http://keithcu.com/wordpress/?p=135

    I spent a lot of time talking about the FUD around Mono, and how it hurt Microsoft: many customers want the option of writing cross-platform code, and so they were choosing languages other than C# because of the Mono patent risk. (A risk that other platforms like Java do not have.)

    Glad to see they have fixed it -- presuming that they have.
  • Joemoe · 5 months ago
    Dude I read your slides and your opinions damn near match my own in every way. And I don't even know who you are!
  • digital19 · 5 months ago
    Congratulations!!!!
  • Mike · 5 months ago
    Microsoft has demonstrated about as completely as a company possibly could that their word cannot be trusted. If they do decide not to sue, there is one reason and one reason only--they think it will be better for them if they don't. To me this seems like a big risk to take for a technology of questionable utility.
  • Ramsees · 5 months ago
    "Microsoft has demonstrated about as completely as a company possibly could that their word cannot be trusted."

    So does IBM and you people say nothing about it.
  • Alan · 5 months ago
    That statement is legally binding in most jurisdictions. Their word has nothing to do with it anymore. It's not a promise, it's a legal statement.
  • KeithCu · 5 months ago
    That is ridiculous. Microsoft is a hard-charging company, as is Sun, Apple, etc. But these legal documents mean something -- if words mean something. Even if they did try to sue now, these announcements would completely undercut their case.

    If you wear a tinfoil hat, you are too insane to be posting comments on websites.

    Microsoft is not the big evil company you think it is. It is filled with smart people who go to work every day simply trying to make software better. It wouldn't have succeeded otherwise.

    There are multiple reasons for them not to sue; I already mentioned a reason below: it helps adoption of C# in general.
  • oliver · 5 months ago
    "Microsoft is not the big evil company you think it is. It is filled with smart people who go to work every day simply trying to make software better. It wouldn't have succeeded otherwise."

    Actually it's also filled with smart people who know how to screw others without breaking the law (too much). That's a pretty good recipe for success.
  • Vince Cislaghi · 5 months ago
    [Removed offtopic debate about Office]
  • KeithCu · 5 months ago
    And you might not like MS products, but check out the reviews of their products in the 90s when I worked there. They won all the awards. Word was rated faster easier to use than WordPerfect. SQL Server is easier to use than Oracle. Visual Basic was a product unlike anything else on the market. The Java VM was rated all around better than Sun's. I could go on and on.

    The problem is the age of the codebases, the mess of C++, backward compatibility constraints, the lack of technical leadership anymore, etc. Microsoft has huge challenges, but they have smart coders.

    If you want to understand things in more detail, check out my book.
  • migueldeicaza · 5 months ago
    The Community Promise is legally binding, you probably had no time to read the FAQ as you were having a panic attack caused by an abuse of troll pills:

    http://www.microsoft.com/interop/cp/default.mspx

    From the document:

    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.
  • Ed Ropple · 5 months ago
    >> you probably had no time to read the FAQ as you were having a panic attack caused by an abuse of troll pills

    This? This is funny. :D

    Seriously though, this is awesome news.
  • shanefagan · 5 months ago
    Its great to have the clarification, Banshee and F-Spot are very good programs that I use a lot. Its good that the patent uncertainty surrounding patents is lifted and we can develop without any fear. The legal guarantee makes me feel a lot safer. Thanks for information Miguel its great news.
  • Joemoe · 5 months ago
    To me it seems Miguel is a master of getting Microsoft to do things that improve the FOSS cause. He is kind of a snake charmer.
  • Jason · 5 months ago
    Why do you expect a corporation to work in anything but it's own interest? It's a good thing that you can expect Microsoft to act in it's own interest here. Mono and open source have been so successful that it's now in Microsoft's best interest to make nice with everyone and give Mono and everyone else all the rights they could possibly want. And you can trust Microsoft to continue to act in its own interest and keep the situation as such.
  • Ramsees · 5 months ago
    Now the mext step, include mono in GNOME.
  • Joemoe · 5 months ago
    It's been in Gnome for awhile dude.
  • King_InuYasha · 5 months ago
    I am extremely pleased about this. Perhaps now all the idiots bitching against Mono will shut up in the development lists I'm subscribed to. It is sickening how much hate and FUD is going into anti-Mono sentiment, when they have no idea Mono was developed BEFORE the MS-Novell agreement.

    Even if I don't like Novell's agreement with Microsoft too much, I still like Mono!
  • Chenthill · 5 months ago
    This is a great news!! This should clear-up the confusions which many people had. All credits to miguel and everyone who made this possible :)
  • Someone · 5 months ago
    [Removed troll post]
  • Carlos · 5 months ago
    [Removed reply to troll]
  • Kostas · 5 months ago
    [Removed reply to troll]
  • Jan Wildeboer · 5 months ago
    [Troll deletion]
  • Dylan McCall · 5 months ago
    You guys are really awesome. Kudos for actually approaching Microsoft and working WITH them to get this sorted. It's awesome when people seriously apply that spirit of cooperation free software is so good at creating.
  • migueldeicaza · 5 months ago
    Amen.

    I wish people were more forward looking and looked at opportunities instead of dwelling on the past.
  • Joe Chung · 5 months ago
    Looking forward to the ECMA-only Mono! Thanks for the update, Miguel!
  • Max · 5 months ago
    Can you say where the newest language features (LINQ, lambdas) fall with respect to the split?
  • Greg · 5 months ago
    Has anybody hired a professional lawyer to verify the terms of the MS Community Promise, and published the results of their investigation? If not, would it be possible to ask Novell (or OSI, FSF?) to do so, and publish the results somewhere.

    The quote below is an example that makes me slightly concerned, and aware of my ignorance of software law.

    "Q: What if I don’t implement the entire specification? Will I still get the protections under the CP?
    A: The CP applies only if the implementation conforms fully to required portions of the specification. Partial implementations are not covered."

    My concern is, in the patent license, what is the actual legal definition of "implementation conforms fully". I assume that there are no loopholes, that would let Mono be labelled a non-conformant implementation.

    Anyways, I'm happy to leave the legalese to the experts, so that us software developers can get back to coding. Great to see that a resolution is close.

    You and your team's work is truly inspiring - keep it up...
  • Luis Espinal · 5 months ago
    "Q: What if I don’t implement the entire specification? Will I still get the protections under the CP?
    A: The CP applies only if the implementation conforms fully to required portions of the specification. Partial implementations are not covered."

    It means what is says. An implementation needs to fully comply to the required portions of the specification. It needs to implement what is required in the specs - functionality, behavior, semantics. The later two (behavior and semantics) are the most important ones. That is, you cannot deviate from behavior and semantics that are deemed required by the specs.
  • lanjoe9 · 5 months ago
    I still don't trust Microsoft (and I never will), but this is indeed excellent news (and it's not just a good idea anymore, it's the law :P ).

    Congrats to all the people who made this possible :)
  • Zorg · 5 months ago
    [Removed troll post copy pasted from reddit from IP 76.226.65.86]
  • KeithCu · 5 months ago
    Mono is a free runtime with zero lines of Microsoft code in it. It is also much better than Java, and MUCH better than C/C++. Maybe we like Mono because it is a good runtime? Did you ever think that we draw our opinions based on the technical merits of things?

    And how can we be supporters of Microsoft, when we support a product that actually helps Linux programmers and even slightly undermines Microsoft? The fact we are happy that MS has done something good for free software makes us Microsoft astroturfers? You have poop for brains.
  • migueldeicaza · 5 months ago
    Well, technically, since Microsoft started open sourcing code like ASP.NET AJAX Client Library and ASP.NET MVC, we now ship Microsoft's source code with Mono :-)

    The code is licensed under the terms of the OSI approved, FSF-approved Microsoft Permissive License.
  • James · 5 months ago
    [Removed reply to troll]
  • Justyb · 5 months ago
    Hey KeithCu,

    Glad to hear a win for Mono. Keep up (to all) the good work. However, I'm a C++ kind of guy so I did want to comment that I'm sorry to hear that you feel C++ is LESS better than Mono. I think runtimes are great and all but I'm a 'working with the little fiddley-bits of a system' type programmer. Runtimes seem to abstract way too much at times and at other times it seems not to go far enough. I understand that one can use P/Invoke (?) for Mono. I that's great, but then in the end what's the point of going higher (in abstraction), if you're going to be doing a lot of low level stuff too.

    Don't get me wrong, I think runtimes have a great advantage of being able to do GUIs and interactions with the user in high level and working with C/C++ in low level; sort of like a bridge between the gaps. I'm sure for a lot of people this is common use case.

    But I guess to each his own. Again congrats to all!

    PS: Curious where is Lambda expressions and LINQ as far as community use goes? I don't see either in the ECMA PDFs. Are they moving to the non-ECMA package?
  • KeithCu · 5 months ago
    [Removed reply to troll]
  • Danno · 5 months ago
    Yes, it's quite short:

    Step 1) Remove head from ass.
  • Carlos · 5 months ago
    Dude, this is not the way to convince us or similar. You are only telling a bad joke.

    I really can't see how you can just come and throw such a sentence like that, here, we are being *serious*. And also, probably you should go and read the actual facts, and post your paranoia in other place.

    I would like to see the ip address of this funny guy ;-)
  • Dan Farina · 5 months ago
    I'll be waiting for the SFLC or one of the other free software legal big-names to chime in, but this tentatively makes me feel better about Mono applications and Mono development in general, as I was also in the skeptics camp (and would probably not want to use any dubious APIs that you mention). Well done.
  • Mick T. · 5 months ago
    Yes it's good news. But, this is Microsoft we're talking about, they can just go off and write their code to any standard they want, or even to an undocumented (at least to the public) standard, and make your code incompatible. I think Mono is a great achievement, and that .Net is an interesting programing environment. But, MS has in the past f**ked over their partners to benefit themselves, and changed API to benefit themselves. What's to stop them from doing to the same to Mono and other Open Source implementations?
  • KeithCu · 5 months ago
    Well:

    If they are not careful, doing things like can break their cross-platform .Net and Silverlight strategy. Having a cross-platform runtime provides them something important to compete with Java.

    Mono is already implementing .Net 4.0 features, so the problem you are talking about is only theoretical and very far down the road. At some point it won't even matter if they were to do that because the core of the runtime becomes mature.

    Mono runs on Windows, so it doesn't matter to Linux programmers what the MS runtime does. Sure it is convenient to run Tomboy on the MS runtime, but that isn't necessary.

    MS's tools division is the best group wrt to free software. MS is a big company and it is not smart to think of it as one "mono"-lithic entity. And they haven't done this junk so far, so maybe you ought to give them the benefit of the doubt?
  • Matěj Cepl · 5 months ago
    Except, they do.
  • KeithCu · 5 months ago
    FAT was a patent done by the Windows group. You might be familiar with Windows; it is a different group of people than those who build .Net. Find a reference to FAT inside the Ecma spec ;-)

    I think software patents will be killed, and if MS were to sue, we should fight it out with them in court and beat them. But for those paranoid people, we've now got official statements. The fact that MS might sue other people for other supposed infringements is a completely different issue.

    Microsoft is a company with 90,000 people. Please remember that.
  • Matěj Cepl · 5 months ago
    Yes, right, and I should trust my livelihood on continuing turf wars inside of Microsoft. And what if the OS/lawyers part of Microsoft wins?

    I can totally understand pasionate tones in many responses on this blogpost, many people threw their lot with C# and they are afraid they'll get screwed up. I am very happy that I can stand away from this mess—Python works just fine for me, thank you. Yes, I am OK with interpreted languages.
  • KeithCu · 5 months ago
    You don't understand how MS works.

    I've never been afraid for Mono. But paranoia is an integral part of the free software community. I do worry whether it will ever defeat proprietary software when there are so many crazies!

    Python is a fine language as well. But why are you trolling here then?
  • Matěj Cepl · 5 months ago
    I just pointed out that statement "And they haven't done this junk so far, so maybe you ought to give them the benefit of the doubt?" is just mistaken.

    And one clarification on my side probably *is* due ... is the situation better than before this MS statement? Yes, definitively! Congratulations to Miguel, RMS, scores of nameless C# programmers, or whoever else, who made this possible!
  • KeithCu · 5 months ago
    I was talking about the fact that tools division has not threatened Mono in any way thus far. See, you keep looking at MS as one entity, and having worked there, I can tell you this will not help you understand them.
  • Matěj Cepl · 5 months ago
    I can see your point, but that's exactly what I was talking about ... you rely (a lot, actually) on continuing turf wars inside of Microsoft. I accept your point that Microsoft is bigger mess than we can imagine, but what if ... just theoretically ... some bigwig in the company decides that screwing up some slightly bigger Mono developer could be profitable for the company (as they apparently decided screwing up Tom Tom was)? Do I really want to rely on that? Tools division might be nice, but will they actively resist Mr. Balmer (or some of his successor) in the matter which is not that important to them after all (what do they really care about SuSE or somebody like that?).
  • Carlos · 5 months ago
    If you don't trust, then move away dude, since you are not obligated to use C#/Mono. But you must be respectul to what others do, and actually go and read the links we show before commenting.

    I feel so much paranoia in so many people. As I've said in other comments already: it all boild down to IS MS. This is no argument, this is just FUD. After that being said, you can come and tell us some 3 zillion of imaginary scenarios, but the facts are, the specs are under a standard, and now are under a community promise, which is a totally serious thing.

    Also, I must say we are not afraid we are going to get screwed up, because in the first place we don't think we are going to be sued, nor we think MS is the devil and will destroy us, or is after us.

    Finally, if you are very happy about Python, I don't know why you are still here. I think there are so many guys who like Delphi, Php (as the technology, not the language itself), or Ada, or Fortran, or LISP, but we don't need to read comments from them saying: "I'm very happy I use my X language, and yes, I'm OK with functional/interpreted/low level/high level languages". You should tell yourself that and stop putting Stop energy on us.
  • Casper · 5 months ago
    Awesome news, now let's move on from all the FUD and build some great software! So much more interesting.
  • Wayne · 5 months ago
    On the page Community Promise page ( http://www.microsoft.com/interop/cp/default.mspx ), I can see mention of C#, ECMA or .NET.

    The only covered specifications that I can see are "HealthVault Service Specification", "UI Automation v1.0", "XPS Specification v1.0" and "VBA Language Specification". The only way that I can see that C# is covered is possibly by this statement "...this Promise also applies to the required elements of optional portions of such specifications."
  • Wayne · 5 months ago
    I mean to say "I can see NO mention of C#, ECMA or .NET."
  • Wayne · 5 months ago
    Also, I would like to clarify that I'm not asking this question because I'm some sort of freetard. I love C#, but I suck at the language of legalese...
  • migueldeicaza · 5 months ago
    Brian Goldfarb at Microsoft has said that the update will be coming, it was just not done on time for the Peter Galli's announcement.
  • Wayne · 5 months ago
    Ahhh okay. Thanks for your reply.
  • Matt · 5 months ago
    Yay for cooperation and yay for mono! Congrats!
  • Bob · 5 months ago
    After such a history as Microsoft has had it will be a long time before I'm willing to bet my business (and I have one and it is my livelihood) on such a promise. Unfortunately there is no way for an average person like me to know that we are truly completely covered. Software licensing and patents are just too complicated.
  • Support · 5 months ago
    For folks like you, businesses that need to use everything in Mono, and not just ECMA, Novell offers SUSE Linux Enterprise.

    SUSE Linux comes with the whole Mono stack covered by the Microsoft/Novell patent cross licensing.
  • neo · 5 months ago
    [Removed troll]
  • Concerned · 5 months ago
    It's clear that this is subject to the same terms as all the other Community Promises: namely, that any implementation that does not conform strictly to the ECMA standards is fair game to be sued. This is incompatible with free and open source software. It's not free or open source if you can't make arbitrary modifications and distribute them legally!

    I'd love to see the same promise, without the requirement that implementations must conform to the ECMA standard. Until then, free and open source software programmers should avoid C# and the CLI, lest the community be trapped into using software they are not free to modify and distribute as they wish.
  • Obelix_it · 5 months ago
    I'm most concerned abaut the clause that this won't cover thirdy-party claims. While it's clearly quite mandatory (MS cannot give this for thirdy-person), it allows MS to sue a Ecma-complaint implementation via a thirdy-part partner. Knowing them by a lot of time/bribe etc., i won't be assured in toto by this.
  • aaa · 5 months ago
    The promise covers patents that MS owns. So MS cannot sue you for infringing patents they own. They also cannot sue you via a third party partner because that third party partner does not own the patent. I cannot sue you for infringing the patent on the telephone because I don't own it, i'd have to ring up (forgive the pun ;) ) Alexander Graham Bell and tell him to sue you.

    Of course, if he signed a legally binding OSP agreement promising not to sue you, well, then he just can't do that. You won't be assured because you don't want to be assured. There is precious little extra that can possibly be done to assure you if this doesn't.
  • Justyb · 5 months ago
    "namely, that any implementation that does not conform strictly to the ECMA standards is fair game to be sued."

    This is very much like a clause with Java. This allows them to protect what .NET stands for. Basically, if you implement a VM and call it .NET, then it needs to actually run .NET stuff. If your VM runs foobar machine instructions then you shouldn't be able to label it as .NET because foobar VM has nothing to do with .NET VM.

    That's an extremely rough explanation so just take it with a grain of salt. Anyone else care to chime in to clear it up?
  • Robert · 5 months ago
    It is different, that is trademark enforcement, the same way Red Hat does not allow to use the name to CentOS.

    This promise is a good first step (I am not a fan of C#), but it still left a lot of valid Mono use cases in legal limbo, like the ones used to build applications for the iPhone, or the recently announced by Miguel about the PlayStation 3 support. Those implementations are partial, not complete CLR runtime environments (static compilation) so using this "promise" they are not covered

    In the case of Java (OpenJDK), you can strip anything from it, port, add/remove language features, the license allows it, but you must respect the Java trademark, the same way those stripped Mono runtimes can not be called .Net
  • migueldeicaza · 5 months ago
    ECMA kernel profile does not require JITing. It just happens to be the most common scenario on desktops.

    The kernel profile can be implemented as a static compiler or an interpreter, so both are covered.

    But it is irrelevant to Mono on PlayStation and Mono on the iPhone products, as they are both Novell commercial products and they fall under the Novell/Microsoft agreement.
  • Robert · 5 months ago
    And that is a problem, think about someone trying to do an Android environment based on CLR (go back in time before it was released based on Java), that idea will be unable to be delivered if it is not a complete implementation, like current Android Java is not a complete implementation. They will not be protected, and that people trying to reuse Mono will be forced to the same kind of agreements Novell have (not welcome on OSS).

    What is relevant is that this promise allows you to use/redistribute Mono, but trying to create new things with it is not always allowed, so many great ideas crashing with a patent wall.

    In my opinion this "promise" does not change my ideas about Mono, Java for me is a better option even for GNOME using java-gnome bindings
  • Carlos · 5 months ago
    The promise *does* change a lot of things for most of the people, but as you said, it changes nothing for us, because you were pretty sure MS was never going to sue us. And of course doesn't change anything at all with people that don't use Mono because of the eternal fear of Microsoft, and there's actually nothing in this world that could make them change their mind.

    If, say, an impl doesn't fit the promise, so it's just not *covered* by the promise, but it's not a *proof* you are going to be sued, nor you are in a infringement or property or the same.

    Dude, as I have already said to other guys who like Python the best: if you like your language more, go out and do some actual work on that front, instead of giving us only Stop Energy.
  • mrmorris · 5 months ago
    But what's wrong with us just using the full ECMA Mono on Android with JIT and the whole shebang? Unlike the iPhone, static compilation is not a requirement here. Google ported most of the Harmony runtime library (except Swing) so they violate the JCK. In contrast, I don't see how a Mono port would violate this agreement?! Could you clarify?
  • Jesper Lund Stocholm · 5 months ago
    @ Concerned,

    "It's clear that this is subject to the same terms as all the other Community Promises: namely, that any implementation that does not conform strictly to the ECMA standards is fair game to be sued. This is incompatible with free and open source software. It's not free or open source if you can't make arbitrary modifications and distribute them legally!"

    Please note that the wording is more or less a standard way of phrasing it. IBM uses the same terms in their "
    Interoperability Specifications Pledge" (ISP) at http://www-03.ibm.com/linux/ossstds/isplist.html .

    They state:

    "Therefore, IBM irrevocably covenants to you that it will not assert any Necessary Claims1 against you for your making, using, importing, selling, or offering for sale Covered Implementations"

    and explain what "Covered Implementations" mean with:

    ""Covered Implementations" are those specific portions of a product (hardware, software, services or combinations thereof) that implement and comply with a Covered Specification and are included in a fully compliant implementation of that Covered Specification."

    The IBM ISP covers, amongst others, the patents held by IBM covering OpenDocument Format (ODF).

    So to you, the IBM patents (and ISP) covering ODF are incompatible with free and open source software?
  • Obelix_it · 5 months ago
    You will pardon me, but i won't trust MS more that i trust a political. Too much in the past (even in the *recent* past...) to trust them, at least for next couple of decade.

    I hope that Mono situation may be more clear in future (normallly: announcement from people who have a *Separate deal* with MS to cover every risk won't cont much for me...) and that such a powerful tools may be use freely, but as for today, i won't touch it with a ten foot pole (c), and hope i will *not* distributed in a way such that removing it would cause severe harm to Linux distribution.

    Any more question: since Copyright laws in US is a fairly complex matter (especially for us at the other side of the ocean..), does anyone may give a revision of the MCP?? i checked it in FSF page, but cannot find (at least, not under that name). i notice, however, that no MS license are 'suggested', so i wonder how save this can be.
  • KeithCu · 5 months ago
    Of course you don't trust them, that is why they make these announcements.
  • alphager · 5 months ago
    So does this mean that ASP.NET, ADO.NET, Winforms and others are still a reason Microsoft could sue me?
  • alphager · 5 months ago
    Another question:
    (From the FAQ)
    ----
    Q: What if I don’t implement the entire specification? Will I still get the protections under the CP?

    A: The CP applies only if the implementation conforms fully to required portions of the specification. Partial implementations are not covered.
    ----
    Does mono implement absolutely 100% of the specification without bugs? Because if not, we got a problem...
  • aaa · 5 months ago
    That clause is there purely to prevent people from implementing a trivial subsection of the .NET framework in their product and then claiming full patent protection for all patents covering the entire .NET specification to protect their product.
  • anon · 5 months ago
    I am looking at this statement: Because the General Public License (GPL) is not universally interpreted the same way by everyone, we can’t give anyone a legal opinion about how our language relates to the GPL or other OSS licenses, but based on feedback from the open source community we believe that a broad audience of developers can implement the specifications.

    uh? Did this really say it is not a legal opinion about whether it is compatible with the GPL? If the holder of the 'rights' cannot say if they give permission - just who on earth can? <confused>
  • Brooks · 5 months ago
    Yes, it really said that.

    Here's why: Microsoft is not the holder of the relevant rights. If I have a GPL'ed product, and you use it as part of a program covered under this patent license, Microsoft has said _they_ are perfectly happy with that. What Microsoft is refusing to say is whether _I_ will be happy with it -- and that's a perfectly reasonable think for them to refuse to say.
  • Maik Beckmann · 5 months ago
    Impressive, I didn't expect this step from MS.



    I hope once the FSF lawyers gave MSes promise for ECMA 334 and ECMA 335 their blessing, developers will start using what is covered by these two standards, or even evolve these.



    While I'm happy with C++ and python right now, I look forward to the CLR thingy being the next big thing for the integration of Programming languages, especially for tasks like scheduling on N-Core machines. Right now, they are IMO not ready. Tricky integration with C libraries, automatic memory management is enforced (at least this is my impression).

    Thanks for your efforts,
    -- Maik
  • reddog · 5 months ago
    How far behind the mono stack implementation are the ECMA 334 and ECMA 335 standards? I know the ECMA are to be updated but how often does that happen and how current to MS's implementation do they stay?
  • Ed Ropple · 5 months ago
    As far as the standards are concerned, I was under the impression that they're up to date. Their compatibility with Microsoft's own stuff is not so good, but that's not part of the standard.
  • Judge · 5 months ago
    How about opening the Extended Intermediate Language (ILX) specs also? [1] Without the ILX specs, there is no viable other .NET platform. So, we have the pattern: Embrace, Extend, Extinguish...

    [1] http://docs.msdnaa.net.nyud.net/ark_new/Webfile...

    The new bytecodes:

    [..]
    call, callvirt, ldfld, stfld, newobj, modified to accept type instantiations in ad

    newarr dition to their other parameters

    ldelem.any, stelem.any size-polymorphic array access

    castclass, isinst implementing exact runtime type semantics.


    .classunion
    newdata,
    lddata,
    stdata,
    castdata,
    isdata,
    switchdata,
    castclo
  • KeithCu · 5 months ago
    [Removed well intentioned post with wrong information]
  • Carlos · 5 months ago
    Exactly, it will likely be added at some point. But this is just paranoia, because people like Jugde, I suppose, can come and *always* say: you know, the last X, Y, Z bits have not been covered by that promise, so, they COULD SUE US.

    It's the same feeling of paranoia of all the times.
  • migueldeicaza · 5 months ago
    ILX was superseded by ECMA 335's 4th edition which includes all the generics support that was originally prototyped in the form of ILX.
  • Jan Wildeboer · 5 months ago
    [Removed troll post]
  • KeithCu · 5 months ago
    They had already promised not to sue for the Ecma specs when they were created. To be honest, I don't know what the difference is between this announcement and those previous one.

    Maybe it is just a stronger statement because the Mono FUD still exists?
  • reddog · 5 months ago
    "They had already promised not to sue for the Ecma specs when they were created."

    Exactly, this basically is just an easy way to comply with the ECMA standards RAND requirements. Now MS doesn't have to deal with RAND licensing request . . .
  • ruurd · 5 months ago
    Puh. What about newer versions of items covered in the CP? There is zero guarantee they will be placed on the list too. Have fun y'all being trapped in an old version.
  • migueldeicaza · 5 months ago
    Correct, there are zero guarantees, but there is a general understanding that ECMA will continue to evolve, that it will grow in scope and that it will similarly licensed.

    We are currently in session to come up with the 5th edition of ECMA.

    But those that do not live in fear of crossing the street, or suffer from acute signs of paranoia, merely see this as another checkbox in a long list of items for the next edition of ECMA, not as a mountain too big to be climbed.
  • Jonathan Dickinson · 5 months ago
    "*We* are currently in session to come up with the 5th edition of ECMA."

    I love that - the one sentence (in fact, one word) that is enough to dispel this paranoia and nit-picking.
  • jabba · 5 months ago
    As a user said, and I quote

    "There are people out that (like Icaza) that wants fundamental softwares, like Gnome, to be created with C#/Mono. Right now we have mono installed on some Linux machines by default. Thats great for MS. Once linux/BSD (user-land) is too dependent under Mono, they could just shut it down... How? They will find a way :-)"

    I hope you die in a crash, you lil MS shill

    [Post from IP 78.23.98.192 78-23-98-192.access.telenet.be. ]
  • Maik Beckmann · 5 months ago
    Dude, saying that M$ _will_ find a way to screw us by any means is nuts.

    Saying that they _will never_ come after us and everyone who disagrees is a hater and makes things up is nuts as well.

    Come on guys, Mono _and_ this discussion about it will continue. Get along with it and keep it mature.

    -- Maik
  • Maik Beckmann · 5 months ago
    > I hope you die in a crash, you lil MS shill

    I missed this statement, men I shouldn't have replied to this post.
  • Joseph Smith · 5 months ago
    No, you shouldn't have replied to this post at all (but it's not your fault - it can happen). People who are not able to discuss things in an appropriate way and wishing the death of others just because they don't share the same opinion as themselves should be ignored at all. This behaviour is far beyond any trolling or spreading FUD and there should not be any acceptance for this on any side.
  • Maik Beckmann · 5 months ago
    100% ACK!
  • KeithCu · 5 months ago
    Once you've given up the legal right to something, you cannot get it back. You sign me over the title to your car (or your bike if you live in your parent's basement) and then try to get it back!

    The interesting thing about the anti-mono trolls is that they are persistent and rude, but not very smart. That combination makes things tedious.
  • Maik Beckmann · 5 months ago
    > The interesting thing about the anti-mono trolls is that they are persistent and rude, but
    > not very smart. That combination makes things tedious.

    This statement is like: Swearing f***ing sucks!
  • jabba · 5 months ago
    That's like saying once I give up the legal rights of my child, I will never even get them back, no matter what the situation may be and how worse it could be for both parties. You're not very smart either
  • Carlos · 5 months ago
    Do you know the meaning of the word 'irrevocable'?
  • sdf · 5 months ago
    I can sense a strong legal mind here with a solid grasp of all the legal principles involved here. Kudos, you really showed me what's what. I thought irrevocable meant that it couldn't be revoked. Turns out it actually means you can revoke it if you feel like it! Amazing, eh?
  • Umar J · 5 months ago
    great news!
  • John · 5 months ago
    The day .NET runs equally well on Linux, is the day I abandon ship and switch from Windows to Linux and Mono, entirely. It's a great day for the managed world, especially if you like Linux and .NET...

    Now, would it be possible to implement the internal parts of the BCL in managed code and use that to binary rewrite windows specific assemblies like WPF for Mono? It would be slow, but it would be portable...
  • camel · 5 months ago
    [Removed offtopic troll]
  • Stifu · 5 months ago
    That's fascinating.
  • KeithCu · 5 months ago
    [Removed flame baiting post]
  • Maik Beckmann · 5 months ago
    [Removed offtopic]
  • Justyb · 5 months ago
    [Removed reply to troll]
  • Joseph Smith · 5 months ago
    C++ has a lot of defects and duplicate facilities coming from it's design process and it's backward compatibility to c. It is very complex and it allows people to abuse a lot of language features which can make reviewing and group work extremly hard. In some parts it is very low-level which limits productivity a lot. So for software projects which do not have high-performance constraints, most desktop applications for example, you can usually develop a lot faster with other languages which also have a better security model (no buffer overflows etc.)

    You will find a lot more on these pages:

    http://yosefk.com/c++fqa/defective.html

    http://events.ccc.de/camp/2007/Fahrplan/events/...

    http://esr.ibiblio.org/?p=532

    The sad thing still is that there is nearly no replacement for c++ regarding high - performance computations except maybe the d programming language which still has it's own problems.
  • Justyb · 5 months ago
    Thanks for the links.

    I would comment further but it seems that moderation would prevent such a response.

    With that, I guess I'll just keep all post to the topic at hand and forgo any discussion about C++.
  • Joseph Smith · 5 months ago
    I think you are right. As much as i hate any kind of censorship i surely can understand the reaction of the moderator by trying to prevent too much flaming and trolling around here and getting to much off topic.

    Be sure that as a long time C++ programmer myself (and still being but also using c# / boo / nemerle / mono, python, java, delphi, D, ...) i don't want to start a flame war. Every language out there has it's usage, it's advantages, disadvantages and it's prefered domain and so does C++. There is no single best language out there for every purpose and despite all rational considerations it will always be a matter of taste which language / framework a programmer uses for a specific task.

    And for a lot of people here in the forum the mono framework and c# are their prefered development tools. So this is a great day for the world of free software. At the end it is all about having the choice.

    I wish you the very best in developing your software in C++ or in any language you want to and all the others who want to develop their free open source software in C# with mono. It is sad that there is so much hatred, ignorance and fear in the free software world and no attempts to try to solve problems together but to be at war with one another since we all should be working towards a common goal.
  • Joseph Smith · 5 months ago
    Congratulations and best wishes for your future projects.

    Honestly, this is the great thing here. Since this discussion is all about having the freedom to choose in which language, framework, toolkit, api, ide, etc. you can develop things. It's not about forcing somebody to use mono but giving the freedom to those who want to use it for their own projects because it is the best available solution for them. Freedom of choice is the great strength of free open source software and it is sad that there has to be so much discussion about it.
  • Maik Beckmann · 5 months ago
    Software Freedom Law Show on "Patented Languages":
    http://www.softwarefreedom.org/podcast/2009/jul...
    They say: Its good to have an free C#/.NET implementation, but new code shouldn't be written
    using it, because MS has made clear in the past that they are after free software.

    It was recorded a week ago, so no comments on the news of today :D

    -- Maik

    PS: I can fell for those how know C# and like to contribute to FOSS. IMHO they should go with mono rather than do nothing. I will wait until the Software Freedom Law Center blesses C# and for the tools (MonoDevelop, mdb, emacs mdb integration) to mature before I consider C# seriously.
  • Carlos · 5 months ago
    "They". So, it doesn't matter that they put the specificafions under a standard. It doesn't matter they even provide the RAND thing. It doesn't matter, finally, that in the end they put the specs under the Community Promise.

    It all boild down to ITS MICROSOFT. Fear, paranoia.

    People have told us that from the beginning. It takes time to approach MS to get this things, you know? Previous developer time, but in the end, of boild down to a post of the FSF from last week.
  • Maik Beckmann · 5 months ago
    > It doesn't matter, finally, that in the end they put the specs under the Community Promise.

    As I said, its recorded a week ago. No community promise back then.

    > It all boild down to ITS MICROSOFT. Fear, paranoia.

    Please listen to the podcast, Java and Oracle are mentioned as well.

    > People have told us that from the beginning. It takes time to approach MS to get this things, you know?

    I see that its not the MS compiler/language division's fault that MS has such a bad reputation. As a C++ coder I highly respect their work, since their C++ implementation is considered the best around! I'm sure they just want to do a good job and are happy that their work is well received outside the windows platform as well.

    But, given that MS is serious about this, it will take time to for the FOSS community take build trust towards MS as well. The FAT case did help, thats for sure.
  • Dargs · 5 months ago
    Nice one Miguel and Microsoft! :-)

    Now I can use Mono without getting all uptight and worried. Oh hang on, I already did! ;-)
  • Rob · 5 months ago
    Well, that's find. It's cute. But Mono is about .NET and not C# and the CLI alone. Just because you give me rights to C# does not mean I have rights to .NET.
  • Jonathan Dickinson · 5 months ago
    One of the ECMA specs covers the BCL (Base Class Libraries, a la .Net) - although using the Microsoft one on Linux (if at all possible) would probably be murky waters. Trying that would be pointless in any case: Mono has one that already has a near perfect behavior match.
  • CarlosHawes · 5 months ago
    It took Microsoft a long time to build its current negative reputation. 30 years of questionable actions, some adjudicated by courts to be in support of maintaining an illegal monopoly have passed by. It will require another long stretch of time for them to rebuild their reputation. On the surface, it appears that this is a step in the right direction. The new comers need to realize though that many of us have seen many promising technologies and companies be totally eviscerated by Microsoft, even after they thought they had iron clad deals with Redmond. The IT landscape is littered with the dried husks of former MS "partners." Even when MS is in the wrong, they have the money and resources to basically bankrupt all but their largest their opponents through drawn out litigation prior to any final judgment being rendered.

    But I will be on the lookout for continuing steps in a positive direction. They may one day begin to earn back a little positive cred with some of us veterans. I will fall back on the wisdom of Ronald Reagan when he said of the Soviet Union and arms control treaties "Trust everyone, but cut the deck yourself."
  • j · 5 months ago
    This is HUGE, fantastic news! Now we can put aside the majority of the arguments, and focus on what really matters: innovating and making sweet, sweet, apps!
  • Shane Coyle · 5 months ago
    What about HP? Don't they also have some patent interests in these particular standards?
  • MikeD33 · 5 months ago
    Hi Miguel. As a long time user of Novell Software, I really dig what you've been doing. It bugs me when I run across blogs that blather (especially lately) on with negative sentaments about Novell (or you personally). Their arguments seem almost religious in nature (sorry if that bugs anyone religious), so it is impossible to argue a valid point.

    It appears (at least to me) that Microsoft is slowly coming along about Open Source. As time progresses, I think that they'll come around - as the "older generation" moves on. The next generation should be more accepting, because open source won't be a new concept that is against what they've done for their whole lives.

    Sorry if this sounds too fanboy-ish for some out there, but I'm very tired of all the bickering about companies (or licenses) not being opensource enough to be cool - or whatever. Its sooo high school. Or am I just old and getting cranky?

    MikeD
  • Martin · 5 months ago
    Important inquiry:
    Is the Community Promise compatible with the GPL? I don't see that one can grant a recipient of e.g. Mono the right to modify it, which is part of two of the four freedoms.
  • DrNet · 5 months ago
    While this is great news (I earn a substantial part of my living by writing code, that must be binary compatible between .NET and Mono), I am quite worried about System.Data - leaving it out of the CP does hurt. Time to create an alternative?

    Best regards,

    Eugen
  • migueldeicaza · 5 months ago
    Well, as usual, if you are "quite worried" you might want to abandon the software industry at once, because there are plenty of other things patented more trivial than the trivial System.Data.

    But we will likely add at least a raw API for Sqlite, and expose the Tds protocol raw as well for SQL server for those that are loosing sleep over it.
  • Laurent GUERBY · 5 months ago
    The MS patent promise language is nearly identical to the one made by Red Hat:

    http://www.redhat.com/legal/patent_policy.html
  • Matěj Cepl · 5 months ago
    Yeah, and could you point me to the case when we litigate our own patents against anybody? (remember, RH protection is against third parties, MS protects against itself).

    (and yes, mandatory disclaimer, I do work for Red Hat)
  • migueldeicaza · 5 months ago
    The fact that you have not used them *yet* does not mean you will not use them.

    The VFAT patent that everyone is talking about is from 1995 or soand it took 14 years for it to be used.
  • aaa · 5 months ago
    In a way the MS one is even better, it doesn't limit its promise to just opensource folks as the red hat promise does.
  • possan · 5 months ago
    Finally!

    Just hope this means that finally c#/.net can get a better reputation in the gnu/fsf community.
  • raster · 5 months ago
    I still have a doubt: the BCL. I downloaded the ECMA 334 and 335 standards and reviewed them, and I was able to found references to the BCL and some examples, but not a precise description of it, nor the methods, classes, etc that it must contain. The problem is that the agreement says that it doesn't apply to things merely referenced in the specification, as stated in the FAQ, so, unless the BCL source code is distributed under a free license, I'm not sure that it's covered with this agreement too.

    Of course, I'm not a lawyer, so I can be mistaken. Can you clarify this to me? Where can I find the full BCL description and the legal conditions to use it?

    Thanks in advance.
  • migueldeicaza · 5 months ago
    You need to download the ZIP file with the XML document that contains the classes
  • JP · 5 months ago
    First off, I am not a massive fan of either .NET or RMS... I use .NET everyday at work and think it is a great platform. We are in the process of switching our first customers into production with Mono, and this is quite successful for the main parts.

    That being said, I love the open source concept as well. I am a contributor in two projets, and think RMS is right on some points.

    Now, I have quite some difficulty understanding his recent comments on C#. He tells us it is bad to program in C#. I could argue it is one of the most productive language there is, but that is another debate. The real question is : what should we use, then ?

    If we are talking about Java, I do not see much difference :
    - Sun's JDK has been closed source for quite long, just like MS CLR is
    - There are open source implementations of Java (OpenJDK,...) : there is Mono for .NET
    - Microsoft is "evil" (means "a private company", in RMS language) : Oracle bought Sun, and I do not think they are any less of a profit-driven company than MS
    - The libraries of .NET are not covered by the open licence. Same thing for the new Garbage Collector in Java : Oracle is going to sell it, as far as I know.

    Really, I am being honest : I do not see any difference. Maybe there is something I have not understood in the licences, and in this case, I would very much like to know...

    As for the language other than C# : if not Java, which ? After five years of C#, my boss would have to threaten me with a knife to make me go back to C++. And no other language seems as rich as .NET, today... What other language today proposes innovations like Linq, F#, Parallel Linq ???
  • TheWerewolf · 5 months ago
    While I'm *very* happy about this announcement, I can't quite be as enthusiastic as some here are.

    Microsoft can't legally protect its API (and really, C# as a language wasn't protectable - languages, including computer languages, aren't copyrightable), so they had to rely on patents to do it.

    It's good that the core architecture and any patents required to implement this has finally been resolved in favour of the open community. That I wholeheartedly applaud, but it would be SO much better if Microsoft *got* why Mono is actually very, very important and valuable to them, and why supporting it - if in no other than than to work with the Mono group to warn them of potential patent issues in a non-confrontational way (ie: not to block Mono, but to find ways to get around them), would actually make .Net more successful, not less.

    One question though, does this mean that the 'must never have seen Microsoft source' no longer applies to the ECMA compliant components? I've worked on Microsoft's code and so can't contribute, which is very frustrating.

    Actually, I'm also wondering how the MacOS version is managed. I'd really like to see a native UI version. I know they're working on it, but I thought the target was 2.4 for first release and it's still not here.
  • team building · 3 weeks ago
    good thing that you can expect Microsoft to act in it's own interest here. Mono and open source have been so successful that it's now in Microsoft's best interest to make nice with everyone and give Mono and everyone else all the rights they could possibly want.which is good sign to deal.