northTiger
northTiger

Reputation: 253

C# language design pillars

In the article (http://www.artima.com/intv/nonvirtualP.html) Anders Hejlsberg mentioned that versioning is one of the pillars of C# language design. Does anybody know what are other pillars?

Upvotes: 4

Views: 654

Answers (1)

Eric Lippert
Eric Lippert

Reputation: 659994

I refer you to page one of the C# specification, which describes the important factors that went into the design of the language. A few quotes that indicate what some of the important factors were, and continue to be:

modern, object-oriented, and type-safe

--

immediately familiar to C, C++, and Java programmers.

--

Contemporary software design increasingly relies on software components in the form of self-contained and self-describing packages of functionality. Key to such components is that they present a programming model with properties, methods, and events; they have attributes that provide declarative information about the component; and they incorporate their own documentation. C# provides language constructs to directly support these concepts, making C# a very natural language in which to create and use software components.

--

Several C# features aid in the construction of robust and durable applications: Garbage collection [...] exception handling [...] type-safe design

--

C# has a unified type system. [...] values of any type can be stored, transported, and operated upon in a consistent manner

--

To ensure that C# programs and libraries can evolve over time in a compatible manner, much emphasis has been placed on versioning in C#’s design. Many programming languages pay little attention to this issue, and, as a result, programs written in those languages break more often than necessary when newer versions of dependent libraries are introduced. Aspects of C#’s design that were directly influenced by versioning considerations include the separate virtual and override modifiers, the rules for method overload resolution, and support for explicit interface member declarations.

Upvotes: 7

Related Questions