2009-10-06 62 views
9

与C#相比,Boo感觉更多Pythonic,但它也被编译为.NET MSIL。我喜欢它的语法,甚至超过了C#的语法。但是我找不到一本教Boo的书。Boo vs C#vs Python?

我真的不知道,如果学习Boo比C#好或者学习C#比Boo好。我只想使用一些类似Python的数据类型。这些都是:

  • {key1:value1, key2:value2}→字典
  • [Value1,Value2,Value3]→列表(可以编辑/改变)
  • (Value1,Value2,Value3)→元组(不能被编辑/改变)

我使用字典更多而不是列表和元组。我想知道哪一个更好?

+1

2个单词,文本格式! – leppie 2009-10-06 09:53:00

+1

我在Boo上看到的唯一一本书是http://www.manning.com/rahien/ – 2009-10-06 10:04:05

+0

可能的重复? - http://stackoverflow.com/questions/890420/why-would-one-choose-iron-python-instead-of-boo – 2009-10-06 10:06:27

回答

14

我发现Boo在创建简单的一次性脚本时非常有用,同时保留了我的Pythonic源代码风格。并且,由于它编译为可运行的EXE或DLL,我可以使用ILMerge将所有需要的DLL(包括Boo.Lang.dll)打包成一个EXE,然后将其发送给客户端,通常用于某种快速故障排除或系统诊断。

我也使用Boo来支持我的C#开发。我经常启动Boo解释器来尝试字符串或日期格式的变体,然后我可以将最终版本直接复制到C#中。

但是它是不好意思很难找到Boo的文档。为了找到泛型的语法,我不得不寻找Google的语法,因为它们是Boo的一个相对较新的特性,在任何教程或者甚至参考页面中都没有提及。搜索“boo”会产生不少不想要的结果,这使搜索变得更加困难。

所以简而言之,不要把它作为Boo和C#之间的选择 - 它们实际上相得益彰。

+2

尝试CSharpRepl/Gsharp:http://www.mono-project.com/CsharpRepl – Dykam 2009-10-06 14:31:21

2

在.Net中有名单和词典:System.Collections.Generic.List和System.collections.Generic.Dictionary。

至于语言:只要学习一个更适合你的乐趣。语言的选择往往是宗教信仰。特别是在.Net平台上,每种语言都具有几乎相同的功能。

+0

“每种语言都具有几乎相同的功能”,只适用于C#vs VB – 2009-10-06 13:29:09

+0

你是这么认为的?例如,我不能......我可以在C++中使用C++/CLI做几乎所有我能做的事情。我敢肯定,我可以在C#中做任何我能做的事情。唯一不同的是动态类型的语言如IronPython,并且在C#4中也会发生变化。 – 2009-10-06 14:01:04

+0

尝试在C#(甚至4.0)或C++中创建类似boo的DSL。请参阅http://blogs.codehaus.org/people/bamboo/archives/001588_dslfriendly_syntax.html – 2009-10-06 17:22:58

3

如果您想从事.NET开发工作,了解C#将对您非常有用。但是学习Boo可以让你在.NET环境中使用类似Python的特性。您应该也可以看看IronPython,它确实有书可用(Iron Python in Action

6

我的一般意见是,它会更好地去C#,因为从我的角度来看,更容易找到资源,文档和教程为C#。

+1

VB.NET也没有错。从技术上讲,就是这样。不喜欢它的人通常不喜欢它的气味,他们实际上并不了解VB.NET。我见过的唯一真实的抱怨是它的语法比较冗长,但对我来说这是一个很好的观点。到目前为止,许多VB.NET特性已被添加到C#中(反之亦然),除了表面语法之外,这些语言几乎不同。 – reinierpost 2009-10-06 11:06:26

0

我不确定你的最终目标是什么,但是在放弃使用python之前,请检查一下构建gui的python/Qt组合。您可以构建复杂的跨平台guis,并且相当容易找到。 QtPython Bindings

+0

我已经知道(并尝试过)PyQt,wxPython,Boa构造函数,IronPython Studio等,但是对于建议(我不是Python n00b:S)的tnx。 – PythEch 2009-10-06 13:26:21