Microsoft Puts C# and the CLI Under "Community Promise"
FishWithAHammer writes "Peter Galli of Microsoft posted a blog entry on Port25 today, regarding the explicit placement of C# and the Common Language Infrastructure (the ECMA standard that underpins .NET) under their Community Promise: 'It is important to note that, under the Community Promise, anyone can freely implement these specifications with their technology, code, and solutions. You do not need to sign a license agreement, or otherwise communicate to Microsoft how you will implement the specifications. ... Under the Community Promise, Microsoft provides assurance that it will not assert its Necessary Claims against anyone who makes, uses, sells, offers for sale, imports, or distributes any Covered Implementation under any type of development or distribution model, including open-source licensing models such as the LGPL or GPL.'"
Adds reader anshulajain: "Understandably, Miguel De Icaza is jumping with joy."
Here's why:
There is no mention of other components the extend .NET!
From the document...
"...We introduce instructions newdata, lddata, stdata, castdata, isdata and
switchdata to create and manipulate classunion values..." (emphasis mine).
In fact, this announcement is not much different compared to the one 7 years ago!
Watch out folks. Microsoft's classic Embrace, Extend, Extinguish paradigm is very possible here.
OK, first off it's excellent news if MS are doing this. It would be nice if they did the same for the parts of Mono / .NET that are outside ECMA.
As far as motivation for this goes, they're a business for whom pure co-operation seems to have dubious benefits. I assume that they believe that in this case more people using .NET is good for them and that they can compete well on the quality of the implementation and debugging tools (probably true if only because they'll have a head start on new features).
But the question I'm really curious about: CLI / C# / Mono seems to have generated a massive amount of controversy and therefore a lot of noise. Some fairly popular new apps have been written using it. The whole situation seems to suggest that, whilst using the technology was generally considered to have many downsides, it must have pretty large benefits too: it's not just being suggested as a compatibility library but as a foundation for some pretty cool new stuff. So ... is this really the case? Is it that good that you'd want to write your note taking app in it (Tomboy) even though it's possible to write it in another language (i.e. Gnote)? Are the development tools that much better?
Or is it the case that a few "killer apps" happened to be written in C# as demonstrations of its abilities - even though another language would have done the job - and those apps are sufficiently desirable that Mono is getting pushed hard so that everyone can have these killer apps by default?
Personally, although I've not programmed in C#, I'm familiar with a variety of languages and implementation strategies. Different languages are certainly good for different things and more modern languages are typically less painful to work with. C# sounds quite nice. But what I'm wondering is: is the noise and push over Mono as a popular platform a result of it being particularly strong, or a result of a few particularly desirable apps depending on it? Obviously some (much!) of the noise generated is simply due to concerns over leveraging MS technology. But I do wonder how good the technology must be to justify this much noise and controversy!