这些年,JavaScript生态系统异常活跃:
ECMAScript打破多年的沉寂,每年都会给我们带来新的特性,像async函数这种语法为开发者减少了大量冗余的代码;
JS大家庭的其他成员也都在进步,从前端到后端,从底层的JS引擎到上层的NPM库,而大家热爱的
Vue正在重写3.0
;就连古老的编辑器也能带来新的惊喜,Visual Studio Code超越各种其实还不错的竞品,成为
最受JSer欢迎的IDE
;Microsoft终于放弃了倒腾与众不同的浏览器,选择
加入Chromium阵营
,未来大家终于可以少纠结一点兼容问题了......
2018也是同样精彩的一年,JavaScript都经历了什么呢?
The State of JavaScript调研
已经连续做了3年,今年一共调研了2万多个JS开发者。有这样一些有意思的发现:
作为一个后端用着Express框架、尽量使用最新的ECMAScript语法,而前端用着TypeScript、不过框架还是AngularJS 1(这事要怪版本帝Angular不向后兼容),还抛弃了价值70刀的Sublime、今年加入VS code阵营的JSer——我也是算是够主流了吧!那你的技术债是怎样的呢?
TC39(ECMAScript标准委员会)这些年越来越勤快了,从2015年(ES6)开始,每年发布一个新的ECMAScipt标准。ECMAScript 2018,即ES9,则在6月如期发布了,其新增的特性并不多:
主要新特性:
新的正则表达式特性:
其他新特性:
如果想了解ES9的细节,可以看看Axel Rauschmayer博士写的Exploring ES2018 and ES2019(http://exploringjs.com/es2018-es2019/toc.html)。
Node 10在4月发布并且在10月成为LTS,即长期支持版本。
Node 10使用了新的V8引擎6.8,因此性能提升了很多,比如Promise与Async函数的性能提升就非常明显,因此建议大家升级。
Node新版本的发布日期一直非常稳定,做到这一点也是不容易啊!
在Vue.js Conference Toronto 2018上,Vue.js 创作者尤雨溪发表了主题演讲Vue 3.0 Updates,表示新版本将会有这些变化:
Vue 3.0与其说是更新或者重构,不如说是重写,因为变化很大,但是同时会保证向后兼容。
Vue 3.0预计将在2019年发布,大家一起期待吧!
2年多时间commit了4000多次,Babel 7终于发布了(https://babeljs.io/blog/2018/08/27/7.0.0)。新增了下面这些特性:
主流浏览器对新的ECMAScript特性已经支持得不错了,不过还是存在并且永远存在很多非主流浏览器,于是我们还是离不开神奇的Babel。
曾经风靡一时的jQuery发布了3.3.0,这个版本放弃了(deprecated)一系列方法:
这些方法大多会在jQuery 4.0中被删除,因此jQuery官方鼓励大家使用替代的方法。
从这个更新也能看出端倪,jQuery时代已经逐渐功成身退,
GitHub网站干脆完全移除了jQuery。
强大的V8引擎已经发布10周年了,它的命名灵感来自超级性能车的V8引擎,果然名副其实!V8的性能一直在稳步提高:
V8引擎当初是为Chrome浏览器开发的,但是早已成为一个独立的项目。国内的众多浏览器,包括搜狗、360、猎豹、QQ、百度、UC都是基于Chromium开发的,而Chromium相当于开源版本的Chrome,自然也是基于V8引擎的。因此,众多"国产"浏览器实际上都是基于V8的。
融资了2.5亿元红芯浏览器
也不例外,他们干脆打包了Chrome浏览器的安装包,果然有钱任性!还有,就连浏览器界的一朵奇葩Microsoft也投靠了Chromium阵营。
另外,Node.js也是基于V8引擎的。
这件事闹得沸沸扬扬,不过只是有很多噱头,如果认真分析黑客干了什么,其真实影响也没那么大,至少Vue开发者没啥好担心的:
所以同学们,不要轻易相信标题党......
对于《重构:改善既有代码的设计》这本书,我想大多数人都没看过,但是至少应该都听说过。这本书刚出了第二版,所有示例代码由Java改成了JavaScript。
根据作者Martin Fowler的解释,《重构》这本书重点在于思想,适用于各种编程语言,所以选择什么语言并不重要。而他选择JavaScript的原因很简单,因为JS既支持面向过程编程,又支持面向对象编程,这样方便写非OOP代码重构的示例。
前端大神尤雨溪说过这样一句话:
至于重构、设计什么的,我只想说,看的是使用的人的水平,跟用什么语言没那么大关系。水平烂的人用 TS 一样写的是翔一样的代码,看看 Java 就知道了。
《Refactoring》的示例代码用什么语言写根本不重要,重要的是背后的编程思想。顺便推荐一下《Clean Code》,如果基本的编程习惯和思想没有提升的话,换个语言或者框架是没用的。
这本书原价54.66刀,的确有点贵,不过算是必读书,大家看着办......
另外,GitHub的技术极客们花了数年时间,以非常规范的流程完全移除GitHub网站了jQuery:
萝卜青菜各有所爱,是否使用jQuery各有各的想法和需求,但是GitHub弃用jQuery的流程非常专业,可以作为处理技术债的标准规范。
土豪Microsoft似乎爱上了JavaScript,它家的Office 365、MicroSoft Teams以及Skype都开始使用JavaScript重写了。原因无疑是JS的跨平台特性——同一套代码多处运行,虽然现在还有很多问题,但是这样的未来不是挺好么?
此处应该再来感受一下大名鼎鼎的Atwood's Law:
Any application that can be written in JavaScript, will eventually be written in JavaScript.
在浏览器市场上,Microsoft曾经通过捆绑Windows打败了网景,不过这些年在Chrome面前一败涂地,现在终于"认输",选择基于Chromium重写浏览器。对于JSer来说,至少意味着浏览器兼容问题可以缓解很多。
根据The State of JavaScript 2018,Microsoft开发的Visual Studio Code俨然已经成为最受JSer欢迎的代码编辑器,一些流行插件下载量高达上千万:
市值超过Apple,重回全球市值最高公司的Microsoft有钱任性,
买下了JS开发者最多的GitHub
。从JSer的角度也能看出,IT界的罗马帝国(出自吴军的《浪潮之巅》)Microsoft又重新崛起了,这是一件很了不起的事情。
Oracle明年就要开始给Java收费
,虽然只是JDK 8的u192之后的更新要收费,这个行为大概会让很多Java开发者不爽......
另外,Oracle还要求一个iOS开发者将一款叫做”HTML5, CSS, JavaScript, HTML, Snippet Editor“的App从App Store下架,因为App名字中包含“JavaScript”字眼,而Oracle拥有JavaScript在美国的商标权。
Oracle这位大爷惹不起,因此大家正在一本正经地建议给JavaScript改名。当然这基本上是不可能的,这辈子都不可能......
作者:刘凯,Fundebug CTO。