2015年的JavaScript:Angular之类的框架将被库取代

jopen 9年前
注* 本文表达了关于Angular和Ember这样的整体性解决方案将被更小更专注的library(库)这样的观点(有节选),之前的一些文章也表达过相似的论述:我们不需要JavaScript框架 , Angular.JS出了什么问题?

JavaScript 的世界似乎进入了流失率危机。新框架新技术以不可持续的速度推出并流行。但我认为,社会将适应并采取新的响应式做法。我相信开发者将从整体性框架 (frameworks),如Angular.js和Ember等转移到一系列小的,组合的,专业性库(library)上面,以减轻流失的风险,并允许 解决方案,在不同的关注领域分别竞争。

让我来解释一下。

搅动


如 果你之前并没有关注过<ng-community> angular社区,在2014年十月ng-europe (欧洲)会议上,Angular开发团队透露了一些有关Angular 2.0 显著更新的路线图。其中较具争议的是,NG2.0将无法与现有的Angular代码向后兼容。事实上,一些关键的概念将被搁置。Angular的开发将必 须掌握一个全新的框架。

可以理解,这打乱了很多人。不管正确与否,开发者在在过去两年中如此努力获取的知识,方法,经验和代码,现在已经被随意弃用。更糟的是,更换甚至没有任何过渡。新开项目将在十二个月之后2015年末发布,反对者觉得,Angular2.0可能“生下来就死”了。

老实说,无论Angular团队在2.0版本做什么改动,我都会放弃它。强调离线功能,并放弃支持旧的浏览器让新的东西听起来很棒。

但这是一个烂摊子。语法看起来像狗屎,这与1.3之间的巨大差距意味着我们真正的就业机会,其中活了好多年的项目都打退堂鼓了。我不能告诉我的老板,我们要建立一些不可思议的,但我们需要规划一个代码而已,没有新的特性,直到18个月改写完代码以后。

by jbarkett, Reddit 上发表的评论

有很多不快的评论专门指向Angular和谷歌 - 有些是中肯的,有些或许并非如此。但最高得票意见之一的并不是关于Angular。它指向整个JavaScript环境:

正 如许多人在这里看到的,时尚的Web开发,现在成为了一个笑话;我很认真很高兴我找到了自己的方式。一旦你被迫对付这种没有意义的东西,你要么尖叫着跑出 去或者去疯狂迷恋。它甚至没有碎片组合。我已经失去了对MV框架们的兴趣,我将框架定义为“使用Foo,Bar和Baz”的组合,其中Foo是你从来没有 听说过的,有3%的使用份额的事件库;Bar是你从来没有听说过的,有2%份额的模板库;和Baz你从来没有听说过有1%的人使用的数据绑定库,使得组合 有用?......我不知道,也许,作者在未来五分钟,就会切换到一个新的库。

我不明白。我不明白为什么有人认为这是一个好主意。我见过用这个东西所产生的代码,它真是令人难以置信的可怕,因为没有人有时间去了解,它在三十秒时间内所改变的任何东西。

by othermike, reddit  

Othermike的问题,在我看来,真的是客户流失的问题。有太多该死的JavaScript框架,它们改变的太他妈的快了。

两 年前,JavaScript在灯火辉煌中庆祝自己的复兴,得益于一个迈向更现代化,更规范的浏览器(例如不是Internet Explorer)和Node.js的发展,作为一种用于前端构建的工具技术。新技术以不同方式出现了。只有12个月的时间似乎就成为事实,现代网络将以 Backbone.js(也许用Marionette)为主,与Grunt作为任务驱动,Require.js和Handlebars作为基础模板。然 而,半年过去了,这些技术都已经很明显被取代,就像blogosphere那样成为过去式了 - 现在,到处是关于关于Angular,Gulp和Browserify。现在这个堆栈似乎也值得商榷了。



这种变化的步伐能否持续?

我很坦率地承认对我不断接触到新技术不知所措。

by noname123 HackerNews


创 新是伟大的,但这种流失率似乎过高。作为开发者花费大量时间,去掌握新的框架和技术时,也不能保证他们的长寿。程序员要编写 - 他们想建立的东西。但当我们花大部分的时间在学习新框架上,如何才能做出点东西呢?当我们在摸索与不熟悉的高新技术,我们怎样才能像个工匠呢?

并非没有希望


现实是严俊的。但人是聪明的,开发者足智多谋,写出新的应用程序的基本要求是不让任何人放弃它。那么,我们该怎么办?

我觉得有我们可以总结出三个主要的经验教训:

  • 对新技术持谨慎怀疑的态度。将那些很酷的新的Github上项目投入生产要小心一些。等到到普及了再开始采纳。
  • 不要太相信大企业做的东西。谷歌做这种事情已经不是第一次了。他们的利益并不总是和你的一样。
  • 宁 愿使用专用库来代替整体框架。当你选择了一个框架,你就做了了一个大的,长的承诺期限。您需要了解该框架内部各种运作方式和奇怪的行为。而你所掌握的东 西。如果该框架被证明是错误时,你会失去很多。但是,如果你从库中选择,你能负担得起,库是可以随意更换的,你就有时间休息了。

Libraries(库) > frameworks(框架)?


在Angular的争议发生后,Reddit上的另一篇文章问:JavaScript开发人员应该迁移到什么技术

下面是javascript程序应该做的:

React.js 和 Flux (一只有视图 view-only 的库和事件驱动模块)
Ember.js (MVC框架)
Knockout.js (视图库)
Backbone.js (MVC框架)
Meteor (同构框架)
Mithril (MVC框架)
Ember (MVC框架)
‘不要框架,只需要一堆库就可以了’
Vue.js (视图库)
Breeze.js (数据库Model-only)
Ractive (视图库)