Firefox 18周岁

Mozilla Firefox 起源于开源运动兴起之初建立的一个项目组织——Mozilla 社区,可以说是最早以“开源”名义出现,并取得成功的项目之一。Firefox 首次发行是在2002年的9月23日,当时的代号为“Phoenix”(凤凰)。

18年过去,Firefox 在许多开发者心中,还是自由浏览器的象征,但它在市场上依旧面临其他商品级浏览器——Chrome 的巨大威胁。

(Mozilla 之书,Mozilla 系列网页浏览器彩蛋,在 Firefox 地址栏输入“ about:mozilla”)

Firefox 最初的胜利

“Mozilla”曾是网景公司浏览器 Navigator“导航者”的开发代号。Eric S Raymond 首次发布《大教堂与集市》一文后,网景公司受到启发,1998年1月22日宣布了“网景通信家”源代码计划,之后这个计划项目沿用了“Mozilla”的名字,并成立了新的社区和专门网站 Mozilla.org。

Eric 还评价网景公司最初的尝试可以直接验证开源理论的正确与否。2000年年中,当时的 Navigator 也就是后来的 Mozilla 勉强成功,阻止了微软的垄断,还发布了下一代浏览器内核 Cecko,但是却没有像 Mozilla 创立者所希望的那样,聚拢大规模来自网景外部的开发力量。并且当时外界认为,Mozilla 组织在项目开始的两年半内都没能发布一款商品级的浏览器。

2002年,Dave Hyatt,Joe Hewitt 和 Blake Ross 从 Mozilla 浏览器中分支出一个实验项目,构建新的浏览器 Phoenix。他们认为网景公司的赞助和开发人员驱动的商业需求削弱了 Mozilla 浏览器的实用性, 为了抵制 Mozilla Suite 的软件膨胀,于是创立了一个独立的浏览器,以取代 Mozilla Suite。

不过,Phoneix 的名字引起了商标争议,2003年4月14日改名为“Firebird”,大约两周之后,当时的 Mozilla 基金会表示应该称其为“Mozilla Firefox”,以预防和数据库服务器“Firebird”混淆。迫于来自社区的压力,2004年2月9日,“Mozilla Firebird”改名为“Mozilla Firefox”,并沿用至今。

Firebird 在诞生的最初几年里,发展迅猛。2003年4月3日,Mozilla 组织宣布计划将重点从 Mozilla 套件改为 Firefox 和 Thunderbird。Firefox 在组织内部受到极大的重视。与此同时,Firefox 在市场上也正挑战 IE 浏览器。

2002年,IE 浏览器的市占率一度达到 96%。但是从2001年开始,失去竞争对手的 IE 持续5年没有更新。而此时 Firefox 常被开发者和用户夸赞的点是:小巧、高效、简洁,安全,容易扩展和定制等等,更重要的是,它还是一个开源的自由浏览器。

Firefox 基于 Mozilla 应用组件,包含需要 IE 原本没有的功能。如 Gecko 排版引擎、XUL 用户接口工具、Necko 网络程式库和其他一些元件,大大提高了浏览器的扩展性。

有记载称,当时网页上到处都是传播 Firefox 的社区和 Logo。在2004年11月9日第一个正式版本1.0发布之时,Mozilla 基金会刊登在纽约时报上的整版广告,其中长长的资助者名单都让版面设计师几乎崩溃。2009年底,Firefox 的使用率达到了32.21% 的峰值,版本3.5超过了 Internet Explorer 7。

Chrome 占领市场

接下来,Firefox 的主要对手就是 Chrome 了。

根据 StatCounter 的数据,截至2020年9月,Firefox 作为桌面浏览器的使用份额为8.34%,使其成为仅次于 Google Chrome 的第二受欢迎的浏览器,Google Chrome 占69.87%。

纽约时报2018年曾有一篇关于浏览器的报道,其中有一句话可以概括 Firefox 和 Chrome 的竞争:Firefox 是一种更快,设计更好的上网工具。但在 Google 2008 年发布了 Chrome(一种更快,更安全和多功能的浏览器)之后,Firefox 就变得无关紧要了。

