• labsin
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    The things I bump in the most:

    • Mutability. Everything is passed by ref so imutable and/or copy should be an important factor of the language, but it’s not. Struct vs class also was way to much impact but can both be used for an interface argument but have such different flow.
    • Compatibility is always favored over improvement in the framework design and language. It has obvious pros as we need less porting, but newer functions in the language are often weird to work with and frameworks get replaced instead of improved, making the porting even harder.
    • A lot of features work magically simple until you want some kind of custom behavior and they then become unmanageable complex. Like the default XML serializer where you can do no extension and everything can get serialized, or async function that abstract the threading untill you want to manage multiple parallel function with error checking and you get very weird and confusing code. Thay all work magically easy as long as you use them for nothing more difficult than the examples.