DEV Community


Discussion on: Chromium and the browser monoculture problem

charlesroper profile image
Charles Roper

In the interests of a healthy web, a healthy standards process, and to foster real innovation and diversity, I'd propose an alternative way forward: Google, Microsoft, Apple and others should contribute (in funds or developers) towards a viable alternative implementation; i.e., they should help fund Mozilla.

In accepting a monoculture, we're assuming that Chromium is the best solution to the problem of a browser engine there is or will ever be. Without any reasonable competition, it's unlikely we'll see any truly new engine, and it's unlikely we'll see any further true innovation; the kind of innovation that comes from healthy competition. The work Mozilla have been doing with Servo (a new engine built with Rust that fully exploits the potential for parallelism) could offer new leaps in engine performance and possibilities. The Quantum effort (backporting components of Servo into Gecko) is akin to rebuilding a plane in flight, and has been an incredible, pragmatic effort with such limited resources, demonstrating what amazing talent, vision and tenacity Mozilla as an organisation have. Imagine if this effort saw serious investment from the likes of Google and Microsoft (and others) in the interested of a more diverse and innovative engine landscape? The friendly, more level playing field competition would be healthy; I think it would be a wonderful thing.

If you listen to the recent Syntax podcast about Firefox, not only did Wes and Scott find Firefox a pleasure to use, they found it fresh and genuinely different - so much so, both decided to permanently switch. No other browser based on Chromium can boast such a difference - the Chromium browsers are effectively all the same - clones - with very little to set them apart them. We need more developers to switch to Firefox and promote it like this!

I'm currently very frustrated that while CSS Subgrid has been implemented in Firefox Nightly, Chromium has yet to start working on it. Imagine if the Firefox devs' work contributed to Chrome as well! This problem would vanish!

Or, just as likely, Subgrid or any other potentially useful progression could be ignored or never implemented because it's not a priority. It could be vetoed by the controllers of the Chromium code (Google and Microsoft) with the only course of action a fork. That doesn't sound like a good situation to be in. It doesn't sound healthy for the web. At least we've got Firefox offering developers a real, working implementation. With an implementation, we move the standards process forward in a much more constructive and open way. The web is about agreement. With only one engine, we diminish if not destroy that healthy agreement process.

The disparity in pace of standards and implementation development is, perhaps, not such a bad thing. Standards should be worked on, debated, looked at from different angles, and a consensus built over time for the benefit of all over the long term. We don't need to rush, not always if ever. Moving at a steady pace has benefits. And isn't it the number 1 complaint of developers these days that they can't keep up, find the landscape confusing, frustrating and unstable? Faster moving implementations will only exacerbate this problem. And with only one implementation, it may mean interesting lines of inquiry are ignored completely.

I don't hear much complaint that there's no big competition for CPython

But there is competition for CPython: other programming languages. There's a healthy, vibrant ecosystem of languages. Arguing for only one browser engine is like arguing for only one programming language. I don't know about you, but I don't think that would be a good place to be, despite the many benefits only one language might yield in terms of developer productivity.