Chrome 是谷歌使用了苹果 WebKit 渲染引擎和 Mozilla Firefox 的组件构建的浏览器,绝大部分代码来源于 Chromium 项目。在谷歌的支持下,Chrome 全家桶中包含了许多额外的工具和服务。

有评价认为,Firefox 基于 Mozilla 套件虽然达到了高度可扩展,但是繁杂的组件也让 Firefox 远离了高效,而 Chrome 会将网页内容最大程度地快速呈现给用户,让用户注重网页浏览而非浏览器本身。同时,借着移动互联网的兴起,Google 在 Android 推行 WebView 渲染在线内容,Android 4.4之后的 WebView 和 Chrome 同样是基于 Google 开源的 Chromium,这帮助 Google 更顺利地占据移动端市场。

去年一位曾在 Firefox 团队工作了八年的工程师 Johnathan Nightingale 上提出了另外的原因。谷歌开发 Chrome 之前,Mozilla 一直是谷歌最大的合作伙伴。但 Chrome 推出之后,事情变得复杂。Google Chrome 广告开始显示在 Firefox 搜索字词旁边,Gmail、Gdocs 开始在 Firefox 上出现选择性性能问题和错误,演示站点会错误地提示“不兼容”,阻止 Firefox。同时,谷歌的工程师在拖延这些 bug 的修复,而 Firefox 在这些“错误”中,不断流失用户……

 

不过,这种说法是个人提出,并未得到官方证实以及切实的证明。总之,可以看到是,Chrome 发布之后,迅速吸引了用户和市场的关注,在那之后的几年,Firefox 更新迟滞,媒体对其的报道和记录也少了许多。

Firefox 卷土重来?

一直到2018年,纽约时报的一篇文章提到,Mozilla 按下重置键,Firefox 又回来了。

实际上,Mozilla 是在2017年年底发布了一个新版本,代号为 Quantum。Mozilla 表示,经过改进的 Firefox 消耗的内存比竞争对手少,这意味着用户可以启动许多选项卡,并且浏览仍会感觉很顺畅。新的 Firefox 还提供了隐私工具,例如用于阻止广告跟踪器的内置功能和可以安装的“容器”,防止 Facebook 监视用户在网络上的活动。而其他大多数浏览器都不包含这些功能。

Mozilla 官网上还挂着帖子对比 Firefox 与 Chrome,最后总结:

我们认为 Firefox 和 Chrome 在跨平台和实用方面可谓“并驾齐驱”,Chrome 在实用方面有优势,因为它拥有庞大的扩展库和附加功能。但在隐私方面,Firefox 更胜一筹,我们承诺保护用户的在线数据,并提供免费的内置服务——如密码管理器,若出现与您有关的数据泄露,即会向您发出警报。

 

随着越来越多的黑手侵入我们的个人数据,长远来看,Firefox 可能是我们中那些重视在网络中保护个人隐私的用户的正确选择。

根据其总结出的对比图,在实用性和跨平台性方面,Firefox 都有 Chrome 不支持的功能。此外在安全性与隐私权方面比 Chrome 多出更多功能,如默认拦截第三方跟踪性 Cookie,拦截加密货币挖矿脚本、拦截社交追踪器。安全和隐私也是许多开发者喜欢 Firefox 的重要原因。

同时,Firefox 使用 GPL 协议开源,严格要求所有使用了 GPL 类库的软件产品都必须开源,保障了软件的自由。

Chrome 虽大部分源码来自开源的 Chromium 项目,但也包含了 Google 加入的非开源组件,本身并非完全开源,并且 Chromium 使用 BSD 协议,它允许修改后的代码作为开源或者是专有软件再发布。这也是 Chrome 常被诟病不自由的原因。

但另一方面,因为基于 BSD 协议下的 Chromium 项目,Chrome 推出之后,出现很多包壳 Chromium 系浏览器,如 Edge、Vlvaldi、Opera、Yandex,这就形成了一个围绕 Chrome 的开强大开发生态圈。经常出现的一个画面就是,有人遇到 Firefox 以及 Safari 的 bug,但是因为 Chrome 已经基本达到垄断,许多开发者熟悉 Chrome 内核,而 Firefox、Safari 就会碰到一些独有的问题,这时许多人给出的建议就是:“转 Chrome 吧。”

