链接:http://www.sitepoint.com/javascript-2015-review/

JavaScript经历了一个不平凡的一年。尽管到5月份已经20年了,关于JS的新闻、项目和兴趣继续成倍增长。或许这是一个奇怪怪圈,但是我想不出另一个技术有类似发展速度。JS变得越来越难以跟上,所以我希望这篇总结文章有助于大家更加了解JS.

ECMAScript 快速发展

七年的漫长等待,在2015年6月ECMAScript Harmony 或ECMAScript6.0 规范正式发布。

ES6很快又称为ES2015,尽管我不知道有谁这样叫过。名字的更改是好的;2015年完成了规范。JavaScript引擎现在可以完全支持ES2015而且每个人都能理解。不幸的是,营销类不会喜欢这点;没人回叫ES2015,似乎2016年一月一日它听起来就过时了。

ES2015对开发者来说意味着什么?做好准备吧类似:

  • classes
  • enhanced object literals
  • let and const
  • arrow functions
  • template strings
  • iterators
  • generators
  • destructuring
  • proxies
  • weakmap and weakset
  • symbols
  • promises
  • reflection

其中大部分是语法糖。例如,JavaScript将保存原型继承但是提供classical 继承,例如对于那些从其他语言迁移来的开发人员提供了 class 结构。

ES2015的支持仍然是不完整的,但是可以使用转换器如Babel 将大部分代码转换为ES5。这样也很好但是需要额外的工作使测试和调试变得更加复杂。就我个人而言,我是一个JavaScript勒德分子更喜欢旧的东西直到它的支持得到改善。

但是从现在起忘记ES2015 -- 让我们继续ES7/2016!

JavaScript复仇者联盟

随着WebAssembly的公布,引起一阵狂热;一个低级地二元包装类集合的web语言!

向浏览器发布大型应用程序并不总是可行的。一个游戏或复杂的程序需要下载数百兆源代码,编译成字节码并最终以机器代码运行。WebAssembly通过编译源码成一个更简单/更快的处理使这个过程更有效,Javascript引擎兼容字节码并且打包在一个紧凑的二进制文件里。浏览器代码将因此下载并且更快的开始。没有必要比正常的JavaScript运行更快但是可以优化。

我们之前已经见过二进制的土地。Flash, Silverlight, Java和Google Native Client(NaCI)全是类似的。但是WebAssembly应该有更好的机会展现它。

1. 需要相对简单的JavaScript引擎的变化

2. 不需要浏览器插件,并且

3. 需要Google, Microsoft, Mozilla 和Apple的支持

兴奋吗?你最好温习下你的C/C++技能,因为他们是第一个WebAssembly编辑器的目标。

Node.js 分叉
    Node.js从2014一个小众技术变成2015的必备技术。Node.js无处不在;桌面, 服务器,树莓派,嵌入式设备等等。即使来着其他领域的开发人员采用Node.js使用构建工具例如Grunt和Gulp。

2015年见证了关于Node的的党派争论并以与io.js合并结束。这意味着Node.js v0.12将在9月份被Node.js v4.0取代。是的,这是一个3个整版本的跳跃因为io.js已经达到版本3.0,也不能倒退了。

当然,版本号码也不意味着什么。。。除了那些现在认为Node.js 4+比Ruby 2he Python 3更先进。V5会在一个月后到达,他也会取代.NET4. 并且在速度上会赶上PHP7!

框架疲劳

2269个新的JavaScript框架在2015年发布了。我虚构了这些数字绝对没有研究过,但是很少有人会怀疑的。很难去追逐这些框架。。。

  • AngularJS依然很流行但是使用上已经达到稳定,它在2016年推出2.0版本会有更新。
  • React已经吸引了浓厚的兴趣。
  • Meteor承诺一个全栈同构JavaScript应用平台。
  • Vue.js 达到版本1.0 并且Aurelia发布了。
  • Ember, KnockoutBackbone.js已然健在
  • 其他,例如Rendr, 看起来他们会受欢迎,但是却没有。

对于JavaScript开发者是不可能有信心去依靠一个特定的代码库。对于一体化框架能解决很多问题但是也能引起很多问题。依赖一个框架是非常危险的,根据这篇文章--前端Javascript依赖是完全错误的明智建议,需要提取框架底层技术。

