链接: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. 【Design Patterns】监听器模式

    监听器模式 监听器模式其实是观察者模式中的一种,两者都有关于回调的设计. 与观察者模式不同的是,观察者模式中存在的角色为观察者(Observer)和被观察者(Observable) 而监听器模式中存在 ...

  2. oo总结

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

  3. 解决ueditor jquery javascript 取值问题

    代码如下: var content = UE.getEditor('myEditor').getContent();   myEditor是ueditor 的名称name.   代码如下: <t ...

  4. 'gets' undeclared here (not in a function)

    原文:http://www.cnblogs.com/hjj801006/p/3988220.html 1.在命令行输入:find -name stdio.in.h.查到有两个文件中含有stdio.in ...

  5. JFinal免费公开课更新中

    价值千元的课程,免费报名学习,JFinal学院-小木 录制JFinal视频教程,JFinal核心已经周边涉及到微信小程序开发.数据库.前端实战等.

  6. Android篇---Styles和Themes常见用法可能疑点小结

    1.style和theme的区别: 简而言之,style指的就是安卓中一个UI控件的样式,而themes指的是安卓中一个activity界面或者整个安卓应用整体的样式.theme的范围比style的范 ...

  7. 解决首次在eclipse中使用maven构建hadoop等项目时报Missing artifact sun.jdk:tools:jar:1.5.0的问题

    问题原因: eclipse中的maven插件默认没有引用环境变量,所以找不到jdk的路径,也就找不到tool.jar. 解决办法: 步骤如下: 1.关闭eclips 2.在eclipse的解压目录中与 ...

  8. 掌握 Azure 的注册、帐户和订阅管理 Azure 上云须知

    计划使用由世纪互联运营的 Microsoft Azure 的用户,可通过下列流程注册开通并购买所需 Azure 服务:信息获取 > 试用 > 购买 > 账户/订阅管理 > 支付 ...

  9. UWP开发:自动生成迷宫&自动寻路算法(1)

    (1)前端篇 首先,我们创建一个新的Universal Windows Platform程序.这些小方块是通过GridView来罗列的,这样可以避免MainPaga.xaml的<Rectangl ...

  10. [神经网络]一步一步使用Mobile-Net完成视觉识别(二)

    1.环境配置 2.数据集获取 3.训练集获取 4.训练 5.调用测试训练结果 6.代码讲解 本文是第二篇,调用官方例子并获取数据集. 上一节里面记得我们需要配置PYTHONPATH,大家应该发现,每次 ...