Firefox 的一些用户体验问题也依然存在,比如现在中文版搜索栏的图标清晰度都还不高。

上半年有统计数据显示,3月微软 Edge 浏览器在桌面市场中的占有率超过 Firefox,前者份额7.59%,后者7.19%。刚满18岁的 Firefox 正在扎堆的 Chrome 系浏览器中上演“绝地求生”,不知下一次的高光时刻还会不会到来?

推荐阅读


PostgreSQL 13发布

Flutter开始支持Windows

Windows XP源码泄露

Swift开始支持Windows

开源先驱ESR:微软将放弃Windows内核

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/307453.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三种方式让你轻松监控 EntityFramework 中的 sql 流转

大家在学习entityframework的时候,都知道那linq写的叫一个爽,再也不用区分不同RDMS的sql版本差异了,但是呢,高效率带来了差灵活性,我们无法控制sql的生成策略,所以必须不要让自己缺乏好的工具去监控sql&…

java并发之CountdownLatch

一:CountdownLatch 1:基本含义 CountDownLatch中count down是倒数的意思,latch则是门闩的含义。整体含义可以理解为倒数的门栓,似乎有一点“三二一,芝麻开门”的感觉。CountDownLatch的作用也是如此,在构造CountDownLatch的时候…

leetcode142. 环形链表 II(详解)

