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