4 ms·
> If you aren't aware, there is an entire universe out there of people working solely on managing dependencies so that you, a developer or user, can "just" inst
by transpute 2y ago
> If you aren't aware, there is an entire universe out there of people working solely on managing dependencies so that you, a developer or user, can "just" install software into your computer and have it magically work. It is fucking hard and complicated and necessary. If you've never done packaging for a distro or a language (and I mean 250+ hours of it), you won't understand how much work it is or how it will affect your own projects.
When new employees joined the engineering org at a former employer, they were required to spend six months on the sustaining team, where they could be assigned customer-escalated bugs in any part of the codebase. Under the clock to deliver a hotfix for production customers, they would be required to learn a new area of the complex codebase, work with specialists in that area, develop/test a fix and shepherd it through review/approval by senior engineers. Those who survived this process could apply to the subsystem team of their choice.
There is much for developers to learn from a period of apprenticeship in cross-platform software packaging. Start with .deb/.rpm, then image customization, A/B upgrades, stateless systems and work up to reproducible builds with Yocto, NixOS, Guix. In the next few years, SBOMs (software "bill of materials" aka package provenance) will become mandatory in some regional and vertical markets. This will either cause a reduction in dependencies, or increased attention to software supply chain relationships that bring regulatory costs.