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 143675
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[3]: Pointless
by n4cer on Sun 16th Jul 2006 23:44 UTC in reply to "RE[2]: Pointless"
n4cer
Member since:
2005-07-06

It's written in C#, so it inherits CLS compliance in some way. I find the notion that somehow it isn't a .Net language and that it's somehow different rather silly.

Neither C#, C++/CLI, VB.NET, nor many other languages that target CLI/CLR are inherently CLS-compliant languages. Each language has features that violate CLS compliance rules, and their respective compilers do not check for CLS compliance by default. Unless you actually take the necessary steps to ensure that your code is CLS compliant, it likely is not.
See the following links and excerpts from MSDN.

Common Language Specification
http://windowssdk.msdn.microsoft.com/en-us/library/12a7a7h3.aspx

"The CLS was designed to be large enough to include the language constructs that are commonly needed by developers, yet small enough that most languages are able to support it. In addition, any language construct that makes it impossible to rapidly verify the type safety of code was excluded from the CLS so that all CLS-compliant languages can produce verifiable code if they choose to do so."

Writing CLS-Compliant Code
http://windowssdk.msdn.microsoft.com/en-us/library/bhc3fa7f.aspx
Language Interoperability Overview
http://windowssdk.msdn.microsoft.com/en-us/library/a2c7tshk.aspx
"Even though the runtime provides all managed code with support for executing in a multilanguage environment, there is no guarantee that the functionality of the types you create can be fully used by the programming languages that other developers use. This is primarily because each language compiler targeting the runtime uses the type system and metadata to support its own unique set of language features. In cases where you do not know what language the calling code will be written in, you are unlikely to know whether the features your component exposes are accessible to the caller. For example, if your language of choice provides support for unsigned integers, you might design a method with a parameter of type UInt32; but from a language that has no notion of unsigned integers, that method would be unusable."

Reply Parent Score: 2