Homebrew Turns 15
Interviewed by "Homebrew Turns 15" streamHomebrew was created on May 20, 2009. Fifteen years later it’s in use on tens of millions of devices.
Show transcript
- 0:00 hello and welcome to the live stream homebrew is turning 15 happy birthday homebrew
- 0:05 my name is john britton i'm the co-founder and ceo of forkbrew and today i'm joined by
- 0:10 two outstanding guests uh max howell
- 0:14 welcome to the show hey thanks for having us let's see if i can do this there we go
- 0:24 so uh hello uh let me give it a short introduction so uh mike is the uh project leader of homebrew
- 0:32 my co-founder and cpo at workbrew and max is the original creator of homebrew um welcome
- 0:40 and maybe you could each give a little introduction about yourself uh max why don't you go first
- 0:44 uh thanks john and thanks for having me on uh good to see you again mike nice tank top
- 0:54 yeah so uh i'm max how i've uh been in open source for more than 20 years i stopped counting at some
- 1:03 point i got involved in open source because uh i thought i wanted to be a scientist which turned
- 1:10 out to be incorrect as everybody else told me in my life chemistry is super boring i i thought i enjoyed
- 1:18 it but just turned out i like the academic side of things didn't like actually working in it so one day
- 1:23 in a depressed funk i went home and installed linux on my home computer and discovered the open source
- 1:28 communities of the world this was like 2003 2004 it's about then i met mike actually we were both
- 1:35 working on kde at the time uh which is this desktop environment for linux which i think still exists
- 1:42 i don't know i haven't used it in a while but uh i'm just got me a job in the industry lost fem in
- 1:47 london that's where i created homebrew um back in 2009 ish so yeah 15 15 years about 11 hours ago
- 1:55 almost 11 hours ago apparently my commit was four minutes past midnight
- 1:59 yeah well mike was saying the other day how when we uh started working on homebrew like debian was
- 2:06 15 years old and uh that felt ancient and here we are 15 years so yeah thanks for having me on looking
- 2:13 forward to this uh this whole chat yeah thanks max yeah mike why don't you go ahead and introduce
- 2:18 yourself and kind of your relation to homebrew yeah of course um yeah i feel honored to lead max not
- 2:25 just for his contributions to homebrew but his contributions to excellent voices whenever i i forget
- 2:30 because we normally talk of our text message nowadays whenever i hear max on a podcast or whatever i just
- 2:35 think he is most delightfully deep voice in the world so i'll do my best to have a suitable timber uh yeah
- 2:44 so i'm mike uh i've worked on open source not as long as max but probably you know like sub 20
- 2:51 slightly over 15 years um i got into software i guess the more traditional route just going and doing a cs
- 3:01 degree and got uh fell into linux distros and all that nonsense when i was at university and ended up
- 3:09 with one commit in the licks kernel which is always a nice kind of little humble brag when people accuse
- 3:16 me of being one of the mac people who doesn't know anything about linux um so yeah i guess i uh also
- 3:22 ended up in london at the same sort of time as max i worked for a startup called mendeley uh down there at the
- 3:28 time and i was kind of trying to wrestle with mac ports to make it do what i wanted to and not install
- 3:35 so many dependencies and stuff and then max was a friend of a friend of mine i think we showed fred
- 3:41 emmett maybe in common max um and he told me about this guy max who was doing this thing called homebrew
- 3:48 and then i went and looked at it and i was like oh it's written in this weird ruby thing which i
- 3:53 hadn't really had any experience over the time um and yeah i basically just ended up getting involved
- 3:59 like bit by bit like later on i guess the same year that humbrew got created i think max created it in
- 4:04 may and then i think i started getting involved in like september or something like that and was like
- 4:09 a maintainer before the end of the year um and yeah and i guess i've never managed to give up since so
- 4:17 still working on it to this day excellent yeah so you both mentioned linux i have a question
- 4:22 what was your first linux distribution
- 4:27 ah susa susa was mine i'm not sure what the first was for me it was maybe maybe fedora technically in
- 4:36 terms of like the first i ever installed but the one that held the the warmest part in my heart in
- 4:41 that era was gentoo uh just for like everything being built from source and i had this old pentium 233
- 4:51 basically my parents old machine that they were going to like throw out which by what year was it
- 4:57 like 2004 or 5 was pretty long in the tooth and i remember like getting an ubuntu install like sorry
- 5:03 i gentoo install where i wanted the base system to work like the machine had to compile continuously for
- 5:09 about two days to like get the machine set up and it was such a glorious waste of my time but i felt like
- 5:15 i sort of learned some stuff which ended up useful in the homebrew days through doing that yeah emerge
- 5:20 was my first my first package manager from gen so yeah that was i remember those days um yeah so
- 5:27 maybe just for uh just for clarity and and completeness what is homebrew like i i don't know
- 5:35 if you have the same definition of homebrew for both of you but like what is it why are we here and why
- 5:40 are we celebrating 15 years of its existence yeah well always my definition it's probably not accurate
- 5:47 anymore but you know um i'd say like it's the base of an awful lot of modern software nowadays
- 5:54 is is the truth of it i don't think either me or mike imagined that it would become so you know enormous
- 6:02 when uh when uh we were working on it back in 2010 or so but uh you know it's just a package manager i uh
- 6:10 i was very fond of package managers at the time and switched to mac in a fit of rage one one day
- 6:18 because uh i upgraded my linux kernel and uh my wi-fi stopped working and i was stuck at home by myself
- 6:25 mirror before smartphones so i didn't have the internet to uh help me fix it so i switched to mac
- 6:33 and then while i was there i discovered that uh the package managers weren't quite as good on mac
- 6:38 as they were on linux i was used to like trying out all the different linux distributions and things
- 6:43 so yeah i'm homebrew as a package manager but i think we took a lot of new ideas and ran with them
- 6:50 and that's part of the reason that it became so prevalent and uh it it it was the right toward the
- 6:59 right time in many ways so yeah it's the base of many people's stacks nowadays uh and makes it possible
- 7:06 to get development done what do you think mike yeah i mean the when i describe homebrew to non-technical
- 7:15 people i guess i go for like it's i basically try and get them to be like do you know what an app
- 7:20 store is and they're like yes and then if i can get them to be like do you know what open source
- 7:24 software is yes do you know what a terminal is yes well it's an app store for open source software
- 7:30 in your terminal right and that's maybe slightly reductive but like that feels like that's what it
- 7:34 has become in essence for pretty much everyone on mac like if they're installing open source on their mac
- 7:41 they're installing either the open source itself or the thing required to install the open source
- 7:45 they want if it's like npm whatever pro will be using homebrew together and yeah i i think you're
- 7:51 right about like the the time and the moment like i to me that the two things that felt linked in some
- 7:58 ways were because you know homebrew was one of the first big projects to kind of come out of github
- 8:04 and be very heavily community run and have huge numbers of community contributions i remember it was like
- 8:09 in the first few years that github would publish those reports homer was regularly in the like
- 8:13 the top charts for like most forked most contributed all this type of stuff and i think
- 8:21 that's basically what helped get it going in the direction that it went right is that because it was
- 8:26 github native before maybe any other big project ended up being that way uh i think that's yeah
- 8:33 it's a big part of it yeah like i have a small list that i've assembled over the years of the reasons
- 8:40 that i think homebrew was so successful but we can talk about that when when you like john yeah sure
- 8:44 well i think the next kind of area is just thinking about like the history and how how homebrew came to
- 8:50 be um what was i mean max this is probably mostly for you uh as you were the the creator what was the
- 8:57 the inspiration you know behind it and you also kind of mentioned like that it's gone a really long
- 9:04 way and it's it's become much more than you ever expected i'm curious to know as somebody who's had
- 9:08 some small open source projects what did you expect like you know obviously like i think it's pretty easy
- 9:14 to say that this went way past what you expected but like you had to be motivated in some way what were
- 9:18 you hoping would happen oh i was hoping this would happen
- 9:22 such amazing forethought yeah it's weird i had this feeling while i was building it that it was going
- 9:31 to be big and like that feeling didn't i didn't lose it and i didn't lose the confidence in it and so
- 9:36 i put my all into it and then it happened uh which was really bad for me i was 26 so uh i spent the
- 9:46 next like 10 years of my career thinking that everything i touched would turn to gold and uh
- 9:52 it doesn't it doesn't usually work that way i i definitely recommend not having a huge success when
- 9:58 you're young uh but um yeah i got over that in the end but yeah like i created it because i was working
- 10:05 at lost fan at the time and i was the lead developer of our apps team and we had six apps windows mac linux
- 10:11 android o phone and the blackberry app which uh was the worst and hardest to build but the unifying uh
- 10:18 machine to build all these things on was mac because partly because of apple's lock in for their
- 10:23 platforms but partly because you know it's unix underneath so you could run all the other different
- 10:27 sdks and systems and you could emulate windows uh so uh we were using a lot of open source tooling on
- 10:35 mac and like the package manager kept like coming up as a problem like mac ports was like gentle you
- 10:40 had to compile everything from source like mike was saying uh it insisted on building everything from
- 10:46 like uh glibc upwards even though the mac came with a bunch of uh open source libraries that are
- 10:54 usually that base that you don't have to build so i used to complain about how the package management
- 11:00 solutions were holding us back at the pub after work like on a relatively frequent basis to the
- 11:05 point that one of my co-workers got fed up with me and told me to just shut up and do something about
- 11:11 it and uh i went home and i was like well it would be kind of fun to work on something like that so i
- 11:17 started you know the that was the beginning i i called on like uh all the ideas i've had over the years
- 11:25 working on different open source projects i worked on this music player called america on linux for a
- 11:30 long time and uh the issues that everyone was always having were related to auto tools and getting
- 11:37 the dependencies in place and building from source and so i wanted to build something that i felt could
- 11:44 be a solution to those kinds of problems for people trying to build out open source work on open source
- 11:49 work in open source and do development in general uh so i wanted it to be a programmable package manager
- 11:57 so like all the formulas i uh called them uh were in ruby so that you know we're programmers i figured we
- 12:04 wanted a programming language in order to like build these complex and different pieces of software and
- 12:10 i picked ruby because it was very fashionable at the time and it came with the mac ruby on rails was
- 12:17 really getting uh a lot of attention at the time uh it's one of the reasons i was successful for sure
- 12:23 picking ruby because the ruby community loved that it was written in ruby and that you could use ruby
- 12:28 in order to uh work on homebrew um and then yeah like picking github was a big part of the success as
- 12:36 well for sure like github was relatively new right i think github had come out a couple of years before
- 12:41 that and we've been using github at last fm and i saw that uh it was a great place like i think the
- 12:46 alternatives for source forward right we we've been struggling with these terrible uh tools for doing
- 12:52 open source work online for a long time so yeah i picked all these things and put it out there i managed
- 12:58 to get some attention for it with uh replying to some people on twitter you know twitter used to be
- 13:04 a better place dare i say it where it was an awful lot of tech people so you could go on there and
- 13:13 just talk to tech people and see what they were doing and talk about like new tools and things and
- 13:17 so i got the attention of simon willison probably you've heard of him with uh tweet about homebrew and
- 13:23 then i got the attention of josh peak who was working at 37 signals at the time
- 13:27 ruby on rails uh was built by them and he tweeted out about how
- 13:33 he was going to install homebrew on his new mac that he was getting that had osx leopard and like
- 13:39 that was the moment where it really started to take off before that you know i was telling people
- 13:44 about it they were like oh so i'll tell call me call me when like anyone else is using it a typical
- 13:48 open source start you know like when you make some open source you do have to do a bunch of marketing
- 13:54 yourself in order to uh get some attention for it so yeah i was really motivated i really wanted it to
- 14:02 succeed and yeah like those first few years it was crazy uh we were dealing with a ton of uh issues
- 14:11 pull requests well pull requests when they turned up you know when we when homebrew initially was
- 14:15 created the pull request was not a thing nobody had figured out how to uh handle contributions on github
- 14:23 at this point they had forks and you could browse the four graphs so that's what we used to do right
- 14:30 like the uh the first person that i merged some of their contributions in that he didn't message me to
- 14:36 tell me that he was building these formula i just found his contributions in the ford graph and then
- 14:42 merged them in and then message him saying hey i merged your stuff in i hope that's okay because
- 14:48 that was how we had to do it at the time you know i'm waffling here and mike how about you where did
- 14:54 you uh how did you come across homebrew and kind of what got you involved and why did you why did you
- 15:01 decide to become a contributor yeah so i mean i guess i i used to hear a lot of people saying this back in
- 15:08 the day not as many people say it now is the idea with open source of like scratching your own itch
- 15:14 right and we've just heard max explain how homebrew came to be created from his scratching his own itch
- 15:21 right and it was the same with my contributions really where i heard about homebrew and i thought it
- 15:25 was cool when i started using it but i didn't have this idea of like oh i'm gonna get involved here
- 15:33 or i'm still gonna be doing this in 15 years or any of that sort of nonsense it was just like oh
- 15:40 like it's a package manager it's missing some stuff that i want so i'm gonna add some stuff
- 15:45 right um and every time i came across something that i needed i would go and submit a contribution and
- 15:51 then eventually the package manager itself didn't do some of the stuff that i wanted it to so
- 15:55 i submitted kind of changes to that and and whatever and i think it was i don't know again
- 16:00 as i mentioned before is that this all being on github there was something about it being on github
- 16:06 that just felt so much more accessible i think in the early days um the there was github and i guess
- 16:14 before pull request there was like an irc channel like i vaguely remember like you know instead of pull
- 16:19 requests i would like dm max on irc and be like here's a commit and then max would like
- 16:25 cherry pick that commit in and push it and tell me what it was pushed and stuff but yeah it just it
- 16:29 felt like the barrier to entry was very low um but i guess i guess the other thing that kind of captured
- 16:34 my interest with homebrew which again i thought was very different and very creative from the outset was
- 16:41 just the way that errors were handled you know most software most of the time particularly relatively
- 16:47 immature software generally operates from the assumption that nothing will ever go wrong and if it ever does go
- 16:53 wrong then like just throw your hands up in the air and just be like oh well you know like some programmer
- 16:58 come along and fix this right whereas i remember right from the outset homebrew was really impressively
- 17:06 well designed to give good error messages and even to stuff like the i've seen a bunch of other tools
- 17:12 copy this now but like the kind of brew doctor command which again was relatively early on but this idea of
- 17:18 being like hey like we have some ideas of stuff that could be wrong right like run this command and
- 17:23 these are not necessarily all problems that you need to fix but like if you are having problems
- 17:28 chances are it's going to be one of these you know um and yeah i just felt like that approach just as
- 17:35 what it it gelled with my brain and it sucked me in and it just felt so much more accessible and maybe even
- 17:44 scalable in hindsight than the models that a lot of other linux distros were having and other package
- 17:52 managers on mac that felt very much more like the linux distro model we're having
- 17:56 yeah like it reminds me it's just that from the start i knew i didn't want to do it all by myself and i had
- 18:04 faith in the users that if you give them the right messaging and docs and tooling that they can fix their
- 18:12 own problems and i really wanted to encourage that so you had the brew dog to come on the good error
- 18:17 messages um even the way like you cloned homebrew initially and that's where it built and so you had
- 18:24 a clone and you also could immediately start contributing there wasn't any like fancy build
- 18:30 steps or anything that was required you just opened up your editor and make changes and then push them
- 18:35 back to github those things i just really wanted everybody to feel like they could participate and
- 18:41 you know you've seen some projects do more of that since homebrew i think sort of introduced the idea
- 18:48 of doing it but still i think in general like you go to a readme for most open source projects and
- 18:53 there's no section saying hey how do you get started you know it tells you how to install it
- 18:59 but it doesn't say how you can get involved in the project i still think it's very important it's rare
- 19:06 so 15 years is a really long time um homebrew has been around for for a very very long time i was
- 19:14 hoping we could do a little bit of a you know a short timeline of the major milestones in the history of
- 19:20 homebrew so um starting from and i'll share my screen for this um let's see if i can do this
- 19:27 starting from here uh max this is probably for you um this is the first commit uh to homebrew
- 19:34 let me see if i can make it a little bit bigger
- 19:36 here we go so the first commit of homebrew um maybe you want to tell us about your state of mind when
- 19:45 you were doing this and any other kind of interesting uh anything you'd like to share
- 19:50 i'll leave it up to you yeah well um i still do this i don't start a project with code i start with
- 19:57 the readme and this was something i learned while working on kde i went to a kde conference and one
- 20:04 of the people that worked on cute which was the c plus plus toolkit that kde used uh still exists i
- 20:11 believe yeah i did a presentation where they talked about how they didn't start with code they started
- 20:16 by writing out what the api would be doing example code showing how they wanted the final api to be
- 20:25 and then they build the code around that so i started doing similar things but yeah here i was starting
- 20:30 with the remi so i spent more time on the remi initially before i started building any code out
- 20:36 and i was like how do i want this to be how do i how do i want it to feel and so yeah this this was
- 20:42 what i imagined it would be before i started writing any of the code and uh you know you can see a bunch
- 20:47 of the stuff in there that i wanted like the naming theme which homebrew is uh famous for which i did
- 20:54 because i knew that the world of package managers was so full of uh things that were difficult to
- 21:01 describe because the terminology was terrible of what does the word package even mean i don't think
- 21:08 anyone can really tell you the answer to that and so i wanted there to be a theme that allowed people to see uh analogies and metaphors in all of the uh the system and the code
- 21:23 uh so that it would bootstrap their ability to understand how to contribute or how to use it so
- 21:29 yeah you can see like the slash brewery there which you can no longer create that folder on macros thanks
- 21:36 to apple but at the time i think that was where i thought it would go eventually we changed that to use
- 21:40 a local right because it made so many things work better it was an important decision in the just works
- 21:48 aspect of homebrew which was important to the the way i designed it the way i thought about it
- 21:54 yeah like uh this is this is what i wrote with the typos and bad uh grammar throughout and this is where
- 22:03 it all this is where it all started um just on the theme of uh of homebrew i think that there's something
- 22:09 like in that era of ruby time i feel like every ruby project had some kind of an interesting theme
- 22:15 as well did you see that elsewhere was was it mostly like a or is that a ruby thing that am i
- 22:21 misremembering that or is that how it was no you're probably right i i probably don't remember it but i'm
- 22:26 sure that i was inspired to do the naming theme by other great projects and they just really suited what
- 22:31 i wanted to do i think my reasons for doing it was slightly different i think a lot of projects at the time
- 22:37 that had themes we're just doing it for the funsies while i was trying to make it useful and then the
- 22:44 vast majority of open source at the time was just like terrible naming and terrible if any theming
- 22:52 um you know it would be called what it did you know uh decrypt library dot lib
- 23:02 so now you know we've seen kind of where it began um in the past 15 years you know if we had to
- 23:08 highlight maybe three or four big inflection points in the project what would you say you know
- 23:12 maybe um were the biggest ones or the most the most significant uh to share
- 23:18 yeah it's a difficult one
- 23:24 i could i could suggest a few i think taps were the first that was one of your big creations max that
- 23:31 was probably one of your latter like big creations on the project where you just came out of nowhere
- 23:36 and again similarly like had this design and you're just like here's taps here's what it looks like
- 23:41 here's how it plugs together and i think that's been like before so taps are essentially like third
- 23:46 party repositories for homebrew if anyone who doesn't know and before we had taps you could only install
- 23:52 stuff in homebrew that had been added to the main homebrew repository essentially and i mean there were
- 23:57 other ways you could sort of hack around and stuff but i think taps are what blew homebrew from turning
- 24:05 from like just a project to being like an ecosystem because then you can have well anyone can now create
- 24:11 their packages in any way if you're a company you can have internal taps if you're um you know if you're
- 24:17 an open source project you can have your own tap if you're and even within homebrew itself like homebrew
- 24:21 now has a bunch of different taps and that's like homebrew cask that got merged into homebrew itself
- 24:27 started off as a tap all the linux stuff started off as a tap like it's just i think it just enabled
- 24:33 kind of the ecosystem to sort of flourish a bit more in that respect um i guess another one i might
- 24:40 suggest after that would be like my uh true love and joy is like bottles the binary packages that
- 24:46 uh because i think i implemented the first version of that and we're still using more or less a pretty
- 24:52 similar model today um and yeah and i guess over time we kind of moved from being almost from exclusively
- 25:00 built from source to predominantly built from source to mainly built from uh binary packages as it is kind
- 25:05 of today yeah can you say a little bit more about what bottles are and how they work
- 25:10 yeah i mean basically a bottle is just essentially we build everything from source the way we used to
- 25:16 uh on user's machine but now we do it on github actions runners uh we basically make a bottle which
- 25:25 is a complicated uh format of just a tarball of the thing that we installed again i feel like i learned a lot
- 25:32 i learned a lot from max in this era and in general that like often there's these really overtly uh
- 25:39 complex formats that happen on this stuff and often it's like well if you've got a directory of stuff
- 25:44 and you want to put the directory of stuff somewhere else can we just make a tarball of that directory
- 25:50 and extract it somewhere else is that good enough and the answer from the last 10 plus years or whatever
- 25:57 seems to be yes right and instead we could have made this complicated custom binary format and
- 26:02 made everything three percent more efficient or whatever but then the whole system becomes harder
- 26:07 to explain and understand and all the tooling you use is different yeah and whatever and i i don't i feel
- 26:12 like that's for me like a big part of homebrew as well has been trying to avoid that unnecessary
- 26:19 complexity and you know i think that's something i took from your initial design max and from
- 26:24 us working together over the years and has inspired me in homebrew and outside of homebrew as well
- 26:29 um yeah well it's good to hear because yeah like before that i i'd already recognized how complexity
- 26:37 can destroy productivity and the ability to iterate and it was uh it was a key thing you know one of the
- 26:42 things with the initial remi that we were just looking at was i wanted you to be able to use the unix
- 26:47 tools you already knew like rm and ls to uh query the package manager i didn't want it to need another
- 26:57 tool apart from when it was absolutely necessary and those sort of designs filtered through throughout
- 27:03 i think in open source in general there's often a a desire to over complex things um partly because
- 27:11 it makes us feel good hey i designed and built this really complex thing but it can hinder like i think
- 27:17 most of the most successful open source projects are simple enough that people get the gist really
- 27:22 quickly that inspires them to want to continue diving in and then get involved and open source
- 27:28 lives and dies by a community like it's one of the key aspects that enables it to exist and for it to
- 27:37 thrive so yeah and bottles yeah it was super super important it was interesting at the time right because
- 27:43 when i built homebrew initially i got a bunch of like negative feedback from people saying oh god you're
- 27:49 building from source i don't want to build from source just uh you should make binary packages
- 27:54 i'm like well yeah sure but who's who's going to pay for that because at the time there wasn't stuff
- 27:58 like github giving you free bandwidth and storage and compute in order to do these things as an open
- 28:05 source maintainer you had to figure out who was going to pay for it and i wasn't going to pay for it
- 28:11 yeah i mean the first version of our binary packages like the the evolution essentially went from being
- 28:17 built on my machine to being built on a vm on my machine then we did a kickstarter and then they were
- 28:23 built on some macs then built in a vm on those macs and then the macs ended up being cloud hosted and
- 28:28 you know like it's yeah it's i i think it's easy to look back at those days and be like why didn't
- 28:33 they build a binary package manager from the outset and forget that like what you mentioned already max that
- 28:39 pull request didn't even exist like travis ci and all those systems github actions none of these existed
- 28:44 you know even aws like you know it existed but you couldn't use it for building anything on macs
- 28:50 uh so yeah like i mean essentially you were like right well you somehow have to have build a bunch
- 28:55 of hardware yourself and build all this all the integrations and decide how that goes with the
- 28:59 workflow and and all this type of stuff and and even then like i think the homebrew workflow the
- 29:05 contribution workflow meant and means that like building binary packages is trickier than if
- 29:11 you're like a debian and you do a release of software every so often you can just be like okay
- 29:17 i maintainer has changed the thing we'll kick off a job the binary package is done when it's done you
- 29:22 know like it's much more complex when you have a user who submits a thing and you want it as soon as
- 29:27 the user merges the thing you want the binary packages to be ready for the user and all this type of
- 29:31 stuff so yeah it's it's interesting it's been a an interesting transition but a worthwhile one i think
- 29:37 something that i think is also kind of a milestone and you may you mentioned it a little bit mike
- 29:41 uh is casks so as a you know occasional contributor and a heavy user of homebrew i use casks all the
- 29:48 time and i really love the feature uh you mentioned that it was previously a tap and then it got merged in
- 29:53 i don't actually know the history or the backstory of how that happened but i think it was a pretty
- 29:59 important thing in the history of homebrew maybe you could share a little bit about how that came to
- 30:02 be yeah so i'm not entirely sure i think it was i can't remember the name of the guy i think it was
- 30:08 fins was his uh github handle but yeah someone set up this homebrew tap with enormous amounts of
- 30:15 custom ruby code and it was probably the the homebrew tap that had the most additional stuff in it with
- 30:21 this they came up with like a new dsl and this new concept called casks um for installing like binary
- 30:28 packages you know google chrome one password whatever it may be um and yeah and then after this project
- 30:34 been going on for a while like we'd kind of built closer and closer ties with that project and then it
- 30:39 was someone i think it was a a russian google summer code student called anastasia um and she basically
- 30:46 was involved with like merging the two repos and merging essentially all of the like the actual
- 30:51 like underlying like code logic for casks into into homebrew and then yeah like it everything was
- 30:59 pretty separate to begin with but then over time like casks and formula have been more and more kind
- 31:04 of like together and then now it's i think the nice thing that casks do is that it's you know it means
- 31:12 fewer people use them by quite a long way but it means if you want to just use homebrew to install
- 31:17 pretty much everything on your computer you can do that now which is between the mac app store and
- 31:23 casks and uh like humber itself and then there's the thing brew bundle which lets you kind of put them
- 31:29 all into a brew file and kind of have a somewhat decorative format and that supports installing things
- 31:33 from the mac app store as well so yeah so you can basically like i have essentially everything
- 31:38 my machine is being installed through homebrew in in some shape or form and it's yeah it again has it
- 31:45 broadened the ecosystem and wasn't was probably the biggest idea that came from outside of the core team
- 31:52 and got merged back in and other than we can talk about this later john uh like the linux sport as well
- 31:57 which had a similar kind of evolution yeah i have that on the on the agenda so any other big milestones
- 32:02 that you guys wanted to talk about i just want to talk about casks for a bit because uh i don't like
- 32:08 casks right uh i never like casks and uh it's very popular thing if you talk to anyone about homebrew
- 32:14 they're like oh yeah the first thing i do is cask install everything on my computer and then like
- 32:19 all the other tools as well i don't like casks uh but you know it was important that it wasn't all
- 32:24 about what i wanted and i always made sure that was the case and so we built brew like all the time and
- 32:32 mike was extremely instrumental in some of these pieces right i remember when you merged the sub
- 32:36 command support that wasn't something that i was thinking of but you added that so that people could
- 32:41 do brew dash whatever put it in the path and then that would be something you could execute via brew
- 32:46 and uh it was just always important that we allowed the community to experiment and see where they
- 32:53 wanted to take through and then if the community liked those things then yeah we would support them
- 32:58 or merge them in more fully so yeah it's important as an aspect of how to manage an open source project
- 33:04 but you allow that kind of thing i don't know exactly why i don't like them but yeah just a matter of
- 33:11 preference i think that's fair everybody deserves their their own preference um you reminded me there with
- 33:16 the external command stuff max it was also nice because we as you said it let the community go off and do
- 33:24 stuff um and there were a few times that people proposed kind of fairly massive changes to homebrew
- 33:28 which would require a lot of work and we were able to say hey we'll go off and uh go off and build this
- 33:35 in a tap and then if that gets some sort of you know adoption then we might consider emerging in later
- 33:42 and uh a little secret for any of the open source maintainers who might be watching like a lot of the
- 33:46 time in my head i was just thinking like there's no way you're actually going to do that but so one
- 33:51 of the the early successes of that i think before even casks which someone said like hey like we should
- 33:56 have descriptions for all the formula like a nice little textual description of what it is
- 34:01 um and it was like okay well that's going to require someone to go through and add lines to 5 000
- 34:06 packages describing them all i was like if you go off and do that and you get a description for
- 34:11 all the formula then we'll consider merging that back in thinking that person is not going to do it
- 34:16 no one's ever going to do this this is fine i've essentially told them to go away in a nicer way
- 34:20 and then you know this person reappeared in like you know four or six months or something and was like
- 34:23 cool yeah i'm done i'm done now i've we've got descriptions for all of them and then we merged it
- 34:28 back in and then with with a lot of these changes it's then once you got that thing it's much easier to
- 34:34 say hey every new formula we add has to have a description now and it felt like a big leveling
- 34:39 up for the project but you know it felt like i guess as max said earlier like you have to be
- 34:44 um you know i think it's good having a vision of what you like and what you don't and and even like
- 34:50 max not liking costs i think like that's a good example of like you know we we all have our own
- 34:56 preferences and our design decisions and whatever and we can't expect them to be the same but at the same
- 35:01 time max was not trying to ensure that casks could not be created by someone else and the same with the
- 35:06 description stuff i thought this was not going to happen but i wanted to like leave the door open
- 35:10 that like well if someone goes and essentially does all the work for free then yeah we can we
- 35:15 can include descriptions why not yeah i deliberately didn't put descriptions in the initial formula
- 35:22 and i remember like fighting people to keep them out so it's all objective everyone like i have a different
- 35:28 description we'll end up with edit wars and this information is easy to google etc but like uh
- 35:34 yeah it's very useful metadata for sure um
- 35:38 with like package x which uh i recently built right which is an attempt at something new in the
- 35:45 package management space didn't add descriptions as well and i was like oh we use ai to generate
- 35:50 descriptions um which mostly worked but then for some packages it was just abysmal and we actually got a
- 35:57 lot of backlash to that so uh it's um a difficult one sometimes figuring out what you want to support
- 36:04 because when you add something like that yeah then that means that every package from then on needs
- 36:09 a description so you're increasing the burden but that was very minor thing should have been in there
- 36:14 from the start probably so i kind of wanted to shift uh gears a little bit and talk about apple
- 36:20 um so it's pretty intertwined like homebrew is pretty uh there is a linux support and some other stuff but
- 36:28 um you know max you mentioned when you came over to the apple ecosystem that there was no good package
- 36:35 manager you weren't very satisfied and i think that homebrew actually has really really improved the
- 36:40 experience for developers on apple devices and apple changes relatively quickly uh you know the operating
- 36:46 systems and whatnot like they're they're always advancing their underlying architecture um so i wanted to
- 36:51 talk about maybe two or three things there one is the uh the move to a unix like posix based
- 36:58 operating system right uh with mac os 10. uh the other is the constant march of progress with apple
- 37:05 operating systems deprecating things changing the rules on the platform and then also their architecture going from ppc to intel now apple silicon those have all been major changes
- 37:13 relevant to homebrew and i was wondering if you know either you had commentary about that or
- 37:21 experiences from you know using those things and going through them yourselves yeah i'll quickly chime
- 37:27 in then pass to mike because i think he has much more experience in uh the various important changes
- 37:32 especially the uh apple silicon one more recently but um i think at this point honestly
- 37:39 apple cannot change some things about mac os because of homebrew
- 37:43 they they would risk um enormous problems for the global developer ecosystem if they did
- 37:53 but yeah earlier days it was more problematic but i've been very good about binary compatibility
- 37:59 uh in their libraries we only had a few issues um every time they do an upgrade
- 38:05 in general but yeah mike has uh more experience yeah i mean i guess the early one is you
- 38:12 initially released homebrew on leopards and then it was the snow leopards i think leopard had some
- 38:18 x64 support right and that but it was like not really and then snow leopard went a bit more all in on
- 38:25 x86 64. like so that transition was like i think the first and a relatively easy one um shout out to misty
- 38:35 de mayo a former homebrew maintainer plc member uh who had a thing called tiger brew which like back
- 38:42 ported homebrew to run on like pvc chips i i believe is still kind of working on those ancient apple devices
- 38:48 today um and then yeah i guess you mentioned john more recently the kind of apple silicon transition
- 38:54 i i mean i think like you know it's no secret that every new version of mac os tends to break some
- 39:00 stuff in homebrew or either mac os or xcode or whatever um but like you know i i think compared
- 39:08 to the earlier days we definitely have a private but decent communication channel with apple when stuff
- 39:15 really needs to be kind of addressed and particularly the apple silicon transition was made much easier
- 39:21 by apple like proactively essentially as soon as the keynote was done where they announced apple
- 39:26 silicon like before there was any hardware in anyone's hands they reached out to us proactively
- 39:30 and we're saying like hey how can we get the right apple silicon in the hands of the right people
- 39:35 in the right place and whatever um and yeah and i think it's it's funny because i think there's
- 39:40 definitely a bunch of two-way learning that's gone on i think homebrew's learned like how to identify apple
- 39:47 and how to work with them and figure out like what that looks like but i i think apple's also like
- 39:52 been getting better with open source and learning that like you know sending hardware to homebrew people
- 39:59 may involve sending it to like a this is not even a a uh fictional example but like some distant scottish
- 40:07 island um and like you can sometimes hear the confusion the apple people's voices that it's like
- 40:13 you're not just all in this office somewhere in the world you're like scattered all around like what's
- 40:20 the legal entity we should attach this to oh there isn't one oh uh this is going to be tricky uh but you
- 40:25 know in the end i think we've got something that i think work brutes or homebrew has been tremendously
- 40:31 beneficial to apple over the years and i think you know obviously if we didn't love our apple devices
- 40:38 like homebrew probably wouldn't exist in the first place because we would have just stayed on linux
- 40:43 doing linuxy things with linux package managers which were good enough that homebrew would probably have
- 40:48 not been created yeah and speaking of linux and also other platforms i know that homebrew
- 40:55 has support for linux there's linux brew right and there's also uh what is it uh the windows uh wsl
- 41:04 some people can use homebrew there so what's the project's position now on other operating systems is
- 41:11 it like officially supported by the project how how do you approach that yeah so linux is officially
- 41:17 supported with homebrew now and it's kind of fully integrated in terms of the package manager itself
- 41:23 and all the formula and homebrew core are run on you know this specific formula that might be mac only
- 41:30 or linux only or whatever but essentially everything we are aiming to have feature parity version parity
- 41:36 and everything like that and we have maintainers who run exclusively on linux and maintainers who run
- 41:40 exclusively on uh mac but mac is still our predominant uh ecosystem if it feels like an apple
- 41:48 level uh perhaps slightly silly discussion but um there's been a lot of back and forth on pull
- 41:55 requests and internally about like well how do we communicate that because homebrew is still used way
- 42:00 more on mac os than on linux um so on the home page we have you know homebrew the missing package manager
- 42:06 for mac os or linux and the or linux is parenthesized to sort of indicate that we do support linux but it's
- 42:13 like you know not quite as popular or you can look at the numbers i think linux usage is about maybe 10 or
- 42:20 something of mac os usage based on analytics and also like maybe interesting maybe boring uh like mac os
- 42:28 is like predominantly people running on their actual match and like i think it's like 10 20 or something
- 42:33 it is running on like ci environments whereas linux is like 50 actual users 50 ci so i think that's
- 42:39 again where the linux support is kind of kind of useful like even for us in homebrew ourselves like
- 42:43 having the ability to like bump mac os packages and like run style checks and all this type of stuff on
- 42:49 linux runners because i guess despite our conversation earlier where you know back in the
- 42:54 day when there's no mac os versions mac os runners available even nowadays like the mac os
- 43:01 compute per minute price is dramatically higher on any platform than the linux uh compute price so
- 43:08 essentially if you can farm a job out to a linux system instead of a mac system it makes life much
- 43:13 easier but again like we said earlier like the linux stuff started with a fork of homebrew
- 43:19 called linux brew over the package manager itself and then it had its own version of homebrew core
- 43:24 where all the formula are called linux brew core and over time the package manager in uh the main
- 43:31 package manager repo homebrew we call it was kind of made to be more and more linux compatible and
- 43:37 the eventually like the homebrew core became linux compatible as well and a little shout out to the
- 43:43 past max mentioned he was working when we were in london we were both working on qt applications actually
- 43:49 and yeah and i felt like from my cross-platform qt days i learned a lot about how to make the uh
- 43:55 the package manager part of homebrew not just a mess of like if mac if linux if mac if linux like all
- 44:02 over the place which is what kind of naive cross-platform porting tends to look like and be very painful
- 44:08 to deal with max so you you had mentioned that uh you know you don't recommend having a big success early
- 44:15 in your career uh when you're when you're young i'd love to hear from you um kind of how homebrew has
- 44:21 impacted you professionally and what that's done to your kind of trajectory as an engineer and as i know
- 44:28 you're an entrepreneur like what are you up to now where are they like where are they now and like
- 44:33 how did homebrew kind of put you in that path yeah well uh homebrew definitely impacted everything about
- 44:41 my life very much that's for sure hopefully for the better yeah well definitely like um i can't talk
- 44:49 fondly enough about how open source has given me so many opportunities that i wouldn't have otherwise
- 44:56 had but uh you know let's start with a personal level like suddenly i became very arrogant for a
- 45:01 while about it because uh you know it was the biggest project on github and it was on my username
- 45:07 slash mxcl slash homebrew um and uh you know i'd meet people and they i remember one conversation
- 45:16 in like 2014-ish maybe 2013 and i was sitting at a bar with some other devs and this guy says oh have
- 45:24 you heard of homebrew this package manager it's really cool and i just started laughing and then
- 45:29 everyone else around me was like what did he ask and i said oh he asked me if i'd heard of homebrew
- 45:34 and they were like and they talked about how i was the creator i've always been somewhat humble in
- 45:40 that respect i don't usually bring it up because i find that you get a bit of hero worship what you
- 45:46 probably find similarly mike and uh it changes how people act with you so i've had this
- 45:54 interesting sort of life where um among like geeks i'm famous but among everyone else fortunately i am
- 46:02 not i don't i don't have to be uh a celebrity in uh in most circles and uh you know it's definitely
- 46:11 got me career opportunities and you know obviously famously didn't get into google but
- 46:17 not getting into google got me an awful lot of other opportunities and yeah i think the worst thing was
- 46:27 definitely that after homebrew nothing i could work on seemed successful unless it had you know
- 46:35 a frac some some fraction at least of homebrew's success so i abandoned a lot of open source projects
- 46:43 i probably shouldn't have because homebrew was successful very quickly and i turned down a lot of
- 46:49 interesting startups that i could have worked on because they just didn't seem cool enough
- 46:53 um but yeah still always done open source i've got a couple of other big projects on my uh
- 47:00 github and uh missed out on some interesting airdrops because mike decided to deprecate the
- 47:09 original homebrew repo at some point you owe me uh some token for that like yeah um it was a couple of years ago
- 47:17 years ago that i founded t protocol which is what i'm doing now and uh it was based on my career in
- 47:23 in work and open source and like the the fact that nothing but open source ever really felt worth
- 47:30 doing to me and over the last 15 years uh open source has really gone from being something that was
- 47:37 kind of derided you know like it you could see how open source was becoming successful 15 years ago when
- 47:44 homebrew was created but it's still the case that if you wanted a real job then no one was using open
- 47:49 source and they thought you were a hipster or an idiot for wanting to use it so now we're like the idea
- 47:55 of building something without an open source base is preposterous and um yeah in those 15 years i think
- 48:02 it all kind of took us by surprise how much open source became the bedrock of all modern software
- 48:09 development so a couple years ago i was looking for funding solutions for open source once again
- 48:15 and i didn't find anything that seemed like it was going to work for me i'd already tried a few things
- 48:20 so vanity protocol to try and fix it by changing that narrative it's a crypto project which obviously
- 48:26 a lot of people are skeptical of but we're doing very well so the idea is we're trying to make open
- 48:34 source sustainable by giving free crypto token rewards to open source developers and we have almost 1.5
- 48:41 million people who've signed up for our testnet so far at 15 000 open source projects some of them uh
- 48:47 very impactful ones so yeah we're launching it properly later this year and the idea is to make
- 48:53 it so you know like my homebrew story was that i quit my job to work on homebrew full-time and if i hadn't
- 48:57 done that i don't think it would exist quite honestly and it's not really something we can
- 49:04 expect the people who are building the foundation of the internet to do on a regular basis we can't
- 49:10 rely on the software industry and all the software that we build that's so important nowadays to
- 49:16 exist when we were expecting people to somehow try and make these sacrifices i couldn't do that now
- 49:22 at 26 you know i was single didn't have kids it was fine but so yeah we're trying to change that
- 49:29 t protocol makes it so that you don't think of open source as a charity which is how everyone
- 49:35 else goes about it you're begging for donations changing into like a value ecosystem where
- 49:40 you're you're participating in the value of open source
- 49:48 excellent yeah i mean i can only imagine that homebrew has had a major a major impact on your
- 49:53 entire life and i can relate to what you were saying about you know when you have a big success
- 49:58 it's very difficult to try to do another project and have it be successful like i've i've kind of
- 50:04 developed this muscle of don't try to do the same thing twice um where if something happens to be a
- 50:10 home run it's a combination of good good work you know forethought but also a healthy dose of luck
- 50:16 and you can't expect the luck to be there every time um but yeah i definitely i definitely can
- 50:21 relate to some of the things that you were saying right like um yeah mike how about you how has homebrew
- 50:26 impacted your career and uh you know where are you now what are you up to these days yeah i mean
- 50:32 similarly to max like i've had a bunch of doors that got opened probably only due to homebrew right so
- 50:38 i started working on homebrew and ruby and you know i dabbled very briefly one university course back in
- 50:45 the day but um you know homebrew is what kind of got me doing ruby and then i've definitely found like
- 50:52 there was a few as homebrew became more successful uh when i changed jobs and i had like homebrew maintainer
- 50:58 on my resume like that seemed to be the only thing that people would care about and that got me through the
- 51:04 door and got me kind of speaking to people and i i applied for github three times before i got a job
- 51:09 there but you know i went from essentially being a nobody who uh like just a random member of the tech
- 51:16 industry to kind of being able to get a chat with one of the github founders back in whatever it was
- 51:21 2012 or 13 or um and yeah and i think that door was opened exclusively because of homebrew and i think
- 51:28 yeah i spent 10 years at github i left there last year and i think i learned a lot about making homebrew
- 51:33 better from github and a lot about making github better from homebrew and there's probably some
- 51:38 stuff i'm not going to go into right now that hope that github does differently as a company
- 51:43 uh and as a software project because of homebrew right and if homebrew didn't do it first then
- 51:47 github probably wouldn't be doing it um but yeah nowadays i guess kind of like max i i've also almost
- 51:54 like had a like thinking about what does this look like going forward and like what what do we do here
- 52:02 and i co-founded workbrew with yourself john and our co-founder vanessa who's not on the call and
- 52:09 we're basically doing i guess it's interesting how like max and i are both kind of riffed off the the
- 52:14 homebrew idea in different directions but basically what we're doing is building uh commercial support for
- 52:19 homebrew and what that looks like today is providing um better support for the stuff that homebrew doesn't
- 52:25 really want to do that the volunteers are not interested in like making homebrew work really
- 52:29 well with mdms in environments where users don't have administrators and tightly integrating with kind
- 52:36 of security protocols cvd disclosures and stuff like that but moving forward we're basically making
- 52:40 homebrew better for engineers using it as well and security professionals too and so yeah we're basically
- 52:46 working on making homebrew better but also providing a kind of commercial layer on top of homebrew uh
- 52:51 to make that better for the people who are using it i love what you guys are doing and i wish you
- 52:57 all the success with it i think it makes a ton of sense honestly i remember in um i think it was 2014
- 53:04 i got a call from some uh san francisco vc who was like how can we make homebrew into something
- 53:11 commercial because they they were looking at npm right which had just just done that and at the
- 53:16 time i was like i just don't see how we can do it because i didn't have the right mindset and also
- 53:20 because it was just such a big open source project i didn't understand how we could like say hey community
- 53:25 um it was open source but now it's not uh it's kind of something else so what you're doing is the
- 53:32 right way to go about it i wish i thought of it then might have been a very different world for
- 53:37 me and all of us but uh you know building on top adding extra services on top i think it's only the
- 53:42 last few years that commercial open source really people figured out how to do that and like i think
- 53:48 there's a lot of good opportunities in that space well i mean the funny thing is john had been probably
- 53:53 from a similar sort of era trying to convince me to that this was a good idea and i felt the same as you
- 53:58 that like well i don't really see how we can do this but for me it was like two things kind of came
- 54:03 along so one thing was the um i guess like homebrew actually having an established government structure
- 54:10 governance structure and its own funding and a non-profit and a board and all this type of stuff
- 54:15 like and that gave me the separation that i feel more comfortable with where it's like okay now it work
- 54:21 brew even if we wanted to try and somehow take over the open source project we can't do that because
- 54:26 it's its own thing and it has voting and everything like that right so that that feels a lot more
- 54:30 comfortable to me um but then also on on our side i guess having seen over the years something i
- 54:36 actually learned a couple of companies before homebrew is it was this company kda i used to work on again
- 54:40 doing qt consulting um and i was really excited because they were the biggest kitty contributors in
- 54:45 terms of a company that was out there um and i was like great i'm gonna get to work on all this cool
- 54:50 exciting open source stuff and get paid to do it and then i learned pretty quickly like oh no no if
- 54:55 you're getting paid to do the open source stuff you're getting paid to do the boring things right
- 54:59 because all the fun stuff people will be happy for free in their spare time and it's and i think one
- 55:03 of the projects was something like uh k office the kind of open office alternative and it was like
- 55:08 working on a compliance suite of like okay here's the like essentially 2 000 ways in which k office
- 55:15 doesn't render things the same as words just go through and like fix them all right and no one
- 55:19 wanted to spend the readings and weekends doing that so we were paid to do that right and i feel
- 55:24 like it's a similar model to what we're doing with workbrew essentially where there's a bunch of stuff
- 55:29 that i've seen over the years like humber maintainers are like ah i don't really like this is only that
- 55:34 you only use this in lockdown environments where security and compliance concerns are really important
- 55:39 like that's not me that's not my personal laptop like why do i want to spend like a day working on this
- 55:44 and so it doesn't get done and instead of saying no to people we can now say okay well like instead of
- 55:51 having homebrew solve all these problems for you which only apply really to companies that kind of
- 55:55 have these type of problems rather than individuals working at home then this workbook can solve them
- 55:59 for you instead so yeah um so just to wrap up we have a couple a couple minutes left but i i really
- 56:07 wanted to uh you know kind of see if there's any advice that you have for people who want to be
- 56:13 open source you know open source developers like you um if you were to go back to when you first got
- 56:20 involved with homebrew you know what advice would you give yourself at that time now that you've got
- 56:25 basically 15 years behind you
- 56:29 well i'll go first um so i always say that the most important thing is it's something you need
- 56:37 like in in general when you're working with you know you've got to be working on something else and
- 56:43 then as you're working on that other thing you're like oh this this thing doesn't exist or this tool
- 56:49 isn't what i need it to be i need it to be able to do something else and so if you're going to start a
- 56:54 new project like it's one of those things but if it's the latter you might find there's a tool that
- 57:00 exists and you can start contributing to that like you know that's a lot of open source people got
- 57:05 involved that way by finding that it had to be them who made that feature and uh if you have great uh
- 57:13 core maintainers like mike who encourage you to go do that partly because he's lazy partly because he's
- 57:18 made sure that over the years uh the ability for you to like bolt in your own functionality is easy
- 57:24 then uh yeah it's going to be something you're going to be passionate about if you're just doing
- 57:28 it because you think it's going to get you a good resume then you'll find after a few weeks you're not
- 57:33 doing it yeah i'd echo what max said like we actually have that in one of our like comfort
- 57:40 maintainer guidelines that like if you find yourself in a situation where you're no longer using homebrew
- 57:45 day-to-day like you're doing your day job on linux and all your personal machines are on linux and you
- 57:50 just don't use homework there or whatever it may be then we recommend people step down because at that
- 57:55 point not only like is it not that interesting to you but also like at that point um you know you're
- 58:02 probably not going to do the best decisions for the project because you don't care personally
- 58:06 and yeah like i i don't know like i think it's for me thinking back 15 years like i don't know i've just
- 58:12 i've learned a lot along the way that i don't know if i would have learned if someone told me because i'm
- 58:17 super stubborn like that um but yeah i guess for me the biggest transition has been
- 58:21 just having more boundaries and being better at like dealing with people being entitled or
- 58:28 like i no longer have like homebrew slack or notifications or whatever on my personal phone
- 58:34 and stuff like that so it's yeah i guess that has both helped kind of let other people pick up the slack
- 58:41 and like share the load a bit more but it also just stops random open source people who are 99.9 of
- 58:50 the time lovely and sometimes less than lovely uh from intruding on my personal life and my personal
- 58:57 space and when i'm having time with my wife and kids and stuff like that yeah well yeah mike was always a
- 59:02 lot better about that than i was you know he knew how to keep the rest of his life separate and i you know
- 59:12 that's why i burned out while uh mike kept going for sure so yeah something i can learn i think
- 59:22 we all can um well thank you both for for joining us um this has been awesome uh congratulations to both
- 59:29 of you also 15 years since homebrew was created and i think um thank you to everybody in the community
- 59:36 who uses homebrew who contributes to homebrew i think that all of the you know everybody who's got
- 59:40 commits in there whether it's you know features or documentation or really anything to help out with
- 59:46 the project you know you deserve to celebrate as well um thank you max uh thank you mike for joining uh
- 59:52 have a great day everybody bye bye thanks