Here’s an interesting question to turn over this lovely Sunday afternoon.
What stops you from implementing this yourself? Why?
Chrome is supposedly open source. So is Firefox.
It’s an important question, because the answers lead to the reasons why we’re subservient to megacorps. And it also shows merely being open source and free to use isn’t enough to ensure freedom.
We tend to believe that (a) browsers are an open ecosystem, yet (b) we can’t modify them. This is a contradiction.
Building Chrome requires a supercomputer and not everyone has one around.
Why is that so? Because there are enough crazy people who cannot stop writing new web standards. For example, things like Shadow DOM and web components, that are not really necessary and can be implemented using existing specs.
Chromium comes in at 120 SBU, which while large isn't impossible. That comes to about 3-4 hours on my laptop.
Building software is not some esoteric pursuit only high priests can perform. It's good practice for software you're familiar with, require performance from and esoteric options most people don't care about.
Ninja, by default, sets the number of jobs to the number of available threads. If your machine is memory constrained, with regard to number of threads, you should reduce the number of jobs by passing the -j# switch to the ninja command below. Plan for roughly 1.25GB per thread while linking WebKit to avoid out of memory errors.
My laptop is memory constrained, I have yet to build Chromuium from source. How much RAM on your laptop? I've been looking for a laptop with 32GB RAM.
you should reduce the number of jobs by passing the -j# switch to the ninja command below.
I have had builds of linpack back in the day taking 24h+ on tiny systems. Again, building software isn't rocket science and you don't need super computers for it.
Because open source monoliths is impossible to maintain unless you can dedicate most of your life to that. Split that to many small individual, replaceable and easily maintainable pieces first.
What makes you say you can't modify them? Are you referring to modifying your copy, or are you referring to modifying the main branch and thus other people's copies? You're trying to blame this on "megacorps". However, as a user, I appreciate the maintainers at Mozilla for keeping Firefox well-tested and well-maintained, part of which is scrutinizing feature proposal and PRs/patches to make sure that their end users would want them. This is such a strange criticism of Chromium/Firefox. At least you can modify your copy at all.
Your other comment suggests trying to add a new web standard but IMO the unending stream of web standards is why only "megacorps" maintain browser engines, because only they have the resources and care enough.
Either way, it's a logical leap to suggest you need to modify Chromium or Firefox to implement this in the first place. The concept from TFA can be implemented with webviews without seeing any code from any browser. To answer your first question, the only thing stopping any implementation is time.
> We tend to believe that (a) browsers are an open ecosystem, yet (b) we can’t modify them. This is a contradiction.
I think the idea of it being "open" is that you can do whatever you want within the boundaries of the sandbox you are provided, right? Closed ecosystems can restrict what you can do beyond the APIs provided (no VPNs, no porn, etc.)
The megacorps wouldn’t have allowed the web to evolve into such a massive sandbox if they’d known how much of an effect it would have. Just like Apple didn’t, with the App Store.
The same situation has already happened with Chrome, but with browsers themselves. Try submitting a PR to chromium that implements a new web standard and see how far it gets, let alone a change to the UI.
All of that begs the question: why is it like this? Theoretically there’s nothing stopping you from writing a browser in JS and delivering it as a website. Then users could customize it however they wish. And if you deliver it as a standalone executable, you can do things like add native torrenting support.
> The same situation has already happened with Chrome, but with browsers themselves. Try submitting a PR to chromium that implements a new web standard and see how far it gets, let alone a change to the UI.
FWIW, there have been various new features/standards implemented by people from various companies (some people will have heard of, like Samsung and LG, and others you probably haven't, like Igalia) in Chromium. (UI changes I know much less about, given I rarely look outside of the Blink bubble.)
You can modify them, and a lot of the readers of this site have! The problem is convincing everyone to care. Or even one person. This is the same problem all founders struggle with all day long. Obviously, many are successful.
Business gets in the way of a lot of things, I'd say. "No distractions" mode here would strip the branding, the ads, the engagement tricks utilized by websites...
It'd be fun to see this as an OSS project, though.
Firefox already has a so-called "reader view", which basically strips away the distractions. It would be nice to see this implemented more thoroughly, so navigation menus are retained and become standardized/clutter-free.
Yeah, I think we need better collaborative filtering and/or ML for ad-blocking. And the browser should always make the website believe that the ads are shown (no altering of the DOM, but instead alter a copy of the DOM).
True. I guess you could load the content from a client running at a central service, and send the stripped-down version to the final client. Of course, you'd have to trust the service.
I think hanlon's razor applies here. The Web is ridiculously complicated and it takes a supercomputer to compile a browser capable of running The Web at full speed. Not to mention that people have done it -- see, e.g., qutebrowser or next-browser.
What stops you from implementing this yourself? Why?
Chrome is supposedly open source. So is Firefox.
It’s an important question, because the answers lead to the reasons why we’re subservient to megacorps. And it also shows merely being open source and free to use isn’t enough to ensure freedom.
We tend to believe that (a) browsers are an open ecosystem, yet (b) we can’t modify them. This is a contradiction.