Okay, folks. This is new territory for me. I'm stepping into the world of....
t h i n k p i e c e s 💥🤯💥
I've been thinking a lot about an oooold ...
For further actions, you may consider blocking this person and/or reporting abuse
Hi Ken, I really enjoyed your post and I don't think it's a "spicytake" :P
You make a valid point and I see you've considered the various counter arguments to such point.
I think the main reason why this is not going to happen easily is power (and the control power allows). Until Microsoft joined the fray Chromium was essentially a Google project. Yes, other people contributed to it, other companies's employees fixed bugs but Google set the agenda of what had to go inside the engine.
Microsoft certainly has the bandwith to balance that now, which is obviously a good thing, but we'll see two or three years from now, right now it's hard to know what will happen.
The idea of the independent comittee steering the engine through a foundation might be a solution but I don't know, maybe some dynamics that are not making people too happy right now would replicate there as well
I'm going to quote parts of The State of Web Browsers: Late 2018 edition (written right before Microsoft announced Edge switching to Chromium). The author too makes the argument that on a technical standpoint having a single browser engine would be beneficial.
Where he thinks competition benefits is not inside the engine itself, but in the web standards process:
If you look closely, even at the Web Incubator Community Group most proposal are signed or co-signed by Google employees. I'm not attributing any malice here, just stating a fact.
As you say, an independent organization might help that, but isn't the W3C already an independent organization? So if Google is effectively "driving the web through committee", what would this new "engine foundation" do differently? The point of an organization is not having a single company calling the shots, even if they play nice.
But what playing nice means? One could argue that a monopoly of Chrome won't be a good thing anyway. (I don't believe Microsoft Edge will increase its shares in the short term, regular users have no reason to switch back but I might be wrong here).
Let's imagine a future where all browsers are Chromium based and all sites mostly work the same everywhere. Do you think this will substantially change the market shares? At some point the question should shift from the technical aspect of an open web to the philosophical one.
If a single company (even at a fictional "Chromium foundation") has a massive market share which is effectively increasing, a delivery system (Play Store), billions of devices with its browser pre-installed, a search engine that tells you everyday that you should install Chrome, YouTube and so on and so on, will the web be truly open? Because open to me means also innovation and diversity of options and solutions. If everyone is aligned on a single solution and there's one company that controls most of the market, is the opinion of the other stake holders truly important? How hard it will be for the Firefox of tomorrow (considering that in this imaginary scenario Firefox will run on Chromium) to pull off the same thing that Mozilla did ages ago when IE went rogue? In my opinion it would be way harder to create an alternative, not because of the single engine again, but because of the power and control I mentioned in the beginning.
One could argue that now Firefox is as technically valid as Chrome if not better in certain extents, but as you mentioned, people don't care about that. People migrated to Chrome because it wasn't buggy and it worked well and it was fast enough but also because it was preinstalled on phones and most Google websites hinted at it (well, also because the preinstalled browser on Windows was bad).
Which begs the question: after a certain base level of efficiency and quality, is the monoculture really about the technical aspect or is it about dominance?
I'm a developer like you and I see your argument, it would save me and everyone of us peace of mind and probably time and maybe even make websites faster to create but... would it really be beneficial to the end user in the long term?
I don't believe it will.
We could make the same argument for everything else: why not a single programming language, a single operating system and so on? After all if we all were developing on a single platform that's the same for everybody our lives would be easier, cross platform errors would cease to exist. But would it truly be better?
After all life teaches us that the best things come from obstacles ;)
ps. on another note: I would love to see an Android vendor with a big share announce tomorrow that they decided to ship Firefox by default, that would change the game a bit ;-)
Off the top, thank you so much for the time you put into this response. This is the sort of feedback I was hoping I would get! 😁
I want to address some smaller points, then make an overarching point.
I may have misled a bit with how I offered up the idea of a foundation to manage the web engine. To be clear, I don't mean that Google should become a non-profit, or that the Play Store or YouTube or Android should change ownership. The only thing I'd want this foundation to own is the core browser engine itself. Not necessarily even a full browser, like the Chromium Browser. Ideally, a foundation would be established with an independent leadership, unaffiliated with any browser vendor, to manage the open source project.
Off the bat, I absolutely recognize that this is a somewhat utopian vision, and Google, Apple, and the rest are unlikely to relinquish their power. But I don't think it's entirely out of the picture, and I think it deserves some discussion.
There's a difference though. If I'm choosing an operating system, I'm choosing it for myself (or my organization or whatever). If I'm choosing a programming language, it's really for me. My end user doesn't typically know the difference (with some exceptions). But on the web, the diversity of and conflicts between browser engines isn't a personal choice. I as a developer don't choose the browser engine I want to use, then write code for that engine and ship it. Other people choose what they prefer, and that controls the engines I need to target.
If I'm getting ready to create an application that requires a certain feature, and I see that, for example, Python makes it really easy to handle that issue whereas it's pretty difficult to pull off in Ruby, or if someone developed a really awesome Python module that does something I need but no equivalent Ruby module exists yet, I can choose Python and that's the end of it. But if I want to write a web app that relies on a certain API, and Chrome shipped it 15 versions ago but Firefox hasn't gotten there yet, I'm stuck. I've hit a wall until Firefox decides to implement it, unless I want to contribute another entry to the growing list of "Works best/only in Chrome" web apps.
This is a side thing, but I'm interested 😁. The reason I think Edge shares may increase is the same reason IE11 still shows up in the stats: people (especially non-technical people) have a tendency to use what comes on the box if there's not a good reason to switch. So far, Edge has been a sufficiently worse experience than Chrome that even non-technical users were willing to switch. But if Edge comes even close to Chrome in terms of usability, I just have an inkling that a lot of users will just not bother to download Chrome the next time they buy a laptop. Maybe I'm wrong; we'll see what usage stats look like in 2yrs or so.
--
Okay, in this next section, I'm going to agree with you a bunch, and then end with a flourish.
100% agree. No question.
Also 100% agreed. There's a huge power imbalance, and I do take the point that there's a possibility that if everyone moved to a common browser engine, but Google continued to have an oversized influence on the project, then Google may conceivably have an even easier time influencing the web to work the way they want.
Yep. Definitely a concern.
All of these are super important, very valid points. Google may still have a (too) large influence on web standards, and I have concerns about that. But here's where I'm coming from: I think that's pretty likely to happen anyway. The direction things are headed, I think Chrome will probably continue to pick up a bigger market share, I think every new browser to enter the scene will be built on Chromium, and I think Chromium browsers will continue to implement features and APIs faster than other orgs can keep up, especially with Microsoft's engineers joining the repo.
What's the end state there? I'm very worried about a certain scenario, which seems to be playing out now: More and more web apps (not just Google ones) will become Chrome-only, or Chrome/Edge/Opera-only. More and more users will see these messages and think they have no choice but to download a supported browser, because they really want to use that application. Safari will lose users, Firefox will basically die out (or shrink to less than 1%), Google will dominate, and there will be no structure in place to stop them.
As a small aside, I think the advancement of TWAs in the Google Play Store (Trusted Web Activities, basically a way to package a PWA into an Android app) will put even more pressure on app developers and companies to target Chromium first and foremost, to maintain compatibility with the Play Store and avoid having to maintain a separate Android app.
That, to me, is the ultimate doom scenario. Google still basically wins the Internet, and other organizations have little to no way to stop them. In the scenario I suggest here, I admit that this isn't totally avoided. But my hope is that it leaves avenues open.
If Mozilla is no longer sinking all their developer resources into keeping their browser engine afloat, they can focus more heavily on improving the features of their browser, all the stuff outside the rendering engine. My hope is that this could actually strengthen the appeal of Firefox, since privacy advocates no longer have to choose between a browser that keeps their data safe and a browser that works. Best case scenario, they begin gaining users again, gaining donors, increasing their resources, and ultimately increasing their influence on the standards process.
This all can sound sort of apocalyptic, and admittedly it sort of feels that way too, but that's what happens when you talk long-term... you have to imagine the ultimate best and worst outcomes and decide how likely they are. Is the Mozilla scenario I just suggested likely?
--
Man, this ended up basically as long as the article 😂 Hopefully it's not all nonsense
I agree about the discussion worth, my argument was mainly about the fact that it might not actually matter, because it wouldn't probably be binding. It's totally not the same thing but you just reminded me of the Paris Climate agreement. I don't have the tools to have a definite opinion on that but I know as a citizen of this Earth that if you make an agreement that sovereign countries have no obligation to respect and if they don't (see the US) nothing happens, well, the result is just a feel good utopia, to borrow your word because people can go their separate ways without consequences.
Are we sure we're really choosing? Far from invoking theories of being in a simulation or issues of true freedom but... well, the tech we choose is (for the most part) the result of the environment we have around and has consequences for the end users (though I know what you mean and probably the following analogy shouldn't be used here because we both understand each other). The analogy is Electron, I know people like to bash on it and I'm sorry to use it again, but if my tech choice means that I'm going to shave off 500mb of the RAM of a person that might have only 4GB, well that's a choice that has an impact. The same way a badly written website might have megabytes of JS that have a real impact on users (and this would happen even in the "universal engine" scenario).
I see, that's true but at the same time, are you stuck because you don't have access to that API or are you stuck because the lack of that new API impedes your ability to deliver a good UX to the user? After all we didn't have many of the "Chrome only" APIs until the day before they were announced and we were mostly fine. I don't want to sound like a luddite because I'm not but not every technological advancement is needed, sometimes it's just because developers like us have found a better or smarter way to accomplish something we were already doing the day before.
I totally subscribe the argument of productivity though, APIs and abstractions help us deliver products faster and that's important.
True that but if Microsoft doesn't plan to release a new operating system, then "what comes with the box" for existing customers is a sailed ship if they've already switched to Chrome. Unless MS plans an aggressive marketing campaign I don't see a person happy with Chrome switching back. An entirely different argument is to be made for people who purchase new computers, but even that might be unpredictable (maybe they have an Android phone and they want to sync bookmarks ;-)). We'll see.
I would honestly be glad to see Edge Chromium (even if in my heart I would have preferred an Edge Servo) raise in stats, because of the reasons mentioned before about competition.
I see, your argument is about making the most out of an unstoppable situation. I honestly don't think Firefox will ever switch (though it worries me that a part of their funding comes from Google paying them to default to Google search). I guess we'll live to see. There's always something happening in tech.
Maybe we'll end up using WebAssembly like Java Applets and the browser won't even matter anymore. Kidding :D
Seriously speaking: I agree that the "mono engine" scenario is better than having broken sites on different sites but as I don't see Firefox switching, I really have no idea what Apple would do with Safari mobile. They, unless they've changed it recently, have a policy in place where all the browsers ported to iOS have to use Apple's browser engine. Firefox for iOS sucks for that very reason ;)
You're making my argument for Google being a double edged sword for the web. What happens if devs start making Android only PWAs (even saying that sounds too much of a mono culture to me)? Are they really going to ignore all iOS devices just because Google has a better track record in regards to catering to web developers?
Got it. What happens to all the work they've done with Firefox Quantum, Servo, Rust and so on?
I guess it depends on how much Google decides to push and how little Microsoft and Apple decide to counterbalance. It sure is gloomy for Firefox market shares right now. In the meantime, I'll keep using it because it's a damn good browser and I'm rooting for the underdog that gave us Rust :)
Sorry if it took me a while to respond :-)
Indeed, that was my point! I totally agree with your concerns about a Google-controlled web.
Yeah, unfortunately the majority would hit the floor, no question. That's an enormous bummer, no question. But I'd hope that at least some of the principles used to build Quantum could be applied to improve parts of the future browser engine, just like what the Edge team is doing with their improvements to Chromium's scrolling and touch support.
Hey listen, I'm no metaphysical libertarian. You wanna talk determinism, compatibilism, or any other philosophy of mind, jump in my DMs, I'm all about that 😎
Yeah... probably not. I don't what to do with that. To be honest, as some others have said in the comments, I'd much rather see Firefox become the basis of a shared browser engine anyway; the only reason I posed this in terms of Chromium is because it's currently winning the war by, like, a lot. I honestly don't know if Mozilla would ever go for it.
That's certainly true. A big outstanding flaw of my proposed future is that as long as Google continues to have majority influence over the engine, they can basically take it where they want. And if control were to be ceded to an independent foundation (which is already an enormous assumption), Google could still at any point get frustrated that their PRs and merge requests aren't being accepted and fork Chrome back off again. And I don't know what to do about that.
Yep
There would be nothing to do about that, except change browser but at that point there would be fewer options and we would be back at square one essentially ahhaa.
BTW another aspect is that even if tomorrow all browser would choose a single engine we'd have to support the existing ones for years :(
The W3c no longer decides the web standards anymore. Browser vendors do. W3c just proposes and advises standards. WHATWG does the standards now. w3.org/blog/2019/05/w3c-and-whatwg...
It's a lot to keep up on
I switched to Firefox because of the Monoculture. If anyone has been following the webRequest API deprecations from Extension Manifest v3, this is exactly why many people including me think a Monoculture is bad. I'm surprised this article didn't cover that tbh
To be up front about it, the reason I didn't cover the Extension Manifest v3 issue is that I basically know nothing about it haha. I heard that browser extensions were changing, but didn't know there was a controversy over it. I'm not an extension developer, and tbh I don't even use very many extensions, so it really hasn't been on my radar.
But I'm interested. Would you mind filling me in on the relevant aspects, and how it relates to the monoculture debate?
(I'm not 100% correct most likely but this is my understanding).
I use uBlock Origin. uBlock Origin and several other Adblockers work by blocking ads on the request level; Through the extension manifest, they request access to the webRequest API which lets extensions intercept requests coming in to the browsers and block ads that are delivered through (probably?) Javascript embedded in a page.
There's another class of Adblockers, like Adblock Pro which block ads based on "rulesets". Meaning, they let the Ads render first and then they remove them once the DOM content finished loading. They look for heuristics of something that could characterize ads in the DOM (I think). I've also heard that Adblock Pro sells your info but I don't know about that lol
Google, in the new 3rd version of the Extension Manifest for Chromium based browsers, is deprecating extensions' access to the webRequest API (or some subset of its functionality). This is gonna make it impossible for uBlock Origin and other adblockers of its kind to effectively block ads.
Remember that Chromium is FOSS, and Google said they want to make these changes under the guise of "performance improvements". The community tested their claims and found the performance improvements were negligible at best.
Google first said they wouldn't make these changes, and then came back recently and said they're doing it anyway.
Conveniently enough, the changes to the Extension manifest aren't gonna apply to "paying enterprise costumers". Hmm...
Thanks for this great post! It's very detailed and argumented, and even if I don't deeply understand the difference between Chromium and Chrome, I feel very concerned by the risks of a "monoculture browser". And so am I for the monoculture in general (search engine, OS, email provider, ...).
I came back to Firefox a few years ago, after several years with Chrome, to take the control of my privacy. And I did it also for all the other services: Gmail, Google search, Youtube, Google Drive, Facebook, Instagram, Twitter, ...
Regarding the browser, as a backend-only developer, I couldn't say if your suggestion of using the same browser engine in all browsers is a good or a bad idea. Maybe it could be a good idea if this browser engine wasn't under control of a huge private company as evil as Google, but directed by a non-profit and free consortium (Mozilla Foundation?).
There really isnt much of a difference between chromium and chrome tbh. Fundamentally chromium is the engine which drives the browser, the "chrome" variant is the skin on top of that.
If you download chromium as a standalone browser it will look and feel like Google Chrome. Really all Google Chrome adds is is more google analytics under the hood and possibly some internal performance tweaks for running Googles own services.
You aren't wrong. But I want to emphasize that while there's not a significant technological difference between Chrome and Chromium, there's a massive organizational difference, and that's kinda the basis of my whole argument
Oh I agree totally, I was just trying to clear up the difference between chrome/chromium in a simplified manner (think ELI5), just in case it helped understanding.
Yeah, for sure! Explanation is always valuable, and I probably did assume more background knowledge than I needed to in my post, so thanks for helping to explain 😊
Nothing wrong with posts that require prior knowledge, if everyone made everything understandable to everyone, there wouldn’t be progression.
Yes, exactly! I mentioned this in passing, but probably could have highlighted it more:
So Chromium is the open source base that Google develops. It's used as the base of Google's own Chrome browser, but while it's still Chromium, it isn't tied into the Google ecosystem, and like I mentioned in the post, it's used as the base for a bunch of other browsers as well.
Really all that matters for the purposes of this article is that "Chrome" means Google, integration into Google's ecosystem, etc., but "Chromium" means Google Chrome, Microsoft Edge, Opera, Samsung Mobile, Vivaldi, Brave, Epic, and a ton of other smaller browsers that aren't tied to Google in any way.
If you switch to mobile specifically, Safari's market share jumps to about a 20%. Even that, understates Safari's significance since Safari/WebKit powers every browser or WebView-based app on iOS. So, I think the biggest impediment towards your idea would be getting Apple to relinquish control over the web engine on their mobile devices.
That being said, I am not sure I am totally in agreement here. I say that as someone who remembers how easy it was to develop back in the days when we only targeted IE and even had almost a single common screen size to design for. However, I don't see cross-browser issues being the biggest complication in modern web development (PWAs are a bit of an exception, but iOS is rapidly catching up of late). The biggest issues facing web devs, in my opinion, are targeting a myriad of devices, device sizes and device capabilities (including trying to support older devices), and this is a problem I don't see a browser engine monoculture solving.
On Apple: yeah, I definitely agree. I think Apple would be hard-pressed to give up the deep integration that Safari has into their whole ecosystem. But imagine if everyone else did, and the web started bounding forward, leaving Safari in the dust. I've already heard folks refer to Safari as the new IE in the sense of being the holdout for lots of new web platform features that we all really want to use, so I could imagine a world in which the pressure on Apple builds up to the point that they are willing to fall in line. And actually, I bet that Safari would be easier to transition than, say, Firefox, given that Chromium's Blink Engine began its life as a fork of WebKit. I'm sure the code has diverged plenty in the six years since, but it's probably still got a lot of the underlying foundation in there (again, I'm no expert).
On the main problems of web dev life: I definitely agree that cross-device issues are a big deal. But like, there can be more than one big deal, right? IMO, cross-device isn't really a problem to be solved, it's just the nature of the web, and we've spent a decade developing techniques to deal with it (and will continue to do so). And actually, in my experience, cross-browser and cross-device tend to interact, so that you have your app working perfectly on Firefox/Windows, Chrome/Windows, and Firefox/Mac, but for some reason it still looks weird in Chrome/Mac. That (largely) goes away if you reduce down to a single browser engine under the hood.
And to back up a bit, idk, I have to disagree that cross-browser issues aren't a big issue (if that's what you were saying; hope I'm not putting words in your mouth! 😬). As I mentioned in the post, one of the biggest frustrations of my life right now is that Chromium hasn't prioritized Subgrid yet. In my experience, Chromium tends to push boundaries more often in JavaScript, while Mozilla often leads the charge in CSS. There are quite a few JavaScript features that Chromium has been experimenting with, and that have shipped to prod in Chrome, but that Firefox hasn't had time to work on yet.
And really my point is that even if you don't see the issue now, this is only going to get worse as time goes on. That Verge article was definitely not wrong in talking about the rise of "Works (best/only) in Chrome" sites. People want to use these APIs (myself very much included), but we need cross-browser support.
I guess in the end my worry is that if we don't address this now, intentionally and publicly, we'll end up with a monoculture anyway, and it will be the bad kind, where a company becomes dominant instead of a technology.
Sorry for writing another article in your mentions 😅, I have a tendency to do that. I'd love to hear your feedback again, if you can spare the time!
The divergence in my experience really tends to be on bleeding edge features. SubGrid, for example, is part of the CSS Grid Level 2 spec, which is still in a draft recommendation status. So, I'd argue it is not that certain browsers fall behind but that we developers tend to get ahead of ourselves a bit. I'm not discounting that these are important features, but that we've become a bit accustomed to features being available even when the specs are still a bit unstable.
Hi Ken. Good article. In fact, it inspired me to quit lurking and sign up so that I could make the following comment...
I think you overlooked what I consider to be the most serious albeit least immediate downside to any monoculture: vulnerability to attack. If a substantial portion of our infrastructure becomes oriented around a single platform, then it is possible for the inevitable vulnerabilities in that platform to be exploited in such a way as to disrupt or disable everything that depends on it.
I tried to state that as generically as possible because it applies in many situations. In this case, Chromium is on it's way to becoming the de facto application run-time and information rendering engine on all end-user devices. If that situation actually came to pass, then successfully attacking a single piece of code could be enough to effectively render most of our technology useless. As we become more and more dependent on technology, that becomes synonymous with potentially taking down our entire civilization.
Admittedly, that is an alarmist and over-the-top outcome that is unlikely to occur. The point is that it could occur, and moving from a diverse client-side environment to one of monoculture makes it more likely rather than less.
(Apologies if anyone already mentioned this in the other comments. At the time I read through them, no one had.)
“Just imagine with me for a moment: What if Company A and Company B and everyone else stopped maintaining separate products, duplicating a ton of effort and desperately trying to keep up with the pace of the behemoth that is the market leader, and instead began contributing to a shared product? What if everyone benefited from everyone else's work?”
I mean, I was born in socialist Yugoslavia, so I’m not the most pro-capitalistic person out there but what you’re suggesting sounds like something that is completely incompatible with capitalism.
Just the idea that all browser vendors would agree on a single engine without one of them ever wanting to fork sounds utterly utopian.
Ha, maybe. And maybe my idea will stall until the after the revolution ✊
But I wouldn't count it out altogether. Standardization on a shared core has worked before (see: Linux kernel), but admittedly it hasn't been on this scale, with this much existing market entrenchment.
I agree that it's a major problem to be dealt with, but I'm not convinced that it's insurmountable just yet.
The biggest issue (which has been hinted elsewhere) is that even though there is an open source version of the Chrome engine called Chromium, Google still has overwhelming power over Chromium.
This has been revealed lately in the deprecation's of the Extension Manifest 3 (which has been noted elsewhere) as part of the WebRequest API which is being done in Chromium. Google has been deceptively saying these changes are done due to performance reasons however their real reason (which was also revealed in an obligatory K12 document they had to reveal to shareholders) is that pure Adblockers such as U-Origin are posing a significant risk to Googles revenue (advertising is Google's primary source of income).
If Chromium wasn't owned by "Google" and was in charge of a non-profit neutral organization than I would agree with you. There is already however a browser that fits this description, its called Firefox. Firefox, unlike Google, doesn't have ulterior motives and conflicts of interest.
By the middle of the text I was already thinking what you said about it is not Chrome you are talking about, it is Chromium, which is open source.
I think the best thing about open source is the exchange of ideas, so in my opinion there will be no loss of great ideas if only one codebase dominates. Think about that, if Firefox and Safari engineers came to contribute to Chromium they would be forced to comply with any idea that the other engineers had? No, they would give their ideas and the community as a whole would decide what is the best implementation and after that it is not set in stone, it can be improved afterwards.
In the end it is something that will be come naturally if it happens at all and after people may create a fork of Chromium and so on. That's what open source is about. :)
Nice article Ken. In theory it would make life so easy (browser testing almost eliminated).
I'll keep it simple for once. We should have lots of render engines & lots of browsers. Competition breeds progress, decentralization reduces authoritarian control. Single point of failure. Bureaucracy.
I prefer the webkit render as it is the nicest quality & it is the fastest. Chrome is measured in Gb.
A parallel would be: why don't we just put all the internet on a mainframe, with bootstrap, single design method, one copy of content, no duplication etc. - I know this example is a bit silly, but the principle hold weight.
I just (literally) published a giant list of browsers in the hope that we can de-monopolize a bit.
dev.to/vuild/giant-list-of-web-bro...
I cannot agree more, you raise some interesting points. Challenges between browsers is making the web more rich, I think Firefox is in financial need to be so late in the browser ladder.
I would also shade my answer by saying having a good financial support is also an advantage. Maybe if Microsoft would have made their own browser this would have been better, they took the easy path (understandable to grab more customers).
Hard situation!
I remember what caused me to switch to Chrome was that, I'd recently changed jobs. As a result, my previous, employer-issued laptop was one of the things I forefeited when I left (it was a 2+ year old, MBP with really flaky hardware, so, not a super-big loss). My new employer was supposed to issue me a laptop, but their processes were slow (took them nearly six months to finally decide that, rather than issue me, let me expense one of my own choosing). So, there was a gap between my start date and getting the employer-paid laptop. Unfortunately, I needed something to work on ...but, obviously, didn't want to go buy a cadillac-laptop that I "might not be using in a month" (that, ultimately turned out to be six). So, I cheaped out. The "temporary" laptop had a trifling amount of RAM and Firefox was just too huge to run on it. At the time, Chrome ran blazingly-fast in a tiny footprint.
Now... I still don't know which browser is the leakier pig.
At any rate, I don't disagree that Chromium's dominance has the potential to be problematic. I'd likelier feel more comfortable if Google one day said, "ya know what: we'd really like to just contribute this steaming pile of code to a trusted, third-party OSS specialist like Apache.Org". I mean it's great that Chromium is open source, I'd just feel a lot better if it wasn't owned by a commercial entity (for much the same reasons it sucked that Java ended up owned by Oracle via the Sun acquisition).
FTFY 😁
Noice. =)
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!
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.
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.
Web Browser Engines should be pluggable.
Imagine a selector on Firefox, that has Chromium, Firefox, etc engines,
It can use hot code live reload of native binaries to reload the lib,
that way can be security forks, speed forks, experimental forks, besides official.
It's not a duplication of effort, though.
It would be if the standards were always agreed upon in advance, and all the browser vendors did was write code. But that isn't how it works -- the vendors themselves are the loudest voice determining what goes into those standards, which are often based on existing implementations. More voices means more innovation, and more checks against poor choices.
Honestly, I can't think of an area where we're more spoiled for choice than page layout.
More generally: the web is comprised of many of technologies, the design of which have have various implications for implementers, content creators, and end users -- of those, ease of styling might just be the least important.
Even if one's attitude is "whatever it takes to make the trains run on time," a trinket like CSS subgrids still doesn't strike me as a fair trade for monopoly control of the world's most important publishing platform.
Sounds neat, but who's going to pay for it? And who decides what they build?
Yes and no. It's a large group of tech companies, both old and new, that pay dues in order to have a say in emerging standards recommendations. It includes the browser vendors. This thread is worth a read.
They did attempt to set their own agenda with XHTML 2 and related work. But it was both too ambitious and too far from the browser vendors' wishes, and it was ignored. We instead got HTML5, which codifies the superset of quirky crap the vendors had added since 4.01, and adds some new tags. It's maintained by WhatWG (i.e. the browser vendors). They don't even bother to version it.
We already have a "reference implementation" model, although Google doesn't call the shots in every case yet.
Some things follow the old process: W3C made the IndexedDB recommendation, and the vendors went to work on it. Even then, there were only a couple of main players: Apple created a SQL solution that got decent support. But Mozilla pushed for a more storage-neutral standard, and ultimately got it.
The browser extension APIs went the other way: Google made a set of APIs for Chrome, then Mozilla began a now-stalled effort to standardize them. Mostly it involved using generic names for things, which Google ignored. Google's now working on "Manifest v3," which among other changes, removes extensions' ability to intercept requests (e.g. μBlock) and run remote code (e.g. Tampermonkey).
Anyway, from what I can tell, the standards mostly get based on, existing or planned implementations. Some are joint efforts, some aren't. But there are only a handful of vendors, and their numbers shrink as browsers become increasingly complicated.
I can only speculate, but IMO the trade-off is that the standards take longer but the results tend to be more resilient and better-thought-out.
In the immediate future, it looks like users' ability to selectively request content is about to be neutered. That could mean very little, or it could indicate a shift toward a more broadcast-like web, led by a company that makes the bulk of its money on advertising platforms.
I'm not trying to be smarmy -- I seriously don't know. But I do think the current process, which tends to require consensus from the browser cartel, and occasionally the larger W3C, already represents a balance between caution and practicality, and is better than a fully proprietary web. I also think that the TV marketing adage, "if you're not paying for the product, you are the product" applies here in part.
Worst case, even we end up with a monopoly, I do think that the creativity of end users and startups matter more than the platforms. My hope is that the medium isn't really the message, and that the internet remains a world of ends.
And to that end, I'd invite everyone that's read this far to consider throwing the EFF a few bucks.
I'd sure love to only have to test on one browser engine. And I would sure love if websites all worked on the first browser I tried to use.
However, for a small handful of existing siduations, I nee Firefox, and cannot use Chrome. Notably, when using self-signed certifies for Https during early development. But then, if everything was Chromium, in sure we would find a way.
There is always innovation and competition. I'm not worried. It's like worrying about MySpace being the dominant social media platform, or Netscape Navigator being the primary browser, or Altavista being the main search engine, or AOL the primary internet provider. Where are they now? Not even in the landscape...
Counting Samsung Browser and UC Browser separately is disingenuous; they both simply provide a new UI around the Android System WebView, which is essentially Chromium embedded as a system framework.
They are a part of the Chromium monoculture, not an alternative to it.
And don't forget Opera is a Chromium fork as well since version 13.
Are they? I didn't realize! (Like I said, I'm no expert 😊.) I listed them separately in the table only because that's what my source (statcounter.com) did. And I did explicitly refer to Samsung Browser as part of the Chromium monoculture more than once.
I did mention Opera as a Chromium fork a bunch of times, too; even linked to their announcement. Heck, the Opera logo is in my header image!
At any rate, adding additional browsers to the list of Chromium implementations would only strengthen my point. If UC Browser is already a Chromium instance (I'd love if you could give me a source for that, please!), the percentage of current global usage goes up to 74.18!!! Even higher than I thought!
I have one fear about the collaborative engine: If Google decides that blocking ads is unethical and should not be possible and remove the API to do so from Chromium, how on earth will Edge, Opera, Brave and Vivaldi implement this functionality?
Really thoughtful post!
(I do have additional opinions here but I need some time to find my articulation. I may reference your post in a future post I make related to this)
Yeah please, take your time, and drop a link here if you make a future post (mostly so I don't miss it 😁)! It's a deep topic with a ton of different angles to it, and I'm sure I'm wrong about something; that's mostly why I wrote this up, so the community can tell me why I'm wrong
I'm not concerned about a browser monoculture at all - in fact I think it's something I'd embrace!
I remember building sites with IE in mind, and having to sometimes specifically target CSS for it. But back then, with IE6, the web was still so new we were all still arguing over the standards. We're a little more experienced now with the web and a lot of standards are now settling. If a browser monoculture can help speed this along - bring it on!
Great article. I like the idea of having different versions of features in different browsers, but working together to find the best results. I also feel like bringing standards together would definitely be a big help to developers as more often than not you'll have issues with other browsers you might not have even known exist, but the 5% of traffic you get on your site that can't access critical features because of the browsers they're using could potentially make or break a business.
Monocultures are also bad for security: granneman.com/tech/security/securi...
I like Edge. I just wish LastPass played nicer with it. It'll be missed!
It's not Google's fault that chrome/Blink/V8 is winning over other browsers. Or that MS is too lazy maintain their browsers. Chromium development is completely open and done in collaboration with many groups. When they try to implement standards that not everyone agrees on - they give them up and don't push them, like the Files API or how NaCL was dropped in favor of web assembly. All this fear-mongering over browser monopolies is unnecessary, misunderstood nonsense.
No, I disagree. Just watch this newly released video talks about how Google maliciously neglect other browsers including Chromium based.