POKE 36879,255

Java and C# have somewhat reduced the ceremony over C++ by not requiring header files, but they are still both quite verbose. What would it look like if C# went one step further and adopted a light syntax like Python, where white space is significant?

C# 3.0's auto-implemented properties are certainly more concise, and private set stops derived classes from setting the property. However they do not explicitly convey that the class is immutable after construction.

"Anonymous types provide a convenient way to encapsulate a set of read-only properties into a single object without having to explicitly define a type first." - From MSDN on "Anonymous types in C#": http://msdn.microsoft.com/en-us/library/bb397696.aspx

That said, you can't define methods, events, etc. on them. You also can't access the type information outside of the method they are defined in without resorting to reflection (although the dynamic keyword can help here).

The F# Record type is not anonymous, it produces the same type as the original C# code, including automatically generating a constructor for you, and it can be extended with methods and events.