I have been asked recently whether we should fork the C# language and add extensions and improvements to the language and the class libraries to deviate from Microsoft (there are plenty of little small things that can be done with relatively no effort).
I do not believe that making the Mono C# compiler incompatible with the Microsoft and the ECMA standard is a good idea. A big benefit of having a compatible language is that source code can be interchanged between the two platforms with ease. If we were to modify the language to have features not found in the Microsoft compiler, we would make the life of our end users (software developers) harder for no good reason.
On the other hand, I would encourage folks to prototype their ideas on the compiler: if your idea is great, we could help drafting a proposal and bring that forward to ECMA and Microsoft, and who knows, it could even become part of the standard.
I personally did not like the C# language support for nullable types I felt they had no place in the language, and I think a lot of people feel the same way.
I changed my opinion on its usefulness when I explained them to a couple of friends: they immediately saw the benefits to them. It was clear that my programmer background was not the same programmer background that nullable types addressed.
Posted on 28 Jun 2004