On top of which I want literally nothing to do with Max Howell. He's the consummate brogrammer douche. Whined about getting asked to do a code exercise at a google interview, bragging about how he made a project in use by X percent of the company's engineers.
He should go to a few conferences, introduce himself under another name, and bring up brew. I'd guess after half a dozen encounters he'd stop incessantly bragging about being the creator of brew.
Everyone uses brew because they have to, not because they want to.
I'm torn between the brew team being full of insufferable people because they don't know this, and arrogant because they do know it...
> Everyone uses brew because they have to, not because they want to.
What?
Homebrew is easily one of my favorite pieces of software. It's the first thing I install on any new macOS or Linux machine.
Almost every piece of software I want to install is easily installable via Homebrew. The versions it has is almost always more up-to-date than what's in apt or yum. On macOS I can install all of my GUI apps with Homebrew Cask.
I have my Brewfile with my dotfiles so that any time I get a new machine it's easy to install everything I need. Just this week I updated my dotfiles to install Homebrew + my common development utilities on GitHub Codespaces. Without Homebrew I'd have a long, long, long script downloading packages from source verifying keys, installing dependencies, and then finally installing some software.
Aside from that, there are alternatives to Homebrew. Install things yourself from source, or use MacPorts.
> Whined about getting asked to do a code exercise at a google interview, bragging about how he made a project in use by X percent of the company's engineers.
My guess is that you support the status quo of software engineering interviews. That's fine, but many don't.
Why do you have to use brew - there are other package managers for macOS new ones like nixpkgs and ones much older than brew like Macports and Fink. All of these follow normal Unix standards e.g. like work on a multi user system.
Because Homebrew is unfortunately "the standard" and the first place a project will package for if availability for macOS is desired. As a Linux user, it's the worst package manager I've ever experienced but it is what everyone is using in my company who uses macOS (most people).
"pull requests for new packages are welcome" is the self-defeating answer: if you as a user have to create a PR for a package to be in MacPorts then it means that MacPorts have not attracted enough attention from the authors of the package to submit it themselves.
In the Nix world, at least, packages are often added by people who want to use them. I think that's more common than the fulfillment of a packaging request.
It would be funny if the state of packaging on Linux would not be so pathetic.
If authors care about Windows they do produce Windows installers and/or publish it in their store.
If authors care about macOS, they produce .dmg or publish the app via Mac Store. Additionally they often publish it on Homebrew.
If authors care about Linux, they provide packages for Ubuntu and Fedora, and sometimes for more distros from the long tail (usually Debian comes 3rd as it is simple to add after Ubuntu).
It's so slow: on the order of single digit minutes to a dozen to install a single package. It feels messy, like it's shotgunning my entire system with bits of itself (I don't know how true the reality of this is). I've not infrequently had packages simply fail to finally resolve after they did their dance of resolution. It does not inspire delight. The vibe, if you'll excuse me, is very crude cudgel.
Oh, the install location it asks you about when installing Linuxbrew is extremely odd. One choice offered is to make a dedicated brew user directory and then install there? That's terrible practice. No one else does this because it's terrible. And then the other apparently breaks a bunch of stuff and is not recommended.
You don't absolutely have to use brew, but there's a sort of relentless soft pressure to use it because it's more or less the de facto standard package manager for macOS and has such a large collection of packages.
I rather dislike it, and I periodically purge it from my system. So far I've always ended up reluctantly adding it back because I was trying out some tool or other that was dramatically more of a pain to install without brew.
I can get by for a long time without it, but then I want to try out something that assumes brew, or whose dependencies assume brew, and it winds up back on my system again until I get vexed enough to remove it again.
> it's more or less the de facto standard package manager for macOS and has such a large collection of packages
I definitely see the social pressure. That said, I’ve never needed to use it because I needed a package that was not on Macports. So far for my use no difference in the number of packages in the default repositories has been meaningful.
The thing that always makes me cave and install brew is I want to try some tool and its default install assumes brew.
Now, I'll bet in close to 100% of cases I could get things to work with stuff from MacPorts instead, but I've accumulated thirty years worth of scars that incline me to want to stick as closely as possible to the defaults when trying something new.
So I end up going back to brew, even though I don't much like it.
> [Max Howell] should go to a few conferences, introduce himself under another name, and bring up brew. I'd guess after half a dozen encounters he'd stop incessantly bragging about being the creator of brew.
I share your opinion of the technical execution of Homebrew— probably anyone with a deep Linux background would. But I think Howell is well aware of those deficiencies by now (and many may even have been clear to him at the start).
I also think that it's worthwhile for us haters to take seriously what Homebrew gets right, and that means admitting that it's a tool that many, many people have experienced as pleasant and useful. The tidy subcommand interface, relative simplicity, choice of popular/trendy tools (Ruby, at the time of Homebrew's creation), inviting and consistent (if controversial) use of metaphor, and playful tone (small jokes on the docs, use of emoji in CLI output), are all things that have proven to make a real difference in Homebrew's success. None of those speak to package management fundamentals, but they're real strengths and they are visible to all users of Homebrew right away, whether they know much about package management or not.
I feel you about being basically forced to use Homebrew, though. That sucks. It's frustrating to feel hampered by the tools your team uses when you know there are better ones out there but you just can't reverse the team's inertia.
I also like brew. The whole UX pipeline is smooth, and I don't mind if it takes an extra 30 seconds to install packages (which doesn't happen often).
The brewfile (as someone mentioned) is super convenient, and the fact that I can use the same package manager for mac and linux is nontrivially awesome.
He should go to a few conferences, introduce himself under another name, and bring up brew. I'd guess after half a dozen encounters he'd stop incessantly bragging about being the creator of brew.
Everyone uses brew because they have to, not because they want to.
I'm torn between the brew team being full of insufferable people because they don't know this, and arrogant because they do know it...