Boo、C#和Python,哪个更好?

11

与C#相比,Boo感觉更加Pythonic,但它也被编译成.NET MSIL。我喜欢它的语法,甚至比C#的语法更好。但是我找不到任何一本教授Boo的书。

而且我真的不知道,学习Boo是否比学习C#更好,还是学习C#比学习Boo更好。我只想使用一些类似Python的数据类型。这些是:

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

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


1
我看到过的唯一一本关于Boo的书是http://www.manning.com/rahien/。 - Russ Cam
可能是重复问题?- http://stackoverflow.com/questions/890420/why-would-one-choose-iron-python-instead-of-boo - Russ Cam
1
指针!?在一个声称受到Python启发的现代语言中!?(主观)失败。 - Lennart Regebro
@RussCam:感谢提供链接 - 我非常喜欢Boo,但是找到文档很困难。 - PaulMcG
问题是:关于列表/元组?关于GUI?关于Boo/C#/Python?关于Boo书籍?什么? - OscarRyz
5个回答

15

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

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

但是很难找到关于Boo的文档。我不得不通过谷歌搜索许多内容来查找泛型的语法,因为它们是相对较新的功能,并且尚未出现在任何教程或参考页面中。而且搜索“boo”会产生很多不相关的结果,使搜索变得更加困难。

因此,总之,不要把这看作是Boo和C#之间的选择-它们实际上相互补充得很好。


2
请尝试使用CSharpRepl/Gsharp: http://www.mono-project.com/CsharpRepl - Dykam

5

我的总体看法是,从我个人的角度来看,选择C#会更好,因为更容易找到C#相关的资源、文档和教程。


1
VB.NET也没有什么问题。从技术上讲,是这样的。不喜欢它的人通常只是不喜欢它的味道,他们实际上并不理解VB.NET。我看到的唯一真实的抱怨是它的语法相当冗长,但对我来说,这是一个优点。现在,许多VB.NET功能已经添加到C#中(反之亦然),这些语言除了表面语法外几乎没有区别。 - reinierpost

3

如果你想在.NET开发领域有职业生涯,那么学习C#将非常有用。但是,学习Boo将允许您在.NET环境中使用类似Python的功能。您还应该了解IronPython,它有可用的书籍(Iron Python in Action)。


2

在 .Net 中,你可以使用 System.Collections.Generic.List 和 System.Collections.Generic.Dictionary 来创建列表和字典。

至于编程语言:选择一种让你感到更有趣的语言学习即可。语言选择通常是因个人喜好而异。尤其是在 .Net 平台上,每种语言几乎具有相同的功能。


每种语言的能力几乎相同,这只适用于C#与VB之间。 - Mauricio Scheffer
你这么认为吗?我可不这样认为...例如,我可以在C++/CLI中做几乎所有我能在C#中做的事情。而且我相信我也可以以某种方式在C#中做几乎所有我能在Boo中做的事情。唯一不同的是动态类型语言,比如IronPython,在C# 4中也会改变。 - Maximilian Mayerl
尝试为C#(甚至4.0)或C++编写扩展,以向语言中添加模式匹配。请参阅http://blogs.codehaus.org/people/bamboo/archives/001620_a_pattern_matching_facility_for_boo.html。 - Mauricio Scheffer
尝试在C#(甚至4.0版本)、C++或IronPython中进行模式匹配,就像在Boo或F#中一样。 - Mauricio Scheffer
我想我们只能就这个问题保持不同意见了 :-) - Mauricio Scheffer
显示剩余5条评论

0

我不确定你的最终目标是什么,但在放弃Python之前,请务必查看Python/Qt组合以构建GUI。您可以构建复杂的跨平台GUI,并且相当容易上手。Qt, Python Bindings


我已经了解并尝试过PyQt、wxPython、Boa Constructor、IronPython Studio等工具,但还是谢谢你的建议(我不是Python新手:S)。 - PythEch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接