@Pragmatic_Eng: Creator of C#, Anders Hejlsberg(@ahejlsberg), on the design goals that shaped the language and why standardisation was …

X AI KOLs Following News

Summary

Anders Hejlsberg, creator of C#, discusses the design goals that shaped the language, including object orientation, managed code, garbage collection, reflection, and standardization.

Creator of C#, Anders Hejlsberg(@ahejlsberg), on the design goals that shaped the language and why standardisation was a goal from the beginning: “The overarching thing was this power and productivity of C++ with the ease of use of Visual Basic. We knew we wanted to build an object oriented language. We wanted managed code or byte code so we could target different runtime environments. We wanted garbage collection and exception handling, but also things like a unified object system where, and that's true in C#, anything can be assigned to an object. If it's a value type, we box it. And it's a self-describing object. So, reflection: you can ask an object, ‘what are you’? And you can get all of the facts about it at runtime, and you can dynamically manipulate it in ways that just don't exist in a lot of other environments. We wanted a language that made this new model of properties, methods and events first class because that was how components were built as opposed to just sort of functions and procedures and even objects. And we wanted to create a language that was standardised. We wanted to give this language to a standardisation committee and try to level the playing field there. And all of those things were sort of like what was rolled up in C#”
Original Article
View Cached Full Text

Cached at: 05/20/26, 02:31 PM

Creator of C#, Anders Hejlsberg(@ahejlsberg), on the design goals that shaped the language and why standardisation was a goal from the beginning:

“The overarching thing was this power and productivity of C++ with the ease of use of Visual Basic.

We knew we wanted to build an object oriented language. We wanted managed code or byte code so we could target different runtime environments.

We wanted garbage collection and exception handling, but also things like a unified object system where, and that’s true in C#, anything can be assigned to an object. If it’s a value type, we box it.

And it’s a self-describing object. So, reflection: you can ask an object, ‘what are you’? And you can get all of the facts about it at runtime, and you can dynamically manipulate it in ways that just don’t exist in a lot of other environments.

We wanted a language that made this new model of properties, methods and events first class because that was how components were built as opposed to just sort of functions and procedures and even objects.

And we wanted to create a language that was standardised. We wanted to give this language to a standardisation committee and try to level the playing field there.

And all of those things were sort of like what was rolled up in C#”

Similar Articles

Conformance vs Comprehension

Lobsters Hottest

The author recounts his career in software standards and open source, then describes building a compiler called Roundhouse with Claude that converts Rails applications to statically typed languages like Rust, Crystal, and TypeScript.