from http://www.infoq.com/cn/news/2008/02/lively-kernel
作為在Sun實(shí)驗(yàn)室啟動的實(shí)驗(yàn)項(xiàng)目,Lively Kernel致力于給Web編程帶來簡單性、通用性和靈活性,就像我們已經(jīng)熟知了三十年的桌面編程一樣,而且利用JavaScript的動態(tài)方面,使用構(gòu)建在系統(tǒng)本身內(nèi)部的工具,使其可以即時(shí)創(chuàng)建、修改和部署應(yīng)用。
在一篇Contrarian Minds的文章中,該項(xiàng)目的領(lǐng)導(dǎo)者Dan Ingalls,就該項(xiàng)目如何開始提供了一些背景信息,并且表達(dá)了他對于Web編程開始階段的觀點(diǎn):
當(dāng)人們決定去做Web時(shí),他們從文本標(biāo)記語言開始。這是大退步。HTML之所以賣座是因?yàn)樗墟溄印K峭蝗婚g受到歡迎的,這就
是Web。事實(shí)是有大量的計(jì)算機(jī)科學(xué)和圖形技術(shù)可以利用幾乎所有計(jì)算機(jī)上的文本和圖形來達(dá)到同樣的目的,但是人們在開做Web時(shí)并沒有這種心思。
隨著時(shí)間推移,人們開始想要的更多而且事情變得更加復(fù)雜:
因此在上面你有了一個(gè)文檔對象模型,其上加上樣式單,在樣式單上又增加了JavaScript,以試圖獲得一些動態(tài)行為——所有
這些用一個(gè)動態(tài)語言和一個(gè)象樣的圖形模型即可輕易搞定。對我們來說,看起來如果你從一個(gè)動態(tài)語言和結(jié)構(gòu)化的圖形開始(類似于八十年代的桌面系統(tǒng)),那么即
使是基于Web的應(yīng)用,也可以像最好的桌面軟件一樣變得生動和易于交互。
Lively
Kernel和相同領(lǐng)域的其它系統(tǒng)之間的主要區(qū)別是:該項(xiàng)目的焦點(diǎn)在于統(tǒng)一。相對于當(dāng)前許多使用了多種多樣技術(shù)(如HTML、CSS、DOM、
JavaScript和XML)的客戶端Web框架,Lively
Kernel的目標(biāo)是使用最小數(shù)量的底層技術(shù)來建立一個(gè)平臺。特別是,所選底層技術(shù)是JavaScritp,因?yàn)槠湓赪eb瀏覽器中是普遍可用,而且其語
法類似于其他語言如C++和Java。因此,按照Ingalls地說法,Lively Kernel提供了新的選擇:
在一個(gè)瀏覽器中有你所必須的一切,那里有動態(tài)語言。它可能不是你最喜歡的,但是它也不差。還有一個(gè)圖形系統(tǒng)。不是最好的,但是也
不賴。所有這些與簡單的用戶界面聯(lián)系起來,你會很開心,就像人們醉心于計(jì)算技術(shù)一樣。我不只是指消遣的快樂,還被其創(chuàng)造性所鼓舞。它讓你有一種想去做些很
酷的素材的沖動。
Lively Kernel的主要特性包括:
- 通過Morphic用戶界面框架,用JavaScript編程訪問用戶界面。用戶界面是用一個(gè)大多數(shù)瀏覽器熟悉的一個(gè)基于事件的編程模型來構(gòu)建的。
- 小的Web編程環(huán)境和計(jì)算內(nèi)核允許平臺既可作為集成開發(fā)環(huán)境(IDE)的功用,也可使整個(gè)系統(tǒng)自包含且能夠即時(shí)改進(jìn)和擴(kuò)展其自身。
- 通過使用異步HTTP的異步網(wǎng)絡(luò),類似于AJAX。
Lively Kernel的一個(gè)基本的組件Morphic,它是一個(gè)用戶界面框架,其支持可組合的圖形對象,擁有顯示對象和使對象產(chǎn)生動畫效果、處理用戶輸入、以及管理底層系統(tǒng)資源(如顯示、字體和顏色映射)所必須的機(jī)制。Morphic最初構(gòu)建在Self編程系統(tǒng)中,后來并入Squeak Smalltalk環(huán)境中了。
至于對瀏覽器的圖形引擎的低級訪問,Lively Kernel則依賴于Scalable Vector Graphics(SVG)
圖形語言。SVG是一個(gè)W3C規(guī)范,被大多數(shù)瀏覽器所支持,而且可以通過類HTML聲明語法以及JavaScript編程來訪問其功能。Internet
Explorer圖形能力是通過Vector Markup Language(VML)來提供的,但是Lively
Kernel還不支持VML,而在運(yùn)行Lively Kernel應(yīng)用程序方面,Safari提供了最好的性能和體驗(yàn)。
正如該項(xiàng)目FAQ頁面所描述的,名字中選用“Kernel”是因?yàn)樵撓到y(tǒng):
- 仍然相當(dāng)小——小于一萬行JavaScript代碼
- 意圖為自包含的和可擴(kuò)展的——僅使用系統(tǒng)自身就可以增強(qiáng)該系統(tǒng)的能力
- 展現(xiàn)出各種類似于操作系統(tǒng)的品質(zhì)——比如同時(shí)運(yùn)行多個(gè)應(yīng)用程序的能力
Lively Kernel不需要任何安裝或插件,只需點(diǎn)擊一個(gè)鏈接即可啟動系統(tǒng),所有Lively Kernel代碼被裝載進(jìn)瀏覽器運(yùn)行。其源代碼按照GPL許可開放源碼,可以從這里下載。該項(xiàng)目網(wǎng)站的一份免責(zé)聲明說明Lively Kernel仍是“一個(gè)試驗(yàn)品及研究環(huán)境,仍處在早期階段,基于這一點(diǎn)它可能更適合于學(xué)生、計(jì)算技術(shù)狂熱者、甚至是孩子們,而不適合商業(yè)網(wǎng)站設(shè)計(jì)者。”
Lively Kernel需要瀏覽器支持新的SVG實(shí)現(xiàn),它或許不能給我們減輕過去網(wǎng)站編程方面的一些復(fù)雜性,但是它是一個(gè)初期承諾,承諾帶來一些技術(shù)的統(tǒng)一且對于Web程序員來說可能更易于使用。你可以“進(jìn)入Lively Kernel世界”,獲取交互性教程或者從這里找到更多關(guān)于該項(xiàng)目的信息。
查看英文原文:Lively Kernel: How Web Programming Should Have Been Done From the Beginning?