在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类库并把玩一番,再把您的看法告诉我们。
【编辑推荐】