Linked by Eugenia Loli on Sat 15th Jul 2006 22:45 UTC
.NET (dotGNU too) Jeff Cogswell writes: "I'm about to make a confession. Even though I've written several books and articles about C++, I have a secret: C++ isn't my favorite language. I have lots of languages that I use, each one for different purposes. But the language I consider my all-time favorite is Python."
Thread beginning with comment 143622
To read all comments associated with this story, please click here.
I don't htink you quite get it
by snowflake on Sun 16th Jul 2006 20:18 UTC
snowflake
Member since:
2005-07-20

>..is written in C#, therefore it is. Yay! Let's use one >.Net language to write a completely new language using >the same .Net framework. Brilliant.

>All that happens is that you go round in circles >thinking that you're producing something different when >in reality you're reproducing exactly the same thing.

And compiling down to machine code is different?
All our languages, .NET or not, compile down to the same code in the end.

Reply Score: 1

segedunum Member since:
2005-07-06

I'm afraid you don't get it.

And compiling down to machine code is different?

Yes. Common data types, a framework, language standards and a paradigm (OO) are not specified.

All our languages, .NET or not, compile down to the same code in the end.

No, they don't. The way that the machine code is arrived at is vastly different, reflecting the vastly different tools, languages and concepts used for different purposes.

Trying to argue that .Net is just like compiling to machine code is not a great argument.

Edited 2006-07-16 21:11

Reply Parent Score: 1

PlatformAgnostic Member since:
2006-01-02

Here's the thing... you can make a language that uses datatypes which are not CLS compliant. In fact, most of the IP classes would not be CLS compliant, so you can't write a class in IP and call it from C#. IP classes do not have to follow the class structure of .NET and they are in fact fully compatible with Python classes.

There's also an implementation or two of Scheme for .NET. I don't see any way you could shoehorn that into CLS compliance. C# also has features that are not CLS compliant. All of these languages have features that make them cool and change their level of abstraction from the baseline CLS standard in .NET. All this stuff is implemented at the base by .NET data types and compiled by the .NET jit, but how do you know from the IP language that classes are really just dictionaries of function objects, which are pointers to DynamicMethods? You don't! The language hides all of this from you and transforms the .NET type system to build its own type system, much like C transforms machine primitives into a type system. You thus have a python language that can access .NET and perform on par with the CPython implementation.

Reply Parent Score: 1