本文作者:IMWeb coolriver 原文出处:IMWeb社区 未经同意,禁止转载 本文为 《 2015 in review》 一文的中文译文,希望通过这篇译文,回顾和记录在2015年,JavaScript领域中发生的值得关注的事情。 本文作者为Craig Buckler, Craig 是一名英国的web开发顾问,并且是自由职业者。他在1995年于IE2.0上开始开发他的第一个网页。到目前为止Craig已经在sitepoint上发表了1000多篇文章。undefined
JavaScript刚刚经历了标志性的一年。除了在2015年5月达到了20岁“高龄”,它产生了大量新鲜技术,各种各样的项目,吸引了越了越多人的兴趣,并且这种成长趋势呈指数增长。可能是我自己进入了某个奇怪的循环(以致觉得js的增长呈指数),但我实在想不到有其它哪个技术,能有着JavaScript的发展步调。现在越来越难在JavaScript的技术潮流中与时俱进了,因此,希望这篇总结能够帮到一些。。
ECMAScript Harmony或者说是ECMAScript 6,在经历了7年之久的漫长等待后,终于于2015年 6月随着一份 完整的官方文档 而问世。
ES6后来很快被重新命名为ES2015,虽然我不知道会有谁这样叫它。这个更名的出衷是好的,毕竟2015年是规范文档完工的年份。JavaScript工程师现在可以声明他们完全兼容ES2015,大家都会明白是啥意思(就是兼容ES6嘛,不明白作者为啥在ES的命名上纠结这么多。。)。不幸的是,ES2015这种在2016年1月1日后看起来有点过时的标记,不会有多少人愿意以此来声明自己(还是在纠结名字。。)。
ES2015对于开发者来说有啥重要的概念呢:
WebAssembly在2015年6月份正式被声明,并且被炒得火热。它是web环境里的一种底层的二进制语言,类似于汇编语言。
将大规模的应用以web的形式在浏览器上呈现一般不现实。一个游戏或者很复杂的应用程序,可能需要很多MB的源代码需要下载,然后编译成字节码并最终以机器码的形式运行进来。WebAssembly让这个流程变得更加高效,通过将源码编译为更简单,能更快被处理,并且可与JavaScript引擎兼容的字节码。浏览器可以因此更快地加载和执行代码。
我们之前已经探索过web里的字节领域,例如Flash, Silverlight, Java和Googlg Native Client(NaCI)都尝试过类似的功能,但应该都没有WebAssembly现在的优势:
从2014到2015年,Node.js从一个相对称手的运行环境,变成了一个必不可少的技术。Node.js无处不在,你的个人电脑,你的服务器,你的树莓派,你的嵌入式设备等等。甚至开发者们通过Node.js来使用构建工具,例如Grunt和Gulp。
2015年见证了围绕着Node的各种“政治斗争”,然后这些斗争在Node.js与io.js分支合并之后画上了句号。这意味着Node.js v0.12可以在9月份更名为 Node.js v4.0。是的,跳了三个大版本!因为io.js走远到v3.0并且已经回不去了。。
当然,版本号对大多数人只是浮云。。。除了对那些认为Node 4+比Ruby2和Python3更叼的人外。一个月后Node.js要进化到v5版本了,超越了.NET4,快要赶上PHP7啦!(版本号升级比赛么。。。)
在2015年里有2269个新的JavaScript框架出现。上面的数字我没经过任何调研,而是凭空捏造的,但估计很少有人会怀疑这个数字的正确性(无语。。。)。毕竟太难跟进所有新的框架了。。
对于JavaScript开发者来说,不可能很自信地使用一个特定的基础库或框架。在那些“啥都行”的框架中,使用时出现的大大小小的问题之多,可能堪比框架本身解决的问题数量。重度依赖某个框架是有风险的,毕竟框架将底层技术进行了抽象。就像下面这个明智的家伙(其实就是作者自己。。)说的,前端里JavaScript依赖有明显的问题
如果实在是需要,可以使用框架,但千万不要认为框架本身永远是适用的。在你项目进行到半途的时候,更新更好的框架可能出现。一定要记住,框架只是一个选项 -- 你可以选择不使用。对于较小较敏捷的项目,使用越少的依赖会越安全。
你还记得以前那些无忧无虑的时光吗?那个时候,进行web开发只需要一浏览器,一文本编辑器和一FTP客户端足矣。现如今,你需要Node.js,Gulp/Grunt,git,静态HTML造成器(EMMET之类的吧),Sass编译器, Autoprefixer,minifiers,uglifiers,linters,BrowserSync(LiveLoad之类的吧)和其它一大堆构建工具,来创建一个基本的 “Hello World”页面。
看起来不错啊,我们可以开发越来越复杂的web应用了,自动化工具可以使我们简化一些繁杂的操作,从而让开发者们更能专注于应用中更有趣的部分。2015年对于下面的一些工具来说是有重大意义的一年:
“官方声明”(作者自己声明):Node.js比PHP更好! 这篇文章虽然没有直接喊出这个口号,但是可以看到Node.js目前已经发展到了什么地步。可能PHP在版本7的时候提高了性能,但最终还是要用你自己用得最爽的技术(对于作者来说就是Node)。最近WordPress.com的站点从PHP迁移到了Node.js,项目的应用比语言本身更有说服力。
2015年技术界中散播得最多的一个词是“同构(isomorphic)”。SitePont里之前对此有过讨论 并且提供了样例代码。本质上是,你的代码一次编写,到处运行 -- 在浏览器里或者在服务器上。这对一些小应用来说很简单,但很快会复杂得让人头大。
jQuery 3.0的第一个alpha版本在7月发布。两个新的version出现,一个适用于现代浏览器,另一个兼容IE8。 12月份,Mozilla宣布他们停止售卖Firfox OS智能机。这不是Firefox OS的终结 -- 开发仍在继续,并且在一些智能电视中应用。相比于倒腾操作系统,弄一下离线WEB应用是否更有前途?
2015年最大的公司级JavaScript惊喜来自于Microsoft:
大家对待JS的态度如今有了转变,几年前, 开发者们认为它是很不成熟的,并且尽量不使用。在2016年,JS语言本身,以及相关工具和框架,将会继续增长和发展!
跟上时代步伐不容易啊,但如果跟着JavaScript走,你就不会太落伍。