随着本地市场开始倒向React,我们不得不为Angular未来的大众市场感到担忧。“鱼和熊掌不可兼得”,React和Angular也是一样各有千秋但是势必只能选择一个,特别是对刚刚了解到这两个框架的新手而言更是纠结。
自从Facebook将React的BSD许可证更改为MIT,React似乎在全球的每个开发市场里都开始爆炸式的增长。但是,许多企业家和初创公司直到后来才意识到,React其实并不是一个完善的前端系统——它只是一个库,一个可以将小型应用程序快速扩展成更大的,基于组件划分系统的构建块儿。

React和Angular之间的辩论

Facebook经常被当作它(React)成功的主要案例。但事实上,React只是这家科技巨头所采用的众多技术中的一小部分。毕竟,它只是一个JavaScript UI库。
而Angular,则是一个共同工作的内聚单元库的集合。
虽说Angular在有些React所忽视的方面做得很好,但后者(React)的其他理论实践则执行得比Angular更优秀一些。开发人员总喜欢偏向于他们最了解的东西,这会导致他们在遇见其他自己不熟悉,但可能更适合这种情况的范式时很抗拒——或者说这样的想法常常适用于那些处于初级和中级水平的人。
尽管React越来越受欢迎,但Angular仍继续得到了与Facebook规模相当的技术巨头谷歌(Google)的大力支持。会议和开发人员的支持者对两种基于JavaScript的前端方法都相当推崇。然而在同一领域,可能会有另外一个介于Angular和React之间的后起之秀在赢得人们的更多关注。

我们必须得聊聊Vue框架

数据来源:Google Trends. 红线 = Angular. 蓝线 = React. 黄线 = Vue.
Vue是这个(代码)块里新生的宝宝,人气正在慢慢上涨,它把三人组中React的人气抢去的大半。虽然Vue的社区比Angular和React小得多,但由于它的轻量级,且既不像Angular那么复杂,又能提供比React的核心功能还要多的功能,使得它越来越受欢迎。
因为Vue的创建者实际上拥有AngularJS的背景,这使得Vue比我们所知道的Angular当前的版本及方法更符合React的原则。

接受度和程序员喜爱度

毫无疑问,React很容易被接受,而且它原生移动应用转换友好(的特点)使它可以变成一个完全成熟的应用程序,这在菜鸟程序员的圈子里会很受欢迎。
Angular需要你花更多时间和精力在入门的前期准备上。你得通过从Java中汲取相关概念和体系来入门,这些都是主导谷歌代码基础架构的后端技术。相反,由于Facebook是基于PHP的,它能在该语言中注入良好的组件框架度量。
花一整天的时间来比较React和Angular并不难,重点是两者都有良好的程序员群众基础和强大的社区支持。然而,初创企业更倾向于React,因为他们希望尽可能的压低管理费用。他们的生存发展完全取决于他们进入市场并转向大众需求和趋势的速度快慢。
但许多初创公司往往忽略的是,进入的门槛越低,潜在的质量也就越低。随着越来越多的开发人员变得自学成才并被周遭社区所驱动,一些例如编程范例和整洁的代码这样特定的主题,在初学者的知识海洋中就找寻不见了。这并不是说Angular的开发人员更好,而是说Angular带来了一个特定的,React所没有的强制结构。
Vue则待在它自己的小空间中,对于那些不想卷进程序员版“鱼与熊掌”问题的那一部分的人来说,它的存在恰好解决了React 和 Angular之间的纠结。

Netflix在用什么

事实证明,Netflix正在使用React——以及许多其他后端和基础设施技术。如果我们从整个App生态系统的全局来看,前端技术只占其所使用的一小部分。
PayPal其实在使用Angular这种语言,我们可以看到,在下面给出的HTML代码中随处可见“ng”这样的符号
截图源自:PayPal的HTML
由于Netflix和PayPal本身也都具有很大的体量,它们也并不像谷歌和Facebook(的产品)那样与Angular和React息息相关。所以它们就分别选择了React和Angular作为前端的解决方案。
有人可能会说这会导致遗留代码或其他什么问题,但这两家公司其实都有足够的资金来聘用更多的开发人员,以他们希望的方式来处理他们的代码库。
另外批注一句,GitLab自2016年以来一直都在使用Vue。

一切都是关于解决方案,而不是工具

当关于哪个框架或库比另一个更好的争论愈演愈烈时,似乎没有人在问这个问题——对于我们试图实现的目标,哪一个才是最好的解决方案?
如果(产品的)开发速度是建立在预算紧张的情况下,那么React可能是你最好的选择。如果由于所需的学习曲线使你想要一些更加丰富充实的东西,那么Angular则是最好的选择。想要两全其美? Vue的支持者们肯定会举双手安利它。
其实Angular受欢迎的程度并没有下降。相反,人们的注意力才刚刚被转移。虽然React可能正在吞噬更多的生态系统开发以及大众需求这块蛋糕,且它的名气也越来越大,但这并不影响Angular的稳步发展。
红线 = Angular. 蓝线 = React. Google Trend在5年间为Angular和React提供的全球搜索结果。
同样值得注意的是,Angular在从AngularJS转换之后,不得不从头开始“半重建”他们的社区。虽然他们已经有了一批准备好的用户,但是当Angular 2发布时,每个人都得重新学习所有的东西。
如果我们这样看,我们今天所知道的Angular其实比React年轻了3年。因为原来的Angular和Angular 2+实际上有很大的不同,所以我们并不把前者算在里面。

结语

如果你是一个想知道该学些什么的开发小白——那我劝你不要想太多。因为你会发现在一天结束的时候,这一切都只是JavaScript。 所以你最好在了解你眼中那个“有趣”的事情是如何运作的之后,再去尝试它。
无论你最终使用的是什么框架或是什么库,你都将接触到一些易于转移的范式,它们会帮你更容易地习得另一个框架或库。关键是学好你的第一个框架,而不是长期纸上谈兵,一直把学习这件事儿停留在ToDo list上。
你应该试着成为一名精通编程范式的开发人员,而不要过于专注于或依附于任何一件事情或工具。(你可以)深入研究架构结构、设计和开发组件、理解数据如何在应用程序中流转和状态管理等等。
这些技能的融会贯通才是区分那些被困在初级/中级水平的人和真正高手之间的关键。
本文意译自Aphinya Dechalert在Medium专栏发布的文章
<Is Angular dying because of React?>
原文链接:
***E/N/D***
想要融汇贯通Angular/React?
实战更多业界必备软件开发框架工具?
赢得工业级项目开发经验
摆脱”小白程序员“称号
冲刺今年秋招
👇暑期自救你需要👇

课程介绍

全栈开发课程开课倒计时,名额有限,报名从速

课程咨询

继续阅读