国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Dart VS JavaScript之JavaScript的先天殘疾

開發 前端
Google 近日推出 Dart 語言,劍指大紅大紫的JavaScript。為什么Google 挑了這個看著不軟的柿子,Dart 能不能順利推倒傲嬌的 JavaScript,這篇文章主要分析這兩個口水側漏的問題。

敬告:本文作者沒寫過上萬行的代碼,文中信息全部為道聽途說,未經查證;文中觀點可能偏頗狹隘一根筋,謹做拋磚引玉之用。望達者查之,讀者自重,噴者迅猛。

Google 近日推出 Dart 語言,劍指大紅大紫的JavaScript。為什么Google 挑了這個看著不軟的柿子,Dart 能不能順利推倒傲嬌的 JavaScript,這篇文章主要分析這兩個口水側漏的問題。

JavaScript 和 Google 的蜜月

JavaScript 本來是 Netscape 的小打小鬧,可作為網頁動態腳本的開先河者,它第一個實現了對網頁動態指指畫畫的功能,必然隨著 Web 壯大而壯大。2005 年,AJAX 興起,網絡應用形勝,JavaScript 更是如日中天。盡管其它腳本語言(e.g.VBScript, Perl等)能實現相同功能,JavaScript 是唯一一個跨平臺跨設備瀏覽器都支持的語言。知名科技 Blog 摳腚好弱甚至說,所有能用 JavaScript 實現的,必將被 JavaScript 實現。

回顧 AJAX 的興起,Google 扮演了重要的推手角色。幾個標志性網絡服務 Gmail, Google Maps, Google Group,甚至 Google 搜索建議,都采用了 AJAX 實現。用戶端無需安裝任何插件,便有交互效果。榜樣的力量是無窮的,Google 的服務充分展現了 AJAX 的潛力,之后就是大家一擁而上,將 AJAX 捧到聚光燈下。考慮到 JavaScript 在 AJAX 之前都是小打小鬧,驗證個表單什么的,被人認為不堪大用。如果當時你說自己會 JavaScript 都沒人搭理你,怎么也要懂個 ASP/JSP 才拿得出手。當然也不是說 JavaScript 可有可無。就去年,我在網上訂機票,把身份證號填成手機號,竟然就注冊成功了,結果最后空姐不讓我登機!媽的,2010 年了,在網頁上加個 JavaScript 表單驗證會死么?分辨身份證號碼和手機號碼是尼瑪世界級難題么?跑題了,總之還是 Google 把 JavaScript 從小蘿莉帶入青春期。

AJAX 應用越來越多,JavaScript 代碼越來越多,短板也暴露的越來越明顯眾所周知,評判編程語言的標準和評判男人的標準不一樣。其中重要的一個標準是看編程語言有多快(嚴格地說,編程語言無快慢之分,編程語言的實現才有。為了語言簡潔,本文用編程語言快慢代指。)。而 JavaScript 最大的問題是,太!慢!了!

作為腳本語言,沒有事先編譯,性能完全靠瀏覽器里的 JavaScript 引擎。Google 在芬蘭找了一個團隊,閉門造車兩年打造出 V8 JavaScript 引擎,內置入 Chrome 瀏覽器。而 Chrome 在 08 年橫空出世,用幾百上千倍的 JavaScript 速度分數秒殺了當時市場上一切其它瀏覽器。自然,后來其它瀏覽器紛紛跟上,蘋果搞了 Safari Nitro 引擎,Mozilla 更新了各種猴子 JavaScript 引擎,連 IE 也不甘落后,搞出 Chakan 引擎各種提速,這貨雖說不比 Google Chrome V8 的速度,也聊勝于無。終于,JavaScript 引擎性能的突破使其能夠滿足現代網絡應用部署的需要。這次,Google 把 JavaScript 從含苞待放的青春前期催熟到青春后期。

吊詭的是,如今推出 Dart 語言的團隊便包含當年開發 V8 引擎的團隊。他們對 JavaScript 的評價是:“JavaScript 語言與生具來的殘疾是無法通過進化改善的。”

