@sir flip-side: some environments have out of date packages and wont even accept new ones you update yourself, such as Debian. Additionally, even across `apt`-using distros, like-packages may has dislike-names, but pip is a constant across everything.

Personal computing has loads of conflicting goals, and sometimes isolated and independent tools like virtualenv and pip make life more livable as a pragmatic solution to non-ideal environmental facts of life.

@kline I addressed out of date packages in the article; names are not important

@sir the suggested solutions are to request or (even better) update them yourself, but I specifically mention an instance where this isn't possible.

Names being dislike across systems means I need to write more infrastructure or documentation specifying how to fetch the various dependencies. Ideally I would have the time to write these, or a team of contributors with platform- and distro-specific knowledge, but I don't.

It could of course be solved with sane standards, but that's boring & NIH

@kline FTA:

>If you find some packages to be outdated [...] send them a patch [...] installing it from your private repo in the meanwhile.

@sir my own private repos don't allow anyone else to build/use my software

@sir it's now the same problem as the dislike names, where people need to know (and I have to write docs or code) to add my own repos, and I need to provide those repos for a bunch of different platforms and distros. Again, I'd need more time, money, or contributors.

It feels more sensible to converge the world on a single packaging standard and infrastructure and allow software to more precisely declare what they need. But that's a bit of a pipe dream because we all have divergent interests.

@kline @sir
Some software needs to integrate with the distro, eg. (as pointed out in Drew's blogpost) by creating users, telling init how and when to start your software, etc.
You can't achieve it in a distro-agnostic manner, because one of the reasons different distros exist is to do these particular things differently. And no language-specific package manager will take care of this for you.

Also, you don't need to care about all distros, just the one you have on your servers.

@sir I'd be interested to here more about your your development process one of these days

1. Write code
2. Weep because computers are still awful anyway
3. GOTO 1

@sir Thanks for this article, I completely agree. This is why crystal's package manager only touches files inside ~/.cache/shards/ and $PWD/lib/. Can't remember if I linked this to you already but: github.com/crystal-lang/crysta is what I wrote about this topic from a language author's point of view.

@sir Language tooling tends to suck, and i'm scared of someday the "ruby fanclub" of our community are going to ruin everything and create a shitty bloated package manager. Oh well, at least i'll be arguing against ever acknowledging it exists officially until the end of time if that happens.

Sign in to participate in the conversation

cmpwn.com is a private Mastodon instance for friends of SirCmpwn.