偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

深入理解Atwood定律

開發(fā) 前端
在Jeff Atwood發(fā)表于2007年的這篇博客里,他提出了著名的“Atwood定律”,即”任何能夠用JavaScript實現(xiàn)的應用系統(tǒng),最終都必將用JavaScript實現(xiàn)?!?(Any application that can be written in JavaScript, will eventually be written in JavaScript.)那么,這位大牛為何如此推崇JavaScript呢?如何真正理解他提出的這個定律?這就必須完整地看懂他的博文才行。

在Jeff Atwood發(fā)表于2007年的這篇博客里,他提出了著名的“Atwood定律”,即”任何能夠用JavaScript實現(xiàn)的應用系統(tǒng),最終都必將用JavaScript實現(xiàn)。“ (Any application that can be written in JavaScript, will eventually be written in JavaScript.)那么,這位大牛為何如此推崇JavaScript呢?如何真正理解他提出的這個定律?這就必須完整地看懂他的博文才行。以下是本人在學習過程中閱讀的主要內容摘要:

在他的這篇博文中,他首先提到了另外一位更重量級的大神,互聯(lián)網之父Tim Berners-Lee 在他的著作 《最小功效原則》中的一段話:

“在過去的40年中,計算機科學一直在開發(fā)盡可能功能強大的語言?,F(xiàn)在我們必須領會這樣的道理:要選擇功能最不強的解決方案而不是***的。語言的功效越小,對于儲存在該語言中的數(shù)據你能做的事情就越多。如果你把程序寫成簡單的描述性形式,任何人都可以編寫一個程序來分析它。比如,如果一個包含了天氣數(shù)據的網頁,里面使用RDF 格式來描述這些數(shù)據,用戶就可以把它當做一個表格來查找,也許求它的平均值,或者用它繪圖,或把它和其他信息結合在一起進行推理分析。另一個極端情況是,這些天氣信息是用漂亮的Java applet描繪出來的。雖然這樣可能做出很酷的用戶界面,但它完全無法用于分析。找到這個頁面的搜索引擎會壓根不知道這些數(shù)據是什么或者是干什么用的。唯一能發(fā)現(xiàn)Java applet的含義的方式就是讓它在一個人面前運行起來。”

說實話,本人看完這一段有些困惑:JavaScript和Java、PHP這些語言相比,對于搜索引擎對數(shù)據進行提取和分析方面并不見得有什么本質 的優(yōu)勢嘛。想了半天還是似懂非懂:這篇文章寫于1998年,當時還沒有Web 2.0的概念,網站的功能主要是發(fā)布公開訪問的內容,Java applet都算是“很酷”的用戶界面了,所以從邏輯上Berners-Lee 關 注搜索引擎的自動分析是自然的,而且他的例子里并沒有推崇JavaScript,舉的例子是更為描述性的語言,比如HTML,對于數(shù)據提取的確有其優(yōu)勢, 而JavaScript當時作為純前端頁面效果的語言,只是配合HTML使用。但是隨著Facebook這樣的Web 2.0平臺出現(xiàn),用戶貢獻的內容成為互聯(lián)網信息的主要來源,很多動態(tài)數(shù)據已經無法被搜索引擎自動搜索到,他的上述分析似乎就有點過時了?也許是因為我認識 的高度不夠吧。不管怎么樣,他的文章中對于編程語言選擇的最小效能原則依然是成立的,這也是Atwood提出其定律的理論基礎。

Jeff Atwood在博客中引用完上述文章后說:“這個思想后來被編入了正式的W3C文檔,最小功效規(guī)則。我提出了一個這個規(guī)則的推論,它是程序員文化最近的流行元素 之一,我稱之為Atwood定律:任何能夠用JavaScript實現(xiàn)的應用系統(tǒng),最終都必將用JavaScript實現(xiàn)。”