就是說,感情破裂了。

JavaScript 的非主流本質

究其原因,最大的瓶頸源于 JavaScript 是非主流語言的本質。

JavaScript 是基于原型(Prototype-based)的編程語言,而現在最主流的對象編程語言都是基于類(Class-based)的。兩者根本的區別在于,迥異的視角產生的不同方法論。。。

不嚴謹地說,基于類的語言邏輯來自分類學(Taxonomy),自上而下進行實現。程序員先要理清楚各種類之間的關系,定義好各種類,才能寫出類下面的實例(可用對象)。而基于原型的語言邏輯來自認知論,舉一反三進行實現,更符合人類正常認知的模式。程序員先關注幾個個例的具體行為,之后再分類使用。不恰當比喻說明,如果讓基于類的語言寫出一個男人,要先找到人類。然后創建一個男人子類,子類具有人類一切屬性且有男性性征。之后在男人子類創建出具體的男人甲。而基于原型的語言,可以先觀察女人和公猿,然后刪刪減減拼拼湊湊得到一個男人的原型,之后按照原形創建一個男人乙。

可以看出,基于類的編程主要方法是繼承,男人子類繼承了人類所有屬性,男人甲擁有男人子類所有屬性并賦了值,比如身高 175 體重 300 斤。而原型編程主要方法是克隆,男人原型克隆了女人的智商和皮膚屬性,公猿的性腺和嗓音屬性等等其它不細說了,請自行腦補。

計算機科學史上,先出現的是基于類的語言,后來才有基于原型的語言。前者在對象編程領域一直是主流,大學里教的主要是這個,多數研究也集中在這個領域。而原型編程,雖說由于 JavaScript 的存在使用的很多,但和基于類的編程相比還是非主流狀態。這就導致了一些相對劣勢。

由于缺乏對類的支持,而很多開發人員又習慣基于類編程。很多 JavaScript 庫模擬了自己的類對象,便于開發人員調用。看上去現在兩全齊美了,其實沒有。關鍵問題是,性能。

拜 Google 所賜,JavaScript 擁有目前世界上最有技術含量最復雜的腳本引擎,速度和其它腳本語言相比無以匹敵。Google 對 JavaScript 的最主要提速來自 JIT(Just-in-time) 編譯,把 JavaScript 預編譯成機器碼,在執行時直接調用機器碼提升效率。可跟傳統編譯語言比起來,性能不可同日而語;甚至比 JAVA, C# 也略遜一籌。

事實上,JavaScript 引擎相當復雜,且提速越來越難。這也跟 JavaScript 非主流原型編程有關。

基于類的語言,同類實例的數據結構和方法都相同,男人甲乙丙丁都有身高體重胸圍,無非是數值區別。這種情況下,腳本引擎只需要優化該類一次,生成本地碼,之后反復套用,自然會有效率性能提升。

而原型語言不同,沒有類的概念。傳統原型語言引擎的經典方法是給出一個大字典(HashMap),每次調用具體數值都去查字典,如此操作費時費力。可如果引擎按照類語言進行預編譯,又不知道編譯出來的本地碼后面是否被頻繁調用。有時甚至得不償失,花在預編譯上的時間還未必比查字典少。Google 的 V8 引擎則另辟蹊徑,分析發現 90% 的JavaScript object 是有規律可循的。于是他們總結規律,人為地生成隱藏類,對隱藏類進行優化編譯。當掃描的符合條件 JavaScript 代碼時,自動調用事先編譯好的機器碼執行。

現在你知道原型語言 JavaScript 為開發者和引擎造成了多大的擰巴。這種復雜性帶來的維護成本上升,開發門檻提高。要是用了主流類語言,不會有這么多麻煩。

JavaScript 本身缺乏很多特性,如不支持 Static Typing,調試維護相對困難;調用多個第三方庫難以保證不沖突;內置庫太迷你等等等等。當然這些都有解決方法。事實是,大多數 JavaScript 的粉絲也承認,JavaScript 是有一些缺陷的。

