javascript
2018年,JavaScript都经历了什么?
摘要: 對JSer來說,這是很有意思的1年。
本文靈感來自JavaScript Weekly周報,歡迎大家訂閱。
The State of JavaScript 2018
The State of JavaScript調研已經連續做了3年(2016, 2017, 2018),今年一共調研了2萬多個JS開發者。有這樣一些有意思的發現:
- 絕大多數開發者都用過ES6,同時TypeScript也越來越流行了;
- React依然最流行的前端框架,同時Vue也越來越受歡迎了;
- Express依然是最流行的Node.js框架(Node 8已經支持async函數了,Koa的價值應該少了很多);
- Visual Studio code遠遠超越Sublime,成為最流行的JS編輯器;
作為一個后端用Express框架,盡量使用最新的ECMAScript語法,而前端用著TypeScript,不過框架還是AngularJS 1(這事要怪版本帝Angular不向后兼容),拋棄價值70刀的Sublime,今年加入VS code陣營的JSer,我也是算是夠主流了吧!那你呢?
ECMAScript 2018
TC39(ECMAScript標準委員會)這些年越來越勤快了,從2015年(ES6)開始,每年發布一個新的ECMAScipt標準。今年大佬們繼續忙于處理各種proposal。ECMAScript 2018,即ES9,則在6月如期發布了,其新增的特性并不多:
主要新特性:
- Asynchronous Iteration
- Rest/Spread Properties
新的正則表達式特性:
- RegExp named capture groups
- RegExp Unicode Property Escapes
- RegExp Lookbehind Assertions
- s (dotAll) flag for regular expressions
其他新特性:
- Promise.prototype.finally()
- Template Literal Revision
如果想了解ES9的細節,闊以看看Axel Rauschmayer博士寫的Exploring ES2018 and ES2019。
Node 10
Node 10在4月發布并且在10月成為LTS,即長期支持版本。
Node 10使用了新的V8引擎6.8,因此性能提升了很多,比如Promise與Async函數的性能提升就非常明顯,因此建議大家升級。
Node新版本的發布日期一直非常穩定,做到這一點也是不容易啊!
Vue 3.0
在Vue.js Conference Toronto 2018上,尤雨溪發表了主題演講Vue 3.0 Updates,新版本將會有這些變化:
- 更快
- 更小
- 更易于維護
- 更多的原生支持
- 放棄Flow,使用TypeScript
Vue 3.0預計將在2019發布,大家期待吧!
Babel 7
2年多時間commit了4000多次,Babel 7終于發布了,新增了下面這些特性:
- babel-upgrade: 升級Babel的工具;
- babel.config.js:學習ESLint與Webpack,使用JS文件配置;
- overrides:允許同一個項目使用不同的Babel配置,例如前端代碼的targets為Chrome 60,而后端代碼的targets為Node 8;
- ...
主流瀏覽器對新的ECMAScript特性已經支持得不錯了,不過還是存在并且永遠存在很多非主流瀏覽器,于是我們還是離不開神奇的Babel。
jQuery 3.3.0
曾經風靡一時的jQuery發布了3.3.0,這個版本放棄了(deprecated)一系列方法:
- jQuery.now
- jQuery.isWindow
- jQuery.camelCase
- jQuery.proxy
- jQuery.type
- jQuery.isNumeric
- jQuery.isFunction
- Event aliases
這些方法大多會在jQuery 4.0中被刪除,因此jQuery官方鼓勵大家使用替代的方法。
從這個更新也能看出端倪,jQuery時代已經逐漸過去了,GitHub的極客們干脆完全拋棄了jQuery。
V8引擎10周年
強大的V8引擎已經發布10周年了,它的命名靈感來自超級性能車的V8引擎,果然名副其實!其性能一直穩步提高:
V8引擎當初是為Chrome瀏覽器開發的,但是早已成為一個獨立的項目。國內的眾多瀏覽器,包括搜狗、360、獵豹、QQ、百度、UC都是基于Chromium瀏覽器開發,而Chromium相當于開源版本的Chrome,自然也是基于V8引擎的。因此,眾多"國產"瀏覽器實際上都是基于V8的。融資了2.5億元紅芯瀏覽器也不例外,他們干脆打包了Chrome瀏覽器的安裝包,果然有錢任性!還有,就連瀏覽器界的一朵奇葩Microsoft也投靠了Chromium陣營。
另外,Node.js也是基于V8引擎的。
NPM模塊event-stream被******
這件事鬧得沸沸揚揚,不過只是有很多噱頭,如果認真分析***干了什么,其真實影響沒那么大,至少Vue開發者沒啥好擔心的:
- 比特幣錢包copay依賴event-stream模塊;
- ***從騙取了event-stream模塊的npm發布權限;
- ***為event-stream模塊添加了依賴flatmap-stream;
- flatmap-stream含有***代碼,僅會在copay項目中正確執行,竊取用戶的密碼、私鑰等信息,從而盜取比特幣;
- 有人說什么Vue可能遭受***,其實沒有這回事,因為***代碼只會在copay項目中正確執行。只有copay項目的package.json中的description字符串"A Secure Bitcoin Wallet"能夠解密***代碼;而且,***的代碼是為copay量身定做的,對其他項目沒有作用;再說,***是來竊取的比特幣的,又不是挖礦,你的項目有比特幣給人家偷嗎?
同學們,不要被標題黨給騙了啊!
《Refactoring》第2版改用JavaScript
《重構:改善既有代碼的設計》大多數人都沒看過,但是至少應該都聽過。這本書剛出了第二版,所有示例代碼由Java改成了JavaScript。
根據作者Martin Fowler的解釋,《重構》這本書重點在于思想,適用于各種編程語言,所以選擇什么語言并不重要。而他選擇JavaScript的原因很簡單,因為JS既支持面向過程編程,又支持面向對象編程,這樣方便寫非OOP代碼重構的示例。
這里不妨引用尤雨溪的一句話:
至于重構、設計什么的,我只想說,看的是使用的人的水平,跟用什么語言沒那么大關系。水平爛的人用 TS 一樣寫的是翔一樣的代碼,看看 java 就知道了。
《Refactoring》的示例代碼用什么語言寫根本不重要,重要的是背后的編程思想。順便推薦一下《Clean Code》。
這本書原價54.66刀,的確有點貴,不過算是必讀書,大家看著辦...
GitHub拋棄jQuery
一直以來,GitHub最流行的編程語言都是JavaScript,可以說GitHub是全球最大的JS開發者社交平臺了;同時,因為被IE的兼容問題折磨了多年,前端痛恨Microsoft!但是,有錢任性的Microsoft以75億美元收購了GitHub!
另外,GitHub的技術極客們花了數年時間,以非常規范的流程完全移除GitHub網站了jQuery:
- 實現了一個ESlint插件eslint-plugin-jquery,禁止在代碼中使用已經棄用的jQuery方法。這樣可以防止同事使用jQuery方法。
- 使用原生代碼重寫了2個依賴于jQuery的模塊jquery-pjax和facebox。
- 開發一個定制的jQuery版本,一旦完全移除某個jQuery方法,就刪除jQuery中的對應代碼。這樣既可以減少jQuery大小,也可以防止同事使用已經移除的jQuery方法。
- 根據用戶統計數據,來逐步放棄支持低版本的IE瀏覽器,這樣的話可以無需依賴jQuery來保證兼容性。
- ...
是否使用jQuery各有各的想法和需求,但是GitHub棄用jQuery的流程非常專業,可以作為處理技術債的標準規范。
Microsoft愛上JavaScript
土豪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。
IT界的羅馬帝國(出處:吳軍《浪潮之巔》)Microsoft又重新崛起了,這是一件很了不起的事情。
Oracle宣示JavaScript主權
Oracle明年就要開始給Java收費,雖然只是JDK 8的u192之后的更新要收費,這個行為大概會讓很多Java開發者不爽...
另外,Oracle還要求一個iOS開發者將一款叫做”HTML5, CSS, JavaScript, HTML, Snippet Editor“的App從App Store下架,因為App名字中包含“JavaScript”字眼,而Oracle擁有JavaScript在美國的商標權。
Oracle這位大爺惹不起,因此大家正在一本正經地建議給JavaScript改名。當然這基本上是不可能的,這輩子都不可能。。。
參考
- JavaScript***是這樣竊取比特幣的,Vue開發者不用擔心!
- 強烈推薦10個值得訂閱的國外技術周報
- ECMAScript 2018特性確定了
關于Fundebug
Fundebug專注于JavaScript、微信小程序、微信小游戲、支付寶小程序、React Native、Node.js和Java實時BUG監控。 自從2016年雙十一正式上線,Fundebug累計處理了9億+錯誤事件,得到了Google、360、金山軟件、百姓網等眾多知名用戶的認可。歡迎免費試用!
版權聲明
轉載時請注明作者Fundebug以及本文地址:
https://blog.fundebug.com/2018/12/25/what-happens-in-2018-for-javascript/
轉載于:https://blog.51cto.com/13957060/2334896
總結
以上是生活随笔為你收集整理的2018年,JavaScript都经历了什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (八)整合spring cloud云服务
- 下一篇: [译] 最佳安全实践:在 Java 和