為了理解這段邏輯,就需要再閱讀這篇W3C文檔。 它比較了從最基本的描述性語言(例如HTML和結構化數(shù)據庫)到一些圖靈完備語言(如C和JavaScript)等在自動分析數(shù)據難易程度的不同,然后分 析說:“在發(fā)布信息的時候,有很多關于語言功效和復雜度的維度需要考慮。比如,語法簡單明了的語言會比語法結構復雜的語言更易于分析。如果一種語言把簡單 計算包裝在不必要的機制(比如對象創(chuàng)建或者線程管理)中,也會類似地阻礙信息提取。” 此外文章還提出了輕量級語言開發(fā)的功能更穩(wěn)定可靠:既然用它編寫的代碼更易于分析,也就更容易發(fā)現(xiàn)其中容易出錯的地方。***文章提出了一個實踐原則:“在所有適合于在互聯(lián)網上表達信息、約束條件或程序邏輯的編程語言中,選擇功能最不強的一個來使用。

好了,看到這里意思基本上清楚了,語言的語法結構越簡單,數(shù)據提取和分析就越容易,對于開發(fā)互聯(lián)網應用就越理想。如果對象創(chuàng)建和線程管理都是“不必 要的機制”,那么作為一種基于原型而不是類的面向對象的語言,JavaScript就是***的:它沒有類的概念,但所有東西都是對象,無需創(chuàng)建過程就能存 在,而且它是單線程的。同時,JavaScript也走向了后端,Node.js之類的框架和MongoDB之類的NoSQL數(shù)據庫讓Web開發(fā)實現(xiàn)了 JavaScript的前后端通吃。

這應該就是Jeff Atwood定律的由來:JavaScript既能獨立完成所有互聯(lián)網應用所需的功能開發(fā),同時又是主流編程語言中最為輕量級的。我想,這個邏輯應該就是 Atwood認為JavaScript將成為統(tǒng)治未來互聯(lián)網世界的編程語言的根據吧。另外我覺得還有一個很重要的事實,那就是JavaScript已經獲 得了所有瀏覽器的支持,幾乎所有的網站都已經在使用它,再加上JSON標準,相比其他語言,它已經占據了有利地形。

他在這篇博客的***還說:”如果你喜歡那篇文章,我推薦你再看《Berners-Lee的架構和哲學精髓》網頁中的其他部分。雖然里面的內容對于互聯(lián)網時代是比較老了,里面只有兩篇是去年寫的,但它還是包含了發(fā)明互聯(lián)網的那個家伙的一些教誨和洞見,它們經歷了時間的考驗卻仍然閃著金光。”

***我必須感慨一下:大牛的一些名言聽起來似是而非,不經過細致的閱讀是很難真正理解其邏輯的,而且即使細致閱讀了,可能因為思維方式和實踐機會的 限制,完全理解其精髓也是很難的,在這樣低的基礎上再想有什么創(chuàng)新就更難了。這大概也是中關村的挨踢水平遠遠低于硅谷,中國的互聯(lián)網公司大都只能依賴山寨 的方式生存的原因吧。

原文鏈接:http://blog.jobbole.com/48296/

責任編輯:陳四芳 來源: 博樂在線
相關推薦

2010-06-01 15:25:27

JavaCLASSPATH

2016-12-08 15:36:59

HashMap數(shù)據結構hash函數(shù)

2020-07-21 08:26:08

SpringSecurity過濾器

2023-10-19 11:12:15

Netty代碼

2021-02-17 11:25:33

前端JavaScriptthis

2009-09-25 09:14:35

Hibernate日志

2020-09-23 10:00:26

Redis數(shù)據庫命令

2019-06-25 10:32:19

UDP編程通信

2017-01-10 08:48:21

2024-02-21 21:14:20

編程語言開發(fā)Golang

2025-05-06 00:43:00

MySQL日志文件MIXED 3

2017-08-15 13:05:58

Serverless架構開發(fā)運維

2025-06-05 05:51:33

2015-11-04 09:57:18

JavaScript原型

2013-06-14 09:27:51

Express.jsJavaScript

2021-04-20 23:25:16

執(zhí)行函數(shù)變量

2011-04-11 16:48:12

Solaris權限

2024-03-12 00:00:00

Sora技術數(shù)據

2022-11-04 09:43:05

Java線程

2021-05-13 21:27:24

ThreadLocal多線程多線程并發(fā)安全
點贊
收藏

51CTO技術棧公眾號