Alex Rivera | Logout

Can a programming language be part of a platform? (C# and Java related)

Asked 2010-08-31T18:35:53.083
9

He's the deal: I'm making some theorical research on .NET and Java platforms for my graduation course and I reached a cloudy area: Can C# be considered part of the .NET Framework? Analog to this, is Java (the programming language) considered part of the Java platform?

Let me review the facts:

  1. .NET is a development platform specified by the ECMA-335 Standard; it is an implementation of this standard, if you will. C# however, is an implementation of another standard, ECMA-334 which states clearly that its implementation does not require an implementation of the ECMA-335 standard - the CLR in Microsoft's case (which a lot of people mistakenly call .NET when there's a lot more to it than just the CLR).

  2. Also, we have Mono, a different implementation of the ECMA-335, on which C# also runs (from everything I read, it is implied that Novell doesn't have a ECMA-334 implementation of its own, which is perfectly reasonable), but C# is not PART of Mono.

  3. There's the fact that I read somewhere that a programming language is not part of a platform, but unfortunatelly I can't seem to find the source.

  4. There's also the fact that Wikipedia "Computing Platform" article states that a programming language is a platform; Wiki is, however, virtually worthless if you want your research to be taken seriously.

  5. Microsoft seems to promote C# as a part of .NET, but being .NET a multi-language platform, wouldn't be so every language that supports/is supported by it?

So far, I only spoke of .NET, but I also need an answer regarding Java. Actually, a general response would be the best.

So, can anyone help me to put the pieces together? Reference material is much appreciated.


On a different issue, I've found A LOT of books out there that explain the inner workings of the CLR, isn't anything on the same lines for the JVM? I mean, there's the Specification, of cours

Edit
Report

1 Answer

0

A simple answer could be yes and no, as you said, it's a cloudy area. You will probably find some arguments for, and some against, both equally valid.

But my point of view is that c# is not a part of .NET. C# is designed for platforms like .NET and puts quite specific demands of the platform, like managed memory, that 32 bit assignments can be implemented atomically, etc.

Turn the question around, does .NET require c#? Throw c# out and you still have VB.NET, etc. C# can be thought of as a plugin that requires a platform with a specific interface, where .NET implements that interface.

As a "Yes" argument you could ask the rhetorical question what .NET would be without c#. Would it even survive?

answered 2010-08-31T18:58:10.667

Your Answer