Firefox 曾经风光无两,是最为成功的开源软件之一。它让 Internet Explorer 的主导地位首次受到挑战,而 Google Chrome 那会还只是“others”。
Firefox 正在不断流失用户,这是一个不争的事实。
来自 Firefox 的公开数据显示,自 2018 年底到 2021 年 8 月 30 日,桌面端 Firefox 的 MAU(月活跃用户数)下降约 18% 至 1.998 亿,大概少了 4400 万月活用户。进一步看会发现,其中有一半月活用户是今年内损失的(3 月至今减少近 2000 万)。
根据 Statcounter 在 8 月发布的统计,在桌面浏览器市场中,Microsoft Edge 和 Mozilla Firefox 目前正在激烈争夺第三的名次,其中 Edge 录得 3.57% 的市场份额,Firefox 则是 3.55%。自从 Edge 浏览器转向 Chromium 内核之后,其份额就持续上升。
事实上,近几年关于 Firefox 衰落趋势的讨论络绎不绝。Firefox 曾一度是全球第二大浏览器,市占率高达 35%,而现实的情况是,它的市场占有率已经连续多年下降。
一位有近 40 年编程经验的开发者 Dan 近日就 Firefox 的衰落趋势发表了自己的看法,从几个方面阐述 Firefox 的不足之处。
在社区讨论中,一个获得不少赞同的观点是,因为不想让 Google 完全控制浏览器市场所以才用的 Firefox。但也有人表示,当 Firefox 越像 Chrome,自己就越没有理由继续使用它了。
Dan 认为,造成 Firefox 衰落的原因,始于 2009 年第三季度的一个致命决定……
1 以选项卡为中心
在做出强制推行选项卡中心设计的决定之后,Firefox 的市场份额就开始萎缩。当时,PC 上的所有其他程序都在使用针对活动窗口的选项卡,包括微软 Office 及 Adobe 等专有软件,Notepad++ 及 GIMP 等自由开源软件,外加 3D 设计、视频编辑器、十六进制编辑器等等。总之,这一切都是当时最标准、最合乎逻辑的设计思路。
之后谷歌决定把选项卡设定为 Chrome 浏览器中的核心标准,但这款浏览器其实主要是为移动设备、而非台式机所设计。这套方案在智能手机上确有意义,毕竟这里没有完整的桌面式菜单布局空间。但在台式机上,整个体系就显得很反直觉,而且破坏了其他程序的操作流程。
台式机代码与手机不同,因此 Firefox 其实没理由要把这种强调移动端的 UI 强行推广给台式机用户。面对高达 400 万行的代码库,Firefox 当时针对其中两行代码给出的“原方案太难维护”的理由纯粹是在侮辱用户的智商——代码又不是草坪,几个礼拜不管也不会变黄。
面对用户如海浪被涌来的投诉,一位不愿透露姓名的主要开发者给出的回应是,“我们有几亿用户,5000 人的不满并不能代表大多数使用者。”但他们没有意识到,人们在抱怨中流露出了这样的意见——如果我想让自己的浏览器看起来像 Chrome,那我就直接用 Chrome 了。没错,他们也确实这么做了。
2 不断删除“没人使用”的功能
Firefox 做出的每项变更都遵循着相同的模式——修改掉默认功能,但却没有任何菜单设置供用户执行恢复。 接下来,把菜单设置删除掉,用户只能通过 about:config 执行变量。之后是删除 about:config 选项。用户群体的每一次抗议得到的都是相同的回应:“你只是极少数,大多数人喜欢这种变化。”
而且每轮调整都会赶走更多用户,没人愿意再度遭受 Mozilla 工作人员傲慢、居高临下的态度给自己留下的“心理创伤”——所以,他们永远也不会回来。认真关注用户数量,大家可以发现每次删除之后 Firefox 的份额都有明显下降,只有在第三方加载项或 CSS 恢复变更方案出现后才会稳定下来。年复一年、周而复始,Mozilla 显然没有吸取任何教训。
好像是觉得删除设置还不过瘾,Firefox 又继续对插件和主题进行中立化处理,强制集中签名并最终弃用了 XUL,而且根本不给能够补充这些丢失功能的 webextension api。
面对这些变化,我再次与之前那位主要开发者交谈,他的回答是“大家不用 Firefox,就是因为这里的插件太多了。我们的遥测结果显示,80% 的用户从未安装过任何插件。”但问题在于,任何懂点技术的人都会优行关闭遥测功能,他们不希望浏览器监视自己的行踪,所以这种调查结果明显就不靠谱。
即使是在 UI 设计中做出的一项重大举措——拖放式可定制 Australis 界面,也因为糟糕的默认布局和 CSS 选项太少而没能得到用户们的肯定。可怕的倾斜选项卡(直接抄袭自 Chrome)也是 Mozilla 唯一亲口承认没能做好的 UI 变动。更让人意外的是,就连 Chrome 自己后来都取消了这项功能,Firefox 却一路坚持到底。
直到今天,Mozilla 仍声称自己非常重视用户的意见。但 12 年过去,他们的态度冷漠依旧,糟糕的「默认 Proton UI」则是强迫用户的最新手段。(如果大家觉得我的判断有失偏颇,请在 Google 上输入「Firefox Proton」看看其他用户是怎么评价的。)虽然这方面问题可以通过 userCHrome.css 得到很大程度修复,但我已经厌倦了这种一有更新就得修复一番的感受。
3 糟糕的编码范式
Mozilla 的源代码也是噩梦一场。例如,默认配置文件位置被定义了 3 次,使用的是 3 种不同语言的不同变量,其中之一还是由不同文件当中多个变量组合而成的。其中有一个全局变量,要通过 6 个不同的文件共同定义。
编译后、下载历史、访问过的页面、书签等等,都被一股脑塞进了混淆文件当中。最终结果是,我们只能从历史记录中一个个删除这些条目。要是能把它们放在同一个独立的文本文件中,不是几秒钟就能清理完吗?为什么非要这么搞?想要更改图标外观,或者为自定义搜索添加新图标?这些 PNG 图像也被混淆并保存在 omni.ja 文件当中。
我觉得但凡脑回路正常的开发者,都会支持用指定的编辑器在几秒内完成变更。但 Mozilla 偏偏要求用户安装并学习 Eclipse 之类的大型编辑工具,并在每次变更时重新编译文件。问题实在太多了,这里不再赘述。
难怪 Mozilla 的编码人员在查找和修复 bug 方面表现得如此步履维艰,他们自己造就了更糟糕的编码范式、迫使他们为了修复 bug 而记录下所有内容。恶性循环就此展开。
4 内存管理不善
如果某个程序待在那里什么都不做,它的内存使用量应该不会改变。看看我的内存管理器,里面有 40 个进程都遵循着这样的原则。但有个程序在什么都不做时仍在不断读写磁盘,猜猜它是谁?
没错,就是 Firefox。
它运行着 13 个进程,而且每个进程都在不断活动。我有 40 年的编程经验,其中 30 年面向 PC 平台,所以我多少还算懂计算机工作原理。这类问题只能归结于糟糕的底层设计,任何流于表面的修复都治愈不了这么深的病根。
代码范式也成为 Firefox 性能糟糕的根源,他们也压根不打算解决。我敢打赌,性能也是 FirefoxOS 遭遇失败的一大原因。FirefoxOS 的想法很好,但差劲的执行与编码实践带来了太多 bug,导致成品根本无法使用。
5 一边说“我们重视您的隐私”,一边大肆侵犯用户隐私
遥测。即使点击“禁用遥测”也无法禁用隐藏遥测。此功能会先运行 ping、再强制进行插件签名,还有无法关闭的自动更新会每 10 分钟再 ping 一次。我们甚至得单独做出明确选择才能退出“实验”项目。
现在 Firefox 最新的“花样”是要求用户必须使用双因素验证登录至 Firefox 插件账户,才能制作自定义主题。但如果不是强制推广插件签名,本来不需要这么麻烦的。
总之,Mozilla 对用户隐私丝毫没有尊重,正如对我们的反馈意见丝毫没有被尊重一样。
6 写在最后
不愿承认错误、不愿听取不同意见的组织或个人必然会停滞不前、慢慢腐朽。Mozilla 的决策者们似乎就是这样,所以我对 Firefox 的未来也不抱太大希望。希望 Mozilla 中能有人从过去的错误中吸取教训,克服顽疾、走向复兴。毕竟一款产品的成功来自为用户提供他们想要的、而不是告诉他们应该要什么,盲目复制竞争对手只会让自己迷失方向。
还没有人赞赏,快来当第一个赞赏的人吧!
声明:本文转载自InfoQ,本文观点不代表龙笑天下立场,版权归原作者所有,欢迎分享本文,转载请保留出处!