Gecko. Mozilla. Thoughts.

Lots of talk on the socials re: Mozilla and Firefox/Gecko triggered by the recent ToS changes. Thought I'd write up some thoughts on the bigger picture "what to do about gecko" stuff. Additions, corrections, giant gaping holes that need to be addressed.. all welcome feedback. :)

The goal and awesomeness of having an implementation of the web is to be able to nudge the whole damned web towards or away from a behaviour you care about. Make a little dent in the world, as it were. Firefox and Gecko have been able to do that, repeatedly, in some big ways and in many many many small ways, affecting the experience of every single user of the web, not just Firefox users. That’s the allure, and incredible impact, and the reason why you'd even bother with the incredibly hard, expensive, mostly thankless job of making Gecko, SpiderMonkey, and Firefox and the vast array of supporting infrastructure needed to do it. Direct mission impact. It’s important to note that Firefox has done this over multiple decades while never having “winning” marketshare. Even in its glory days it was a ~20% player. That was enough, even into the more recent single digit marketshare era, to sometimes shift the implementations of the world’s largest web platforms. Pretty rad.

With that uplifting note, I have so many thoughts on Mozilla and Firefox going forward that it’s hard to know where to even begin. I do think the only productive thing to spend any of my own mental energy on is to ignore past/current/future decisions from the org (can’t change them, and no insight into their context!) and focus only on “what do we do between now and when Firefox is over?”. Because it sure feels like the end is inevitable, it’s perhaps not too far off, and that’s gonna be a weird dangerous moment for the web. I’ve thought about this going back 10+ years when I started to worry about Mozilla’s long term financial ability to maintain a full stack implementation of the web against the backdrop of slipping market share. Turns out Google kept paying anyways and the budget pressure never came. But for different reasons both Mozilla and Google appear far more focused on what will gain them relevance and influence in the AI wars to come, and far less on the browser wars of the past. Fair! We’re probably gonna need Mozilla.ai to be a force of nature! But I still don’t have a satisfying answer to what happens if Mozilla can no longer make Firefox/Gecko for whatever reason. Seems bad? Question one, I think, is do we actually care if it’s gone? If so, what do we really care about in particular? Different folks will have different “most important things”, but there's a lot of good browsers out there so here’s what’s rattling around in my head.

Some context to get out of the way first. There’s a couple open source engines we all know deployed at massive scale fighting the good fight of ensuring the web’s implementation is “open”. But, like Gecko, are so expensive to build and maintain that the fact that the code is open is nearly irrelevant. There’s a couple more under development (servo, ladybird) that are exciting and I’m cheering for, but it’s a very long road. Regardless, the primary reason Gecko was compelling as a platform choice in the last decade wasn’t the code, IMO, it was the nature and intent of its owner. A theoretical antidote of sorts that felt good to have exist and go to battle with anyone and everyone if necessary. Mozilla Corporation, as it slowly learns to be a real company, not a movement, is a less and less obvious counter bet to the culture and behaviours of the market winners. Which feels like a betrayal of sorts to us old farts who grew up with both the early web itself, and Mozilla’s rescue of it from the clutches of evil. Back then both had a tangible rebel alliance “fuck you I’ll do what I want to” vibe. They don't now. The reality is it’s just an inevitable progression of an org and a web so well funded to pursue an ancient and incredibly broad mission for so long. Mozilla behaviour and interests sort of mirrors the web broadly, I guess I'd conclude. Not good, not bad, just natural evolution and shifting of priorities. Still... SHIT. The web is under attack! Where are its defenders?! The emotional part of this isn’t losing Gecko, it’s that the web’s rebel alliance disbanded and drifted away long ago. There was no top down conspiracy. It stopped being the most important fight for too many folks, I think. Tough pill to swallow.

