1. 44
  1.  

  2. 38

    The real problem is that a handful of big players heaped complexity atop complexity, creating a morass of web “standards”, many of which are user-hostile to begin with. This led to the situation where it is nigh impossible for anyone but big players to create and maintain a usable browser. So here we are, with the chickens coming home to roost.

    Full disclosure: I’ve been involved with an alternative browser effort for many years; edbrowse.

    1. 4

      I kind of want to start my own browser project. I was thinking it could be useful to work on one part of the browser engine. that way there could be multiple projects and others would find it easier to start their own browser. Though I need to research what’s out there.

      1. 18

        Here’s our documentation on how to contribute to Gecko and Firefox. We regularly create good first bugs to help newcomers get to know our processes & practices. Contributing to Firefox can be done in HTML, JavaScript, CSS, C++, Rust and even Kotlin.

        We also have a chat room on Matrix for new contributors, #introduction:mozilla.org

        If you’re interested in writing your a mobile browser from scratch, our Android team has created a set of components to build your own browser, so you can pick and mix. I think it could be a great start, but obviously mobile-only.

        1. 5

          In my experience Mozilla isn’t great at reacting to outside contributions. For example, I opened a PR half a year ago in the eslint-plugin-no-unsanitized repository and while you initially reviewed it very fast (thanks for that!) by describing what needed to be changed, there hasn’t been any activity on that PR since I applied the changes you recommended.

          This hasn’t been the only encounter where this happened. Sometimes I open bugs on BMO with a patch to fix it and the patch only gets reviewed multiple months later, if it doesn’t get ignored entirely. I understand that you’re all very busy and managing outside contributions is hard (that’s why Google doesn’t want them!) but I wish Mozilla would improve on this front.

          Ironically, my best experience with contributing to a Mozilla project has been submitting a patch to Thunderbird, which isn’t strictly a Mozilla project anymore :).

          1. 1

            I can’t even think of a contribution where I would be reasonably sure that it would be accepted.

            I think Mozilla has made it clear time and time again that people technically proficient – enough to have an opinion differing from Mozilla’s – are outside the browser target user group, and therefore their opinion is irrelevant.

            To be honest, the best way to get things in Firefox is probably to get it into Chrome and then hope that Firefox copies it after a while.

            Let’s see how this turns out for vertical tabs.

            1. 1

              Thank you! I’ll check out those links.

        2. 19

          Chrome isn’t free because Google uses it to spy on you. Google uses the web for that. Chrome is free because it allows Google to define the web. Switching to another browser that just uses Blink and V8 does absolutely nothing to free you from Google where it really matters.

          1. 16

            I’m really surprised about the reaction to this. As the article says, “you might use Chromium as a way of avoiding proprietary software, but if you use Chromium with features like synchronization, that objective has not been met.” The whole reason for using Chromium is to avoid Google’s proprietary add-ons, so removing them seems desirable to me. It ensures that every part of the code you run is actually stuff that you control - the essence of what free software used to be about.

            If anything, the reason I don’t spend more time with Chromium is I’m not certain that it’s fully Google-free.

            1. 17

              I personally won’t be affected in the slightest by that change to Chromium, because even when I do use it, I don’t use any of the Google extras like bookmarks sync. I do worry about the knock-on effects from distributions dropping Chromium outright.

              And I think a lot of folks have forgotten what free software is all about. Google et al have coopted it, under the banner of open source. Capitalism has a long history of co-opting countercultural movements.

              1. 5

                And I think a lot of folks have forgotten what free software is all about. Google et al have coopted it, under the banner of open source.

                After all the AWS / Elastic happenings this week, can I just say it’s really refreshing to see someone properly draw this distinction.

              2. 2

                These were my thoughts exactly. I’d don’t use Firefox sync either; and I’d rather use a self-hosted bookmarking solution via browser addon anyway (although I don’t currently).

                Like, how many Chromium users are actually using sync? I’d imagine anyone who does probably avoided logging into Google at all. But I guess, maybe not? Seems very odd.

                1. 1

                  I’m guessing the impact is going to be for the users on systems Google doesn’t support that Chromium does, like OpenBSD.

                  1. 1

                    use ungoogled chromium and you’re good to go

                  2. 15

                    The really weird thing to me is that people are acting surprised that the profile sync, which is backed by proprietary Google services, will stop working with Chromium. The fact that this would happen seemed very obvious to me the moment I first saw that feature. What did people expect was going to happen? Why did anyone trust this service enough to put their data in it?

                    1. 13

                      The larger problem, though, is that it’s not at all clear that Firefox will remain a viable alternative to Chrome. Its market share has been falling for years, and not everybody is pleased with the directions that the Mozilla Foundation has taken. The creators of web sites have responded by not caring about Firefox; having to retry broken web sites in Chrome is a ritual that many Firefox users have had to get used to. It’s not surprising that users give up and just run Chrome from the outset.

                      This is the real problem here, in my opinion - even if there are other freely-licensed browsers which use Blink, the trend towards obsolescence for Blink’s only competitor is a fairly grim sight to behold. I actually use Firefox because I prefer it to Chrome & derivatives, but at this point I have a secondary Chromium window open most of the time anyway, not least because Microsoft Teams requires it now.

                      1. 4

                        I have a secondary Chromium window open most of the time anyway, not least because Microsoft Teams requires it now

                        I had to resolve to the exact same thing. All virtual meetings Google Meet, Microsoft Teams, Slack calls do not support Firefox and explicitly tell you to switch away…

                        1. 19

                          Jitsi, BigBlueButton, Zoom and Discord do support Firefox and have good user experience fwiw, I would particularly recommend the first two as they are freely-licensed. Took me a while to find a decent platform for casual videoconferencing at the start of the pandemic.

                          Obviously, that only works if you can choose the platform, but it’s worth a try anyway.

                          1. 1

                            I’m using Google Meet everyday with Firefox, the experience is 99% great and I haven’t been told to switch away. Only feature missing that I know of is changing the background.

                          2. 3

                            I came to Firefox, way back in the day (like, 2007-ish), because of the dev tools. We actually ported our IE-only application over to support Firefox solely to get access to those dev tools - none of our customers used Firefox, or were asking for it.

                            These days the Chrome dev tools are really good, they’re an entire complex application hidden inside another one - most users will never see it, but there’s a lot of development time put into Chrome’s tools. Today all the developers on my team use Chrome, though there’s no mandate to do that, and in practice every other browser is a second-class citizen.

                            I don’t know what they’d have to do, but if Firefox could make the development experience amazing, then maybe we’d see support pick up, too?

                            (I assume it’s not amazing today when compared to Chrome, because I’ve never heard anyone mentioning that)

                            1. 7

                              Firefox’s devtools have really caught back up again in recent years. The JS debugging stuff was still better in Chrome last time I had to use it, but I’ve found Firefox far better for everything else, especially styling. It probably depends what parts of the tools you need most often, so I’d definitely recommend giving them a try again if you don’t spend all your time in the debugger.

                              1. 4

                                I use firefox for personal browsing, chrome for webdev.

                                The firefox devtools aren’t bad, but they are definitely not as good as the chrome ones. I’d say they’ve been consistently a year or so behind chrome.

                                That said, support for video/audio in firefox is fickle (eg different feature release dates for different OSes - you can’t just say “supports firefox”, you end up having to say “supports firefox on some versions of windows” - at which point it’s easy to write off entirely)

                                1. 1

                                  I honestly disagree, especially for CSS firefox has superior dev tools.

                                2. 1

                                  I still use firefox because it has superior dev tools in my opinion, especially for CSS.

                                  These days the Chrome dev tools are really good, they’re an entire complex application hidden inside another one - most users will never see it, but there’s a lot of development time put into Chrome’s tools.

                                  This is also true of firefox.

                              2. 12

                                I’ve been using ungoogled-chromium for a while and very happy with it. I also don’t understand the point of switching away from Chrome if you’re going to keep using Google services.

                                1. 8

                                  I used to use it because sudo apt install chromium-browser is trivial compared to downloading and installing a .deb package from Chrome’s web site.

                                  1. 2

                                    By far this is the best solution today for browsing the Google web while still having individual power.

                                  2. 15

                                    A few (mostly privacy-hostile) services require a chrome-based browser. Pretty much everything else on the web works absolutely fine with Firefox.

                                    Many of the new web APIs are good things for rich web applications. And web applications are an easier and more privacy-preserving way of delivering stuff than a desktop app, which is because conventional desktop OSs suck at security, privacy and distributing software.

                                    It would be nice if Mozilla and Firefox were better and if they were more independent from Google, and it would be nice if the web APIs were better, but that’s different from saying that the Firefox project is pointless or that the web is too big.

                                    1. 5

                                      Websites that don’t work on Firefox are generally ones I’m better off not using anyway.

                                          1. 2

                                            That’s fine, only mods can merge. Ping @pushcx

                                        1. 2

                                          Just use ungoogled chromium instead?

                                          1. 2

                                            API keys in question are for people who want Chrome Sync. If you are happy with ungoogled-chromium you are not affected.

                                          2. 2

                                            I remember when Google killed their RSS aggregator, Google Reader. Tons of new RSS aggregators popped up to fill the new gap. I wouldn’t be surprised if someone decided to implement a Chrom{e,ium} sync service that peeps can use.

                                            1. 7

                                              The difference is that RSS is a standard. Meanwhile, the protocol Chrome uses for sync is proprietary, and they can change it anytime, and an alternative server would have to keep up. In the end, you end up needing to fork the browser.

                                              1. 2

                                                Brave has re-implemented the server in go. Vanilla chromium can’t use it IIRC because the server forces client-side encryption and the client doesn’t know what to do.

                                                1. 2

                                                  Would you mind summarizing for those of us with short attention spans?

                                                  1. 9

                                                    Browsers will never be done, because they’ve become operating systems, and operating systems themselves are never complete.

                                                    Now look at our current popular options: Windows, Mac, Linux. Each have their own ecosystems.

                                                    The web is currently “ChromeOS web”. This means it is pointless to build something like Firefox, which ends up being just an alternative “ChromeOS”. This is very similar to Windows vs ReactOS scenario. It’s impossible for ReactOS to catch up.

                                                    So what we need is a lot of people to get fed up and create the equivalent “Linux web”. We need a “POSIX web” of sorts. There are many Linux distributions but they are somewhat the same.

                                                    1. 7

                                                      POSIX web

                                                      Just like POSIX is the lowest common denominator of (old) Unix systems, HTTP/1.1 and HTML 4 with Ecmascript 3 are the lowest common denominator of (old) web browsers. These standards are absolutely fine. The problem is developers’ endless hunger for new features and more new capabilities. POSIX tends to not be enough either if you want modern software that can do things like use cgroups (Linux only; for example, Docker just runs inside a Linux VM on Mac) or eBPF (linux only). Most of the other *nixes are just playing catch up to Linux, except perhaps for OpenBSD which provides novel and useful APIs of their own like pledge and unveil, and of course Mac which is like a universe unto its own.

                                                      So all in all, I don’t think this is going to happen. Innovation can’t be stopped and almost all the development power is behind Chrome (Linux) and anything new that’s implemented by Firefox (BSD) will eventually end up in some shape or form in Chrome (Linux).

                                                      Edit: Ironically enough, I just noticed that you consider Linux to be the “alternative”, where I was comparing Linux to Chrome. Note that Linux != POSIX. In fact, POSIX is that which you rely on when you’re trying to write portable non-Linux-only software.

                                                      1. 4

                                                        The problem is developers’ endless hunger for new features and more new capabilities. POSIX tends to not be enough either if you want modern software that can do things like use cgroups (Linux only; for example, Docker just runs inside a Linux VM on Mac) or eBPF (linux only).

                                                        I think a lot of that “hunger” makes sense though; The Web™ isn’t really all that more complex than Qt (which already includes much more than just a GUI toolkit), or GTK3 + some libs (gstreamer, whatnot), or other desktop libraries/frameworks to build similar applications.

                                                        The difference is mainly in the development model: I can ship a POSIX system and that will be useful because many things are built on top of that (not everything, as you pointed out), but I can’t ship a “HTML 4/ES 3” system and expect it to really be useful, since everything is driven by standards that are expected to be implemented rather than libraries built on top of the POSIX foundation.

                                                        So I don’t think that HTML 4 + HTTP 1.1 + ES3 is really a “POSIX web”; as it won’t really allow me to build many useful applications, whereas POSIX does.


                                                        I wouldn’t say this standards-driven model is “flawed” per se, but it does come with some serious drawbacks. It’s also not an easy problem to solve without basically chucking away everything we have now. Look at the discussions surrounding Python 2’s and Flash’s EOL this week to see how hard that is, and everyone is using IPv6 yet, right? Besides, this is not an easy problem to solve well in the first place.

                                                        You see this “drive towards standards-driven complexity” even with much simpler systems like email. Reading and implementing RFC5321 (SMTP) RFC5322 (message format) is not enough to implement a functional email client today: you need 10+ other specifications too if you want it to really be useful, even for plain text email, and 25+ specifications if you want it to be fully-featured. And even then you won’t be done yet because there are a number of unstandardised common behaviours too. It’s not as complex as the web as the scope is much smaller, but it’s the same issue really. This was also a big problem with XMPP.

                                                        1. 2

                                                          Thanks for your thoughtful and long reply!

                                                          I can’t ship a “HTML 4/ES 3” system and expect it to really be useful.

                                                          I dunno, people have been bending over backwards to keep stuff compatible with old versions of Internet Explorer for so long that I think it has proved that even buggy implementations of these standards are “useful”. Maybe not if you want to build videoconferencing or such, but for the majority of web apps, it was (and probably still is) enough.

                                                          I wouldn’t say this standards-driven model is “flawed” per se, but it does come with some serious drawbacks.

                                                          The biggest drawback being that who decide what goes in the standard tend to be big stakeholders interested in the status quo.

                                                          You see this “drive towards standards-driven complexity” even with much simpler systems like email.

                                                          It makes sense of course. Popular system A adds a new feature which pulls people away from popular system B, so they decide to add that feature too to retain its users. Then they add another feature which system A then needs to add and so on and so forth. Incremental evolution of standards like this without an overarching vision is exactly what leads to complexity because more often than not, the features interact in weird ways or are not completely complementary so the need for another feature arises to paper over the seams.

                                                          Unfortunately, I don’t really have a solution. I like the careful way the Scheme standard has evolved (even though it’s design by committee, it’s a committee of passionate people who come together with mostly the same vision), but its pace is so glacial it’s like watching paint dry, so it’s probably not an option for developing standards in this fast-paced business ;)

                                                          1. 1

                                                            I dunno, people have been bending over backwards to keep stuff compatible with old versions of Internet Explorer for so long that I think it has proved that even buggy implementations of these standards are “useful”. Maybe not if you want to build videoconferencing or such, but for the majority of web apps, it was (and probably still is) enough.

                                                            You wouldn’t be able to easily express Lobster’s JS in ES3; it uses XMLHttpRequest for example, which is its own specification and not something you can write yourself with just JS. There are a few other things as well, such as localStorage which are pretty useful and their own standard and not something you can implement yourself in just JS.

                                                            Then there’s the whole layout issue; floated divs to align things suck, as do tables, but those are the only options you have with HTML 4/CSS2. Flexboxes and Grid are pretty nice. And things like border-radius, box-shadow, opacity, etc. to replace all these hacks we previously did with images is pretty nice too.

                                                            There are also things that don’t really need a standard IMO; for example the “drag and drop” thing, as you can easily just write a JS library to do this (and many exist already), but a lot of things that were added solve real problems that were much harder or impossible to solve before.

                                                            I think a lot of problems are because of legacy and backwards compatibility; the whole HTML/CSS thing is so needlessly complex now that writing a “bug compatible” HTML renderer is quite the task, although writing a basic one is not that hard (I did it in a weekend last year).

                                                            1. 1

                                                              You wouldn’t be able to easily express Lobster’s JS in ES3; it uses XMLHttpRequest for example

                                                              Sure - but you could absolutely do it with ES5.

                                                              Did we need to add, say, fetch to the standard - given 99% of what it implements can be provided via a thin wrapper around XHR?

                                                        2. 1

                                                          Yep.

                                                        3. 2

                                                          Linux web

                                                          The Gemini protocol? Or do you mean like Display PostScript?

                                                          1. 1

                                                            Probably more like nix-shell for “web applicaitons” and then just the various internet protocols like ipfs, hypercore, https, etc.

                                                            1. 1

                                                              the language for web applications would be up to the author right? or are you envisioning some system where web application code is part of the standard?

                                                              1. 1

                                                                I mean the platform is linux and the application runs on the system and uses internet protocols. You’d use a package manager like nix or guix to install ephemeral apps and simulate the web experience.

                                                                Sorry the reply wasn’t highlighted or I’d have answered sooner.

                                                                1. 1

                                                                  so this wouldn’t really be the “web,” it would be more like the pre-web world where each use case had its own protocol and application. if the web apps are running locally, they could just as well be native programs.

                                                                  1. 1

                                                                    Exactly. Native programs are the web apps of the next generation because microkernels are coming. The whole stack is shifting down one later.

                                                    2. 2

                                                      Every intermediary quickly becomes a gatekeeper. In this sense browsers are no different from ISPs, health insurers, news outlets, priests, and all the rest. I don’t know what to do about that except yell “Stay in your lane!”