• @Yujiri@lemmy.ml
    link
    fedilink
    22 years ago

    I sent this to his mailing list but I don’t know if he’ll see it and I doubt he’ll respond.

    I am an avid reader of Drew’s, and this and the other two posts on the topic have made good points and have convinced that distribution-agnostic package managers like Flatpak are harmful. But I think it’s a mistake to conflate PyPI and npm with those, because: pip and npm aren’t package managers, they’re dependency managers. They have a different use case. An end-user who doesn’t program should never have to use pip or npm. End-users are interested in applications, which should be provided by distribution package managers, but developers are interested in dependencies.

    The number of libraries out there for applications to depend on is too vast for any distribution to package them all, and even if they tried, the amount of work required for them to keep all their packaged libraries up to date would be insane. You’d constantly be forced to keep using old versions of dependencies because your distribution hasn’t updated them, or you wouldn’t be able to build anything on a less popular distribution that doesn’t have all that stuff packaged.

    Unlike applications, libraries don’t generally have files that need to be installed into various folders like /usr/share or /usr/lib or /usr/bin. They just need their source code, or a built object file, or some high-level language’s language-specific version of those, to be in some folder like vendor/ or lib/ in your project root to be used during the build.

    Thus, Flatpak and Snap and Homebrew or whatever can die, and yes having multiple competing build systems for the same language sucks (one of my main frustrations with C btw), but please spare pip and npm and go build and cargo.

    You have another page where you hate on dynamic linking (and I agree with that hate). In a world without dynamic linking this distinction would be a lot more obvious because you wouldn’t find dependencies like libthis and libthat in the distribution package manager.

  • erpicht
    link
    fedilink
    12 years ago

    This answers a lot about why the Python ecosystem seems so confusing to me. I’m glad I don’t have to deal with this too much for the simple data analysis I do.