成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript是Web的匯編語言:瘋狂,亦或只是精神錯亂?

開發 前端
有些人認為“JavaScript是Web的匯編語言”完全是精神病說的話。為此,我詢問了幾位JavaScript權威,比如Brendan Eich(JavaScript之父)、Douglas Crockford(JSON之父),還有Mike Shaver(Mozilla技術副總裁)。以下都是從個人郵件里摘過來的,得到了以上幾位的許可。

有些人認為“JavaScript是Web的匯編語言”完全是精神病說的話。為此,我詢問了幾位JavaScript權威,比如Brendan Eich(JavaScript之父)、Douglas Crockford(JSON之父),還有Mike Shaver(Mozilla技術副總裁)。以下都是從個人郵件里摘過來的,得到了以上幾位的許可。

Mike Shaver(Mozilla技術副總裁):

以前我就聽說過這種比較,我認為很大程度上確實如此。但是,這種說法忽視了JS開發人員與機器之間的人機工程學方面的大量努力,因為匯編語法設計得沒有那么人性化(特別是現代的匯編語言)。

Brendan Eich(JavaScript之父):

幾年前,我曾說過“JS是Web的x86”(好像是在一次JSConf上),不過我不敢說我是***個這么說的。(Nick Thompson今年也在Hacker News中這么說過。)

關鍵在于,JS確實在按照我們想的,越來越往低級方向發展了。但它也具備高級的特性。

Shaver說得沒錯,匯編缺少可靠的宏處理器,因此不適合程序員,也不夠安全。但JS可不是這樣。所以,這個比喻需要加點限制條件,不然就要鬧出笑話來了。

無論從高級函數式編程還是內存安全角這個角度看,還是從低級特性,像類型化數組以及即將成為現實的ES中類型化數組的擴展、二進制數據,等等來說,JS都是一個比匯編更加強大的編程語言。當然了,內存安全是首要的區別。

Douglas Crockford(JSON之父):

就這個問題來說,我覺得說JavaScript是Web的虛擬機更接近一些。過去我們一直都把Java的JVM看成是Web的虛擬機,但結果呢,JavaScript才是。

從提供代碼安全的角度說,JavaScript的解析器比JVM的字節碼驗證器更有效。就兌現“編寫一次,到處運行”這個諾言來看,JavaScript更出色;這或許正是因為它是在較高層次上運行,才得以避免觸及一些底層的棘手問題。因為它把剩下的事兒都交給圖靈去解決了。

當然啦,也有不少人始終不肯承認JavaScript能把一切都處理好,我過去就是這樣一個人。而現在我則不斷地被眼前這種百花齊放的景象震撼著。

Brendan Eich,補充:

Doug說源代碼強過字節碼,說得太好了。很早以前,我的朋友,加州大學歐文分校的Michael Franz教授就指出了Java驗證器O(n^4)級別的復雜性(計算機時鐘周期失控,拒絕服務)。精簡之后的JS呢,確實傳輸更便捷,而且詞法/語法分析也相當快。

(JS)源代碼作為“字節碼”同樣也避免了Java字節碼的一個很傻的問題:凍結設計不良的Java低級形式,導致高級形式的源代碼也無法解決這個問題。換句話說,Java唯恐破壞其字節碼的兼容性。而這嚴重影響了Java內部類及其泛型的設計。——不管怎么說,Sun***還是破壞了字節碼的兼容性。

以下是前一段時間Nick Thompson在YCombinator說過的話:

這只是我個人的看法:我花了自己兩年時間,想盡可能讓JVM能夠與JavaScript互通。當時的Netscape有不少人認為字節碼作為移動代碼的基礎比較好。但Sun從頭搭建了自己大而全的軟件體系,把問題搞得很復雜。他們沒有想讓Java與其他語言溝通,更別提讓Java能嵌入其他軟件中了。他們的字符串處理代碼都是用一種解釋型語言來寫,而不肯用C來玷污自己!有什么我就說什么,Netscape,這個當時Java唯一的一個大客戶,在Sun眼里無非就是一個用來實現他們取代Windows夢想的工具而已。所有想用Java的人都是自己給自己找罪受。

在此期間,Brendan一個人干了10個工程師,外加3個客戶服務人員的活兒,同時還要關注Web作者在乎的一些事,比如把JS代碼混合到HTML中、即時加載、與瀏覽器其他模塊的集成等等,此外還要協調其他瀏覽器廠商,以便讓JS成為一個開放標準。

