技术的真正趋势还是由技术是否低成本、高效率、高产出、高用户体验等决定的,当然也有大小公司商业博弈等偶然因素决定。在整个决定进程中,程序员的经验、直觉和喜好占有很大的决定权重。当一个技术流行,那么程序员往往会借鉴以前的技术或创造新的技术来完善这种流行,让其开发实现更快速、更友好、更强大;而后,新技术中又会脱颖而出一个亮点技术引出新的流行……周而复始。现在主流的技术就是对移动平台的应用开发,而html5就是借鉴以前PC时代的B/S和C/S架构对当前移动应用开发的一个完善,会在短期内成为流行的亮点技术,但在长期上不太可能,因为先天不足(这个不说了,说了也只有资深程序员能明白)。
(注:配图为朱宏波【音】于2010年画的云图,真的云图,和那个科幻片、科幻小说没有关系,这里用来表意,没有实质意义)
理论分析家关于html5标题党式的定向或提问,估计很多都受到了出现在2000前后那种类似PC上C/S向B/S大规模转移的趋势的影响。但其实即使发展到今天,我们的电脑上还有很多原生桌面应用,只是更多的应用都放在网页浏览器了,也就是网页并没有完全取代桌面应用,而这正是大多html5理论分析家观点的起点——单纯的把2000年左右桌面原生应用发生的事情直接套在了今天移动原生app和html5
app的关系上,而且还大言不惭的说完全取代。会发生他们所预想的吗?不太会,或者说只会有一小部分昙花一现。
今天整个移动生态圈牵扯到了太多的东西,各方面参与的人和公司也越来越多,对新技术的需求也越来越大, 从而又导致技术发展也更加快速,所以在未来几年内一定会出现新的技术,对移动原生app和html5
app带来新的影响(估计那个时候这些理论分析家又跳出来说XXX技术会让app消亡,他们可能连什么是app都搞不懂)。这些新技术出现的依据在于,我个人当前就在把2005年的从基因中启发的软件架构应用在手机前、后台开发上,另外也知道国内有和我做类似事情的公司,国外呢?相信有更多的个人和公司正在从事类似工作。用户并不关心技术,只关心实现后的东西;但后面总有一帮程序员在考虑和实现几年后应用的技术。
现在的html5是实现app 的方式之一。作为行业内的人,我注意到越来越多的公司都会结合小部分html5技术来开发app,但app中占主导的还是原生技术。原生技术包括android上的java、iOS上的objective
c和swift、以及共用的sqlite等。除了原生技术和html5技术外,还有些公司使用小众的adobe air等实现app。html5和原生技术的混合编程是当前比较流行的,有相互补益的作用,当然还得根据实际团队的技术能力情况来操作,完全不用html5或者完全用html5都偏颇了。html5已经在当前一些中高端手机上运行的比较流畅,但当前还是只要作为协助原生技术的辅助存在,相信以后会在应用中逐步加大比例。
完全使用html5来开发app的方式,现在和今后几年都不太会流行。当前全html5的app主要用在演示和原形设计上,另外它的用户体验在手机上不太好,而且html5在手机上有些重要功能还未能实现或完善,比如websocket、全方位存储、新的输入控件、表单自动验证、动画效果等。可以说,最早设计html5的那批程序员的理念,在手机上还有很多相当重要的部门还需要原生技术配合才能勉强实现。
现在很多公司的noapp计划主要都是采用html5,noapp不是没有app,而是把app放在云上,用户需要时再同步到手机上。究其原因主要是用html5实现noapp的门槛最低、成本也最低,有技术实力的个人和公司会用其他更好的技术,我前面提到的我个人的技术、以及其他公司和个人的技术,都没有使用html5来实现noapp,都是基于客户端的操作系统层或者虚拟机层,以及后端的云技术层。
===========================
现在很多有关html5的文章都有标题党嫌疑,估计那些作者大多都是理论分析家,不太可能是那些把html5真正应用到手机开发中的程序员。理论分析家经常根据不同环境和情况自称为程序员、经济学家、管理专家、未来学家等,那么问题来了,怎么能把这些理论分析家和真正的程序员分开来?理论分析家和真正的程序员都用脑和手,不同之处在于:
1. 理论分析家只能进行短期模糊逻辑的脑思考,还需要配合嘴和其他人理论分析家相互忽悠;而程序员需要进行长期精密逻辑的脑思考,并且和其他人沟通和协作。
2. 理论分析家的手只用来打出似乎有意义的文字;而程序员需要用手操作各种电脑和其他电子组件,用手写出大量的、有逻辑的代码,然后用手进行调试和测试,最后形成有用或无用的软件。
3. 理论分析家对于自己造成的结果,基本不用负责;而程序员必须得对自己开发的软件负责。
理论分析家事前叫预测、事后叫诸葛亮。虽然他们都是忽悠,但还是有一定社会价值的,就是引起真正读者的思考、警醒等,但当一些脑残粉想真正根据理论分析家的预测进行行事时,往往就会反自然、反人类的给社会方方面面带来大大小小的泡沫和危害。程序员与之最大的区别也许就是能动手行动做自己应该做的事情。出于对理论分析家的反感(包括我自己偶尔也会理论分析一番),这里多写了点;-)
顾笑群
2014年12月21日