News for hackers. Stuff that matters.
Re:Maybe you shouldn't install new software for a bit by c7b on Friday May 08, 2026 @01:50AM (#48059086)
My pet theory is that package managers will one day be seen like we see object-oriented programming today. As something that was once popular but that we've since grown out of. It's also a design flaw that I see in cargo/Rust. Having to import 3rd party packages with who-knows-what dependencies to do pretty much anything, from using async to parsing JSON, it's supply chain vulnerability baked into the language philosophy. npm is no better, but I'm mentioning Rust specifically because it's an otherwise security-conscious language.
Re:Maybe you shouldn't install new software for a bit by pjmlp on Friday May 08, 2026 @02:57AM (#48059612)
Rust is quite bad on this, having to rely on external crates for error handling or macros is even worse than what async runtime to pick up.

Yes, I mean crates like anyerror and syn.

Re:Maybe you shouldn't install new software for a bit by kibwen on Friday May 08, 2026 @12:18PM (#48065212)
I'm all for including more things in the Rust standard library, but anyhow and syn are literally from a core Rust dev. It's not some left-pad rando, it's like a Linux user saying they don't trust the Git developer.
Re:Maybe you shouldn't install new software for a bit by weregiraffe on Friday May 08, 2026 @01:59AM (#48059153)
But you can't expect the language std to supply you with every package under the sun.
Re:Maybe you shouldn't install new software for a bit by foresto on Friday May 08, 2026 @02:30AM (#48059400)
A stdlib doesn't have to provide everything under the sun in order to be helpful here.

Languages with rich standard libraries provide enough common components that it's feasible to build things using only a small handful of external dependencies. Each of those can be carefully chosen, monitored, and potentially even audited, by an individual or small team.

That doesn't make the resulting software exploit-proof, of course, but it seems to me much less risky than an ecosystem where most programs pull in hundreds of dependencies, all of which receive far less scrutiny than a language's standard library.

Re:Maybe you shouldn't install new software for a bit by c7b on Friday May 08, 2026 @02:14AM (#48059282)
I don't have an answer what the alternative is going to look like. But smarter people than me may find something. C/C++ are doing fine without package managers. Go at least has a more capable standard library than Rust. But I'm not sure if Go's import github approach is the answer.

One idea I've been entertaining is to not allow transitive imports in packages. It would probably lead to far fewer and more capable packages, and a bigger standard library. Much harder to imagine a left-pad incident in such an ecosystem.

Re:Maybe you shouldn't install new software for a bit by pjmlp on Friday May 08, 2026 @02:58AM (#48059622)
In C and C++'s case, the batteries included is POSIX + Khronos.
Re:Maybe you shouldn't install new software for a bit by kibwen on Friday May 08, 2026 @12:24PM (#48065298)
In this analogy, the battery is the Leiden jar cobbled together by Benjamin Franklin in 1750. It's 2026, POSIX is unfit for purpose.
Re:Maybe you shouldn't install new software for a bit by well_ackshually on Friday May 08, 2026 @02:46AM (#48059520)
>C/C++ are doing fine without package managers.

They're not either, every one of these projects contains a gigantic vendor/ folder full of unmaintained libraries, modified so much that keeping up with the latest changes is impossible so they're stuck with whatever version they copied back in 2009.

Re:Maybe you shouldn't install new software for a bit by jkercher on Friday May 08, 2026 @06:59AM (#48061381)
You make that sound worse than it is. On the overall topic, you have 0 supply chain risk, and the whole thing is local. Also, your code from 2009 is still valid. That would be a foreign concept in some languages like Python.
Re:Maybe you shouldn't install new software for a bit by baq on Friday May 08, 2026 @07:15AM (#48061501)
you have your supply chain risk still, it's just frozen as of 2009 and whatever you vendored back then is as of today swiss cheese; also you'd better have the compiler suite vendored, too (as you should with this strategy).

there's nothing stopping you from using python from 2009 except why would you want to do that to yourself - but the same strategy applies. the reference python implementation is written in C, after all.

Re:Maybe you shouldn't install new software for a bit by uecker on Friday May 08, 2026 @04:35AM (#48060333)
The solution exists, and those are curated package repositories as we have in Linux distributions. In C I can simply install a -dev package and use some library which sees some quality control and security updates from the distribution.

The problem is that the UNIX shell model got very successful and is now also used on other platforms with poor package management, so all the language-level packaging system were created instead. But those did not learn from the lessons of Linux distributions. Cargo is particularly bad.

Re:Maybe you shouldn't install new software for a bit by marcus_holmes on Friday May 08, 2026 @08:24AM (#48062066)
TFA is literally talking about vulnerabilities in Linux packages. There are gajillions of them. Curated package repositories are not solving this problem.
Re:Maybe you shouldn't install new software for a bit by MSFT_Edging on Friday May 08, 2026 @11:17AM (#48064397)
I think curated package repositories solve a problem, but not all of them.

For example, I'm not sure if the world of windows freeware ever moved past this, but very often, the home page for a freeware package will look nearly identical to a page set up to deliver malware. Every package you download you wonder "is this the legit version?". Even push it further, there were multiple examples of sites that were previously trusted for software downloads(SourceForge and the installer debacle) that began packaging spyware or adware into downloads.

