2009-10-06 3 views
9

По сравнению с C#, Boo чувствует себя немного более Pythonic, но он также скомпилирован до .NET MSIL. Мне понравился его синтаксис, даже больше, чем синтаксис C#. Но я не мог найти ни одной книги, преподающей Бу.Boo vs C# vs Python?

И я действительно не знаю, если изучение Boo лучше, чем C#, или обучение C# лучше, чем Boo. Я просто хочу использовать некоторые типы данных типа Python. Это:

  • {key1:value1, key2:value2} → словарю
  • [Value1,Value2,Value3] → Список (можно редактировать/изменено)
  • (Value1,Value2,Value3) → Кортеж (не могут быть отредактированы/изменены)

Я использую словари более чем список и кортежи. Я хочу знать, какой из них лучше?

+1

2 слова, форматирование текста! – leppie

+1

Единственная книга, которую я видел на Boo, это http://www.manning.com/rahien/ –

+0

Возможный дубликат? - http://stackoverflow.com/questions/890420/why-would-one-choose-iron-python-instead-of-boo –

ответ

14

Я нашел Boo очень полезным при создании простых одноразовых скриптов, сохраняя при этом мой исходный стиль Pythonic. И поскольку он компилируется в исполняемый EXE или DLL, я могу упаковать один EXE со всеми необходимыми DLL (включая Boo.Lang.dll) с помощью ILMerge, а затем отправить это клиенту, как правило, для какого-то быстрого устранения неполадок или системная диагностика.

Я также использую Boo для поддержки разработки C#. Я часто запускаю интерпретатор Boo, чтобы опробовать варианты форматирования строки или даты, затем я могу реплицировать окончательную версию почти непосредственно на C#.

Но это darned сложно найти документы для Boo. Мне пришлось довольно много Google, чтобы найти синтаксис для дженериков, поскольку они являются относительно новым дополнением к Boo и еще не упомянуты в каких-либо учебниках или даже справочных страницах. И googling для «boo» генерирует немало нежелательных обращений, что делает поиск еще более сложным.

Короче говоря, не делайте это выбором между Boo и C# - они действительно хорошо дополняют друг друга.

+2

Попробуйте CSharpRepl/Gsharp: http://www.mono-project.com/CsharpRepl – Dykam

2

У вас есть списки и словари в .Net: System.Collections.Generic.List и System.collections.Generic.Dictionary.

Что касается языка: просто изучите ту, которая вам интереснее. Выбор языка чаще всего религиозен. Особенно на платформе .Net, где каждый язык имеет почти одинаковые возможности.

+0

«где каждый язык имеет почти одинаковые возможности», который применим только к C# vs VB –

+0

Вы так думаете? Я не ... Я могу, например, сделать почти все, что я могу сделать в C#, в C++/CLI. И я уверен, что я могу делать почти все, что я могу сделать в Boo на C# тоже. Единственное отличие - это динамически типизированные языки, такие как IronPython, и это тоже изменится на C# 4. –

+0

попробуйте создать Boo-подобную DSL в C# (даже 4.0) или C++. См. Http://blogs.codehaus.org/people/bamboo/archives/001588_dslfriendly_syntax.html –

3

Знание C# будет очень полезно для вас, если вы хотите карьеру в .NET-разработке. Но обучение Boo позволит вам использовать подобные Python функции, которые вы используете в среде .NET. Вероятно, вам также стоит взглянуть на IronPython, в котором есть книги (Iron Python in Action)

6

Общее мнение, что было бы лучше пойти на C#, поскольку это с моей точки зрения, проще найти ресурсы, документацию и учебные пособия для C#.

+1

Ничего плохого в VB.NET тоже. Технически, это так. Людям, которым это не нравится, обычно просто не нравится его запах, они фактически не понимают VB.NET. Единственная правдивая жалоба, которую я видел против нее, заключается в том, что ее синтаксис довольно многословный, но для меня это сильная сторона. К настоящему времени многие функции VB.NET были добавлены в C# (и наоборот), языки немного отличаются, кроме синтаксиса поверхности. – reinierpost

0

Я не уверен, какова ваша конечная цель, но прежде чем отказаться от python, пожалуйста, проверьте комманду python/Qt для создания gui. Вы можете построить сложный кросс-платформенный гус, и его довольно легко подобрать. Qt, Python Bindings

+0

Я уже знаю (и пытался) PyQt, wxPython, Boa Constructor, IronPython Studio и другие, но tnx за советом (я не Python n00b: S). – PythEch