如果你必须使用一个框架但是从不认为长期是可行的。新的、更好的框架替代品在你开发一半的时候出现。永远不要忘了框架是一个选项--你不需要一定要用。小而灵活,最小的依赖关系的项目是一个更安全的赌注。

工具浪潮

你还记得那些无忧无虑的日子吗,web开发只需要一个浏览器,一个文本编辑器和一个FTP客户端。现在你需要Node.js, Gulp/Grunt, git, 静态HTML生成器, Sass编辑器, Autoprefixer, minifiers, uglifiers, linters, 浏览器同步和一系列其他构建工具来一个基本的“Hello World”页面。

这是好的。我们正在开发更加复杂的web程序,工具让我们自动化平凡的流程,把精力集中到更有趣的棘手部分。2015是一个伟大的一年,因为:

  • Atom 1.0--GitHub的Node.js-提供可控制编辑器,在六月已经发布了
  • PostCSS- 快速的、模块化CSS处理器,获取了今年我的工具奖。
  • 一系列新的浏览器包括EdgeVivaldi增强许多开发工具。

是的,尽管所有这些免费优化工具,网页平均重量要多2MB,并且包含一百多个单独文件。这是进步吗?或许不是,如果你读过Klint Finley的这篇文章我关闭JavaScript整整一个星期,感觉太棒了。其实这不是科技的错误,是实践方面。关闭JavaScript广告、弹出框、对话框、无限滚动的页面、社交注册提示、时事通讯和其他一些我们认为在web页面上很重要的功能。

一些公司希望停止网页成为糟糕的替代品,例如Facebook InstantGoogle Accelerated Mobile Pages.我不相信一个隔离的非标准web是答案。

最后

    据官方消息:Node.js比PHP更好!无可否认地,这篇文章没有做出这样的表态,但是它说明了Node.js已经到来。或许PHP正在提高版本7的速度来获得赢的局面,但是最后使用任何让你觉得舒服的语言。颇有争议地,最近他们WordPress.com前端从PHP转换到Node.js.但是我怀疑指的更多关于Colypso项目的状态而非语言。

2015年的技术术语是“同构”。SitePoint已经讨论过,提供了示例代码. 但是其实这意味着JavaScript代码一次编写任何地方都能工作 - 在浏览器或者服务器上。对于小型独立的应用程序一开始是相对简单,但很快就会变得极为复杂。

jQuery 3.0首次在7月发布。承诺发布两个新的版本;一个用于现代浏览器,一个兼容版包括兼容IE8。团队期待一些有成就的突破改变。

11月,Mozilla宣布他们将停止销售JavaScript驱动的Firefox操作系统的智能手机。

这不是Firefox 操作系统的终结 -- 开发继续,并会应用到一些智能TVs -- 但是这些信号是不好的。或许最好是押注在一些还未知的操作系统的安装,离线web应用程序?

2015年最让人惊喜的JavaScript公司来自Microsoft:

  • Visual Studio Code,一个新的跨平台的扩展, 类似Sublime Text/Atom编辑器
  • vorlon.js, 一个开源的远程调试和测试公司,
  • Chakra, Edge的浏览器引擎,

鉴于最近开发网络,或许我们应该将该公司成为“新微软”?

展望2016

对JavaScript的态度已经改变了。几年前(不公平)JavaScript被嘲笑虽然难以理解,程序员避开有bug的脚本语言。现在,你无法避免这个语言,2016年工具、框架和项目的发展将会继续。

虽然不容易跟上,但是回归JavaScript不会有太大问题。

标签: 2015 回顾、ES2015, es6, javascript框架、JavaScript工具、node.js、WebAssembly

