• ebc@lemmy.ca
    link
    fedilink
    arrow-up
    5
    arrow-down
    1
    ·
    edit-2
    9 months ago

    Honestly I think the main thing that the JS ecosystem does well is dependency / package management (npm). The standard library is very small so everything has to be added as a dependency in package.json, but it mostly works without any of the issues you often see in other languages.

    Yeah, it’s not perfect, but it’s better than anything else I’ve tried:

    • Python’s approach is pretty terrible (pip, easy_install, etc.) and global vs local packages
    • Ruby has its own hell with bundler and where stuff goes
    • PHP has had a few phases like python (composer and whatnot) and left everyone confused
    • Java needs things somewhere in its $PATH but it’s never clear where (altough it’s better with Gradle and Maven)
    • C needs root access because the only form of dependency management is apt-get

    In contrast, NPM is pretty simple: it creates a node_modules and puts everything there. No conflicts because project A uses left-pad 1.5 and project B uses left-pad 2.1. They can both have their own versions, thank you very much.

    • qqq@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      9 months ago

      You can use ~/.local/lib and LD_LIBRARY_PATH for shared libs.

      Or better yet just give in and use the nix package manager, it is basically a virtual environment for your C programs.