于是有了 Google Dart 語言,最核心的特性 1)基于類 2)可選類型(支持 dynamic/static typing)3)豐富內置庫 4)開發工具豐富。分別對應了上文提到的 JavaScript 缺陷。

下篇待續:Dart 的今生來世,主要分析 Dart 能否推倒青春后期的 JavaScript。

原文:http://www.guao.hk/posts/dart-vs-javascript-side-a-javascripts-legacy-problems.html

【編輯推薦】

  1. 眾家評說谷歌新編程語言Dart
  2. Google新結構化編程語言Dart可運行在Jvm上
  3. Dart之于JavaScript正如C#之于C++
  4. Google宣布結構化編程語言Dart的設計目標
  5. Google強推Dart語言替代JavaScript 意欲何為?
責任編輯:陳貽新 來源: 谷奧
相關推薦

2020-05-18 09:22:51

JavaScriptDart 開發

2012-02-01 08:59:01

Dart

2011-09-16 10:55:06

2011-11-28 09:05:01

JavaScriptDart微軟

2018-01-10 15:03:27

前端TypeScriptJavaScript

2019-08-30 08:54:05

TypeScriptJavaScript語言

2021-12-03 23:28:11

JavaScript開發代碼

2011-10-12 06:09:32

Dart

2011-09-13 10:13:45

JavaScript

2013-09-09 10:35:34

JavaScriptDart谷歌

2017-06-30 12:53:50

Javascript框架Vue vs Reac

2011-07-11 15:51:50

cookie

2012-12-21 15:11:19

JavaScript

2011-08-10 17:04:43

JavaScript

2015-12-24 09:48:40

JavaScriptthis指針深

2016-10-13 19:11:27

JavaScript函數Web

2021-02-17 11:25:33

前端JavaScriptthis

2011-07-21 10:07:58

JavaScript

2023-11-08 08:40:35

JavaScriptS 模塊

2011-08-24 13:51:56

JavaScript
點贊
收藏

51CTO技術棧公眾號

