Подтвердить что ты не робот

Boo против IronPython

Посмотрев на каждый из этих двух проектов, кажется, что оба они очень похожи. Оба запускаются поверх CLI, оба имеют синтаксис стиля python, и используют .NET вместо стандартных библиотек python.

Итак, каковы различия между ними и преимуществами каждого из них?

4b9b3361

Ответ 1

Основное отличие, как я вижу, в том, что Boo статически типизирован, что означает, что тип переменной выводится по первому назначению и фиксирован оттуда - в то время как IronPython имеет "реальное" динамическое поведение обычного кода Python.

IronPython официально поддерживается корпорацией Майкрософт, а нацелен на новую рабочую среду Dynamic Language Runtime в версии 2.0. Я подозреваю, из-за этого статически типизированная природа Бу может быть быстрее. У меня нет большого "реального" опыта с этим, хотя...

IronPython также обновляет множество стандартной библиотеки python, поэтому вы можете запускать много программного обеспечения python без изменений на IronPython (например, Django).

Ответ 2

Boo статически типизирован, но имеет необязательный утиный набор (который работает довольно хорошо, по моему опыту). Boo также специально разработан для "дружественного запястья" - другими словами, чтобы свести к минимуму необходимость использования сочетаний клавиш Shift. Он имеет хорошую поддержку IDE в SharpDevelop.

Как это довольно очевидно, Boo много вдохновляет Python, но также призван хорошо использовать возможности .NET.

Производительность, Boo чувствует себя немного быстрее, чем IronPython, и, в частности, не хватает заметного запаздывания запуска IronPython.

Boo по-прежнему является незрелым языком, и ему не хватает сообщества Python. Я лично был бы немного осторожен в использовании этого в производстве. Кроме того, я не согласен со всеми отклонениями, сделанными им от Python, такими как избавление от явного я в классах.

Ответ 3

Я еще не использовал IronPython, но вот что я знаю о Boo...

  • Boo был вдохновлен Python и имеет много синтаксических сходств. Для отличий см. http://boo.codehaus.org/Gotchas+for+Python+Users
  • Boo был написан специально для CLR
  • Он статически типизирован, что имеет несколько преимуществ
    • Его можно скомпилировать в DLL и ссылаться на проекты VB и С#
    • вы получаете завершение кода в IDE
  • Язык, если он растяжимый. Вы можете написать "синтаксические макросы" и фактически добавить новые элементы на язык. Это делает его хорошим кандидатом для написания DSL.
  • Пока еще нет версии 1.0, в то время как IronPython. Язык все еще переживает растущие боли, но по-прежнему очень полезен.

Я использовал Boo для таких вещей, как:

  • Сценарии запланированных заданий. Это отличная альтернатива файлам VBScript, BAT, особенно при доступе к .NET API. С тех пор я в основном переключился на Powershell, но он специфичен для ОС и имеет более сильный синтаксис, поэтому я все еще использую Boo для некоторых вещей.
  • Написание единиц измерения
  • Встроенный язык сценариев

Ответ 4

Как и Уинстон, Boo очень расширяем из-за своей открытой архитектуры компилятора, посмотрите на эти примеры:

Ответ 5

Я написал приложения как в Boo, так и в IronPython. Для меня IronPython был более надежным выбором и большей частью того, что я написал в портах CPython без изменений. Все последние проекты были чистыми IronPython, если они предназначены для .NET Framework.

Поскольку Jim "перешел" на Microsoft, IronPython был поднят до языка верхнего уровня. Там даже Visual Studio для него.

Ответ 6

Я согласен с VolkA здесь. Возможность запуска Django является большой. Это просто потрясающая рамочная система, что Boo будет трудно переделывать ее. Сегодня это больше вопрос о структурах, которые предоставляет язык, чем та конструкция, которую она предоставляет. И Boo не обеспечивает больших улучшений над Python в конструкциях, которые он поддерживает.

Ответ 7

Основное отличие, на мой взгляд, состоит в том, что IronPython - это реализация зрелого языка - в то время как Boo является младшим и менее известным.