5 ms·
> things seem to have devolved into grabbing things from random github repos Devolved from what? I believe from software not having any dependencies unless the
by ilammy 6y ago
> things seem to have devolved into grabbing things from random github repos
Devolved from what? I believe from software not having any dependencies unless they absolutely must because adding dependencies is such a royal pain. Software written in C and C++ has long been used to the system package manager being language package manager, and the (UNIX) OS being its IDE.
- nine_k 6y agoDebian successfully packages a ton of Python software, notorious for its complicated dependency graphs. Has been for decades. Debian packages a noticeable amount of C-based software which is just old. Emacs, for example. I suppose that skipping major versions (25 to 27) is considered unacceptable, and packaging and maintaining several versions is just proportionally harder. (This is why my laptop now runs Void, and I get a fresh Firefox next day after the release.)
- ilammy 6y ago> Debian successfully packages a ton of Python software, notorious for its complicated dependency graphs. Has been for decades. But that's what I'm talking about. Suppose there is no software in Debian that uses a Python dependency that you need, hence no one packaged it. Now instead of adding a line to your setup.py (or whatever Python devs use), you have to go through the entire adventure of cooking a Debian package if you want to follow the Debian way. And them submitting it to the main repo which is an adventure and commitment of its own which most people are not ready to make. Sure, that works to the benefit of everybody, not only your app. And that's the whole point of Debian distribution. Debian developers work on improving Debian. Not on publishing their software. This is the main difference between “app stores” and “package repositories” and “distribution”. Debian is a distribution, and a package repo is only a part of that. But it kinda saddens me that every language ecosystem has their own package repository, and every distribution ends up having to do effectively busywork of adapting those packages to their distribution and its rules.
- takluyver 6y ago> Debian successfully packages a ton of Python software, notorious for its complicated dependency graphs. I guess this depends on your definition of success, but from my perspective as a Python developer, it doesn't really. Most Python software I'm aware of encourages users to get it by other means (e.g. pip, Anaconda, containers), and anecdotally, the majority of users seem to do so. The occasional people who use apt cause frustration 'upstream' when they report bugs in a version that's 2 years out of date. One package which I help maintain upstream had a security flaw with a CVE, left open in the Debian package for many months after we fixed it. No-one upstream is a Debian developer, and no-one in Debian was updating the package. Python started out with a traditional model of applications sharing libraries, and is now moving in the direction of self-contained applications with separate dependencies. Languages like Javascript and Rust went straight for the latter model, so are probably even less amenable to Debian packaging.
- Spooky23 6y agoIMO, this moved forward with Linux at the OS level 20 years ago with apt and rpm. Seems like now that hyper scale cloud vendors are displacing distros as gatekeeper, we’re going down a road towards niche packaging for languages, frameworks, etc.
- pjmlp 6y agoBecause for those languages, their runtimes are the platform, the underlying OS is irrelevant, as long as the runtime and associated libraries provide the required abstractions to deliver what is being asked for. UNIX is C's platform, hence POSIX and its influence on C and C++ based OSes.
- pjmlp 6y agoA clear example why platform languages always win. C was born to make UNIX portable, and C++ was born a couple of years later on the same office rooms where UNIX came to life. Any guest language introduces additional hurdles, debugging tools, binding libraries, editor support, and naturally OS package managers.