Drinking the Homebrew

After several years of using MacPorts, I’m giving it the heave-ho. So long MacPorts. I’ve enjoyed our time together, but I’m moving on. From now on, I’m drinking the Homebrew.

Don’t get me wrong: MacPorts has been a valuable and reliable tool. When Intel Macs were new, MacPorts saved uncountable hours manually building packages. When I was building different open source packages on a weekly basis, MacPorts performed like a champ. But times have changed, and MacPorts has gone from a time saver to a time waster.

But things have changed. I’m no longer updating all my builds every few days. I use fewer source builds and use more built packages (all of which have supported Intel Macs for years now). Now, I use MacPorts to quickly build a package, instead of hunting for a binary. But MacPorts is not geared towards quick builds. Every time I need a new package, MacPorts insists on rebuilding gcc, X11 or both. This is ridiculous. These packages are solid, battle tested software. When I worked as an intern in the Compiler Quality Assurance team at Apple, meetings were held debating whether or not to fix bugs on the merits that fixing bugs would cause work-arounds in the field to break. Rebuilding these packages every minor version number is inexcusable.

Moreover, these packages are part of the standard OS X build. Why duplicate binaries I already have? Enter brew, a package manager that works with OS X, not against it. Like MacPorts, Homebrew builds from source. Unlike MacPorts, Homebrew relies on software distributed as part of the standard OS X (with Xcode) menu, including gcc, X11, Python, and Ruby. What a time saver!

At the moment, Homebrew’s menu of packages is not as large as MacPorts, but it is growing everyday, and the infrastructure is based on git, allowing anyone to fork the code base for changes and improvements. If the canonical branch is not working for you, someone else well surely provide a better, faster, stronger fork. Creating a “Formula” for a new package is simpler than the equivalent MacPort process, and I expect the difference in the number of packages to shrink quickly.

Give Homebrew a shot. It is easy to install and uninstall. You have nothing to lose; at least not the time it takes to build gcc.