航海浏览器输给 UCWeb 的原因是啥

关注此问题已久,但是一直没有动力认真回复。
作为编写航海浏览器布局引擎(Layout Engine)的作者(另一位作者Slavik,应该不玩,负责脚本JavaScript Engine),今天看到媒体的“红芯浏览器“报道时,说到国内从来没有写过自己的浏览器内核时,看着睡去的儿子,想想如果只是为了记忆,老爹也该认真复盘一下,记录一些模糊的记忆,日后也是“你老爸当年“系列的谈资之一。
由于时间久远,后面的时间描述,都可能存在半年到一年的误差。
先将问题略作扩展:
从国内范围看,航海家浏览器为什么输给UCWEB?从整个移动平台的演进历程来看,航海家浏览器有没有可能活下来?从国内范围看,航海家浏览器为什么输给UCWEB?
航海家团队确定放弃浏览器项目,应该是2008年末到2009年初的这个时间点。
之后,我个人因为健康和心态原因,脱离团队并离开北京,第一次在创业团队之外,以求职者的身份为自己进行估值;同时也在之后的工作生活中,慢慢的学习和剖析,那些大学创业的利弊。
所以,问题再精确一些,就是2008年末到2009年初这段时间,航海家浏览器为什么开始消亡?
@王子元 (下文的Steven,CEO)的回答中,提到了“团队 产品 推广 资金“,唯独没有提到的,是技术。而实际上,最直接的,让我和Slavik心态“崩溃”的,就是技术。不过,不是来自UCWEB的压力,而是Opera MINI的推出:体验完胜,性能完胜。
另外,此Opera MINI,非Opera Mobile。两者产品上的主要区别,就是前者免费,后者收费(是的,国内当时大量使用的都是破解版)。如果你知道这两个浏览器的区别,还有NetFront浏览器这个名字,那么,你送女朋友/男朋友/老婆/老公/老爸/老妈的第一台手机,应该大概率印着Nokia的Logo。
航海家浏览器立项之初,是在2006年末,完全从0开始写浏览器,原因有三:
初生牛犊不怕虎,我们没有意识到浏览器是多庞大的一个项目,即使在针对移动设备裁剪后。当时没有移动端的浏览器内核给创业团队“套壳”。当时的硬件限制让我们确信,PC的浏览器内核和WEB内容,是无法移植到移动设备上的,还存在从0开发,做“免费”移动浏览器适配移动HTML,攒用户的时间窗口。毕竟那个年代,功能稍微完善一些的移动浏览器,要么是收费,要么只授权给手机厂商预装,出现在部分机型上。但是,Opera Mini发布,第一次让我们认识到,用我们有限的开发力量,所积累的技术和用户体验上的优势,老牌浏览器开发商是很容易超越的。
没有心气,那么吸着兰州拉面写代码的斗志也就荡然无存了。
而且,当时的我们,也确实不擅长挣钱和变现(两手一摊),口袋紧巴巴。事后看,移动浏览器在国内,如果认准了浏览器这一移动平台流量入口的价值,应尽早利用流量交换、广告联盟这些重运营的策略,引入同行来一起发展用户,这才是正确的思路,这也正是UCWEB等国内套壳浏览器抓住的机会,当然,这条路线依然竞争激烈,但是至少不那么让人绝望。
而当时我们最关注的问题,现在看来,真是各种自虐倾向技术宅的需求:
512KB的JAVA内存(你没看错),还有多少优化空间,来缓存更多的预读页面(其它回答中还真有老用户提到)?结果我们在JAVA里,硬生生的用字节数组的存储方式,来设计了整个排版和脚本引擎所需要的内存对象。另外一个好处就是,当我们的内核需要移植到C++时(SymbianOS),内核代码的移植,几乎可以靠字符串替换解决。布局引擎能不能支持增量解析和排版?CSS要不要支持?于是半年内,Mozilla网站上几篇关于Gecko引擎的设计文档,慢慢的从天书读成了手册;怎么在字节数组上对树型数据结构遍历和修改,也从来没有这么手到拈来过。GIF动画咱也在浏览器里支持一个?设备自带的图片解码器内存泄漏挺严重,自己移植一个JPEG解码器试试?本科当年懵懵懂懂的频域转换和变长编码这些概念,突然变的亲切又可爱。Javascript闭包功能好像支持不了,还有性能优化,怎么解?要不买一份研究v8的学术论文读一读?既然有脚本执行能力了,插件扩展和热更新也顺理成章的得上马了,对不对?在Slavik和我这些当时的技术宅看来,浏览器的内核基础还远没有打好,谈何业务?所以,今天我们被Steven调侃的最多的,也是“被你们忽悠了,入了浏览器内核这个大坑“!


推荐阅读