With either delivery method, you're not quite safe from supply chain attacks, but with the curated repo, you at least have a single source of packages where you can trust it 99% of the time.

Re:Maybe you shouldn't install new software for a bit by uecker on Friday May 08, 2026 @11:30AM (#48064575)
It talks about "installing software". You should definitely install updates from your Linux distribution and installing new packages from a curated repository is certainly not worse than having software already installed. Reducing the footprint is always a good idea though. Installing software from random uncurated sources is generally risky.
Re:Maybe you shouldn't install new software for a bit by kibwen on Friday May 08, 2026 @12:32PM (#48065394)
> But those did not learn from the lessons of Linux distributions. Cargo is particularly bad.

I recall a decade ago listening to native app developers lamenting how web pages were inferior to native apps and gnashing their teeth at why browsers wouldn't learn the lessons of native apps. It was, and remains, a shocking display of self-unawareness to fail to understand why web pages, despite doing many things worse than native apps, managed to do blow native apps out of the water when it comes to doing the things that actually matter to users. This is how it feels listening to the above comment; you have failed to reflect on why both programming language authors and programming language users were pushed to using language-specific package managers in the first place, and you have failed to put forth any improvements to OS-level package managers that would allow them to address those underlying flaws.

Re:Maybe you shouldn't install new software for a bit by rounce on Friday May 08, 2026 @05:17AM (#48060646)
> Go at least has a more capable standard library than Rust.

Many Golang projects I see in the wild will import a number of dependencies with significant feature overlap with sections of the standard library, or even be intended as a replacement for them. So it seems that having an expansive stdlib isn’t sufficient to avoid deep dependency trees, it probably helps to some degree but it’s definitely not a panacea.

Re:Maybe you shouldn't install new software for a bit by Measter on Friday May 08, 2026 @07:37AM (#48061677)
That's not really that surprising when you think about it. Standard library-provided things are implemented on a basis of working OK for as many scenarios as possible, not on one of being the best possible implementation for every possible scenario.
Re:Maybe you shouldn't install new software for a bit by kibwen on Friday May 08, 2026 @12:21PM (#48065248)
> C/C++ are doing fine without package managers.

More or less the entire Debian apparatus is an organization devoted to being a C/C++ package manager, and while as an end-user it's adequate for installing applications it's still an enormous pain to use packages as libraries even with apt and friends. And once you get outside of apt, you're in an endless hellscape. People don't seem to understand that the real reason that people love Rust is not because of memory safety (let's be honest, most people are too short-sighted to care about that); it's because of Cargo.

Re:Maybe you shouldn't install new software for a bit by skydhash on Friday May 08, 2026 @07:50PM (#48070192)
> it's still an enormous pain to use packages as libraries even with apt and friends. And once you get outside of apt, you're in an endless hellscape

I strongly doubt that. Especially with tools like pkg-config that let you generate the set of flags for a package. If anything I've seen more horrendous build scripts from people that are trying to be clever and trying to support everything under the sun.

Re:Maybe you shouldn't install new software for a bit by CJefferson on Friday May 08, 2026 @12:28PM (#48065345)
I think what we really need is better sandboxes languages. I’d be much happier if my compression algorithm only had an input stream and an output stream. Maybe my gui library shouldn’t have network access or filesystem access. It just draws what I give it, gives me back what users press. You could still make evil software in this world of course.
Re:Maybe you shouldn't install new software for a bit by c7b on Friday May 08, 2026 @12:41PM (#48065545)
Sounds like functional programming could help with that?
Re:Maybe you shouldn't install new software for a bit by mike_hearn on Friday May 08, 2026 @04:37AM (#48060354)
The industry hasn't grown out of OOP. Go look at any major production codebase businesses rely on and it's fully of objects and classes, including new codebases made very recently.

Package managers aren't going anywhere. Even languages that historically bet on large standard libraries have been giving up on that over time (e.g. Java's stdlib comes with XML support but not JSON).

Unfortunately, LLMs are also not cheap enough to just create whole new PL ecosystems from scratch. So we have to focus on the lowest hanging fruits here. That means making sandboxing and containers far more available and easy for developers. Nobody should run "npm install" outside a sandbox.

Re:Maybe you shouldn't install new software for a bit by c7b on Friday May 08, 2026 @07:02AM (#48061398)
It's a condensed statement. There was a time when I would start a new programming project thinking about class hierarchies, maybe drawing some UML diagrams. I don't do that anymore, and I don't believe it's very common for greenfield projects anymore, but educate me if that's wrong. We've kept some of the good ideas from OOP like namespaces and interfaces and we use them in slightly different contexts now, where OOP may even still be technically possible, but it's not the primary way of doing things anymore. I believe, or at least hope, we will see a similar kind of evolution for package managers. Where it's still possible to use other people's code, but things like left-pad or is-even is no longer how it's commonly being used, even if it may still technically be possible.
Re:Maybe you shouldn't install new software for a bit by mike_hearn on Friday May 08, 2026 @08:51AM (#48062340)
I think that's normal, what universities teach as OOP is very different to what's actually done in the real world. But it was always that way. I learned OOP as a kid and UML didn't feature. Then at university it was taught in a very theoretical way. On the other hand things like encapsulation, inheritance etc are still widely used.