前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript: 2015年度回顾(译文)

JavaScript: 2015年度回顾(译文)

作者头像
IMWeb前端团队
发布2018-01-08 16:58:15
7770
发布2018-01-08 16:58:15
举报
文章被收录于专栏:IMWeb前端团队IMWeb前端团队

本文作者: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闪亮升级

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走,你就不会太落伍。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正文
    • ECMAScript闪亮升级
      • JavaScript复仇者联盟
        • Node.js不再 Fork
          • 框架显露疲态
            • 工具的浪潮
              • 最后
                • 2016年展望
                相关产品与服务
                云开发 CLI 工具
                云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档