欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

JavaScript創始人Brendan Eich訪談錄

admin
2010年2月7日 20:58 本文熱度 9387
是什么促使你去開發JavaScript?
對于JavaScript的早期歷史,我在自己的博客中寫過:
我在1995年4月4日加入了Netscape,當時的目標是把Scheme語言或者類似的語言嵌入到Netscape的瀏覽器當中。由于申請沒 有通過,我加入了Netscape的Server團隊,這個團隊負責Web服務器和代理服務器方面產品的開發,我在這里工作了一個月,主要進行下一代 HTTP的研發。到了五月份的時候,我就被調回當初想加入Client團隊,從此我就開始了對JavaScript雛形的開發。
Marc Andreessen和我,連同在Sun工作的Bill Joy,堅信HTML需要一種腳本化的語言,這種語言就算對于新手和業余者來說也會很容易上手,而且這種語言的代碼可以直接寫在HTML的標記之間,以源 代碼的形式作為網頁的一部分發布。這種信念同時成為了我們的動力。我們打算開發一個”膠水語言“,面向網站的設計者和兼職做網站開發的程序員,以替代以前 那種通過圖片、插件和Java小程序搭建網站的方式。我們把Java看成是由高薪程序員使用的組件語言,而膠水程序員,也就是那些網頁設計師,將通過 JavaScript把組件組合起來實現交互。
從這個意義上說,縱觀在微軟的操作系統和應用程序中使用的編程語言家族中,JavaScript應該和Visual Basic是類似的,而Java和C++類似。貫穿在編程語言金字塔的分工差別促進了更多的創新,使我們除了可以選擇像Java和C++那樣”真正“的編 程語言以外,還可以選擇一些”小巧“的腳本式語言,比如JavaScript。
遇到過什么特別的需要解決的問題么?
不可編程的網頁是靜態的,堆砌著文字,充其量把圖片放到表格里或者干脆浮動在網頁的兩側。通過JavaScript這樣的腳本語言,我們可以控制網頁上的元素,更改他們的屬性并響應事件??梢栽O想這樣一個更具有活力的網絡,只通過一些網頁就可以實現以前應用程序才能實現的效果。
實際上,一些早期的開發者從1995年下半年就開始通過JavaScript和framesets中的框架來構建Web應用程序,這應該是最早的 ”Ajax“或者”Web 2.0“風格的Web應用程序,但是采用這種方式開發會導致機器速度變慢。JavaScript在最初的時候就有一個操作瀏覽器的函數庫,但這個庫的功能 很有限。和服務器之間的通訊方法也僅限于重新加載整個網頁。
JavaScript和Java在本質上是不相干的,但為什么要給他取這個名字呢?
通過上面的鏈接,在我的博客中可以找到答案。
JavaScript最初的名字Mocha和LiveScript是根據什么起的?
Mocha是Marc Andreessen起的項目名稱,但Netscape的市場部發現這個名字存在潛在的商標沖突,所以對外決定啟用新的名稱,他們為Netscape的產 品名稱啟用了Live這個前綴,比如LiveWire、LiveScript等。但在1995-1996這個時間,Java的發展勢頭太猛了,所以大家決 定沾沾光,把名字修改為JavaScript。
JavaScript和ECMAScript有什么不同?
ECMA-262第三版是ECMAScript標準的最新版本。第一版的制定建立在我在Netscape時的工作成果,同時吸收了JScript(微軟在IE平臺上對JavaScript進行反向工程的成果)的內容,還包括Borland和少數其他公司的成果。
ECMA-262第三版明確允許對之進行各種擴展,JavaScript所能作的就比標準多得多,這門語言的演化已經趕在了當前執行標準的前面。 比如Mozilla的SpiderMonkey(SpiderMonkey也是Firefox中的JavaScript引擎)和Rhino引擎。
Ecma標準只是描述了核心的語言,不包括DOM,大家還是會把DOM當成JavaScript的一部分看待。
你認為JavaScript和JScript是兩個可以或者應該互相被替換的術語么?
在跨瀏覽器的文檔和書籍中,當提到這門語言,沒有人會使用JScript。JavaScript才是這些書籍、文檔、參考手冊等中使用的名字,無論你認為這個名字好還是壞,JavaScript就是這個語言的真實名字。
在JavaScript的開發過程中,遇到過什么必須面對而且特別困難或者討厭的問題么?
在語言的設計階段凍結以后,每一個小的開發周期主要就是在檢驗設計時的想法。我在1995年的5月,用了大概10天的時間開發解釋器,包括除了 Date對象以外的其它內置對象。在這期間,Netscape的Ken Smith用C語言重寫了Java的java.util.Date類,這個類的千年蟲Bug也在無意間被帶進了JavaScript。
1995年剩下的日子,我的工作就是把這個引擎嵌入到Netscape瀏覽器中,并建立那個后來十分著名的DOM(文檔對象模型),準確的說應該 是第0級DOM,這時候已經可以在JavaScript中通過一系列函數接口控制窗口、文檔、鏈接、圖片等對象了,并可以響應事件和通過定時器運行代碼。
在1996年中期以前,在Netscape只有我一個人在做JavaScript的開發。
在你所見過的用JavaScript編寫的程序中,你認為哪個是最有趣的?
TIBET是早期很有野心的一個模仿Smalltalk的框架。
現在有很多用JavaScript寫的程序非常嘆為觀止。比如HotRuby,在這里可以看到更多的內容,這個程序完全可以讓用戶在瀏覽器中通過JavaScript運行Ruby的代碼。有人還用JavaScript實現了一個Java虛擬機,叫做Orto,在這里可以看到更多的信息,需要注意的是,我不確定Orto究竟實現了Java虛擬機多少的功能,但確實人人都說這是一個非常出色的程序。
還有很多用JavaScript編寫的游戲,這其中有新開發的,也有從其他平臺移植過來的,比如以下兩個:
John Resig移植的Processing Visualization Language是我認為最棒的。
你見過最差的是哪一個?
我可能選不出一個最差的JavaScript程序。但老實說在過去,JavaScript主要被用來做彈出窗口,在狀態欄滾動文字等這些令人討厭 的事情。一個像Firefox這樣的好瀏覽器,提供帶有默認值的用戶控件來實現功能,Netscape在最開始也應該這樣做,這樣JavaScript就 不會被濫用了。
你知道有什么JavaScript的應用是在你最初計劃之外的么?如果有,是什么?這個應用現在運作得怎么樣?
上面提到Orto這個Java虛擬機就在我當初的意料之外。我不想讓JavaScript通過GWT、HaXe或者類似的代碼生成器,成為一個“目標(target)”語言,這是另外一種解釋語言,在這里JavaScript只是一個對象,或者經過編譯可以執行的語言。
這些代碼生成器把JavaScript當成一個安全的中間語言來使用,介于運行于服務器端的高級語言和經過優化的運行于瀏覽器中的C或者C++代 碼。這將過分在JavaScript引擎的代碼中強調性能,潛在上會把更多的大部分開發者不會使用的特性填充到Ecma標準中去。
用這些工具生成的JavaScript代碼運行時看起來很“有效”,但從某種意義上說,JavaScripty已經有足夠好并且會越來越好的性 能,每個人都想把JavaScript的性能最大化。但是大部分的JavaScript都是手寫的,我也希望這種情況會一直延續下去。
似乎有很多跨站腳本攻擊都是通過JavaScript開發的,對于這方面你有什么看法?現在有什么計劃來解決這個問題么?
是的,在這方面我們現在有具體的計劃。一方面通過W3C這樣的組織制定標準,另一方面通過Web開發者必須遵守的內容約束。更多的內容可以參考下面這個文檔:
你預計JavaScript的下個版本會在什么時候發布?你認為哪些改進會被整合到新版本中?
ECMA-262標準的3.1版預計會在2009年年中的時候出爐,我希望一個協調的第四版會在接下來的一年中誕生。我相信無論對于我自己,還是 對于委員會中的每位委員,經過多種多樣可操作的雛形實現驗證的新版本規范,比定下某個特定日期,在這個日期前必須發布一個法律上認可的但卻貿然上線的規范 更加重要。但根據現在的努力,3.1版在短期內就可以實現,而一個協調的第四大版有望在一到兩年內成為與3.1兼容的繼任者。
3.1版本的規范,主要致力于修復現有的缺陷,整合一些已經被SpiderMonkey(比如getters和setters)和其他瀏覽器中的引擎開發出來的功能,以及為對象和屬性提供更加完善的功能。(現在的對象不能被繼承,屬性也不能被重寫等問題)。
緊隨3.1版本的這個主要版本,所有的改進都會基于3.1版本的基礎上,致力于易用性(包括新語法)、模塊化以及更多更完善的功能??偟膩碚f,這個版本就會成為終結使用全局函數進行JavaScript編程的現狀的一個解決方案。
你認為JavayScript在Web 2.0中扮演什么樣的角色?
很明顯,JavaScript對于“Ajax”或者“Web 2.0”這場革命來說,是必不可少的組成部分。我還要說,Firefox、Safari和其他新瀏覽器之間的競爭,以及由于這些競爭所催生的新標準,同樣很重要。
真正的程序都可以運行在瀏覽器中,而且這些程序都是用JavaScript寫的。
這就使JavaScript不得不變得十分強大,作為可以運行在現存所有瀏覽器中的前提。這些瀏覽器甚至包括微軟在新千年的頭五年勉強維護的IE 5.5和IE 6.0。因此可以用支柱(tap root)來形容JavaScript。
你怎樣看待這些年來反對JavaScript的“共鳴”聲音?
對我來說這些“共鳴”主要有幾個方面:
* 早期的異議主要是反對把腳本語言直接嵌入到HTML中的。
* 對JavaScript開啟的一些討厭的功能的排斥(在Firefox出現以前,缺乏完善的控件支持,比如彈出式窗口等)。
* 不同瀏覽器對DOM的兼容性不同,這讓開發者感到很頭痛。讓JavaScript可以更好的兼容所有的瀏覽器,同樣很頭痛。
* 當然,有人對Netscape市場部在JavaScript命名時的花招一直耿耿于懷,因為這暗示著JavaScript和Java存在聯系,不然的話就 是故意傳播JavaScript和Java之間的混亂(必須鄭重聲明,Netscape的所有人都不想故意傳播這種混亂)。
這些反對的共鳴都是可以理解的。無論是在網絡上、在多用戶操作系統中還是在各種兼容的瀏覽器中,JavaScript都是提供互動性的唯一的編程 語言(比其他所有平臺都大)。其它的編程語言都是通過插件的形式,而且都是同一家公司開發的,這樣就可以通過代碼的方式來控制操作性。因此,使用 JavaScript和DOM進行開發,曾經是一個很困難的經歷。
這無助于Netscape和Microsoft的瀏覽器戰爭,猛烈的創新革命促使標準化的過早到來,而且這場戰爭的結束導致了多年來對JavaScript的忽視,和在IE的壟斷下制定各種Web標準。
另一方面,很多開發者都聲稱自己喜歡做JavaScript的開發,而且自從2004年以后,伴隨著“Ajax”和“Web 2.0”的出現,JavaScript正迎來自己的新生。
你怎樣看待JavaScript對未來的影響?你認為在網絡上是否會出現新的客戶端腳本語言?
我認為JavaScript暫時還是默認的,也是唯一需要的瀏覽器編程語言。但是其它語言也會在瀏覽器中被支持,開始的時候可能只在某個瀏覽器中 被支持,最終會演變為跨瀏覽器的標準形式。Mozilla的瀏覽器,包括 Firefox,現在已經有選擇的整合了C-Python,但是有很多工作還是要由你自己來做,你還要確保你的用戶已經安裝了C-Python運行庫。我 們現在正致力于通過安全地、可兼容地以及可以自動更新的運行庫來支持更多流行的語言。
現在已經很清楚,Web的客戶端是很值得進行編程的,這與1995年Marc Andreessen和我預料的一樣?,F在世界上的臺式電腦和筆記本有足夠強大的運算能力和存儲空間,和以往任何時間相比,都可以做更多有用的任務,不限 制他們的自動化能力,把表單或者消息提交給Web服務器上真正的程序。真正的程序同樣可以運行在瀏覽器中,而且他們是用JavaScript寫的。
JavaScript的影響在不斷增長,它不僅已經成為瀏覽器中腳本的標準,還會成為臺式機和其他設備(比如iPhone)中腳本的標準。
你怎樣看待最近發布的JavaScript框架,比如SproutCode和Objective-J/Cappuccino?你認為他們會給未來的Web應用程序帶來什么影響?
Apple的炒作機器無疑使一些人把這個產品當成了Ajax的第二代。對我來說,他們只是進化在不同階段的JavaScript庫和框架而已。包 括 Google GWT和一些比較流行的庫,比如Dojo、JQuery、YUI以及Prototype。我不大想看到某個框架或者庫過于強大,至少不希望會持續很多年, 最好他們只是在Web的某個領域很流行。在某些特定的設備上開發,你當然沒有什么選擇的余地,但在Web上就不一樣,因為它涵蓋的范圍非常廣,這是無論多 么流行的設備都無法比擬的。
你認為我們有可能會看到桌面應用程序最終走向滅亡么?
我認為不會,但你會看到更多使用Web技術構建的桌面應用程序,他們甚至是安裝在本地的,而不是儲存在某個Web服務器主機中。當然Web應用程 序也會持續不斷的發展。伴隨著JavaScript的成長和其他基于瀏覽器的Web標準的誕生,我們將能看到Web應用程序可以做更多的互動行的工作,而 這些工作以前都是必須使用桌面應用程序來完成的。我們已經在前沿的瀏覽器中看到離線應用、二維和三維渲染等已經變為事實。
你怎樣看待像Flash這樣不斷流行的插件對JavaScript的流行度帶來的影響?
Flash在盡力做到完善的支持Ajax,可以編寫腳本,可以在外部訪問,和其他插件、像圖片和表格這樣的內置對象、純粹的JavaScript 對象一樣,以組件的方式嵌入到網頁中。開放的網絡對待每項技術都是一視同仁的,這也確實妨礙了單一廠商的一枝獨秀。你可以通過Flash怎樣在Web 2.0的世界中暢游,和微軟的Silverlight也瞄準了現代Web世界這個大蛋糕看出一些端倪。
人們不想回到一家廠商的插件充斥著整個網頁的時代,所有的網站也會這么想。
首先,展示在最前沿瀏覽器中的Web標準正在不斷進化,并努力與Flash和Silverlight在視頻、動畫、高性能JavaScript等方面分庭抗爭。
其次,沒有網站愿意為了“bling”而犧牲“reach”。和插件始終存在不足相比,瀏覽器天生就會支持各種Web標準,比如JavaScript。用戶不會經常更新他們的插件,用戶也會拒絕使用某個插件,但會信任并繼續使用瀏覽器。
你認為JavaScript將來會在哪些地方延伸?
首先自然會在瀏覽器中,但以后可能會更廣,比如在服務器端,或者成為一個端到端的編程語言(更多的替代傳統意義上桌面或操作系統的腳本職責)。
你是否依舊認為(就像你之前說過的)“ECMAScript和皮膚病一樣,只是一個多余的商業名稱而已”?
我沒有印象說過這句話,但是有一點很確認:這不是一個理想的名字,而且聽起來有點像濕疹(eczema)。
你是否依然預計ECMA-262會在2008年10月前發布?你是否期望新版本將會完全向后不兼容?
如果你說的是ECMA-262的第四版,那我的答案肯定是不,我們不指望這個版本會在2008年發布。負責下一個版本的技術委員會(ECMA TC39)正在努力協調各種提議,協調的結果將包含一個短期的3.1版本,這將在2009年春天發布,還包括一個接下來發布的更大的版本(其實也不是特別 大),我們稱之為ECMA-262第四版。
JavaScript的不斷發展和流行給你帶來過什么驚喜么?
JavaScript的流行給了我不小的驚喜。我在很長一段時間里,心里已經默認JavaScript是不會流行的了。原因當然包括那些討厭的彈 出窗口,但更多是由于這種自由組合的函數和基于原型的對象編程的傳統。但后來結果發現,很多程序員本來就是從JavaScript開始學習編程的,還有一 些擅長面向對象編程的程序員,很喜歡這種非傳統的組合。
JavaScript從最初的開發到現在,什么是讓你最驕傲的?
應該是把優秀的函數和對象原型結合到了一起。對于一個已經標準化的產品,我不會說他有多么完美,因為標準化的過程中擴充了不少的內容,其中包含一些錯誤。但拋出一些小失誤和人為原因,核心的思想完全經住了時間的考驗。
你認為編程語言會朝什么方向發展?尤其是在接下來的5-20年間?
未來的編程語言必須在我們都要面對的兩個方面做得更好:
* 多核/大規模并行計算機現在已經出現在大家的身邊,現在只是出現在臺式機上,不久移動設備也會具有相應的能力。計算機科學家們在最近的十五年里,正在努力 使并行計算可以做更多有用的事情,也更加容易使用。JavaScript在多核的世界里面有自己的角色需要扮演,從相對簡單的擴展開始,比如Google Gear的工作池,“零共享(shared nothing)”的后臺線程,通過瀏覽器中的JavaScript互相發送和接收消息進行通訊。
* 安全。一個編程語言無法用自身建立起來的安全體系保證安全,因為安全是一套系統屬性,涵蓋所有層次的抽象,包括上游和下游的語言。但一個編程語言當然可以向用戶提供各種更好或者更差的工具來構建安全系統,并證明這些安全屬性可以在這個編程語言中得到保證。
你對那些未來的程序員有什么建議么?
學習大師們的經典著作:Knuth、Wirth和Hoare。計算機科學就像一個滾動的輪胎,在學術研究方面,每10-20年就會重復發現一些以 前曾經被發現過的東西。當然,近些年來大家也做了大量的工作,但我要說的,學生們不止要從最近的知識中學習,還要向過去的那些大師們學習。

該文章在 2010/2/7 20:58:35 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved