Fork me on GitHub

是开始学习IronPython 的时候了

Dino's Blog 上写一篇文章介绍了IronPython 2.6的Final版本已经发布。IronPython就是优雅的python编程语言和强大的.NET平台的有机结合, IronPython 2.6将完全与CPython 2.6兼容。可以从codeplex下载:http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=12482,下载的安装程序包含了二进制文件、Python标准程序库、用于Silverlight的IronPython和一个教程。此外,还有一个成为Pyc.py的工具,该工具可以把IronPython应用程序编译成二进制文件。Ipy.exe可以用来执行IronPython程序,对于熟悉Python语言及探索.NET程序集来说非常有用。http://ironpython.net/有个用Silverlight开发的Web版本的ipy工具http://ironpython.net/try/

IronPython是流行的程序设计语言Python通向.NET framework的一个端口。微软公司对于.NET framework的IronPython和动态语言非常关注。微软公司已经在各种项目中提供了对IronPython的支持。

IronPython已经很好的集成到了.NET framework中,Python语言中的字符串对应于.NET的字符串对象,并且Python语言中对应的方法,在IronPython中也都提供了。其它数据类型也是一样。

MSDN Channel9发布了一段非常精彩的演讲,其内容是IronPython团队的Harry Pierson评论.NET平台上动态语言的发展。

Jim Hugunin是IronPython(也是Jython)的创造者。在构造IronPython的过程中,他发现CLR(Common Language Runtime)对动态语言提供了很好的支持,同时也发现了一些技术问题。为此,他和CLR团队进行了深入的交流。最终,他决定加入微软,加入CLR团队,你也许注意到Jim Hugunin并不是IronPython得开发者了,而是在构造更适合动态语言的CLR。他们的工作成果之一就是DLR(Dynamic Language Runtime)。

DLR构建在CLR之上,提供了一批服务和API,使得语言开发者能够容易地构造编程语言。它不但是IronPython 2.x的基础,也是C# 4.0的基础。C# 4.0提供了dynamic关键字,可以实现运行时的结构一致性语义(即duck typing)。从语句表达,到底层实现,C#已经完全动态化,动态语义已经渗入其机理。可见,DLR不但打通了IronPython与C#交互的关键,也必将影响到.NET平台上的所有开发者。

IronPython与DLR是共生关系:CLR团队用IronPython来驱动DLR的开发,DLR的开发成果又反过来支持IronPython的进一步演化。这也表明,IronPython将受到微软的持续支持。也许有人会问:既然C# 4.0已经动态化,那么为什么还需要掌握一种“真正”的动态语言呢?Harry Pierson的回答是:用合适的工具做事(choose the right tool for the job)。Harry曾经是C#最早一批的开发者和使用者,现在是IronPython团队的程序经理。与《IronPython in Action》的作者Michael Foord相似,他很擅长也很喜欢C#,同时也非常热爱IronPython。

抱定一种统一语言不放的年代就快结束了,我们正在进入一个专业细分的新时代,函数式语言更擅长并发(F#已经集成到Visual Studio 2010),动态语言更擅长表达领域模型和业务逻辑。将这些语言都聚合在一个统一的平台上(.NET或Java),将为开发者提供更丰富的工具箱:“一方面选择使用针对当前工作的最佳工具,另一方面发挥底层平台的健壮性与资源丰富的优势”。

如《Learning Python》所言:“无论是短期策略任务(测试或系统管理),还是长期战略上的产品开发,Python已经被证明它是无所不能的”。而Python 2.6的一致性、简洁性、兼容性也受到广泛认同。因此,IronPython 2.6的语言成熟度很高,能够用简洁的代码表达丰富的语义。

IronPython 2.6,它为程序员提供了什么优势呢?

首先,它的语法与Python 2.6兼容。第二,IronPython 2.6在动态语言与CLR集成上有重大突破。IronPython 2.6提供了新特性clrtype,允许程序员用纯IronPython代码提供property、attribute等CLR类型信息。这样IronPython代码就可以无缝地与Sliverlight、WCF等框架集成。相关技术细节可以参考Harry的系列文章。第三、开发环境对于语言的成功也至关重要,Visual Studio集成是必不可少的。Harry在他的Blog中提到,在IronPython 2.6正式版发布后,他们会考虑Visual Studio Integration和IronPython 3.x。从Harry的演讲可知,IronPython不会进入Visual Studio 2010 RTM(2010年3月以后,微软刚刚宣布了推迟发布Visual Studio 2010 RTM),Visual Studio 2010 SDK会携带一个IronPython 2.6集成的例子。

 

PDC2009相关Session:

Using Dynamic Languages to Build Scriptable Applications

Dynamic Binding in C# 4

posted @ 2009-12-22 13:09  张善友  阅读(11258)  评论(5编辑  收藏  举报