The market dynamics around the tech itself is also worth talking about. People have been saying for years that Gecko is “a dead engine walking” and they’ve sort of been right. They’ve been saying that for a decade at least, of course, so at a minimum it’s a remarkably resilient dead engine. The thing to note, IMO, is that Gecko’s fate is exclusively tied to Firefox’s. I would argue Apple’s WebKit isn’t quite as extreme, but is similar - very little deployment scale outside Apple products. You could make the argument that without Google Blink/Chromium/v8 are totally dead, and I think that’s largely true, but unlike Gecko or WebKit there are a LOT of downstream consumers of that stack with products deployed to many tens if not hundreds of millions of users. Several big browsers, yes, but also things like Electron, Node.js, a long list of notable projects, products, and companies that are dependent on Google's implementation. Folks with a lot to lose. For this reason, I’ve long wondered if the web’s implementations would ultimately follow the path of the OS wars of the 90s. In the end all the Unixes died off, to be replaced by a single implementation: Linux. And a gaggle of Linux distros competing on forks of every magnitude imaginable! It’s messy, still expensive, and sort of resembles cold war mutually assured destruction dynamics at times.. but on the whole seemed to work better than the alternative. Of note, the BSDs didn’t die, and appear healthy, but they had a deeply distributed contributor base from day one and ultimately are very niche in terms of developer mindshare and deployment vs. Linux today. Still, I love my FreeBSD. Is Gecko on track to be a dead Unix, or is it a BSD? If we consider the parallels to the Unix wars, it’s entirely supported by a single vendor, and the conclusion gets pretty clear. We want Gecko to be a BSD, but it’s almost certainly a Unix..

So there’s both challenge and opportunity if we think of things this way, in my view. We desperately need organizations that deeply and primarily care about browsers and the web, who are going to do more than just skin Chromium (Linux). We need rebel alliances, and we need them to take on forks “of significance” because they are trying to influence how the web itself works for everyone, just like Mozilla did. Natural forces (fork cost) suggest these efforts are incentivized to merge over time and the web could continue to evolve and reflect multiple points of view on top of a single dominant code base this way. Microsoft Edge is the closet example of this already working, with the caveat that they continue to be heavy on bad taste and light on rebel alliance. Heh. But there are going to be those types of contributors, and they’re extremely valuable. Just like they were/are in Linux. There just can’t ONLY be those types for this to feel like it’s working and we didn’t lose the web entirely. Of import to Mozilla, this sort of outcome, if successful, doesn’t need a fully independent implementation of the web in any one of these organizations. Probably good news in terms of long term budget friendliness, but tbh I doubt the development costs to Mozilla would be wildly different than today regardless. The costs there are largely defined by ambition, not technology. Personally, though, I think I’d be ok to see an empowered Mozilla browser team operating with a clear mission throwing its weight around inside the Chromium code base. Cool improvements for users could much more quickly adopted and shipped by other Chromium browsers, in aggregate perhaps providing the proof/pressure to drive change in Chrome/Edge. Might get interesting!

Two asterisks worth calling out. First, we need to acknowledge that the distribution power of the established parties make the whole idea that smaller shops/browsers can still impact the web’s APIs incredibly difficult to realize. Fork costs are high. Distribution costs are insanely higher. It probably requires regulatory interventions beyond anything discussed today for any of this to end well. I don't have a reason to believe otherwise, whether there's one or ten browser engines. There’s zero incentive for Google to take a patch from Mozilla or Microsoft or an IC that advances the web for users but hurts their bottom line. You need momentum and heft in market to change that kind of behaviour by driving their user bases to demand it from them. Right now, and for quite some time I’d wager, Google alone decides what is de facto on the web by what they ship in Chrome, regardless of what plays out in open source code repos. Second, someone has to fund next generation engines, in my opinion. They’re long shots, but they’re invaluable in so many ways to show us what’s possible when we don’t have the weight of every single website ever made on our shoulders. I have no idea how to fund them except all the players should just shake hands and put 1% of their fuzzily defined browser budgets into a small pool that hands out grants to crazy people.

So, impossibly difficult challenges on all fronts! Odds of success near zero! Will most certainly never play out like this! Really, perfect conditions for a Mozilla and their war chest to do the impossible yet again. They just have to want it to happen so badly they’re willing for it to all go wrong. Regardless, for those of us with the passion for building the web in some sort of way, we can’t wait for Mozilla to do anything. We’ve got to roll up our sleeves and get to work.

More to come.

Subscribe to the vmunix blues

Sign up now to get access to the library of members-only issues.
Jamie Larson
Subscribe