[Mono-devel-list] ECMA verrsions of C#

Matthias Kempka lists at mkempka.de
Sat Jun 26 09:04:14 EDT 2004

Mark Easton wrote:
> Not being a Java nut I might be wrong with this, but my understanding was
> then when someone mentions a Java version number, they're generally not just
> talking about the language version but rather the whole JRE. 

Well, yes, that's surely right. My implicit definition of "user" in this 
thread is the programmer of a language. Programmers are surely 
interested in the language version, since their code must match the 

> If this is the case then surely Matthias' would be better off fussing over
> the .NET Framework version rather than the C# version?  Having said that,
> the Mono roadmap is so explicit about how Mono's functionality maps to .NET
> versions that I guess there wouldn't be any need for any fuss.

Roadmap, that is where I didn't look, but there it is:

# mono: will contain the above features implementing the .NET 1.1 API.
# mono-1.0-compat: Will include a build of the libraries with the .NET 
1.0 API, this is a compatibility build for people running .NET 1.0 

Perfectly. Now I know what I was looking for.
And what I'm asking for is that somewhere in the version or about 
information of a specific release is the information which features of 
the .NET API are implemented. And I can explain why:

.NET is not in the business world yet. It is at the universities (fundet 
by Microsoft) where teachers teach it by giving C# courses. And the 
students will be (so Microsoft hopes) the ones who in 10 years or so 
make the decisions in the industrie pro .NET.
As many people students are not really happy with MS, and they see that 
for .NET there is mono, and they give it a try. Now guess, the course is 
MS-specific, and they learn just C#, and the version talk in the course 
goes so far that C# 2 will contain generics but isn't released yet, so 
in the head of people there is just C# version 1.
I guess I am not the only one who doesn't look up every feature in the 
documentation but first tries if the compiler takes it the way I think.
Now they find a thing that does compile on mcs but as they hand the 
program in it doesn't compile at the teachers compiler. Doubt, 
uncertainty, and the information of the binaries (the thing they have at 
hand) doesn't give anything beside the mono/mcs version. The resulting 
thought is, if I have to be sure I must take the MS compiler.

Still now after this thread and reading the road map, I am still 
uncertain what part of the specifications my mcs comiles and how I can 
ensure whether my working code will compile on my teachers compiler. 
Dennis told me, 2.0 features are turned on by default, the roadmap says 
mono 1.0 will contain only 1.1 features, and the mcs faq tells me I have 
to turn on 2.0 features (such as method conversion) by the -2 switch. 
So, as you may see, something is inconsistent, and just by putting the 
information which specification a release tries to match into it can be 
a valuable clue.


More information about the Mono-devel-list mailing list