Hacker News new | ask | show | jobs
by kspacewalk2 1960 days ago
"Someone else would have filled the void if homebrew hadn’t shown up, and it would hopefully have been better."

MacPorts and fink existed before homebrew took over, and they weren't better. That's why homebrew took over.

2 comments

But Homebrew wasn't (and isn't) better than MacPorts, either.

They both work well (we can and do quibble about the internal mechanics of each), and appeal to different groups of people.

My theory is that Homebrew was announced at exactly the right time in the MacOS adoption curve. A huge number of new users arrived with no existing knowledge of MacPorts or Fink. Most of them didn't know they needed a package manager at first, but when the momentum picked up, Homebrew was the new option with a better web page, a more collaborative working model, and hosted at GitHub (also ascendant).

I'd also argue that similar factors were involved in Linux's popularity over BSD in the 1990s.

Timing, environment, adequacy, and luck. All are required. Superiority is not.

About 11 years ago I moved over to then OS X and Homebrew was very new compared to MacPorts at the time. I started with the more established MacPorts, but quickly became frustrated with how many broken and outdated packages were hosted on MacPorts. So I moved over to Homebrew and haven't looked back.

This is not to say that Homebrew is perfect; there's lots of big and little things I'd change. But I'd argue that at least at the inflection point of its introduction, Homebrew definitely solved a problem I was having with its competition. Timing helped for sure, but in my experience it won on technical merits.

I'm in that same boat. Homebrew irks some people, but for me it's always just worked to the point that I just don't have to think about it, ever. That's what I really want from a package manager: to be able to forget that it's there and start taking it for granted.
I used MacPorts before hombrew. Homebrew "just worked", MacPorts sucked.

Maybe I was too dumb to use MacPorts, but all other MacPort used I knew back then all moved to homebrew very quickly.

This, so much this. I tried to use MacPorts. It was pulling teeth every time. Brew was a It Just Works breath of fresh air.

I agree that it's a very opinionated tool, and note that those opinions fit in well with the Mac ecosystem. They aren't as good a fit for Linux or Windows.

I think often 'it just works' and 'opinionated' goes hand in hand. Without choosing what to say no to, you create infinite workload with finite amounts of people and thus something breaks, somewhere.
Yep, I have to agree. I started using a mac about 11-12 years ago. Homebrew was new. At the time MacPorts was the "defacto" package manager and Homebrew was the "new kid on the block" or "experimental" one.

I started with Macports and it never did what I wanted it to. Packages were broken and it required me to do a lot of stuff that I didn't understand. A friend told me that he had recently done all the same installs on Homebrew and it was easy. So I gave Homebrew a try and the exact same packages installed easily and quickly. Homebrew has only gotten easier to use since then.

Maybe I am just not doing anything complicated enough with Homebrew to run into the issues other people have had, but my experience with Homebrew has been a breeze. I really don't have any complaints. I'd maybe prefer if packages were Python instead of Ruby, but at the end of the day that really doesn't matter.

Same. I wrestled with it and Fink for a while. Maybe things have gotten a lot better elsewhere and I have Stockholm Syndrome, but so far so good.
I used MacPorts before Homebrew was a thing, and had plenty of experience with bsd ports going back to the late 90s.

Homebrew was just straight up better, no doubt about it. It wasn't "noobs," "good timing," or "tricky marketing." They were just better, even if still not what these posters desire.

> They were just better

No offense but we are talking about a "package manager" which:

- complained when you installed things in /use/local (where they belong) not managed by itself;

- had a flag to install packages somewhere else which broken half of the packages because they were so poorly written and no one was checking;

- messed with the permission of the file system for no good reason wahtsoever;

- would fail to properly update its own package list if you waited too long because the way they used git was broken beyond belief.

As I never had any of these issues with MacPorts, I might suggest you have a very low ceiling for what you call better. It pains me so much that you have to use Homebrew if you want to have recent packages.

You're imputing far more judgementalness than I intended.

As for better vs worse, let's just say that opinions vary.

> But Homebrew wasn't (and isn't) better than MacPorts, either.

Hard disagree. Maybe that situation has improved for MacPorts, but when I made a decision to move from a Thinkpad running FreeBSD to a MBP for work, I gravitated immediately towards MacPorts and found it to be horrendously broken and significantly less friendly than using Ports on FreeBSD. I was expecting a similar UX, and found something that had the trappings of Ports with none of the underlying maintenance that makes it actually work.

Then someone recommended Homebrew. I tried it, and it worked perfectly the first time. I actually kept both on my system for awhile and tried to make MacPorts work, but eventually over the years I gave up on that and I've been a Homebrew user now for more than 5 years. Homebrew is strictly better in the most important factor: It actually works.

For some users I would argue brew was indeed better - I can't judge for the technical level, but definitely so for the UX and troubleshooting.

I might have liked MacPorts with my current experience, but when I first needed to install CLIs and tools I did not have extensive knowledge of shells and paths and such, and MacPorts felt significantly less "integrated" especially when something would fail (as opposed to brew occasionally just asking if you want to overwrite symlinks essentially).

I'll never know if MacPorts was better once you're past the initial hurdles since I'm so used to brew these days, and I believe that sort of experience is probably not isolated. Given the propensity for Mac users to want something that just kinda works and gets details out of the way, I can see why brew succeeded.

You're probably right about Homebrew feeling more comfortable for new users.

Opinions on Homebrew may diverge with the answers to "How would you prefer to install? a) curl pipe to shell, or b) Download a DMG, double-click to install, and update your PATH." :)

a) curl pipe to shell

b) Download a DMG, double-click to install

These are not morally that different, the DMG installation can also do pretty much whatever, and I doubt people are picking apart the DMG to find the install script to verify that either.

I'm definitely not resuscitating that old argument here.

Just noting that people have strong opinions about the preferability of either approach.

I tried MacPorts. Then I tried brew and stopped using MacPorts. Maybe I just don't use my computer the way you do?
Homebrew "took over" because of a combination of web 2.0 marketing that prematurely shat on its competitors while claiming it was the "modern and beautiful approach" while ignoring hard-learned lessons about the extents to which Apple doesn't care about breaking things and removing programs or libraries from their base system--the Homebrew people were really pissy about "MacPorts insists on installing its own version of X... I already have X!" and would claim "Apple used to chance stuff back six years ago, but they surely stopped by now" and then slowly had to relearn this lesson over time--or supporting binary packages (which both fink and MacPorts had great support for, but the Homebrew people insisted on ignoring that as part of the "I shouldn't have to recompile the world to install software", which was nonsensical) or even basic security mandates (some of which they still haven't fixed, such as the insecure way they handle /usr/local). It was honestly ridiculous, and they only really got to a place of being "better" only by eventually becoming more like the things they insisted were dumb and by capturing all of the new blood contributors mostly due to messaging/marketing (and so eventually ending up in a state where new software now ends up being brought to brew by default). If anything, the only thing I can think of where Homebrew even slightly offered an "advantage" worthy of arguing "this is why they won" is by choosing to dump their stuff in /usr/local instead of making a new root (such as Fink's /sw or Nix's /nix) or carefully next organizing it under /opt (such as was done by MacPorts), which did in fact mean that more software tended to just detect automatically stuff (as some things do their own searches instead of using configured environment variable search paths).
Thanks. It’s nice to see I’m not the only one remembering their arrogant attitude and approach to development, or with these concerns about technical details. It’s unfortunate that Macports became the boring one compared to Homebrew’s new hotness, because Macports is the better design, TCL port files notwithstanding.