Firefox 在过去 12 年里损失了 5 亿用户及其 75% 份额的原因
Firefox

> 
> 一位有四十年编程经验的老程序员表达了他对 Firefox 浏览器为何逐渐衰退的看法。
> 
> 
> 


![](/data/attachment/album/202109/13/124146xp91r9zxbizqt9t1.png)


最近有很多关于 Firefox 浏览器衰落的讨论，还有很多讨论 [它在过去两年里失去了 5000 万用户](https://news.itsfoss.com/firefox-decline/) 的文章。


但是 **实际上它的衰落已经有 12 年之久了，总共损失了 5 亿用户和它曾经拥有的市场份额的 75%**。


这一切都开始于 2009 年第三季度，其致命的决定是强迫……


### 顶部标签


自从 [做了这个决定](https://www.wired.com/2009/07/mozilla-considers-copying-chrome-for-firefox-4dot0/)，Firefox 就开始丢失市场份额。PC 上的所有程序都使用针对活动窗口的标签。如微软 Office 和 Adobe 这样的专有软件，如 GIMP、3D 设计、视频编辑器、十六进制编辑器这样的 FOSS 软件，你能想的的种种软件都是这样的，这是标准的、合乎逻辑的设计。


然后，谷歌决定将标签放在其 Chrome 浏览器的顶部，该浏览器是为移动设备而非台式机设计的。在智能手机上，这可能是有意义的，因为没有空间来容纳一个完整的桌面风格的菜单布局。但在桌面上，它是反直觉的，并且会破坏与所有其他程序的工作流程。台式机的代码与手机不同，所以没有合理的理由试图将移动用户界面强加给台式机用户，而台式机是 Firefox 的主要用户群。在一个 400 万行的代码库中，由两行代码所制定的单一设置“太难维护”的论点，只是在侮辱用户的智商。代码不是草坪，如果你几周不管它，它也不会改变。


当用户对这一变化的投诉蜂拥而至时，我从一位不愿透露姓名的主要开发者那里得到的回应是：“我们有数亿用户。5000 人的抱怨并不代表大多数的用户。”这些投诉有一个共同的观点：“如果我想让我的浏览器看起来像 Chrome，我就会使用 Chrome。”于是他们就这么做了。


### 不断删除“没人使用”的功能


对 Firefox 所做的每项改动都是一样的做法。默认功能被改变了，但有一个菜单设置可以恢复它。然后菜单设置被删除，你只能通过`about:config` 来改变它。再然后，`about:config` 选项也被删除了。用户群的每一次抗议都得到了同样的回应：“你只是极少数人，大多数人喜欢这种改变。”


75% 并不是少数人。几乎每个人都讨厌这些变化，每一次变化都会把更多的用户赶走，而 Mozilla 工作人员傲慢的、居高临下的回应让用户们有苦难言，让他们再也不想回来了。仔细观察，你可以看到每次删除一些功能，用户数量都有明显的下降，只有在第三方组件或 CSS 恢复了这些变化时才会稳定下来。一次又一次，年复一年。他们没有学到任何教训。


光是移除设置还不够。Firefox 继续阉割附加组件和主题，强迫集中签名，并最终废除了 XUL，而没有足够的 Web 扩展 API 来替代失去的功能。在抱怨这一变化时，我再次与一位主要开发者（同一个人）交谈。他的回答是（原话）“人们并不是因为附加组件而使用 Firefox 的。我们的遥测显示 80% 的用户从未安装过任何附加组件。”也就是说，任何懂技术的人都会立即关闭遥测，因为他们不想让浏览器监视他们，对此我们也曾无数次抱怨过。


即使是他们在用户界面设计方面的一项重大举措，即可拖放定制的 Australis 界面，也因为可怕的默认布局和缺乏不需要 CSS 的选项而疏远了更多用户。难看的斜角标签（抄袭自 Chrome）是 Mozilla 唯一承认糟糕的用户界面变化，而且令人惊讶的是，他们只是在 Chrome 取消了斜角标签 **之后** 才这样做。


时至今日，Mozilla 仍然声称要听取用户的意见，但 12 年后，他们仍然无视我们，难看的默认 Proton 用户界面是最新强加给不情愿的用户群的愚蠢选择。（如果你认为我属于少数的话，可以在谷歌上输入 “Firefox Proton” 来查看最常搜索的建议。）幸运的是，它仍然可以用 `userChrome.css` 来大致修复，但即使是我，也已经厌倦了必须反复修补新的代码来跟上不断的弃用和格式变化。


### 糟糕的编码范式


Mozilla 的源代码是一场噩梦。例如，默认配置文件的位置被定义了 3 次，使用了 3 种不同的语言的不同的变量，其中之一是由位于不同文件中的多个变量组合生成的。我看到的另外一个例子是在 6 个不同的文件中定义的另一个全局变量。


在编译后，下载历史、访问过的网页、书签等等，都被一起塞进了乱七八糟的文件中。最终的结果是什么？试着从你的历史记录中删除 400 个条目，看看它需要多长时间。而从一个单独的文本文件中删除这么多行，只需要一瞬间。想改变一个图标的外观或为自定义搜索添加一个新的图标？它们大多只是 PNG，但它们被混淆并被封入 `omni.ja` 文件。本来可以用你选择的编辑器在几秒钟内改变，但你需要安装和学习 Eclipse 之类的程序，并在每次更改时重新编译文件。这样的例子不胜枚举。


难怪 Mozilla 的码农在寻找和修复错误方面这么困难。这导致了更糟糕的编码范式，为了修复错误而记录一切。它部分导致了...


### 糟糕的内存管理


如果一个程序坐在那里什么都不做，它的内存使用量不应该改变。看看我的内存管理器，我有 40 个进程在遵守这个原则。尽管什么都不做，却不断地读写磁盘的唯一程序是什么？Firefox。它正在运行 13 个进程，所有这些进程都在不断地做这两件事。我写了 40 年的代码，造了 30 年的电脑，所以我确实了解一点计算机如何工作的事情。这就是基础层面上的糟糕设计，在表面上做再多的修补也无济于事。


代码范式是 Mozilla 性能问题的根源，他们不会解决这个问题。我敢打赌，这也是 FirefoxOS 失败的原因，它是一个伟大的想法，但由于执行不力和编码实践问题，导致太多的错误无法修复而失败。


### 在告诉我们“我们重视你的隐私”的同时，侵犯了你的隐私


就是遥测。当你点击“禁用遥测”时，隐藏的遥测并没有被禁用。首次运行也要发出遥测信号。强制签署附加组件。无法关闭的自动更新，每 10 分钟发出一次信号。需要单独选择退出的“实验”。现在最新的问题是，只是为了制作一个自定义的主题，就强制使用基于 2FA 的应用以登录到 Firefox 插件帐户，如果不是强制签署附加组件，根本就不需要。


Mozilla 对用户隐私的尊重和对我们意见的尊重一样少。


### 总结


事情不一定是这样的。虽然还没有，但是不能承认自己的错误，也不考虑不同的意见的人，注定要停滞不前，走向衰败。Mozilla 的决策者似乎就是这样想的，所以我对未来不抱什么希望。希望你们中的一些人至少能从他们的错误中学习，在他们失败的地方取得成功。通过为用户提供他们想要的东西，而不是告诉他们应该想要什么来取得成功。通过提供市场上缺少的东西，而不是盲目地试图复制你的竞争对手。


*本文所表达的观点和意见仅代表作者本人，不一定反映本站和 It's FOSS 的官方政策或立场。*



> 
> 作者信息：Dan 来自澳大利亚墨尔本，已经有大约 40 年的编码经验，做了 25 年的平面设计。他还从事基于 3D 打印机套件的开源机械设计。
> 
> 
> 




---


via: <https://news.itsfoss.com/firefox-continuous-decline/>


作者：[Dan](https://news.itsfoss.com/author/team/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


OK
![](/assets/images/pikapods-banner-v3.webp)


![](/assets/images/pikapods-banner-v3.webp)

There has been a lot of discussion lately about the decline of the Firefox browser and numerous articles about it [losing 50 Million users in the last two years](https://news.itsfoss.com/firefox-decline/).

But the ** real decline has been over 12 years with a total loss of half a Billion users** and 75% of the market share it once held.

It all started in 2009 Q3 with the fateful decision to force…

## Tabs-On-Top

As soon as [this decision was made](https://www.wired.com/2009/07/mozilla-considers-copying-chrome-for-firefox-4dot0/?ref=news.itsfoss.com), Firefox starting losing market share. Every other program on a PC uses tabs against the active window. Proprietary software like MS Office and Adobe, FOSS software like Notepad++ and GIMP, 3D design, video editors, hex editors, you name it: It is the standard, logical design.

Then Google decided to make the tabs on top standard for its Chrome browser, which was designed for mobile devices not desktops. On a smartphone it may make sense, as there isn’t room for a full desktop style menu layout. On a desktop it is counterintuitive and breaks workflow with all other programs. The code for desktops is different from phones so there was no rational reason to try and force a mobile UI onto desktop users who were Firefox’s primary userbase. The argument that it was “too hard to maintain” a single setting enacted by 2 lines of code in a 4 Million line codebase is just insulting to the intelligence of users. Code isn’t a lawn. It doesn’t change if you leave it alone for a few weeks.

When inundated with user complaints about the change, the response I received from a lead developer who shall remain nameless was “We have hundreds of millions of users. 5000 people complaining doesn’t represent the majority of users”. Those complaints had one common sentiment, “If I wanted my browser to look like Chrome I’d just use Chrome”. And so they did.

## Constant removal of features “that no-one uses”

Every change made to Firefox had the same pattern. The default feature was changed, but there was a menu setting to revert it. Then the menu setting was removed and you could only change it via about:config. Then the about:config option was removed. Every protest from the userbase met the same response “You’re just a tiny minority, most people like the change”.

75% is not a minority. Almost everyone hated the changes and each change pushed more users away, and the arrogant, condescending responses from Mozilla staff left a bitter taste in their mouth ensuring they would never return. Looking closely at the user numbers you could see a visible drop with every removal, only stabilising when a third party add-on or CSS would revert the change. Over and over, year after year. No lessons were learnt.

Removing settings wasn’t enough. Firefox went on to neuter add-ons and themes, forcing centralised signing and ultimately deprecating XUL without adequate webextension api’s to replace lost functionality. Complaining about this change I again spoke to one of the lead developers (same guy). His response was (exact quote) “People don’t use Firefox because of add-ons. Our telemetry shows 80% of users never install any add-ons” i.e. the telemetry that any tech savvy person immediately turns off because they don’t want their browser spying on them and about which we have also complained numerous times.

Even the one great move they made in UI design, the drag and drop customisable Australis interface, alienated more users because of the horrible default layout and lack of options that didn’t need CSS. The awful angled tabs (copied from chrome) is the only UI change Mozilla has admitted was terrible and they only did so, surprise surpise, AFTER chrome did away with them.

To this day, Mozilla still claims to want to hear from their users and after 12 years they still keep ignoring us, the awful default Proton UI being the latest foolish choice forced upon an unwilling userbase. (Type in “Firefox Proton” on Google to look at the most commonly searched suggestions if you think I’m in the minority). Fortunately it can still be mostly fixed with userChrome.css but even I’m getting sick of having to repeatedly patch together new code to keep up with constant deprecation and format changes.

## Bad coding paradigms

Mozilla’s source code is a nightmare. For example, default profile location is defined 3 times, using different variables, in 3 different languages, one of which is generated by combining multiple variables located in separate files. Another example I saw was another global variable being defined in 6 different files.

Post compiling, history for downloads, visited pages, bookmarks etc, are all shoved together into obfuscated files. The end result? Try deleting 400 entries from your history and watch how long it takes. Deleting that many lines from a separate text file would take a split second. Want to change the appearance of an icon or add a new one for a custom search? They’re mostly just PNGs, but they are obfuscated and sealed into the omni.ja file. Could otherwise be changed in seconds with your editor of choice, instead you need to install and learn a program like Eclipse and recompile the file with every change. The list goes on and on.

It is no wonder Mozilla’s coders have such trouble finding and fixing bugs. This led to an even worse coding paradigm, logging everything for the purpose of bugfixes. This is one of the culprits of…

## Poor memory management

If a program is sitting there doing nothing, its memory usage should not change. Looking at my memory manager I have 40 processes obeying this principle. What is the only program constantly reading and writing to disk despite doing nothing? Firefox. It is running 13 processes and all of them are constantly doing both. I’ve been coding for 40 years and building PC’s for 30 so I do know a thing or two about how computing works. This is just awful design at the base level and no amount of tinkering on the surface will fix that.

The code paradigm is the root of Mozilla’s performance issues and they won’t address it. I’ll wager that’s also the reason for the failure of FirefoxOS, which was a great idea but failed because of poor execution and coding practices resulting in too many bugs to fix.

## Invading your privacy at the same time as telling us “we value your privacy”

Telemetry. Hidden telemetry that isn’t disabled when you click “disable telemetry”. Firstrun pings. Forced signing of add-ons. Auto-updates you can’t switch off, pinging every 10 minutes. “Experiments” which require a separate opt out. Now the latest offence is enforcing app based 2FA to login to a Firefox Add-on account just to make a custom theme, which you wouldn’t need in the first place if not for forced add-on signing.

Mozilla has as little respect for their users privacy as they do for our opinions.

## Final thoughts

It didn’t have to be this way. It still doesn’t, but the mind that is incapable of admitting when it is wrong, or of considering differing opinions is doomed to stagnation and decay. The decision makers of Mozilla appear to have such minds so I do not hold out much hope for the future. Hopefully some of you out there can at least learn from their mistakes and succeed where they are failing. You succeed by giving users what they want, not telling them what they should want. By providing what is missing in the market, not blindly trying to copy your competitors.

*The views and opinions expressed are those of the authors and do not necessarily reflect the official policy or position of It’s FOSS.*

Author info: From Melbourne Australia, Dan has been coding for about 40 years and doing graphic design for 25 years. He also works on open source mechanical designs based on 3D printer kits.

## More from It's FOSS...

- Support us by opting for
[It's FOSS Plus](https://itsfoss.com/#/portal/signup)membership. - Join our
[community forum](https://itsfoss.community/). - 📩 Stay updated with the latest on Linux and Open Source. Get our
[weekly Newsletter](https://itsfoss.com/newsletter/).