(02-12-2012, 05:22 AM)PhazeShift Wrote: It's not a language that revolves around non .NET methods, it was built to recognize those methods.
Err, what's this supposed to mean? How does a language that is basically collection of syntax and semantics "recognizes" specific methods? If you slap some static library to a C++ program for example, it will also "recognize" them, which sounds a bit awkward to me. It's simply a bunch of code that you can call from your program and use. If you put that way, then you won't be able to call it from your program and use it... or you can substitute it with something else.
You could leave the C# syntax, but strip .NET libraries (classes, methods, interfaces...) and provide your own set of libraries for example, at least for the parts of the syntax that are more tied to .NET methods and substitute them with your own library.
Just look at the
C# ECMA specification of the language, if you implement all that and use your own libraries for example for Array datatype (or even implement them as C style arrays and slap some library methods somewhere in the code able to operate with these just as the specification describes).
Additionally, allow me to quote Herbert Schildt, author of some best-seller programming books, who also cooperated with some folks from Microsoft on book C# - Complete Specification:
Quote:How C# Relates to the .NET Framework
Although C# is a computer language that can be studied on its own, it has a special
relationship to its runtime environment, the .NET Framework. The reason for this is
twofold. First, C# was initially designed by Microsoft to create code for the .NET
Framework. Second, the libraries used by C# are the ones defined by the .NET Framework.
Thus, even though it is theoretically possible to separate C# the language from the .NET
environment, in practice the two are closely linked. Because of this, it is important to have a
general understanding of the .NET Framework and why it is important to C#.
C# can be therefore implemented on its own, just the way I described and still follow the official standardized specification, so it could be called C#, it would simply use alternative libraries (with your own structure functions, or whatever you want), instead of .NET.
I hope this clarifies my statement that you can separate C# and .NET and you would still be dealing with C#. Again, there's a question if it's good for anything, as .NET is quite useful library and if it's not enough, you can always write your own classes and methods, or possibly external libraries in C/C++/et cetera