← Back to context

Comment by smarkov

3 months ago

> People have a right to build substitutes and replacements -- I believe in the "Let a hundred flowers bloom" philosopy.

It's a blessing and a curse. Look at package managers, they more or less all do the same thing, with one primary job of "go download some binary so I can run it", yet there's so many to choose from. Every time you read some Linux guide they have to list 7 different ways of installing the same package. It's stupid, probably even more so for the maintainers of those packages because they have to distribute their package 7 different ways. At least I'm glad systemd has mostly become the standard, so you don't have to also see 7 different ways of creating a service.

Usually, it's the distributions problem to package software. You as a software developer publish documentation on how to build your application and then simply wait for other people to do the packaging for you. The creation of services is the same, you can maybe create a recommendation, but the service definition is part of the package file and thus not your problem.

  • In practice, though, the packagers quite liked systemd, because it a) makes service definition easier than any other system, and b) it significantly increases the likelihood that the developer has already written a suitable service file (and developers will like that that is used, because it reduces the chance that a packager makes a mistake and increases their support burden).

    And as an end user of multiple distros, I really appreciate it because I also have to make services on occasion and it's nice that there's one way to do it and it's pretty easy to do correctly.

  • Usually, this is not good enough. I as a software developer often make use of the package manager built into the language of choice and use that to distribute my software. I also commonly make use of package managers of languages that I don't use to install software.

    We are overdue to package manager interop and common interfaces.