久久久精品三级| 91久久精品网| 精品国产一区二区三区久久| 一级视频在线免费观看| 成人a免费在线看| 久久草视频在线看| 久久一区二区三区喷水| 97视频网站入口| 色综合一区二区日本韩国亚洲| 欧美肥胖老妇做爰| 国产免费av高清在线| 亚洲一区二区av在线| 丰满人妻中伦妇伦精品app| 国内精品国产成人| 日韩欧美视频一区二区三区四区| 91成人看片| 国产精品视频网| 日韩激情毛片| 国内揄拍国内精品少妇国语| 欧美va视频| 亚洲美女黄色片| 男人天堂亚洲| 欧美精品一区二区蜜臀亚洲| 18+视频在线观看| 日韩欧美的一区| 美女日批视频在线观看| 精品美女一区二区三区| 蜜臀av在线| 日韩精品高清在线| 久久青青视频| 久久精品美女视频网站| www欧美在线观看| 久久久伊人日本| 国产精品一区二区中文字幕 | 中文字幕佐山爱一区二区免费| 很污的网站在线观看| 国产成人综合精品三级| 日本中文字幕在线视频观看| 成人性生交大合| 免费av网址在线| 亚洲国产精品t66y| 看黄色免费网站| 精品国产成人在线| av天在线观看| 亚洲精品在线观看视频| 国产日韩另类视频一区| 久久精品国产电影| 要久久电视剧全集免费| 91久久久久久久久| 亚洲影视在线| 国产日韩亚洲欧美在线| 欧美国产日本韩| 在线国产小视频| 欧美久久免费观看| 黄色网址在线播放| 亚洲色图在线播放| 亚洲资源网你懂的| 欧美日韩黄色一级片| 成人国产激情在线| 亚洲综合视频网| 国产三级视频在线看| 欧美r级电影在线观看| 欧美成a人片在线观看久| 国外成人免费在线播放| 香蕉久久免费影视| 国产欧美一区二区三区鸳鸯浴| 中文在线网在线中文| 精品粉嫩aⅴ一区二区三区四区| 青青在线精品| 亚洲永久免费观看| 亚洲一区二区三区四区五区黄| 国产精品色眯眯| 台湾佬综合网| 亚洲成av人影片在线观看| 国产富婆一区二区三区 | 欧美捆绑视频| 蜜桃麻豆91| 欧美亚洲成人网| 亚洲精品国产精品国自产在线 | 99www免费人成精品| 制服丝袜亚洲色图| 国产成人精品1024| 欧美呦呦网站| 国产桃色电影在线播放| 污版视频在线观看| 欧美精品欧美精品系列c| 欧美夫妻性视频| 欧美日韩aaaaa| 国产精品久久久久久亚洲毛片 | 一夜七次郎国产精品亚洲| 一区二区三区成人精品| www.国产亚洲| 国产成人午夜视频网址| 亚洲欧美999| 在线观看av不卡| 91女人视频在线观看| 中国女人久久久| 草草视频在线一区二区| 国产成人无吗| a视频v在线| 欧美日韩精品在线一区二区| 国产欧美日韩伦理| 日韩视频欧美视频| 日韩成人高清在线| 色噜噜狠狠一区二区三区果冻| 国产精品一区二区三区99| 亚洲激情午夜| 欧美人与物videos另类xxxxx| 欧美色999| 免费一二一二在线视频| 大地资源中文在线观看免费版 | 亚洲一区影音先锋| 精品一区二区在线视频| 国产精品扒开腿做爽爽爽软件| 欧美黑人巨大videos精品| av蜜臀在线| 日韩在线影院| 久久香蕉网站| 波多野结衣在线播放一区| 欧美不卡高清| 久久99蜜桃精品| 风流少妇一区二区| 日本亚洲不卡| 国产精品专区免费| 26uuu亚洲电影在线观看| 亚洲 中文字幕 日韩 无码| 久久综合入口| 国产精品va在线| 亚洲欧美综合精品久久成人| 亚洲视频每日更新| 久久久久国产精品厨房| 国产成人亚洲综合a∨婷婷图片| 国产亚洲网站| 亚洲激情专区| 亚洲一区二区三区无吗| 国产精品一区二区av交换| 深夜福利亚洲| 日韩成人在线观看视频| 成人午夜一级| 日韩电影免费观| 欧洲精品一区二区三区| 黄色在线观看视频网站| 国产区美女在线| 日本在线www| 日韩欧美一起| 超碰中文在线| 美女扒开腿让男人桶爽久久软| 三上悠亚亚洲一区| 成人国产精品| 牲欧美videos精品| 波多野结衣天堂| 午夜激情av在线| 91av入口| 亚洲综合色视频在线观看| yourporn在线观看中文站| 午夜小视频在线| 夜鲁夜鲁夜鲁视频在线播放| 成人av集中营| 另类ts人妖一区二区三区| 小处雏高清一区二区三区| 亚洲视频成人| 中国色在线观看另类| 在线观看免费亚洲| 亚洲色图第一页| 38少妇精品导航| 国产一区免费在线观看| 亚洲国产精品女人| 人人干人人干人人| 久久日韩视频| 日本一区二区中文字幕| 欧美国产综合| 国产精品丝袜一区| 欧美日韩国产高清一区二区| 亚洲人成绝费网站色www| 日韩免费av在线| 在线播放豆国产99亚洲| 精品剧情v国产在线观看| 人人草在线视频| 欧美肥老太太性生活| 91免费版在线| 日韩精品在线私人| 91亚洲一区精品| www午夜视频| av综合电影网站| 99综合视频| 国产夫妻视频| 青春草视频在线观看| 免费欧美激情| 91丝袜美腿高跟国产极品老师 | 视频一区欧美| 丁香激情综合国产| 欧美另类变人与禽xxxxx| 国产精品精品一区二区三区午夜版| 国产精品国产对白熟妇| 欧美r级在线| 影音先锋久久精品| 色婷婷亚洲一区二区三区| 国产综合在线观看视频| 丁香婷婷自拍| 秋霞综合在线视频|