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