Hacker News new | ask | show | jobs
by drob518 90 days ago
This feels like a solution looking for a problem. I have a couple hundred brew packages on my system and I’ve never sat there thinking “If this was only 2 seconds faster…” while doing an update. I’m sure the Homebrew folks could mine this for a few ideas of how to further optimize brew, but I don’t think I’ll be adopting it anytime soon. Compatibility is more important than speed in this case.
13 comments

> I’ve never sat there thinking “If this was only 2 seconds faster…” while doing an update

I definitely have thought something along those lines (mostly when I go to install a small tool, and get hit with 20 minutes of auto-updates first).

Pretty sure I also will not be adopting this particular solution, however

I've never thought "only 2 seconds faster" - I've certainly thought "why is this taking half the time it takes Gentoo to recompile an entire server".
But you can turn that behavior off, IIRC it tells you the environment variable to set if you don’t want it to do that every time it runs.

I agree it’s annoying, but I haven’t turned it off because it’s only annoying because I’m not keeping my computer (brew packages) up-to-date normally (aka, it’s my own fault).

I'd be much happier if it were on a background job, than arbitrarily running when I invoke a command
I've started using https://github.com/DomT4/homebrew-autoupdate recently, which has been great.
Terrible default behavior is a great reason to abandon a software package.
I'm not sure if I just have way fewer things installed than most people or I just update more often, but I haven't experienced anything like this for years. I run `brew upgrade` probably around once every (work)day, usually right before doing a git pull or something, and then I'll quickly look at a couple emails or slack messages, and then it's always done by the time I switch back
What? Why are you running brew upgrade every day?
To upgrade my packages? I'm not sure I understand the question. That's how I use pretty much all of my systems that have package managers.
But why do you want daily upgrades? Most of us want to wait a little while for the bugs to be worked out of fresh releases. And hey, if everything is working today... why would I want to risk potential breaking changes?
I don't recall ever having something break from upgrading it in homebrew, but I do recall having issues in the past from having things outdated without realizing it (usually stuff that wasn't getting upgraded by my package manager, e.g. VS Code being months out of date without me realizing and therefore not working with an extension the company I was working at had developed).

On the average day, I get maybe two or three package upgrades from it. Sometimes, they're packages that I'm extremely grateful to have updates for immediately (like rust-analyzer), and other times they're things that I don't use very often (or don't use directly), so I wouldn't likely remember to upgrade them at all if I didn't make a habit of it.

> Most of us want to wait a little while for the bugs to be worked out of fresh releases. And hey, if everything is working today... why would I want to risk potential breaking changes?

I felt like I was pretty clear in my original comment that I didn't know whether other people upgraded as often as me or not. That being said, it does sound like you've been having an experience you're unhappy with, and I'm not, so I'm not sure why you're so confident that the way I'm using it is weird. It's very possible that it would not end up being something you or others are happy with, but it's more weird to me that you think this is such a huge deal when it seems like the most obvious way in the world to use a package manager to me.

> Most of us want to wait a little while for the bugs to be worked out of fresh releases.

This is not something that's solved by updating less frequently though. It would be solved by a 'minimum age' setting, but `brew` aren't planning on implementing that, with arguably valid reasoning: https://github.com/Homebrew/brew/issues/21421

FWIW this seems to have improved in recent years. Back in the dark times of non parallelized downloads I would purposefully wait to end of day and fire the thing off before leaving
If you use the Homebrew module for Nix-Darwin, running `brew` against the generated brewfile becomes the slowest part of a `darwin-rebuild switch` by far. In the fast cases, it turns something that could take 1 second into something that takes 10, which is definitely annoying when running that command is part of your process for configuration changes even when you don't update anything. Homebrew no-ops against an unchanging Brewfile are really slow.
I've been a lightweight homebrew user for many, many, many years now. I just use it to download or update a thing I need, once every 3-6mo.

It constantly blows my mind how insanely long it takes just to do a few simple things on the fastest hardware I've ever owned in my life.

It's ok because I rarely need it, but sometimes it's so slow I'm looking for alternative install methods while it's doing it's thing.
Agreed here. The speed bottleneck I run into is simply that there's often a lot of packages that need updating, so there's a lot to download. And if anything needs to be compiled from source then the time that takes will dominate (though I think everything I currently run is thankfully pre-built)
Brew definitely used to be a lot slower, and I used to find it very tedious. I feel like they've done a reasonably good job in improving that over the years though (with the switch to distributing binaries by default being a huge win in terms of speed). I have to wonder if stuff like this is more due to lingering feelings from before combined with the easy access to vibe coding tools. If LLM coding came a few years earlier, maybe projects like this one would have made more sense to me.
If I have to deal with even the mention of another package manager in the cross-platform dev ecosystem I am going to snap
The same criticism has been said of Deno and Pnpm and bun, and yet, despite all these years since their respective releases, node and npm remain slower than all three options.
Yeah, but do they work? Last time I gave bun a chance their runtime had serious issues with frequent crashes. Faster package installation or spin-up time is meaningless if it comes at the cost of stability and compatibility.
bun is my go to for npm packages; it’s so much better and faster than npm, it’s not funny.

Never had any issues.

Well, pnpm solves the storage issue, which is a more pressing reason to use it. (I don't know about deno/bun)
I have definitely wished that Homebrew would not wait for all packages to be downloaded before pouring them. It's nice that downloads happen in parallel (didn't always used to be the case iirc), but it feels like the pouring could also be done in the same parallel workflow.
I definitely have felt this. Homebrew is slow.

However, this is a vibe-coded app, with around 30 commits per day, which I don't let install packages on my machine.

Horses for courses, but I've stopped using brew 'cuz it's too slow, so this might bring me back!

Edit: no, it won't...

Agreed on horses for courses. Different people have different tolerances. And yea, all things being equal, faster is better, but they are almost never equal. If you don’t mind me asking, what does “too slow” mean for you in this context? Do you have a particularly complex setup? And what do you use now as an alternative and how has that impacted the update speed?
I wish I could remember the details -- I know I got annoyed with things being slow and when I got a new computer decided to go the no-homebrew route. I'm using nix, and it seems fine so far, but I also really don't understand it at all, which is a little concerning. :-)
My brew update/upgrade takes forever
I've wanted brew to be faster. It would be a nice QoL for me.