• NuclearDolphin@lemmy.ml
    link
    fedilink
    English
    arrow-up
    10
    ·
    1 year ago

    All of these bring me a sense of dread, each in a unique way.

    Java I have a special loathing for, but the ecosystem isn’t too wild, just verbose and so XML heavy.

    JS is its own hell because of the sheer number of permutations of technologies a given project will use. There’s always at least one nonstandard framework or tool lingering around from an old trend.

    Python reimplemented the same dep management wheels 5x each, and I have no idea what common stacks look like anymore, but every time I encounter Python projects, something is always broken.

    C is nice and easy from what I’ve used (just GCC & make), but idk what complexity arises in bigger projects.

    Just so glad I’m not a webdev anymore and work with mostly just Rust, cargo, and containers.

    • ebc@lemmy.ca
      cake
      link
      fedilink
      arrow-up
      5
      arrow-down
      1
      ·
      edit-2
      1 year 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
        1 year 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.

    • MajorHavoc@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      Python reimplemented the same dep management wheels 5x each, and I have no idea what common stacks look like anymore, but every time I encounter Python projects, something is always broken.

      We need just one more complete re-engineering of the packaging standard. We promise to get it right, this time. No take-backs.