初见Boo[原]

初见Boo
    其实以前在看一个开源的.Net开发环境SharpDevelop的时候就已经见过Boo了,但是并不知道Boo到底是用来做什么的。因为Python,我了解了Boo的存在。Boo同样属于脚本语言,官网是http://boo.codehaus.org/。Boo是基于.net的脚本语言,语法格式与python非常相似,当然许多理念也与python非常相似。虽然说Boo是脚本语言,但是我们依然也可以使用boo生成.net可执行程序。
    Boo脚本用法简单。一般来讲,我们下载好他的bin包之后,然后在windows下将bin目录设置为环境变量path中就可以使用了。执行boo脚本的命令是
booi  [args]
例如: booi hello.boo
当然,如果你想要生成可执行程序的话也很方便。例如:
booc -output:hello.exe hello.boo
这样就可以生成可执行程序了。
这是boo最基本的用法了。当然,如果你喜欢用IDE的话,就又回到了我们刚才的话题,sharpDeveloper就是一个不错的选择。语法高亮、代码提示都有,还是非常不错的。
    Boo能做什么?从编写普通的控制台程序到windows form程序,再从asp.net程序到gtk程序都没问题的。这些可以从例子里面我们可以看到。在boo程序中,我们的数据类型不需要预先强制声明和定义,这一点很不错的。我觉得用boo来快速的制作基于.net的应用是一个非常不错的选择。基本上vb.net/c#可以做的事boo都可以做,但是却再加上他是脚本语言,可以解释或编译执行,这一点却非常有意思。所以对boo的了解也是应该的。下面是一个简单的boo的win form例子,从这里我们可以看到有多简单了。
import System
import System.Windows.Forms from System.Windows.Forms
class App:
   
    [getter(Times)]
    _times = 0
   
    def Run():
        f = Form(Text: "My first boo winforms app")        
               
        button = Button(Text: "click me!")
        button.Click += def:
            print("clicked!")
            ++_times
        
        f.Controls.Add(button)
        
        if Application.MessageLoop:
            # if we are running inside boox
            # just show a dialog
            f.ShowDialog()
        else:            
            Application.Run(f)
app = App()
app.Run()
print("The button was clicked ${app.Times} times.")