作者/王安 责编/唐小引 封图/纪明超
来源:CSDN(ID:CSDNnews)
【CSDN编者按】这届GoogleI/O大会让所有的移动开发者有点儿恍惚,所提之事即是前文所言的宣布Kotlin替代Java成为Android开发的首选语言,以及Flutter实现全平台支持。而同时,Oracle裁员的事实正在上演,许多人提出是否需要去Java化。不过,本文作者——拥有十几年编程经验的DCloud创始人王安与笔者分享了一个观点,那便是“无论是Kotlin还是Flutter,都还为时尚早,生态建设需要历史机遇,当年Android的机遇并不存在。”两年前在《程序员》杂志中,笔者曾特邀王安对整个移动互联网的发展轨迹做总结,因从未在网络公开发布,特此于今日在CSDN刊登。以史为鉴可知兴替,接下来,我们一起看整个移动互联网发展轨迹,那些做成的和失败的事情,然后,通过历史汲取经验, 共赴下一个开发十年。
移动互联网,其实并非由iPhone开始,当然,iPhone是让移动互联网普及的最大功臣。
最早的移动互联网,是21世纪初的KJAVA(J2ME)和WinCE手机,以及GPRS的2G网络。我们称其为移动互联网第一阶段,也就是2001-2007年。而2007-2017年,则是移动互联网第二阶段。
01
移动互联网的第一阶段:乏善可陈的创新
2001年以前的手机,是不可编程的纯通信设备,后来,多普达(HTC)和摩托罗拉,开始推出触摸屏手机,这些手机提供了编程平台,但是想开发和安装应用却也非常地费事儿。
进而,产业开始快速发展,围绕触屏和非触屏,手机OS发展出两大阵营。诺基亚发展Symbian系统,占据了非触屏手机的主导地位;由J2ME和WinCE分化出来的Smartphone,以及Qualcomm的BREW平台,分食其他份额。而高端触屏市场,微软的PocketPC(后改名为WindowsMobile)、摩托罗拉的Linux以及索尼爱立信基于Symbian发展的UIQ用户界面,形成三足鼎立之势。
伴随着手机市场的高速增长,各种系统百花齐放。后来基于MKT的所谓“山寨机”和BlackBerry都曾红极一时。
山寨机的繁荣,说明那一代的手机已经缺乏底层创新了。
再后来,iPhone就来了。
02
第二阶段:浪花淘尽英雄,iOS、Android的移动争夺战
在iPhone到来以前,开发是碎片化的,开发者需要为不同OS开发不同的应用,并且因为安装和体验应用都不够方便,所以开发者的ROI很低。生态就像鸡和蛋,没有开发者生产精品应用,用户也不怎么爱用应用,由此电话、短信、彩铃成为了巨大的产业。
尽管彼时业内也有一些商业化的跨平台开发工具,比如Mkey无线中间件,但集中在企业市场,对大移动互联网影响甚微。
倒也不是当时的手机厂商故意制造碎片化,诺基亚联合摩托罗拉、爱立信,结合Psion的技术成立了Symbian公司,后来还拉了三星进来。这个公司的产品就是SymbianOS(塞班系统),虽然大多数人以为塞班等于诺基亚的OS,但其实它的初衷并非如此。只是诺基亚在Symbian上过于强势,其他手机厂商使用Symbian将造成手机销售劣势,所以后来诺基亚干脆收购了Symbian公司,不过这钱也白花了,因为没两年诺基亚就投靠了WindowsPhone阵营。
当时在通信行业已经有很高的呼声来推动3G发展,但运营商们总是犹豫一个问题——3G投资那么大,需求和商业模式在哪里,没那么多人需要高速网络,新增这么大投资有什么用?
而iPhone带来了这样几大改变:
这个没有实体键盘但拥有极佳触摸体验的大屏手机,极大地增强了用户的上网和使用应用的意愿。乔布斯当时赌了3个功能——邮件、Safari浏览器和Google地图,他赌对了。
iPhone第一代虽然没有3G模块,但它很快推出了打中运营商七寸的iPhone3G。运营商一直需要一个推3G的理由,而iPhone3G实打实地帮助运营商大幅提升了数据流量的销售额,这个标杆效应非常明显,导致运营商都非常喜欢推iPhone。而在国外,运营商是手机销售的关键。
乔布斯天然能引领科技时尚,再加上运营商这个关键渠道,iPhone+3G一时间飞速发展,震动了整个手机通讯行业。
可以说,乔布斯判准了3G时代的到来,用户需要一种新的手机——以数据和应用为主,抛弃过去手机就是通讯设备的传统定义。然后在3G前夜大力气投入研发,以差异化定位而崛起。iPhone使用大触屏而舍弃物理键盘,强化Safari、Google地图、Email等核心应用的体验,构建AppStore降低应用发行门槛,提供Objective-C语言及Xcode开发工具建设开发者生态。要知道,当时老牌通信设备商们并没有把来自圈外的硅谷公司当回事,他们擅于通信,对互联网级的用户体验、应用及开发生态的感觉,真的不如Apple。
但结果是,iPhone确实重新定义了手机。如果你想打电话,诺基亚仍然是更优的选择,但如果想在3G时代玩点新鲜的数据应用,那么iPhone的体验秒杀上一代设备。不过,iOS虽然号称是基于Unix更智能的OS,但这个OS上没有应用让乔布斯头疼,原来macOS上的开发者也不多,于是乔布斯想到了HTML5。
当时HTML4有两个问题,一是被微软的IE+Adobe的Flash垄断,私有标准充斥互联网;二是HTML4的设备调用能力不行,需要补充大量手机能力。而Google也是看不惯互联网被微软和Abobe垄断,于是与Apple联合推广HTML5。
不过,随着iPhone的火爆销售,乔布斯开始重新审视应用生态,他发现Apple已经具备独立建应用生态的能力了,再加上2008年时HTML5距离正式定稿还很遥远(2015年才正式定稿),于是AppStore出现了,这个封闭的生态成为了Apple的超级现金奶牛,而HTML5则被抛在一边,发展更加缓慢。
在早期,开发者从未获得过如此多的流量和变现机会,对AppStore大加赞扬。但现在,30%的苹果税已经成为众多开发者的噩梦,尤其是虚拟物品支付、直播、知识付费等行业的开发者。
但无论如何,iPhone的成功是值得分析的标杆案例,而诺基亚、摩托罗拉、微软的失败,以及Android的成功,也都是值得分析总结的。
当然,在2007年时,诺基亚对iPhone很是不以为然。诺基亚想的是,最多高端触屏市场被iPhone拿了,看起来WindowsMobile和摩托罗拉Linux压力更大,而诺基亚主流的非触屏市场不会受影响。
或许,手机厂商们仍可以各自差异化发展,但这个时候Google和微软2个巨头搅合进来了。
微软和Google的高管看到了3G将带来真正的移动互联网,他们能更敏感地察觉到移动互联网的发展机会。微软在移动设备上一直长期投资发展,从WinCE、PocketPC到WindowsMobile,产品一直在演进。而Android其实也是2003年就成立的老兵,2005年被Google收购。
但同时它们也看到了一个问题——iPhone利用硬件和软件的综合优势,做出了最佳的用户体验。尤其是在电池和内存使用上,不与手机厂商深度合作,无法达到iPhone的水平。这时,微软瞄准了诺基亚,这个曾经WindowsMobile的老对头、当时最大的手机厂商。
此时,移动互联网史上的著名人物埃洛普(StephenElop)出场了,这位时任微软副总裁跳槽到诺基亚当CEO,成为一个惊天变化的关键人物——将如日中天的诺基亚搞衰落、让微软失去了移动互联网。
虽然埃洛普去了诺基亚,但诺基亚从不觉得WindowsMobile比Symbian更好,而微软当时的CEO鲍尔默抛出了两个绣球——我们在重新研发更好的WindowsPhone系统;只要诺基亚使用WindowsPhone,我们就高价收购诺基亚。
当股东和CEO对微软充满期待时,他们错失了利用当时的优势地位自救的最后机会。当迟到的WindowsPhone出场时,格局已定。
而摩托罗拉,同样拜于Google之手。好好一家企业被分拆,内乱、人才流失不断。Google抛出的绣球是我们有意收购摩托罗拉,但我们对通信业务不感兴趣。然后摩托罗拉的股东就决定分拆摩托罗拉的设备和通信业务,通信业务合并给了诺西。折腾几年才分拆完成,但后期Android已经发展起来,Google已不那么关心和某家硬件深度整合打造完美体验了,反而担心打造自己的手机会伤害Android生态圈的其他手机厂商。但Android阵营需要专利,这是Google的短板,于是摩托罗拉把自己的公司+专利卖给了Google,进而这些专利被免费授权给所有摩托罗拉的竞争对手。最可笑的是摩托罗拉自始至终是Google的PlanB,当A计划成功后,摩托罗拉被无情地甩卖给了联想。
iPhone其实只是提供了一个引子,微软的错误战略和Google的PlanB,加上诺基亚、摩托罗拉股东的短视与贪婪,最终造成了这个经典的商业失败案例。其实不止诺基亚、摩托罗拉,90%的失败,都是因为自己而非对手。
当然,我们还应该总结Android为什么会成功,以及Google的PlanA到底是什么?
2005年,Android被Google收购后,只是一个还不错的Linux手机OS,比起更低功耗的Symbian,Android在当时并没有多强的优势。但“手机终将需要强大OS”的信念支撑着Google对Android一直认真投资。
当2007年Android新版做得差不多但还没发布时,iPhone发布了。这惊到了Android的创始人AndyRubin,他看到了多点触摸在网页及照片浏览上的革命性优势,他清楚强大的Safari能打开3G大门,也清楚拍照和照片浏览将一直是手机的重要功能。
于是,Android不得不调整发版计划,重新做多点触摸。同时Android还做了一个至关重要的决策,那就是废掉Linux的原生语言C,改用Java做应用开发语言。
这又是一个极富争议、但最终赌对了的决策。
Android性能本就不如Symbian,Java是跑在虚拟机上的,性能再次打折。为什么要如此冒险?对于一个OS而言,生态是核心和根本。微软当初起家,就是每个微机厂商准备开卖时,微软都会去讲:我们可以提供运行在你的微机上的Basic引擎,给你的微机填充大量应用。事实没有应用的微机是卖不动的。手机刚开始只是一个打电话的专用设备,如果要发展应用生态,那必须想办法吸引开发者。
如果当初坚持让开发者使用C来开发应用,估计现在也无法想象世界第一大OS是Android。
在2008年,Java和JavaScript拥有着世界上最大的两个程序员群体,使用JavaScript做应用开发,对当时的硬件设备要求太高,直接被放弃。Java程序员群体就成了Google日思夜想意图俘获芳心的群体,并且当时市场上还存在不少J2ME手机开发工程师。
为了让Java程序员给Android开发应用,Google倒推模型做了很多工作,比如收购JVM优化公司、对JVM使用硬件进行加速、通过Eclipse插件制作ADT……在2007-08年,Android终于脱胎换骨,成功担当起了iPhone狙击者的角色。
虽然Android还是要比iOS差一点,但比Symbian和WindowsMobile更适合3G时代使用。且当时拿不到iPhone销售权的运营商,以及被iPhone节节冲击的手机设备商实在没有更好的选择了。并且在当时,iPhone有个策略,每个地区只和一家运营商合作。这注定了产业需要培育一个iPhone的竞争对手,如果彼时iPhone的运营商网络政策更开放,格局可能会有所不同。
当然,除了Android的技术策略,Google的联盟策略也很关键。
iPhone在2007年初开发布会,9月正式发布。11月时,Google成功地攒起来OHA联盟,召集全球感受到iPhone威胁的设备厂商和运营商一起开发开源的Android。
这个过程其实也不快,直到OHA联盟成立一年后,第一款Android手机才上市,比iPhone晚了1年多。
至此可以显见,Google的PlanA便是和所有手机厂商合作,成为他们的OS,同时OS开源、免费,而PlanB则是前文所述的收购一家手机厂商。后者的意义在于——防止A失败并实现软硬件一体,以打造更优秀的用户体验。
既然微软盯上了诺基亚,那同在美国的摩托罗拉就成了Google的心仪对象。不过,当时手机厂商的态度是莫测动荡的,大家在使用Android和各自优化之前的系统之间摇摆不定。诺基亚初期一方面尝试改进Symbian,还联合Intel做MeeGo,但同时也在试水Android,后来干脆投靠了微软,而摩托罗拉也在过去的Linux和Android之间摇摆。
毕竟Android能不能成,是不是够好,大家心里也没数。这个时候,唯一不摇摆的是三星。
不像诺基亚有Symbian、摩托罗拉有Linux,三星过去没有像样的OS,它的设备只能运行基础的J2ME程序,偶尔还用下WindowsMobile系统。
HTC推出G1后,引发了微软的强烈不满,HTC过去可是WindowsMobile阵营里最大的设备厂商,可以说HTC是靠着微软起来的。也是在微软的压力下,HTC初期在Android上的投入也不够坚决(2017年9月,Google收购了部分HTC手机业务,并包括一些HTC专利的非独家授权)。
所有大厂里,唯一一个全力做Android手机的,就是三星了(据闻三星也内部评估过自研OS的可行性,但数千人年的投入让高层犹豫了,最终他们还是选择了Android,至于Bada及后来的Tizen,都是未做很大投入的制衡策略)。即使又晚了一年,2009年三星推出的第一款Android手机上市后,就踩到了风口上。
当时所有运营商抢着和iPhone签合同,但一个地区只有一个幸运儿,其余签不到iPhone的运营商就拼命推三星的Android手机。还记得2009年中国联通拿到iPhone的独家销售权后,iPhone+3G帮助中国联通业绩大增。
这么多年来,很少遇到一个手机能左右运营商的业绩。痛苦不堪的中国移动只好压着三星出TD的3G版Android手机,疯狂补贴,阻止中移动用户离网率的快速上升。然后就慢慢出现一些意想不到的事情,由于拿到iPhone销售权的运营商是少数,三星竟发展成了第一大手机厂商,一路超过了诺基亚、摩托罗拉、iPhone。
一朝天子一朝臣,一个时代一群风流人。
在3G时代,Apple、Google、三星崛起了,而诺基亚、摩托罗拉、微软没落了。崛起的共同特点是把握住了时代机会,以新时代的眼光要求自己的产品,颠覆了过去。而没落的共同特点是享受了旧时代的成功,没有勇敢、及时地自我革命。
在2007-2012年,5年大战后,移动互联网第二阶段分出了胜负。以iOS+Android为基础的移动互联网,伴随3G的到来,改变了整个人类社会。
03
特殊的中国移动互联网:微信的突围
而在中国,发生了一个特殊事件。2010年,Google宣布退出中国,其所有网络服务,在中国大陆境内都无法访问。Google这个决定错失的不止是巨大的搜索市场,更错失了中国的移动互联网大潮,损失已经无法用百亿美元来衡量了。
也是因为这样,Android的开源政策,以及服务无法进入中国的特殊国情,创造了一个特殊的中国移动互联网。其中,小米以优化更好的AndroidROM起家,几年内迅速崛起。之前在深圳的电子消费领域深耕已久的厂商们,也各自定制DOM,虽然共享了Google创造的Android应用生态,但分发服务的收入都进到了自己的兜里。
当然,中国的移动互联网里,最值得说的一件事,那就是微信。这个2011年发布的产品,在几年里迅速成为国民应用,目前已经有10亿活跃用户。
其实这个市场在移动互联网第一阶段叫PTT(Pushtotalk)。IDG曾投资了一家叫PICA的公司,是早期PTT领域的代表,但他们没有熬到第二阶段就被收购了。在3G以前,在普通用户眼里,GPRS=慢+贵。
在2010年时,业内已经可以预见,必然会出现一个移动互联网时代的霸主式即时通信产品,运营商的通道化下沉已经无法避免。但更多人相信QQ会干掉米聊、飞信,无人预料到在广州的张小龙拿出了微信。
我们不得不佩服张小龙的宏观战略、细节体验等无数正确决策。这也是为数不多的值得国人骄傲的产品,硅谷那些自诩为IT先锋的人也不得不尊敬和学习微信。
从即时通信、公众平台到移动支付,微信的三级跳成就了自己的霸主地位,也改变了中国。尤其是微信对支付市场的教育,让中国人提前进入了手机支付时代。现在除了缴停车费,我实在没有其他地方使用现金了,这种生活在国外难以想象。
而我们的移动支付也不止是简单的付款,基于其上的生态在快速繁荣,我们今天追逐的一个一个热潮——共享单车、共享充电宝、自助贩售机……试想如果没有移动支付的普及,这些创业机会根本不会存在。
微信的第四级跳是小程序,2017年1月9日,在iPhone第一代发布会的十周年纪念日,微信发布了小程序(iPhone是2007年1月9日发布,但2017年的十周年iPhone发布会改在了9月13日)。
我们先压下小程序不说,来简单总结下移动互联网第二阶段的开发者盛宴。
在2010-2015年期间,苹果的WWDC和Google的I/O大会,是开发者业内的朝圣会议,现场一票难求,无数人熬夜盯直播。每次会议后,都会诞生一批新创业机会,无数开发者琢磨如何利用大会公布的底层新能力做点什么。
可是慢慢的,这些会议冷下来了,刚开始,人们在抱怨,又一个创业机会被OS直接做了;再后来,人们在调侃,iOS和Android互相抄了什么功能;再后来,人们已经不关注了。2017年,毕竟是iPhone十周年发布会、也是乔布斯剧场的首次亮相,这个硬件发布会还是吸引了不少眼球。但iPhoneX交出的是一份充满争议的答卷。
那么,我们的iOS和Android开发者的未来又在哪里?
AR是一个机会,在娱乐、旅游、购物和O2O领域存在切实需求。比如旅游时用摄像头扫景点,显示导游信息;买家具时,在手机上预览在家里的摆放效果。但这个行业其实存在已数年,2012年第一批AR概念的创业者就出现了,当时风投砸下去的钱,全变成泡沫了。
AR涉及大量线下实体物品的数据模型,工作量大但很难向用户多收到钱,性价比低是制约这个产业发展的核心。所以这个产业最重要的新机会,反而是谁能提供普适、低成本的AR建模能力。此外,就是手机的耗电和发烫问题,即便在不需要大量线下数据的AR游戏领域,也存在玩久手机扛不住的问题。
从整体来看,经过10年的发展,iOS和Android已经进入了创新瓶颈期。并且,不止OS缺少创新,手机市场的流量红利也消失了。
2011年至2016年,中国的智能手机市场在高速增长。开发者做一个App丢到市场里,随着大盘就能看到自己的用户也在快速增长。投资人一看用户在涨,于是纷纷投钱进来。市场一片互嗨的热情局面,感觉人人都可以和移动互联网+一下。
但到了2016年,故事变了,开发者发现用户涨不动了,然后投资人也傻了。
其实开发者的用户增长,建立在两个本质前提下:
中国的智能手机用户在增长;
每台智能手机安装的App数量在增长。
经过多年发展,中国的智能手机接近饱和了。在2006年发生了第二代智能手机换机潮,并造就了OPPO、VIVO等的崛起。此时其实开发者已经发现自己的设备库记录虽然增加了,但只是同一个用户从A设备迁移到B设备。
那么增长的第一个条件就卡住了。于是也有人开始关注出海。这里不展开这个话题。
而第二个条件,每个手机的App保有量,一个用户也就装20个左右的原生App,除非底层有重大变革,否则这个增长条件也会卡住。
当两个本质前提都卡住时,开发者就进入了零和游戏状态,互相抢有限的用户、有限的设备安装量,以及有限的用户时间。
这个日子可不好过,除非底层有重大变革,能改变每台手机的App保有量。
底层怎么变革呢?如果是原生应用,如果是仍然从桌面以宫格方式寻找本机应用,那局面不会有改观。
这就是微信小程序看到的机会,敢在2017年1月9日发布并在朋友圈贴出iPhone发布的照片做对比,张小龙看到了下一个移动互联网10年的重要变革机会,其所展示的是 Apple发布会底部的文字:
每隔一段时间,就会有一个革命性的产品出现;
人一生能参与一件革命性产品就够幸运;
今天苹果要重新发明手机;
比其他手机至少先进5年的系统。
这种闷骚式的傲骄也是没谁了。
小程序能解决原生应用瓶颈,在于四个关键点:
免安装和更新过程,触手可及;体验达到了原生应用水准,功能基本够用;
通过扫码和搜索而不是宫格提供入口服务(宫格虽有其方便之处,但你不会让你手机的宫格底部有十屏的);
能直达具体内容服务。
其实在PC互联网上,原本就没有这些问题,搜索引擎+Web生态,一直都可以让用户随意地畅享各种互联网服务,不存在一台电脑只能安装20个网站的情况。
当然,目前微信搜索事业部成立不久,搜索入口还不够完善。但在未来,微信希望像PC时代的百度那样,在移动互联网上,把微信打造成对接用户和众多移动互联网服务的主入口。但微信与百度有个重大差异,百度把流量导给网站主后就与百度无关了,而微信建了一个全闭环生态,每个小程序的运行、升级、账户、支付都在微信的体系下。
业内戏称微信要做一个微信互联网。
事实上,想要解决当前移动互联网发展瓶颈的,不止微信一家。DCloud在更早就发布了流应用,并联合多家渠道共建生态,小米也在2017年发布了自己的新应用,这个领域被称为动态App。
与之前百度推广的轻应用不同,轻应用在功能体验上达不到动态App的效果,会给开发者造成严重的留存和付费转换障碍。
这些动态App都是解释型而不是编译型,核心语言是JavaScript。也正因为其解释型特点,才具备免安装、直达、方便的应用内搜索等特点。
开发者界,有句话流传甚广:所有能使用JavaScript写的,最终都会使用JavaScript写。
在早期,硬件设备性能不足时,必然是编译型语言的天下,PC上如此,手机上也如此。当PC硬件性能起来后,JavaScript通过浏览器统治了PC市场。现在手机硬件性能也起来了,无非也就看JavaScript通过什么样的新平台来统治移动互联网的下个十年了。
因为这本质上是硬件体验换软件体验。动态应用的很多体验都是编译型语言的应用所无法给予的,而动态应用的缺点又恰恰是手机硬件可以补齐的。
做预言是冒险的事情,毕竟未实现,容易惹争议。但总结历史,不就是为了给未来的选择提供帮助吗?
我从DOS年代开始编程,历经Windows编程、Web编程、数代手机编程,明白目前的iOS和Android的原生开发也不会主流太久。每个计算平台,最终都会向解释性语言发展。
可能未来再新出一个计算平台,比如眼镜或人脑植入芯片,依然需要原生开发起步,但手机上,下一个十年,我认为是JavaScript的天下。而我也一直认为,一个优秀的程序员,至少需要懂两门编程语言,而其中一门,得是JavaScript。
对于微信小程序,我认为它肯定能做起来,但一个如此封闭的系统,不具备独占天下的机会,产业会推动出另一种开放的生态。
本文虽近万字,但仍不足以道尽移动互联网这十年,也欢迎有兴趣的同行添加自己对历史和未来的观点,给所有有志学习的读者提供思考素材。
(作者简介:王安,DCloud公司创始人,HTML5中国产业联盟秘书长。2003年开始从事移动互联网工作,十几年编程和商业经验,连续创业者。)