Gestalt借Ruby,Python和XAML編寫網(wǎng)頁腳本
在Gestalt網(wǎng)站中寫到:
我們創(chuàng)建Getalt項目是因為它符合MIX Online的精神。我們會在Web領(lǐng)域中挑選有趣的場景或問題,然后設(shè)法為它創(chuàng)建一些應(yīng)用程序、服務(wù),或提出一些解決方案的建議——Gestalt也是這么一回事兒。我們發(fā)現(xiàn),Web開發(fā)人員經(jīng)常會在基于標(biāo)準(zhǔn)的前端Web開發(fā)以及RIA(如Flash/Silverlight)兩種開發(fā)模型之間搖擺不定,Gsstalt的目標(biāo)便是解決這個問題。值得一提的是,選擇Ruby和Python作為腳本語言,也是未來瀏覽器中有趣的話題之一。
Gestalt主要有以下幾個特點:
使用Ruby和Python作為前端腳本語言:有了Gestalt,開發(fā)人員便可以在頁面中添加<script language="ruby">或<script language="python">標(biāo)簽,并使用Ruby或Python語言編程。與原有的JavaScript語言相比,Ruby和Python所帶來的強大生產(chǎn)力有助于開發(fā)人員編寫和管理復(fù)雜的邏輯。Ruby和Python代碼同樣可以與頁面中的DOM元素,甚至是HTML 5的canvas元素進行交互。例如在Gestalt的入門示例中便包含這樣的代碼:
- <input id="say_hello" type="button" value="Say, Hello!" />
- <script language="ruby">
- document.say_hello.onclick do |s,e|
- window.alert "Hello, World!"
- end
- </script>
透明編譯,高速運行:借助Silverlight中DLR的強大動態(tài)編譯功能,gestalt.js可以在頁面加載完成后動態(tài)獲取其中的Ruby或Python代碼,并使用IronRuby或IronPython加以編譯執(zhí)行。與JavaScript相比,Ruby和Python代碼在加載時會有毫秒級別的延遲,但是頁面的整體性能(尤其對長時間運行的頁面而言)則會有顯著的提高。
使用XAML應(yīng)對復(fù)雜樣式需求:面對如今愈發(fā)復(fù)雜的應(yīng)用程序,HTML和CSS已經(jīng)略顯疲態(tài)。在Gestalt中,開發(fā)人員可以為頁面從外部引入XMAL文件,或使用內(nèi)嵌XAML的方式來開發(fā)復(fù)雜的交互式應(yīng)用程序。Gestalt網(wǎng)站建議使用Expression Blend編輯XAML程序,并提供了Adobe Illustrator的XAML生成插件和TextMate Bundles來輔助其他工具或平臺上的XAML開發(fā)。
天然SEO支持:與傳統(tǒng)HTML頁面相同,所有的代碼和文字都顯示在頁面上。因此,開發(fā)人員無須任何額外的工作,便可以將所有的頁面信息暴露給搜索引擎。
自由的開發(fā)和運行環(huán)境:只要一個文本編輯器(如記事本或TextMate),開發(fā)人員便可以在任意的平臺上編寫Gestalt網(wǎng)頁,而Gestalt網(wǎng)頁其實也只是一個最為普通的(X)HTML頁面而已。Gestalt借助Silverlight插件中的DLR來執(zhí)行Python或Ruby代碼,這意味著Gestalt頁面也可以在多種平臺上運行。
Gestalt也有一些問題需要解決,例如:
Gestalt基于傳統(tǒng)的前端開發(fā)模型,頁面會像執(zhí)行JavaScript那樣執(zhí)行Python和Ruby腳本,但目前還不支持import和require的功能。如果您想從外部引入Python和Ruby類庫,可能就要通過內(nèi)嵌XAP的Silverlight模型來實現(xiàn)了。我們對于您理想中的require或import的方式非常感興趣,請給我們反饋。
至于Gestalt是否最終會成為一個成熟的產(chǎn)品,MIX Online團隊認(rèn)為:
(產(chǎn)品化)并不是我們的目標(biāo),但是你永遠無法知道它是否會融入某個應(yīng)用或概念之中。目前我們感興趣的是推廣Gestalt,并希望從社區(qū)中獲取靈感。這也是我們公開Gestalt源代碼的原因。我們希望您可以下載Gestalt類庫并把玩一番,再把您的看法告訴我們。
【編輯推薦】