Gestalt借Ruby,Python和XAML编写网页脚本

开发 后端
最近微软在Mix在线实验室上发布了一个名为Gestalt的项目,希望借助高级语言与编译器的强大功能,在保留前端开发人员原有工作方式与习惯(编写 => 保存 => 刷新)的同时,提高构建复杂AJAX或RIA应用程序的生产力。

在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的入门示例中便包含这样的代码:

  1. <input id="say_hello" type="button" value="Say, Hello!" /> 
  2. <script language="ruby"> 
  3.     document.say_hello.onclick do |s,e|  
  4.         window.alert "Hello, World!"  
  5.     end  
  6. </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类库并把玩一番,再把您的看法告诉我们。

【编辑推荐】

  1. Python和Jython的区别简述
  2. 浅谈使用Aptana构建Python开发环境
  3. Python 3.1 RC1发布 加入多项新内容
  4. Python框架Django 1.0版将于9月2日发布
  5. 浅谈Python和C#中的Run As代码实现方式
责任编辑:彭凡 来源: Infoq
相关推荐

2009-04-03 09:16:22

PHPRubyPython

2020-04-29 13:30:38

脚本Chrome黑科技

2009-12-17 16:50:54

Ruby简单编写

2009-08-17 10:08:24

2009-12-17 17:46:26

Ruby编写问题

2023-06-28 00:05:44

人工智能聊天机器人ChatGPT

2010-03-04 11:22:59

Python抓取网页图

2009-08-14 13:45:03

Ruby和Python

2014-06-19 10:48:18

RubyPython

2010-03-26 15:28:05

Python编写

2011-07-21 13:21:32

PHP

2012-06-11 09:44:10

微软AzurePython

2012-04-26 14:02:58

ibmdw

2022-06-21 09:26:21

Shell脚本JavaScript

2021-09-08 14:47:53

UbuntuLinux服务

2013-09-03 11:06:05

Windows

2010-03-11 11:10:14

Python函数式

2009-10-26 12:17:03

linux脚本编写

2011-03-01 09:30:27

LinuxScreenletPython

2023-05-20 17:45:25

LinuxShell
点赞
收藏

51CTO技术栈公众号