This is a very important point. The obvious strategy for Microsoft is to open up enough of the platform to allow it to proliferate, but keep enough of it closed to give their implementation the edge. If you were hesitant to invest efforts in the .NET platform before this announcement, and you depend on the high level APIs, you might have more reason to worry now.
"I say this based on discussions I had with our lawyer long ago. The
issue first arose when NeXT proposed to distribute a modified GCC in
two parts and let the user link them. Jobs asked me whether this was
lawful. It seemed to me at the time that it was, following reasoning
like what you are using; but since the result was very undesirable for
free software, I said I would have to ask the lawyer.
What the lawyer said surprised me; he said that judges would consider
such schemes to be "subterfuges" and would be very harsh toward
them. He said a judge would ask whether it is "really" one program,
rather than how it is labeled."
I think the point here is to protect end developers: if you want to be safe from future patent issues, they are making it easier to opt out of even installing any of .NET besides the ECMA core on your development systems, thus providing a decent guarantee that even if the rug gets pulled out from under Windows.Forms or ADO.NET, your app won't be impacted.
It's amazing how much paranoia and hate gets dumped on the Mono team around this issue. It must be seriously disheartening.
They just can't win. They need to spend so much of their time proving to everybody how open source they are, and how they hate Microsoft like everybody else (honest!), that they end up with pragmatist clowns like me griping at them for dragging their feet. And still there is this vocal part of the open source movement that will always hate them with a passion no matter what they do, because they dare to trust an evil corporation that eats babies and whatever else Microsoft is supposed to be up to these days.
This whole license things seems like such a non-issue to an outsider. It's just readily apparent that it's not in Microsoft's best interest to squash a project like Mono. Here they are saying it again, in the form of a legal contract, and STILL the die hards don't believe them.
Remember, the leader of the pack on this issue is RMS. He's not looking for a world of coexistence with Microsoft -- he wants them to go away and not come back. If you try to get inside of how he'd be approaching this issue you get to, "What about when Microsoft is on the way down? Will they fire back with these things?"
However, RMS is also pretty true to his stated purposes there; he'll welcome things back to the fold when situations change (e.g. the Qt / KDE schism over Qt's licensing), but he's not one to look at things from a good faith perspective when there's no guarantee of followthrough.
"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."
Otherwise you could build an app with a feature that infringes a single patent of theirs, and claim your app is protected because it is an implementation of a tiny one-feature subset of CLI.
The CP is then more or less useless for free and open source software---the freedom to modify and redistribute the software is worthless if any feature you choose to add, remove or modify makes you fair game for a patent lawsuit. The users have no real control over this sort of software, because they can't legally distribute modifications which violate the letter of the specifications.
It sounds like C# and the CLI is still best avoided for open source software.
My kernel is pure .NET, but it will most likely never be a complete implementation. Why? Because many parts of it (e.g. the file stream APIs) are completely extraneous with my design. It may eventually have the unimplemented parts as wrappers for other components, but I find it highly unlikely it'll ever be a completely standards-compliant implementation.
Sounds like a way to enforce a standard, for compatibility, so that (eg) a C# program will run on any C# implementation. Java has similar with its runtime redistribution policy, and licensees.
You have to remember that Java sucks. Sun was very closed to suggestions and improvements, and until C# came along wasn't really doing much with the language. J++ with improvements eventually turned into C# which is far superior to Java.
No company in the world has a technology comparable to .net/WPF on any platform, let alone all major platforms. Microsoft is giving it away. Show me the evil.
Google et al are taking your data and I defy you to reach a human being on the phone or by e-mail. It's already plain this approach will prevail, at the expense of the entirety of human discourse being 20% paid-for. This is really nothing against Google but it is a far more serious phenomenon than anything of the Microsoft/Stallman era in terms of individual liberty, and of reality not sucking.
I'm not quite sure why Mono is so important. Technically, it's an interesting accomplishment to be sure, but I don't see that it gives you anything you can't get elsewhere. Particularly on the web front, MS is certainly not leading edge anymore.
On the desktop application front, this is certainly better than coding GTK apps in C, but other alternatives to that already existed (namely the Ruby and Python bindings for GTK).
The bottom line is that while C# and the .NET framework are certainly better than MS's previous development offerings, it still offers very little of interest in my opinion. Ruby, Scala, Clojure, and Python have much more compelling features for most problems.
Yes. Anyone care to give a short explanation of what exactly is so promising about Mono that it's worth all the worrying? Whether or not these fears pan out to anything, they're substantial enough that there should be a pretty good motivation for not just switching to another development platform.
Remember when Microsoft promised an open document standard for the next Office -- and it was many thousands of pages that was less than trivial to implement?
(Without looking, I assume that to add maiming to injury, the standard allowed variations, so non-Microsoft documents could be made incompatible between versions of Office?)
I haven't played the game, but the idiom these days seems to be "the cake is a lie".
Did you really expect the document standard to be 10 (or even 100) pages long and trivial to implement?
How long is the full spec for HTML, or PDF? Are either of those "trivial" to implement? Both of those formats are, IMNSHO, inherently simpler than the sum total of complexity of all the Office document formats. (Even if you just include Word and Excel)
Microsoft can't win here. Either they document the simple middle-of-the-road, 90% of Word docs conform, case, and get skewered for not being open enough. Or they release the full spec and get skewered for "Wow, writing a competitor to the most common word processing and spreadsheet application is actually harder than creating hotornot or million-dollar-homepage."
Last I heard Microsoft's format didn't even fully adhere to their own standard (although that may have been due to really bad standard authoring rather than anything intentional).
Does anyone here know if their promise will cover future versions? Or if they can sue an implementation of an older version of ECMA 334 and 335 if they chose to extend it?
And how much ECMA standards are worth if Microsoft decides to extend them in their implementations? It seems to me whatever comes with the latest Visual Studio is the de-facto standard, not whatever ECMA publishes.
Because they're much easier to pin down and enforce than spoken promises: or even publicly published ones. Note that they often have clauses indicating that they supersede any prior agreements [read - the salesman's "promise" isn't enforceable].
Giving logical arguments that are anti-Microsoft is perfectly reasonable. Dedicating your life to being anti-Microsoft and blaming people for their choices, yelling "wolf" every time someone does something cool (and starting a blog in the process that explains on a weekly basis how free-software is at peril) ... is just insane.
Unfortunately I've been there ... back in the day I posted a couple emails on mono-list about how Gnome is poisoned (with all the bells and whistles of an anti-MS propaganda, GNU/Linux and all that crap). I ignited flame-wars that probably ruined the day for some people.
In retrospect I really regret that.
Young people want to be a part of something. If that something promises to save the world from evil, it's even more alluring.
For me the day came when I got married :) Since I believe in "doing what you love" it can be unbearable at times while working hard for an income to support your family, to still work on cool shit, and to still have valid arguments for a religion that promotes and even requires "free as in speech" for products of essentially very hard work.
Oh, everything in moderation. But personally, I don't buy stuff from criminal monopolists.
In some situations, I assume I might buy from criminals -- but I avoid monopolists like the plague.
The problem with monopolists is that they have business reasons to not be compatible. That means they have to keep their systems so complex that they can't easily be cloned -- and also to be a bit incompatible between versions.
That damages my life quality, if I worked with their stuff.
That was a logical argument. After someone damaged my life quality, I will be pissed off. That is human nature.
Edit: The ending was too harsh, I do believe you didn't intend an ad hominem... you just think that it is meaningless to be upset about Microsoft. I hope you're right.
I can think of plenty of reasons to not use C#. I cannot, however think of good reasons not to use or distribute applications written in C# with this promise in place.
I really wonder if this is anything other than a fanboy hate post. I am not going to dissect your comment and explain it why it is a fanboy post, you can do it when you are free.
I know its fashionable to hate Microsoft, but sometimes it creates a narrow-mindedness which results in, we Entrepreneurs or Hackers to miss out on good opportunities if we are going to be this religious.
This isn't a fanboy hate post either. From a purely business perspective aligning with Microsoft is toxic.
I don't know what you mean by toxic, there are 1000's of companies like Adobe, Autodesk, id Softwares, EA etc which went on to make Millions and Billions of Dollars because they aligned with Microsoft and built over their platform.
If maybe John Carmack was religious enough to hate Microsoft or not build over their platform, he wouldn't have created one of the best game developing company. Maybe he would have spent his time discussing what color the next version of Macbook would be, on discussions.apple.com.
"For the last word I'll hand over to John Carmack, Technical Director of ID Software, who used NeXTSTEP to develop Doom and parts of Quake (that's right!): "We developed lots of products under dos (mostly borland c++), and never want to again. We went through five major iterations of our tools under DOS, and they are all junk below our first iteration of NS tools. You can't really just point at specific things and claim superiority. It is the complete package that has the appeal. NS is the best tool I have found for MY development work."
.
"The title of this submission is incorrect.
Microsoft promised not to [sue] over the ECMA parts of Mono. They made no declaration about ASP.NET, ADO.NET, Winforms or other "up the stack" APIs.
That is why my blog post talks about splitting Mono's source code in two, the ECMA core and the rest.
I believe that both Debian and Ubuntu do fine-grained packaging and might already have this, but the source split will make it simpler for others."