因此,今天的JS作為Web的x86匯編程序,并沒有像它本該的那樣***,但你通過它真能把事情稿定(GWT就是一個最明顯的例子)。這可以說是一個經典的“更差就是更好”的例子,只不過Java也就是從下往上那么看起來更好罷了。而JS則在此期間取得了相當不錯的成就。要想取代它的地位可沒那么容易。

當然,這個比喻不一定準確。JavaScript代碼無論從外觀到行為,肯定不像ASM。但作為一個比喻,至少可以說明:

◆ JavaScript無所不在;

◆ 它速度快而且越來越快;

◆ JavaScript酷似低級的Web編程語言;

◆ 它可以通過手工編寫,也可以從另一種語言編譯而來。

諸如此類的話題也經常在Hacker News中出現:

“現在的JavaScript其實就是客戶端的匯編語言。想改它太難了,所以得想辦法開發一些工具來解決這個問題。”——jonnycat

好啦,能聽到如此有見地、有深度,而又詳盡的討論,該滿足了吧。親愛的讀者,你們太棒了。

譯文:http://www.cn-cuckoo.com/2011/07/21/javascript-is-assembly-language-for-the-web-ii-2531.html

原文:http://www.hanselman.com/blog/JavaScriptIsAssemblyLanguageForTheWebPart2MadnessOrJustInsanity.aspx

【編輯推薦】

  1. JavaScript的死與生
  2. JavaScript與生俱來的10個設計缺陷
  3. JavaScript面向對象編程深入分析
  4. 向Brendan致敬-那段華麗的JavaScript歷史
  5. 一位反JavaScript主義者的覺醒
責任編輯:陳貽新 來源: 李松峰的博客
相關推薦

2011-01-14 14:08:17

Linux匯編語言

2011-01-14 14:39:32

Linux匯編語言

2012-02-09 09:00:54

匯編語言

2011-01-14 14:15:11

Linux匯編語言

2011-01-04 17:08:10

匯編語言

2011-01-14 14:22:50

Linux匯編語言

2021-06-11 10:02:39

語言編程開發

2010-11-09 09:51:52

匯編語言

2018-01-11 14:58:40

2011-01-14 13:44:45

Linux匯編語言

2023-11-23 08:25:40

開發人員SmaliAndroid

2017-01-12 22:36:30

2023-06-01 16:27:34

匯編語言函數

2013-07-19 10:35:01

開源精神開源

2013-07-22 10:21:51

開源

2021-03-25 13:05:56

網絡安全寄存器匯編語言

2020-12-18 08:49:11

相對跳轉絕對跳轉指令

2017-10-10 15:45:51

OOP開發JavaScript

2022-10-31 14:02:24

匯編語言神經網絡

2020-12-09 09:33:16

編程語言C語言匯編語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩午夜在线观看 | 国产在线观看一区二区 | 久在线 | 国产一区二区自拍 | 国产资源在线观看 | 日韩精品av一区二区三区 | 国产精品毛片一区二区在线看 | 99久久婷婷国产综合精品电影 | 一级片在线观看 | 午夜免费精品视频 | 欧美一区二区三区 | 毛片免费在线 | 日韩在线视频观看 | 日韩激情视频一区 | 中文字幕人成乱码在线观看 | h片在线免费观看 | 自拍视频精品 | 91欧美精品成人综合在线观看 | 亚洲国产日韩一区 | 黄色一级大片在线免费看产 | 欧产日产国产精品视频 | 国产激情在线观看 | 另类 综合 日韩 欧美 亚洲 | 国产成人精品午夜视频免费 | 国产精品一二三区 | 国产精品久久久久久久久久软件 | 视频国产一区 | 国产精品乱码一区二区三区 | 欧美激情视频一区二区三区在线播放 | 国产电影一区二区 | 成人高清在线视频 | 九九热re| 国产在线观看一区二区三区 | 国家一级黄色片 | www视频在线观看 | 一级a性色生活片久久毛片波多野 | 久久久免费少妇高潮毛片 | 亚洲视频一区在线 | 国产亚洲精品区 | 精品国产一二三区 | 拍拍无遮挡人做人爱视频免费观看 |