• wolf@lemmy.zip
    link
    fedilink
    English
    arrow-up
    1
    ·
    4 months ago

    THIS.

    I do not get why people don’t learn from Node/NPM: If your language has no exhaustive standard library the community ends up reinventing the wheel and each real world program has hundreds of dependencies (or thousands).

    Instead of throwing new features at Rust the maintainers should focus on growing a trusted standard library and improve tooling, but that is less fun I assume.

      • wolf@lemmy.zip
        link
        fedilink
        English
        arrow-up
        2
        ·
        3 months ago

        Easily, just look at the standard libraries of Java/Python and Golang! :-P

        To get one thing out of the way: Each standard library has dark corners with bad APIs and outdated modules. IMHO it is a tradeoff, and from my experience even a bad standard library works better than everyone reinvents their small module. If you want to compare it to human languages: Having no standard library is like agreeing on the English grammar, but everyone mostly makes up their own words, which makes communication challenging.

        My examples of missing items from the Rust standard library (correct me, if I am wrong, not a Rust user for many reasons):

        • Cross platform GUI library (see SWING/Tk)
        • Enough bits to create a server
        • Full set of data structures and algorithms
        • Full set of serialization format processing XML/JSON/YAML/CVS/INI files
        • HTTP(S) server for production with support for letsencrypt etc.

        Things I don’t know about if they are provided by a Rust standard library:

        • Go like communication channels
        • High level parallelism constructs (like Tokyo etc.)

        My point is, to provide good enough defaults in a standard library which everybody knows/are well documented and taught. If someone has special needs, they always can come up with a library. Further, if something in the standard library gets obsolete, it can easily be deprecated.