Quote:Original post by Anonymous Poster
1. What if someone invents new language which won't fit the Microsoft's intermediate language?
Unlikely. How many languages have been created over the last 25 years that didn't "fit" the limited architecture of existing CPU's? Just because the CPU or bytecode engine doesn't support a particular operation doesn't mean it can't be done. there's more than one way to skin a gerbil.
Quote:What if that new language inroduces new cool features which can be implemented EFFICIENTLY ONLY IN MACHINE CODE?
The CLR supports the ability to include CPU specific executable code. No different than inline assembly in C++ source.
Quote:How about a new type system which CAN'T OR SHOULDN'T be dumbed down to the common type system of CLI?
First that's dictated by the CLR which is a PART of the CLI. When was the last time a new primitive data type was introduced?
Quote:How about new base class set which CAN'T OR SHOULDN'T be dumbed down to base class library of CLI?
Exactly how much of the .NET architecture do you actually KNOW about?
Quote:Think of countless possiblities of research in programming languages. Do you believe CLI/CLR/MSIL/whatever-it's-named technologies predicted EVERYTHING?
No different than dealing with the limited instruction set and capabilities of existing CPU's. Research is also not the same thing as production. When researching programming languages not everything needs to run at 100% efficiency. If the current CPU or bytecode environment doesn't support or address an existing requirement it can be given it's own implementation. Do you not remember compiler flags for linking software based floating point libraries?
Quote:2. what if someone invents new Garbage Collection algorithm that is better than that in CLR? (correct me if I'm wrong, but I assume CLR implements own GC algorithm that is shared by all .net-compatible languages?)
Much easier to replace the garbage collection mechanism ONCE rather than requiring all applications to be recompiled with the new libs containing it. This has been done with Java many times over the years. Since the GC is part of the .NET framework you only have to relace it ONCE and all applications immediately benefit from it. No different than updating to newer versions of a shared library.
Quote:But what if those implementation improvements require COOPERATION from THE NEW LANGUAGE, what brings us back to the point 1 ?
If you're going to play "what if" at least go read the ECMA specs so you have an idea of what, if any, constraints might cause problems.