一:题目 二:思路分析 三:上码 class Solution { public:ListNode *detectCycle(ListNode *head) {ListNode* slow head;ListNode* fast head;while (fast ! NULL && fast->next ! NULL && fast->next->next ! NULL) {//这里选用快指针fast fast-&g…

国产化之路-统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作

引言经过前期的准备工作,.net core 3.1的运行环境和WEB服务器已经搭建完毕,这里需要注意一下,达梦DM8数据库对于Entity Framework Core 3.1 的驱动在NuGet官方源上并没有正式发布,需要从Win64安装版本中的drivers/dotNet提取&…

网络知识 | 《图解TCP/IP》读书笔记(下)

【网络知识】| 作者 / Edison Zhou这是EdisonTalk的第291篇原创内容作为一个专业的IT技术人,一个Web应用开发者,不了解网络基础和协议,怎么能行?本文是我2016年阅读《图解TCP/IP》一书的读书笔记下半部分。上半部分:点…

leetcode202. 快乐数(详解)

一:题目 二:上码 class Solution { public:/**思路&#xff1a;1.破解这道题的关键是 我们得破解这个无限循环2.根据这个题目给出的定义2 我们可以知道 无限循环的条件是我们 在计算的过程中出现了自己的数*/bool isHappy(int n) {unordered_set<int>s;s.insert(n);…

自由软件基金会庆祝成立35周年

美国东部时间 10 月 4 日&#xff0c;自由软件基金会&#xff08;Free Software Foundation&#xff0c;FSF&#xff09;在官网发文庆祝”其为争取软件自由而奋斗的第 35 年“。1985 年 10 月&#xff0c;自由软件运动的主要发起人 RMS&#xff08;Richard Matthew Stallman&am…

使用 C# sdk 连接 高可用的 rabbitmq 镜像集群

我们知道rabbitmq是一个专业的MQ产品&#xff0c;而且它也是一个严格遵守AMQP协议的玩意&#xff0c;但是要想高端大气上档次&#xff0c;一定需要拿出高可用的东西出来&#xff0c;这不本篇就跟大家说一下cluster的概念&#xff0c;rabbitmq是erlang写的一个成品&#xff0c;所…

java并发之CyclicBarrier(通俗易懂)

文章目录一:简介(1):官方解释(2):通俗解释a:CountDownLatch()b:CyclicBarrier()二:小demo一:简介 (1):官方解释 说到简介那就非得拿他和countdownlatch()进行比较讨论了CountDownLatch是一个同步的辅助类&#xff0c;允许一个或多个线程&#xff0c;等待其他一组线程完成操作…

BeetleX之简单HTTP/HTTPS实现

在通讯应用中很多时候需要和已有标准的应用协议进行通讯&#xff0c;针对这情况就要针对相应协议的实现&#xff1b;标准协议上考虑的情况比较多&#xff0c;所以协议的复杂度也相对高些&#xff0c;对比之前的Protobuf通讯的简单协议来说则会复杂。接下来用组件去实现一个简单…

体验.NET5 RC1极致性能,你也要“卧槽”!

“ 9月14日&#xff0c;.NET5发布了(Release Candidate)RC1版本&#xff0c;是11月正式版本之前两个RC版本中第一个&#xff0c;包含语言新版本C#9和F#5&#xff0c;需要用Visual Studio 2019 (v16.8, Preview 3)才能使用&#xff0c;注意不是Visual Studio 2019&#xff0c;二…

leetcod383. 赎金信

一:题目 二:上码 class Solution { public:bool canConstruct(string ransomNote, string magazine) {unordered_map<char,int>m;for (auto ch:ransomNote) {m[ch];}for (auto ch: magazine) {if(m.find(ch) ! m.end() && m[ch] > 0) m[ch]--;//当magazine中的…

马斯克推崇的第一性原理,究竟有多重要?

职场&认知洞察 丨 作者 / findyi这是findyi公众号的第79篇原创文章最近&#xff0c;第一性原理这个原本离大众很远的物理概念&#xff0c;被媒体炒的火热。第一性原理最开始是由亚里士多德提出来的。他认为任何一个系统都有一个「第一性原理」。他说&#xff1a;“在每个系…

Gartner 组织世界BI大会,PowerBI 与 Tableau 同台竞技

日前&#xff0c;Gartner 组织了全球顶级 BI 产品大会&#xff0c;由于疫情影响&#xff0c;只能远程举办。官方网址如下&#xff1a;https://blogs.gartner.com/rita-sallam/2020/09/11/bi-bake-off-goes-virtual/该会议的原文为&#xff1a;BI Bake-Off&#xff0c;含义为&am…

leetcode15. 三数之和(详解)

一:题目 二:上码 class Solution { public:/**思路:1.这个题出其不意之处在于,其先对这个序列进行了排序排序的好处是1>:如果首元素是大于0的,那么如果无论无何也凑不出02>:同时我们也把相同的元素凑成一块了 可以方便去重了2.接下来,我们就是利用双指针 来处理 数据是否…

BeetleX之TCP消息通讯Protobuf/TLS

在网络通讯应用中直接操作数据流是比较繁琐的事情&#xff0c;毕竟在业务层面处理的都是对象化消息&#xff1b;为了让网络数据操作变得更友好直观&#xff0c;一般都会引用序列化组件来处理网络流和对象之前的转换工作&#xff1b;在这里介绍组件如何使能Protobuf进行数据交互…

leetcode18. 四数之和

一:题目 二:上码 class Solution { public:/**思路:1.这个跟三数之和差别在于本题加了一层循环,就是我们将第二层循环加在了我们遍历的第一个元素的后面2.其他跟三数之和解题思路一样*/vector<vector<int>> fourSum(vector<int>& nums, int target) {vec…

面试 .NET 开发​,为什么也要考算法?​

最近有不少人面试&#xff0c;我发现很多候选人&#xff0c;聊起架构、框架侃侃而谈&#xff0c;但一写代码&#xff0c;就暴露真实水平。说白了&#xff0c;还是基本功不够扎实。在我看来&#xff0c;所有基本功中&#xff0c;最核心的一定是数据结构与算法。也因此&#xff0…

leetcode344. 反转字符串

一:题目 二:上码 class Solution { public:/**思路:利用双指针来进行处理*/void reverseString(vector<char>& s) {for (int i 0,j s.size()-1; i < j; i,j--) {swap(s[i],s[j]);}} };

跟我一起学.NetCore之WebApi接口裸奔有风险(Jwt)

前言撸码需谨慎&#xff0c;裸奔有风险。经常在一些技术交流群中了解到&#xff0c;还有很多小伙伴的项目中Api接口没有做任何安全机制验证&#xff0c;直接就裸奔了&#xff0c;对于一些临时项目或是个人小项目还好&#xff0c;其余的话&#xff0c;建议小伙伴们酌情考虑都加上…