JavaScript: 2015 年回顾与展望的更多相关文章

  1. JavaScript jQuery 入门回顾

    ​$符号 $是著名的jQuery符号.实际上,jQuery把所有功能全部封装在一个全局变量jQuery中,而$也是一个合法的变量名,它是变量jQuery的别名: window.jQuery; // j ...

  2. JavaScript中作用域回顾(避免使用全局变量)(瀑布流的实现)(scroll事件)以及Django自定义模板函数回顾

    页面显示照片样式为瀑布流: 上面的div个数可以按照自己安排进行划分.img的分布可以使用模板标签以及自定义模板函数进行排布: 自定义模板函数实现可以看,最后几列:python---django中模板 ...

  3. 关于学习JAVA程序设计语言的回顾与展望

    回顾篇 时光荏苒,大学生活已然过半.看了老师分享的几篇博文,我的内心是震憾并且惭愧的.相比别人,自己做的实在是不够多,不够好.在刚刚结束的大二上半学期,我学习了JAVA初级程序设计,虽然每节课都认真听 ...

  4. 新的开始 | Arthas GitHub Star 破万后的回顾和展望

    一切新的开始,都始于一个里程碑. 2月20日上午,Java 开源诊断工具 Arthas 的 GitHub Star 突破10000,距离开源后的第一个Release 版发布仅 147 天. 从中,我们 ...

  5. JavaScript jQuery 入门回顾 2

    JQuery 滑动 利用jQuery可以在元素上创建滑动效果. slideDown() 向下滑动元素. slideUp() 向上滑动元素. slideToggle() 在 slideDown() 与 ...

  6. JavaScript 快速入门回顾

    数据类型Number JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型: 123; // 整数123 0.456; // 浮点数0.456 1.2345e ...

  7. Javascript基本类型回顾

    本文是学习和总结ECMAScript5.1规范形成的.是对规范中所提及的Javascript类型进行剖析后的个人观点的表达(如有Bug望各位道友指正).主要是各类型的实例方法,不包含任务构造函数的方法 ...

  8. SE_Work0_回顾与展望

    项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求:阅读推荐博客并回答问题 热身作业阅读部分要求 我在这个课程的目标是 提升团队管理及合作能力,开发一项满意的工程项目 这个作业在哪个 ...

  9. Apache HBase 2015年发展回顾与未来展望

    编者按:高可用架构推出 2015 年度回顾系列文章,分享在架构领域具有典型意义的年度案例,本文由张虔熙分享.转载请注明来自高可用架构公众号「ArchNotes」.   张虔熙,Hulu 网,专注于分布 ...

随机推荐

  1. 记录下这周的mysql调优工作

    这周一至周四基本都在做mysql的测试和调优工作,包括erlang端对mysql的写入测试,到今天为止暂且告一段落,下周先做下其他的开发.    测试环境    使用的测试环境是aliyun的杭州节点 ...

  2. oo总结

    架构设计 第一次作业 需求分析 这次作业是针对类中的一些元素,如属性,操作,继承,实现等查询,所以这次的架构我们的第一感觉,按照正常的结构在类中存属性操作,继承的父类和实现的接口等. 具体功能 为了实 ...

  3. swift基础-2

    一.基本运算符 let a = 5 var b = 10 b = a if a = b{ swift 中赋值运算符,并不将自身作为一个值进行返回,所以编译不合法,帮开发者避免错误,很人性化的语言 } ...

  4. 3285 转圈游戏 2013年NOIP全国联赛提高组

    3285 转圈游戏 2013年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond       题目描述 Description n 个小伙伴 ...

  5. Kendo MVVM 数据绑定(十) Source

    Kendo MVVM 数据绑定(十) Source Source 绑定可以把 ViewModel 的值和由 Kendo 模板定义的目标元素绑定,如果 ViewModel 的值发生变化,被绑定的目标元素 ...

  6. Hive的HQL(2)

    Hive基础(1) Hive的HQL(2) 1. HQL的数据定义,HQL是一种SQL方言,支持绝大部分SQL-92标准.但是和SQL的差异为:不支持行级别的操作,不支持事务等.HQL的语法接近于My ...

  7. Exchange 用户邮箱导入/导出

    在第2部分中,我将向您介绍如何使用Exchange Server中提供的新cmdlet导入/导出数据,以及如何查看导入和导出的信息统计信息这样做. 走起! 将数据从PST文件导入到邮箱 现在是时候尝试 ...

  8. HDU 1124 Factorial (阶乘后缀0)

    题意: 给一个数n,返回其阶乘结果后缀有几个0. 思路: 首先将n个十进制数进行质因数分解,观察的得到只有2*5才会出现10.那么n!应含有min(2个数,5个数)个后缀0,明显5的个数必定比2少,所 ...

  9. 【转】实用API大全

    有道翻译APIhttp://fanyi.youdao.com/openapi有道翻译API支持中英互译,同时获得有道翻译结果和有道词典结果(可能没有),返回格式为XML或JSON. 百度翻译APIht ...

  10. 【转】瓜娃(guava)的API快速熟悉使用

    http://www.cnblogs.com/snidget/archive/2013/02/05/2893344.html 1,大纲 让我们来熟悉瓜娃,并体验下它的一些API,分成如下几个部分: I ...