Coffeehouse Post

Single Post Permalink

View Thread: C#'s biggest mistake
  • User profile image


    No opt-in policy for nullness (Maybe<T>), except for structs via Nullable<T>
    No opt-in policy for mutability (classes, structs)
    No recursive enumerations (datatype constructors) or pattern-matching
    No generic numerics
    No kind-system


    Slow linq to objects, unsuitable for fundamentalists (iterators don't mesh well with recursive use/structures.)
    Partial classes and extension methods - not as holistically designed as one might wish

    Symptoms of a 10 year old language and runtime.

    Dispite all this it's still a great language.

    PS - language doesn't need runtime just to support generics - look at Java. Bracha et al made generics via type-erasure (don't like it due to performance, but it shows its possible.)