首页 > 移动应用 > 正文

为什么说跨平台和大前端是趋势?

2019-01-03 10:36:24  来源:非著名程序员

摘要:在 2018 的年终总结上,我谈到了未来前端开发的一个趋势是什么?我当时说:跨平台是趋势,大前端更是趋势。当时,没有细说,说改天我会从语言发展的角度来讲一讲为什么是趋势。
关键词: 前端
  在 2018 的年终总结上,我谈到了未来前端开发的一个趋势是什么?我当时说:跨平台是趋势,大前端更是趋势。当时,没有细说,说改天我会从语言发展的角度来讲一讲为什么是趋势。
 
\
 
  在具体谈谈我的看法之前,咱们先看看大家的对于我半个月以前发起的一个投票。投票结果如下:
\
 
  其实,我看到这个投票结果还是比较震惊的,为什么这么说呢?因为我认为大前端是一个趋势,但是没想到这个趋势已经高达到了 40% 。说不定照这个速度,今年就会超过只要求会一种前端平台技术的占比。所以:技多不压身是有道理的。
 
  那为什么这种趋势越来越明显呢?可能大部分人想到的原因如下:
 
  一、节省成本
 
  我这里说的大前端不是说移动端和 Web 端组建了一个大前端部门,我这里指的是公司会要求越来越多的程序员需要掌握大前端的技术栈,即就是既能做 Web 端的开发,可能也需要会手机端的开发(不是指的原生,小程序也是手机端,RN 跨平台的也算)。
 
  这样节省成本的原因在于:省人力成本。不管你是用原生开发移动应用,还是会做 Web 端网页和应用开发,这样当然也行了,因为你一个人就把活都干了,不需要招一个移动开发者,一个 Web 开发者了。当然,很多公司最希望的就是你能高效的使用 React 类似的技术,既能做网页,也能顺便用 React Native 给做了。
 
  二、高效快速
 
  怎么高效快速的呢?比如有很多前端框架类似 React 和 Vue 吧,有很多基于他们的 UI 框架可以做到开发 Web 应用的同时,做到适配手机。写一套代码可以用在两个地方,不是更加高效了么?再比如前两年如日中天的跨平台 RN ,写一套代码可以同时运行在 Android 和 iOS 端。
 
  被炒的火热,是因为它确实可以节省成本,高效快速,但是一直没有真正运行起来,打败原生开发,原因就一个:体验不好,界面卡顿,不流畅。
 
  它虽然没有真正打败原生开发,但是这就意味着不是趋势么?
 
  答案是不一定。
 
  以上两个角度说白了都是从企业节省成本,提高效率的方向上讲的。我们下面就从语言发展的角度来讲一讲为什么是趋势?
 
  不知道有多少人读过这本书《黑客与画家》,在《黑客与画家》中,作者保罗 · 格雷厄姆讲到:
 
  无论一百年后的计算机是什么样子,我们基本上可以断定它们的运行速度一定会快得多。如果摩尔定律依然成立,一百年后计算机的运行速度将是现在的74乘以10的18次方倍(准确地说是73 786 976 294 838 206 464倍)。真是让人难以想象。不过实际上更现实的预测并不是速度会提高这么多,而是摩尔定律最终将不成立。不管是什么东西,如果每18个月就增长一倍,那么最后很可能会达到极限。但那时的计算机比现在快得多大概是毫无疑问的。即使最后只是略微快了100万倍,也将实质性地改变编程的基本规则。如果其他条件不变,现在被认为运行速度慢的语言(即运行的效率不高)将来会有更大的发展空间。
 
  ……
 
  既然在现实中一些应用程序本身的效率较低,而另一些应用程序会耗尽硬件提供的所有运算能力,那么有了更快速的计算机就意味着编程语言不得不应付更多的极端情况,涵盖更大范围的效率要求。我们已经看到这种情况发生了。要是以几十年前的标准衡量,有一些使用新语言开发的热门应用程序对硬件资源的浪费非常惊人。
 
  不仅编程语言有这种现象,这实际上是一种普遍的历史趋势。随着技术的发展,每一代人都在做上一代人觉得很浪费的事情。30年前的人要是看到我们今天如此随意地使用长途电话,一定会感到震惊。100年前的人要是看到一个普通的包裹竟然也能享受一天内从波士顿发件、途经孟菲斯、抵达纽约的待遇,恐怕就要更震惊了。
 
  我已经预测了,一旦未来硬件的性能大幅提高将会发生什么事。新增加的运算能力都会被糟蹋掉。
 
  看到保罗 · 格雷厄姆说的,是不是有一点恍然大悟,或者是这么个道理的感觉?所以说:随着 CPU 等各种硬件性能的提升,语言之间带来的一些性能差,慢,都会被硬件提升所抵消,甚至在以后让你都感觉不到了,即使语言性能很差,但是硬件的提升,还会让你感觉有些硬件性能过剩,语言这么烂,都干不过硬件。
 
  这时候,我感觉讲到了跨平台,讲到了大前端,就不得不讲讲最近大热的 Flutter 了。很多人都不看好 Flutter ,就会举例子说:RN 刚出来的时候,也被炒的很热,你看现在怎么样?还不是没起来?就目前来讲,Flutter 所基于的 Dart 语言,还是第三方库都不如其他成熟的框架和语言,很容易理解嘛,刚出来,不能生态这么完善。
 
  但是 Flutter 的好,就一点跨平台好。Flutter 真的是把大前端和跨平台融合在一起了。Flutter 可以说真的是写一次,可以运行在任何地方(Write Once,Run Any Where)。Android ?可以,iOS?可以,Windows ?可以!简直无所不能。
 
  Flutter 的体验不如原生?但是总比 RN 强吧,又是 Google 的亲儿子,程序流畅还易于编写。关键是硬件性能的提升,可以抵消他们的弱点。
 
  很多人都槽点这么一个问题:人的精力是有限的,不可能什么都会,这是对于大前端,对于什么都需要做的一个吐槽!说:“只有广度,没有深度,精力有限,从而导致,你什么都不能做好!”
 
  但是,你们没有发现这么一个趋势么?就是现在的框架和语言,会让你使用一种框架,可以把所有的事都干了,只需要一种框架和语言,这或许就是发展趋势呢?所以说:大家槽点的这个问题,将来或许就不会存在。
 
  最后,留一个开放性的话题供大家讨论。今天看到李彦宏在央视的新年采访中谈到未来可能就不会有手机了,随着人工智能的发展,将来可能只需要通过语音交互,可能会植入芯片,随时随地的方便了解世界各地的事情。而最近在知乎上我又看到了一个话题说:前端只是后端的一个辅助,那么随着技术的进步和发展,未来,前端还有必要存在么?前端的存在形式在未来 10 年,20 年里可能会有哪些变化呢?大家可以畅想一下。
 
  以上观点,仅是自己的一点看法和想法,如不认同,那就不认同吧!哈哈……

第二十九届CIO班招生
法国布雷斯特商学院MBA班招生
法国布雷斯特商学院硕士班招生
法国布雷斯特商学院DBA班招生
责编:pingxiaoli