欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

IronPython的伙伴——Boo PythonGroovyOracleOpenSource.net 

程序员文章站 2022-05-29 23:01:58
...

        带着IronPython和Python之间兼容性的问题,我拜读了Jim的blog,也查阅了很多资料。结果是没有找到答案,倒是有一个意外惊喜,因为发现了在.NET上IronPython并不孤单,除了先前就曾关注过的Python. For NET之外,现在又多了一个更Cool的伙伴——Boo。Boo这个项目来头也不小,她是开源社区CodeHaus在Language方面的两个项目之一,而另外一个则是Groovy——现在很Hot的基于JVM的动态语言。而Boo项目的负责人Rodrigo Barreto de Oliveira更是一个新技术倡导者,Bamboo Prevalence项目就是他的得意之作。虽然Bamboo.Prevalence我是第一次耳闻,但是对这个项目的介绍却让我似曾相识:Bamboo Prevalence is an opensource .NET implementation of the Prevayler concept。Prevaler?不就是号称从Oracle数据库中查询数据要比JDBC快9000倍的那个Prevaler吗?Prevaler的概念就是将数据库中所有的数据以对象的形式都缓存到了内存中,以减少数据库中的数据在每次查询中都要被转换成对象的消耗。So Cool! Boo就是由这样的社区和这样的项目负责人发起的项目,我们完全有理由相信Boo也会是很Cool!
        果然不出所料,Boo在很多方面已经走到了IronPython的前面,当然Boo本身和IronPython有着很多的不同。从Boo Manifesto中,我们可以看到Boo诞生的原因。正如Rodrigo所说的,他尝试了单独使用Python或者单独使用C#去编写自己的应用程序,但是两个都不能让他满意,于是Boo就诞生了。在这篇manifesto中,我们可以不仅可以看到与Boo相关的信息,还能从字里行间看出这位天才的幽默和激情:
         Nothing more tiresome than writing the same type name over and over just to make the compiler happy.

         I wanted a compiler system that could be taught new things, taught how to automagically generate common code for me. I should be able to do that, right? We all should. We are programmers! We're entitled to that ... Well, more than anything else, I needed some old-fashioned quality sleep and time to put my head straight.

        Boo本身有很多的优点:使用Boo语言编写的程序可以被编译成为.dll或者.exe文件;Boo本身是静态类型的语言,编译期错误检查的能力得到了很大的增强,但是你可以选择声明或者不声明其类型,因为她支持类型自动声明和类型推断;Boo还提供了一个很不错的编辑器Boo Explorer(可惜的是只提供了源代码,需要自己去编译,但是我弄了好久都没有编译成功);在Boo的下载包中还包含了很多的例子,甚至有一个完整的blog程序。整体感觉Boo已经做了很多的工作,无论是文档,还是范例。
        最后,我再次在boo的interpreter下,键入了我昨天在IronPython的Interpreter下面不能通过的三行代码,不过要做一点的修改,print "Hello,World!"改为print("Hello,World!")。接着,Hello,World!如我所愿地出现在了控制台窗口。是啊,又一种很cool的语言在向我们打招呼了。