Facebook的iOS客户端放弃HTML5而转投本地应用开发,这是最近一个不小的新闻。不过,CSDN新闻编辑给起的这个标题,多少有点赚眼球的嫌疑: HTML5史上最惨重的失败:FaceBook放弃HTML5转投iOS Native
无论如何,我看到这则新闻的时候并不感到意外。这倒不是由于我对HTML5有什么特别的看法,而是因为历史上每当当新的平台出现时,类似的情景已经出现过很多次了。
回想Java出现的时候,其炙手可热的程度简直到了吓人的地步,人们纷纷抛弃原来的开发平台投身其中。然而一段时间后,热情满满的新晋Javaer却饱受被新平台的种种问题折磨,以至于“Write once, run everywhere”被戏虐地改为“Write once, debug everywhere”。有开发人员更声称,Java根本不适合作为大学教学用的语言。更令人意外的是,起初万众瞩目的Applet后来沦落到无人问津的地步,反倒是在不甚在意的Web服务端站稳了自己的位置。经过长时间的发展,Java的发展慢慢稳定,人们逐渐了解到Java的长处和短处,对其的看法也归于理性了。
.Net的发展也经历了类似的情况。当微软最初推出.Net的时候,一夜之间,几乎所有的微软产品都贴上了.Net的标签,人们也急切的想要了解这个新名词到底代表什么含义。由于Windows平台的命运只有微软能够掌控,因此.Net在Windows上的地位是无可怀疑的,尽管如此,.Net的发展也不是一帆风顺的。几年前,一位资深微软开发者批评了.Net平台上的种种问题,然后离开了这个平台,这在微软社区中引起了相当的震动。多年来,VB到VB.NET难于转换、Managed C++的设计让人生厌、WPF的出现让WinForm无所适从、Linq2SQL和Entity Framework定位重复、曾被大力吹捧的Silverlight迅速变得前途黯淡,每个问题都曾经导致部分开发者的不满和离开。今天,.Net已经进入一个相对平稳发展的时期,其平台特性及其适用范围比较好地为大多数微软开发者所认识。然而,随着Windows 8设计理念的大幅改变和微软自身的重新定位,.Net的未来还面对着很多不确定的因素。
以史为鉴,可以知兴替。不难看出,平台的发展基本上都要经历几个时期:
新生期:新出现的平台难免稚嫩,但是嗅觉灵敏的技术人能够意识到新技术的潜力,开始向大众介绍新的概念;
爆发性增长期:一方面,技术人员的天性喜欢新的东西;另一方面,好事的媒体也不会放过制造话题、炒作概念的好机会,这样新技术很快占领了各种新闻版面,不断吸引人们的关注,开始尝试新技术的团体急速增加;
怀疑与波动期:经过一段时期的使用,人们开始发现新技术存在的问题,质疑的声音开始出现,当然,这种质疑有时也难免出现言过其实和否定一切的倾向;同时,新技术急剧扩张以后往往也会暴露出自身发展中的一些问题,比如设计上的缺陷和社区的分裂等。有些开发者甚至会对新技术失去信心,回头捡起旧的平台。这些都使得人们在采用新技术的时候,倾向于采取更加审慎和保守的态度。
平稳期:平台可以通过版本的更新逐渐解决一些原有的设计缺陷,人们也能够更加通过长期使用更加深刻地了解平台本身的长处与缺陷,对平台的使用更加趋于理性。许多保守的开发者也愿意接纳新的平台,因为这些平台已经是“久经考验”的了。
衰退期:世界的变化导致更年轻的平台出现了,新平台现在被当作“旧平台”作为比较和批评的对象,人们再次转向新的东西,又一轮新老交替再次来临。
一个平台只有经过怀疑与批评的洗礼,经过动摇、幻灭、追求的历史阶梯,才能成为真正经受过考验的平台。HTML5能逃脱这个规律吗?
不可否认的是,HTML5是充满希望的新平台,是未来、特别是移动开发方面众望所归的王者。但同样不可否认的是一直以来,对HTML5的发展,壮声势、唱赞歌的声音过多,冷静分析、指出其限制和问题的极少,这恰恰说明HTML5还不是一个足够成熟的平台。我认为在这个时期,出现一些负面的声音,包括部分开发者弃用这个平台,让过热的温度稍稍冷却,能够让人不再视其为“银弹”,而是仔细思考一下真正困难的问题和解决办法,对其长期发展来说,反倒是一件有益的事情。
其实,HTML5的发展也并非高枕无忧的。W3C和WHATWG的分道扬镳,其影响现在还不可预估,但可以肯定的是对HTML5将来的发展绝对是一件坏事情。此外,任何厂商只要想做自己的App Store,对Web标准就难免三心二意,各怀鬼胎,看看现在的Apple就知道了。即使有再好的标准,能改变这些厂商各自跑马圈地的局面吗?过去只有微软和网景两家浏览器的时候,开发已经让人抓狂,今天的浏览器厂商算上大大小小的移动浏览器不下几十家,对标准的支持各不一致,HTML5如何避免成为第二个Debug everywhere的Java呢?如果不能对如何解决分裂问题有一个清晰的思路,HTML5的未来,仍然是无法让人过分乐观的。