专栏首页IMWeb前端团队JavaScript: 2015年度回顾(译文)

JavaScript: 2015年度回顾(译文)

本文作者:IMWeb coolriver 原文出处:IMWeb社区 未经同意,禁止转载

本文为 《 2015 in review》 一文的中文译文,希望通过这篇译文,回顾和记录在2015年,JavaScript领域中发生的值得关注的事情。 本文作者为Craig Buckler, Craig 是一名英国的web开发顾问,并且是自由职业者。他在1995年于IE2.0上开始开发他的第一个网页。到目前为止Craig已经在sitepoint上发表了1000多篇文章。

正文

JavaScript刚刚经历了标志性的一年。除了在2015年5月达到了20岁“高龄”,它产生了大量新鲜技术,各种各样的项目,吸引了越了越多人的兴趣,并且这种成长趋势呈指数增长。可能是我自己进入了某个奇怪的循环(以致觉得js的增长呈指数),但我实在想不到有其它哪个技术,能有着JavaScript的发展步调。现在越来越难在JavaScript的技术潮流中与时俱进了,因此,希望这篇总结能够帮到一些。。

ECMAScript闪亮升级

ECMAScript Harmony或者说是ECMAScript 6,在经历了7年之久的漫长等待后,终于于2015年 6月随着一份 完整的官方文档 而问世。 ES6后来很快被重新命名为ES2015,虽然我不知道会有谁这样叫它。这个更名的出衷是好的,毕竟2015年是规范文档完工的年份。JavaScript工程师现在可以声明他们完全兼容ES2015,大家都会明白是啥意思(就是兼容ES6嘛,不明白作者为啥在ES的命名上纠结这么多。。)。不幸的是,ES2015这种在2016年1月1日后看起来有点过时的标记,不会有多少人愿意以此来声明自己(还是在纠结名字。。)。 ES2015对于开发者来说有啥重要的概念呢:

  • Class声明类
  • 字面量对象的增加
  • let 和 const定义局部变量和常量
  • 箭头函数
  • 字符串模板
  • iterator迭代器
  • generator函数
  • 解构
  • proxy
  • weakmap 和 weakset
  • symbols
  • promises
  • reflection 上面很多特性都是语法糖。例如,JavaScript仍然会保持原型式继承,但是提供了类式的声明和继承方法,为了那些以JS面向对象的方式蛋疼为理由,而不愿意从自己原本的语言切换过来的开发者们。 ES2015在环境支持性方面目前仍然不完成,但是可以通过将代码编译为ES5的方式来实现,这类转换工具有Babel等。这样可以正常进行开发,但是额外增加的编译步骤会使得测试和测试更麻烦。由我个人而言, 我作为一个JS鲁德分子(强烈反对提高机械化和自动化者。。作者真幽默),更倾向于暂时使用旧的语法,直到ES2015的支持情况有足够的改善。 但是从现在开始忘记ES2015吧 -- 让我们向ES7/2016前进!

JavaScript复仇者联盟

WebAssembly在2015年6月份正式被声明,并且被炒得火热。它是web环境里的一种底层的二进制语言,类似于汇编语言。 将大规模的应用以web的形式在浏览器上呈现一般不现实。一个游戏或者很复杂的应用程序,可能需要很多MB的源代码需要下载,然后编译成字节码并最终以机器码的形式运行进来。WebAssembly让这个流程变得更加高效,通过将源码编译为更简单,能更快被处理,并且可与JavaScript引擎兼容的字节码。浏览器可以因此更快地加载和执行代码。 我们之前已经探索过web里的字节领域,例如Flash, Silverlight, Java和Googlg Native Client(NaCI)都尝试过类似的功能,但应该都没有WebAssembly现在的优势:

  • 需要对JavaScript引擎的改造较简单
  • 不需要浏览器插件
  • 由Google, Microsoft, Mozilla和Apple几位大佬作为支持。 激动吗?你最好复习一下你的C/C++技能,因为这是WebAssembly首个编译支持的目标(复仇者联盟第二位选手,第一位是谁?JavaScript队长啊!)。

