点击上方“腾讯科技”,选择“置顶公众号”
关键时刻,第一时间送达!
文 / Ben Francis
译 / 大智若愚
编辑 / 小智
微信公众号 / InfoQ
在Android、iOS雄霸的时代,也有一批全新面貌的操作系统在两大巨头的夹缝中求生存。但即便是有微软庇荫的WP也行将死亡。这批市场份额「其他」的操作系统中就有Firefox OS,虽然是个失败的操作系统,但它曾想改变点什么,这已经是我们必须报道它的理由。
2016年2月5日,Mozilla在给开发者的电子邮件中宣布,在2.6版本之后,将正式停止开发Firefox OS手机版操作系统,这一举措,也就意味着Firefox OS的失败。本文作者Ben Francis是Firefox OS操作系统的开发者之一,他从自身经历出发讲述了Firefox OS的前世今生。
Firefox OS是个失败的操作系统,知道的人并不多,但它曾经想改变点什么,我们应该报道下这个内容,让它在国内的社区中,留点痕迹。本文最初发布于Ben Francis的博客,经原作者授权由InfoQ中文站翻译并分享:
写在前面
我叫Ben,是一位Mozilla人,一名软件工程师,过去五年来一直全职从事着“Boot to Gecko”(以下简称B2G)项目,今天我想给你们讲个故事。
从Boot to Gecko开源软件项目在2011年通过邮件列表中发布的一封邮件,以一个空的GitHub代码库闪亮登场,到后来以Firefox OS移动操作系统的形式商用发布,再到2016年将数百万行代码“转移”给社区,这个故事的跨度很大。五年时间,Mozilla社区的数百位成员因为一个共同目标走到一起,希望借助开放网络的力量颠覆应用生态。我希望借助本文对我们基于开源浏览器打造移动操作系统过程中所收获的成功、失败,以及学到的经验教训进行反思。
B2G的搭建
从一个空白的GitHub代码库开始,共同创始人们组建了一个小规模的初始团队,开始着手“Gonk”(一种基于Linux内核和Android硬件抽象层的“底层基板”)、“Gecko”(一种在Firefox的Web引擎基础上建立的应用运行时和设备API)以及“Gaia”(一种使用HTML、CSS,以及JavaScript等Web技术构建的智能手机用户界面)的相关工作。
B2G架构
一些代码重用了Android开源项目的代码,但这个架构的独特之处在于彻底去除了Android中的整个Java层,取而代之的是通过Gecko渲染Web内容,借此实现近乎裸机运行的性能表现。这种设计使得B2G在性能方面具备了非常先进的优势,可以让Web内容获得类似原生代码的运行表现。
2011年12月,Mozilla在台北101大楼的办公室筹备过程中,首次在不使用浏览器插件的情况下,通过网页拨打了有史以来的第一通电话通话。手机最基本的必要功能已经逐渐具备了。
Firefox OS 1.0
设计
在第一次迭代过程中,提供给UX团队的想法极为有限,基本上不可能产生让人惊艳的成果。当时依然沿用了类似于Android和iOS的应用图标网格设计方式,但尽可能进行了简化。首先我们需要证明使用现有的Web技术是可以构建出这种类型的UI的。
UX团队的这个设计非常流畅,但现在回想起来,一开始就模仿现有产品,并假设随后如果必要可以调转方向,这是一个极大的错误。
实现
在工程这一块,我们证明了使用开放的Web技术是可以打造智能手机的,并且整个用户界面都可以用HTML、CSS和JavaScript来创建。
为了通过JavaScript与智能手机的底层硬件通信,我们需要在新API方面进行大量投入,并要研究一种可行的特权模型。Web技术的现有安全模型可以通过沙箱限制让浏览器安全地执行不可信代码,为了让Web内容能够访问更多高特权功能,例如接打电话以及发送短信,还需要具备一套新的安全系统。
为了能按时发布1.0版B2G,我们认为能同时满足脱机使用和安全需求的最简单方法是为Gecko引入打包应用的概念。打包的资源可以“安装”到设备上,进而可以脱机运行,并通过密码学签名验证代码是否可信。
2012年7月在西班牙电信位于巴塞罗那的办公室举办的工作周活动中,我们决定先选择打包应用作为一种临时解决方案,直到能有其他更好的办法。我认为这个决策是另一个重大失误,因为随着技术债越欠越多,我们已经逐渐走上了一条不归路。
2013年世界移动通信大会
2013年2月,我们在巴塞罗那世界移动通信大会上公布了首个商业化设备,首发设备包括ZTE Open和Alcatel One Touch。同时LG和华为也承诺会发布相关设备。
ZTE Open和Alcatel One Touch智能手机
当时消息是在MWC召开前一天通过媒体大会公布的。我们本来估计会有大约250名与会者,结果当天来了超过700家媒体、传媒、分析师嘉宾。我们还设法达成了一项史无前例的壮举,18个电信公司的CEO共同登台表达对该项目的支持,这样的盛况就算放在GSMA(全球移动通信系统协会)也足够让人吃惊了。
CEO出席媒体大会,MWC 2013
我认为完全可以说Firefox OS是那年活动上最耀眼的新星。大会杂志上每一天我们都上头版,我们在Google News上共产生80,000个媒体搜索结果,Firefox OS甚至与奥斯卡一起登上了Twitter趋势榜!这几乎是所有公关人员梦寐以求的结果。
Firefox OS 1.x
Firefox OS已经做好了上市的准备。但在举行1.0版发布会之前,我们就已经回到办公室开始继续对它进行完善。
最初我们主要专注于增加智能手机的基本功能,例如1.0版中缺乏的彩信功能,随后我们将工作重心放在为应用开发者提供更完善的开发工具,以及满足合作伙伴们千奇百怪的需求方面。
随着我们在2013和2014年陆续发布1.1、1.2、1.3以及1.4版Firefox OS,事实证明我们只是在不断追逐Android的尾灯,而Android比我们有着五年的先发优势,我们根本赶不上。如果希望Firefox OS能赢得市场并获得更大市场占有率,必需另辟蹊径。
“蹊径”到底在哪
几乎所有人都赞同,我们无法按照Android和iOS的路子战胜这两个操作系统。功能方面,我们赢不了Google;设计方面,当然也赢不了Apple。Mozilla曾经以小博大战胜过其他巨头,但如果按照他们制定的规则来玩,我们是赢不了的,我们必需制定自己的规则。
Firefox OS的蹊径到底在哪,我觉得主要有两个思路。
以Web为平台
思路一:我们不应在功能方面努力追赶竞争对手,而是可以考虑在用户界面方面发力。我们可以打造一种更简单的UI,借助这种UI强化Web本身的优势。
但这就会面临一个挑战:媒体经常会通过应用商店内的应用数量对Firefox OS和竞争对手进行比较。Firefox OS从一开始就没考虑过使用一个统一的应用商店,而是要以整个Web作为自己的平台。然而我们在早期作出的一些有关应用打包的技术决策把我们逼到了角落,使得我们只能继续依赖开发者提交到由Mozilla运营的Firefox Marketplace中的那几千个应用。
我们讨论过将关注的重心重新转向真正的Web内容(目前为止地球上规模最大的数字化内容集),面向Web“互联”的这一本质,以及通过超级链接在页面之间进行导航的“流动”进行优化,打造创新的用户界面。从开放的Web世界自身优势入手可以让我们创造出与竞争对手截然不同的产品。
连接下一群十亿用户
思路二基于这样的一种假设:我们真正需要的是规模化,为了扩大规模,对我们来说最可行的办法是面向新兴市场。对移动行业来说,这种市场的增长潜力才是最大的。
我们在发展中国家进行了一些市场研究和用户调研,很快发现全球人口有很大比例根本无法承受价格高昂的智能手机。他们真正需要的是价格低廉的智能手机,是能让诸如印度和孟加拉国等地的人可以轻松负担的手机。
只要能在新兴市场站稳脚跟,就可以非常快速地实现Firefox OS所需的规模。随后至少在这些国家的市场份额统计图表中,我们会不再被归类到“其他”这个类别,开始得到大家的关注。
25美元的智能手机
2013年年中,宫力开始掌舵Firefox OS。宫力极为赞同“廉价智能手机”这个想法,并提出了25美元智能手机这一概念,认为如果希望在新兴市场扩大规模,需要将手机价格降低至这个价位。
整个团队通过天才的工程设计,让Firefox OS成功地运行在基于Spreadtrum芯片组,只有128MB RAM的极低端硬件上,这一水平已经远远低于同时期Android的最低要求。我们带着“25美元的智能手机”参加了MWC 2014,与低成本掌上设备制造商Intex和Spice建立了合作关系,并提出了“连接下一群十亿用户”这样的口号。
25美元智能手机概念原型机,MWC 2014
然而该项目的执行结果并不能让人满意。首先,25美元智能手机上市时的最终成本约为33美元。此外,尽管Firefox OS可以在128MB RAM的设备上“运行”,但此时无法像其他智能手机那样实现多任务。关键应用的缺乏是另一个严重问题,例如Whatsapp是这些市场必不可少的。我们没能说服WhatsApp开发Web版本,甚至没能得到许可由我们代为开发。这些局限外加硬件质量(尤其是摄像头)方面的一些问题,导致廉价智能手机的市场表现并不怎么出色。
新兴市场的用户也许没有太多可支配收入,但这并不意味着他们就安于接受低质量产品。他们要的不是廉价的“精简版iPhone”,他们要的是iPhone。如果买不起iPhone,他们宁愿继续使用功能机。功能机更便宜,很实用,电池续航超长。
Firefox OS 2.0
25美元智能手机的大部分研发工作是由台北办公室的工程师负责的,他们还发布了一个特殊的1.3t版Firefox OS。与此同时,其他团队已经在开始考虑2.0版会是什么样的。
2013年4月,UX团队在伦敦举办了一场峰会,大家共聚一堂讨论Firefox OS用户体验的未来方向。我很荣幸能受邀参加。我们集思广益探讨了Web体验的独特之处,以及该如何借助这些优势打造与众不同的用户体验。
UX峰会,伦敦,2013年4月
“流动”是当时的一大重心,我们可以顺着超级链接在不同Web内容之间流动。Web世界并非由相互之间存在明显界限的单体应用组成的,而是一种在不同页面之间通过五花八门的内容流动的体验。
Haida
随后几周里,UX团队为这种概念打造了一些初期设计(最终的开发代号为“Haida”),这些设计弱化了Web应用和网站之间的界限,创建出一种犹如Web那样可以流动的独特用户体验。
这个项目最终不仅包含通用的“Rocketbar任务栏”,还可跨越整个操作系统访问,无缝适应不同类型的Web内容,并能通过“Sheets”将单页Web应用拆分为多个页面,让用户通过直观的边缘手势切换浏览不同页面。该项目最后还提供了一种基于内容模式的实时应用(Live App),可供用户随意浏览使用不同应用,并在需要时收藏应用,而不像单体应用那样,使用之前必须从一个集中的应用商店下载并安装。
如此剧烈的变化已经大到无法在一个版本中全部实现,因此我们将Haida的实现分为三个阶段。2.0版实现了全新的视觉效果以及用于在窗口之间移动的边缘手势,2.1版实现了浏览器与主系统UI的集成,借此我们开始创建这种基于浏览器的独一无二的体验。
但是在2.2版中,对于Haida中所含创新的重视程度开始下降。合作伙伴开始提出有关竞品功能的请求,他们希望我们开发能与Android比肩甚至更棒的功能,希望能优化性能并增添对“从右到左”语言的支持,借此合作伙伴才能将设备销售到更多国家。
Haida的完整愿景从未完全实现过,因此大家开始探讨是否要在3.0版中再次调转方向。
Firefox OS 3.0
首发设备上市后,合作伙伴达成了远超预期的销量,但在这之后,25美元智能手机的倡议开始受挫。对于该以怎样的差异化优势延续首发势头,我们还没有明确的答案,合作伙伴的销售数据开始变得不好看。大家开始丧失信心,在产品后续发展方向方面也开始出现分歧,最终导致几名重要高管离职。
随着几位高管先后离职并带走了很多研发工程师、团队元老,Firefox OS团队开始面临高层领导层的真空期。
3.0版的构思过程
由于缺乏切实可行的产品发展方向,“3.0版的构思过程”直到最后一刻,全公司员工于2014年12月在波特兰开碰头会时才拉开序幕。当时的想法是通过创意众包为Firefox OS寻求新的发展方向,我们希望从Firefox OS团队成员以及整个社区征集创意。遗憾的是直到最后也没有得出一个明确的方向,3.0版被降级为“2.5”版,只提供了一些仓促赶工的功能。