前端之变终前端的未来

国内成立最早的白癜风医院 http://nb.ifeng.com/a/20190610/7452928_0.shtml

若干年前,一位程序员做过一个预测:

AnyapplicationthatcanbwrittninJavaScript,willvntuallybwrittninJavaScript.(任何可以用JavaScript来写的应用,最终都将用JavaScript来写)

某种程序上来说,它可能是一个事实,JavaScript已经参与到应用级技术方向的各个方面,在后端,移动端,桌面端都存在它的身影。甚至连mongoshll都是支持JS语言的。

但坦率的说,这些也并非一帆风顺的事情。

本周,将进入前端之变的最终章,谈论我对前端技术发展的一些个人的思考与分析。本周为前端之变的最终篇,前七篇分别是:

前端之变(一):技术的变与不变前端之变(二):不变的前端前端之变(三):变革与突破前端之变(四):进击的前端前端之变(五):王者归来前端之变(六):引领式变革,从命令式UI到声明式UI前端之变(七):前端的困境

在本篇中,我将试图就以下问题做出回答:

前端技术是否能成为后端的主流?前端技术是否能成为移动端的主流?前端技术是否能成为桌面端的主流?前端技术未来独特的优势是什么?

声明

所有观点仅为个人观点,我希望观点能引发你的思考,而不是引发对立的情绪或无意义的争吵。

如果你看了我的观点,认为它不对,然后自己能思考自己认为正确的观点是如何,这就表示我这篇文章是非常有价值的。

前端技术在后端

NodJS的火爆与好评,我在若干年前就有所感受,那时候我还只是个用Java做后端的架构师。

一个最简单的问题是:NodJS是否能取代Java成为后端的主流或另一种可选项?

我的意见是:

前端技术几乎没有可能在后端成为主流

那个不讨人喜爱的Java,从未被撼动

Java这门语言很多人不喜欢,特别是很多优秀的程序员觉得它很一般,这是事实。

所以,其实不只是NodJS,这些年来,在后端,试图挑战Java的多了去,类似动态JVM的语言Scala,Groovy试图取代Java,它们都提供了Java不具备的很多语言特性,比如Scala,函数式的风格极受好评,优秀的程序员特别喜欢这样的语言。还有类似Googl的GO语言,对Java也造成了一定的挑战。

但很可惜,包括NodJS在内的上述这些,皆没有成功取代Java成为主流。

其实这些语言各有特性与优点,可能Java与它们相比,确实很不出彩,但包括NodJS在内的众多语言,始终有两个特性无法与Java语言相抗衡的。

Java简单易学,这使得基本Java语言构建一个团队的成本较低,这是一个很重要的优势。现在几乎所有项目,都是团队活动,国内的互联网基本还处于依靠堆人的阶段,选择Java是最符合现状的。Java的生态过于强大。虽然包括NodJS,Scala类似的语言有很多独特的做点,但在生态上完全无法与Java抗衡,现在不是二三十年前,随便一个项目或产品都涉及到一大堆特性,存储,分布式,缓存,定时任务,集群等,Java在这些方面几乎有着其它语言难以匹敌的生态。

再回过头来,说下NodJS本身的缺陷:

JavaScript不是一个面向对象的语言,做为NodJS的语言,它在复杂业务前面几乎没有优势可言,也就是在应付复杂的业务及项目上,远不及Java。而后端就是复杂的所在地,后端就是用来处理复杂业务的。它的异步事件循环机制确实是个极大的优势,但这也不是非常出彩的点,其实以Java为主的后端生态也有类似的解决方案,比如SpringWbFlux,还有我用的vrt.x等,同样是异步机制,其性能还优于NodJS。但这些本身也没成为主流,因为连它们都无法与Java的同步线程阻塞的生态抗衡。在考虑生态等各方面因素下,大多数团队还是会选择Java传统模式。

因此,我认为一个显而易见的结论就是:

JavaScript语言下的NodJS在后端无法成为主流,但它会成为另一个小众的选择方案

前端技术在移动端

移动端的技术呈现五花八门的发展趋势,我曾经专门写过一篇解读文章,有兴趣的可以阅读下:

企业移动化信息建设的一些思考(二)移动开发技术发展

但总体说来,前端技术在移动端的趋势是:

以前端技术为核心的开发方式在移动端越来越成为主流方式

前端技术参与到移动端的方式主要有以下几种:

网页的方式App开发,以RactNativ为主Hibird的模式,以Cordova为代表小程序,依赖于


转载请注明:http://www.aierlanlan.com/grrz/4193.html