Node.js不再 Fork

从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年对于下面的一些工具来说是有重大意义的一年:

  • Atom 1.0 -- GitHub出品的编辑器,基于Node.js并且支持hack(自定义),于6月份发布。
  • PostCSS -- 高效的模块化CSS编译器,在今年出现的工具中我很看好它。
  • 一些例如EdgeVivaldi的浏览器上的开发者工具。 除去所有这些第三方的开发工具不算,一个web页面的平均体重达到了2MB,包含100多个文件请求。你觉得这是一种进步吗?可能真的不是,如果你看了 Klint Finley的那篇文章的话。技术本身没有错,错的是使用方法。关掉页面JS后会干掉页面上的广告、弹窗、模态对话框、无限滚动页面、实时消息提示这些很令人蛋疼,但我们认为很重要的功能。。。

最后

“官方声明”(作者自己声明):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:

  • Visual Studio Code,一个新的跨平台的,可扩展的,类Sublime Text/Atom的编辑器。
  • vorlon.js,一个开源的远程调试和测试工具。
  • Chakra,Edge的JS引擎开源啦。 鉴于微软对web界的开放,我们是不是该叫它“新微软”了?

2016年展望

大家对待JS的态度如今有了转变,几年前, 开发者们认为它是很不成熟的,并且尽量不使用。在2016年,JS语言本身,以及相关工具和框架,将会继续增长和发展! 跟上时代步伐不容易啊,但如果跟着JavaScript走,你就不会太落伍。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JavaScript: 2015年度回顾(译文)

    JavaScript刚刚经历了标志性的一年。除了在2015年5月达到了20岁“高龄”,它产生了大量新鲜技术,各种各样的项目,吸引了越了越多人的兴趣,并且这种成长...

    IMWeb前端团队
  • IMWebConf2017讲师系列之狼叔

    ? 狼叔(Qunar前端架构师) 桑世龙,江湖人送称号「狼叔」,天津空弦科技 CTO,开源项目 Moajs 作者,Node.js 技术传道者。曾就职在新浪、...

    IMWeb前端团队
  • Node 10 新功能概览(译)

    以代号“Dubnium”为代表的Node 10于2018年4月24日发布,并将于2018年10月进入长期支持(LTS)。JavaScript开发人员一直在激动地...

    IMWeb前端团队
  • JavaScript: 2015年度回顾(译文)

    JavaScript刚刚经历了标志性的一年。除了在2015年5月达到了20岁“高龄”,它产生了大量新鲜技术,各种各样的项目,吸引了越了越多人的兴趣,并且这种成长...

    IMWeb前端团队
  • 用node.js进行网红直播带货平台开发的好处

    今天想要介绍的主人公是node.js,在进行web服务端的开发中,我们常会使用到它,对于网红直播带货平台开发者而言,node.js也绝不陌生,它常被用于开发网红...

    手机直播系统源码
  • 不只是Web:十大令人振奋的Node.js项目

    除了在Web服务器领域大展拳脚之外,Node.js同样也在无处不在的JavaScript应用程序创建当中散发出耀眼的光芒。 ? Node.js:不只是网站 就在...

    李海彬
  • CCF乘用车细分市场销量预测baseline(0.488)

    本文只是一个基本的统计策略baseline,分数一般,可以继续优化或者作为融合的一部分。

    Coggle数据科学
  • ​nginx的配置系统

    配置文件中以#开始的行,或者是前面有若干空格或者TAB,然后再跟#的行,都被认为是注释,也就是只对编辑查看文件的用户有意义,程序在读取这些注释行的时候,其实际的...

    后端技术探索
  • 你觉得 Node.js 是单线程这个结论对吗?

    ——爱默生

    五月君
  • LintCode-60.搜索插入位置

    你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。

    悠扬前奏

扫码关注云+社区

领取腾讯云代金券