So I’m no expert, but I have been a hobbyist C and Rust dev for a while now, and I’ve installed tons of programs from GitHub and whatnot that required manual compilation or other hoops to jump through, but I am constantly befuddled installing python apps. They seem to always need a very specific (often outdated) version of python, require a bunch of venv nonsense, googling gives tons of outdated info that no longer works, and generally seem incredibly not portable. As someone who doesn’t work in python, it seems more obtuse than any other language’s ecosystem. Why is it like this?

  • lime!
    link
    fedilink
    English
    arrow-up
    1
    ·
    14 days ago

    that’s posturing if anything. if you’re an experienced developer it takes fully 10 minutes with either system. and if you’re not interested in modifying it, just use a container image.

    the only case where i would agree with you is when i have to modify LD_LIBRARY_PATH to get things to run…

    • Orygin@sh.itjust.works
      link
      fedilink
      arrow-up
      1
      ·
      14 days ago

      Depends on what you’re used to. I have lost too much time trying to get a python or js program to run on my machine.
      Of course if the project is well written and with decent documentation it’s easier, but in general I have had too many incompatibilities with versions of the tooling and the dependencies which may be too ancient to work properly. On the other side, go code that was written a decade ago still compiles fine without thinking about it.
      Hell I even had a js project that was working then 6 months later, without changing any code in it, wouldn’t build. Talking to a front end dev at work he immediately said “oh yeah node was probably updated and you need to do x and y to make it work”. Sorry but I have other things to do than massaging bad tooling to build this.

      Btw, even containers are not a bullet proof solution. I had a python container straight up not work even though it was distributed like that.

      • lime!
        link
        fedilink
        English
        arrow-up
        1
        ·
        14 days ago

        i mean, that is the difference between interpreted and compiled.

        if the container doesn’t work though, that means it is broken and should be fixed. the point of them is literally to be plug-n-play. that would be like distributing a go binary with a segfault in main.