В чем разница между IronPython и BOO? Есть ли необходимость в двух языках на языке Python?
BOO Vs IronPython
Ответ 1
IronPython предназначен для точной реализации Python на платформе .NET. Версия 1 нацелена на Python 2.4 для совместимости, а версия 2 - на версию 2.5 (хотя большинство стандартных библиотек Python, реализованных на C, не поддерживаются).
Boo заявленная цель - быть "удобным для пользователя [динамическим] языком для CLI". Это требует большого вдохновения от Python, но расходятся по четырем основным моментам:
- Он разработан специально, чтобы воспользоваться преимуществами платформы .NET.
- Дизайнер расходится с синтаксисом Python, где он не согласен с дизайнерскими решениями (в первую очередь, с отсутствием явного я)
- Язык явно предназначен для "дружественного запястья", т.е. для минимизации необходимости использования клавиши Shift или других комбинаций с несколькими ключами.
- Boo статически типизирован по умолчанию, но позволяет дополнительно печатать на утке.
Есть несколько других незначительных отличий в реализации/производительности, но вышеизложенные цели дизайна должны (IMO) информировать ваш выбор языков.
Еще две вещи, которые нужно учитывать, - это зрелость и сообщество. Python намного более зрелый, чем Boo, и имеет гораздо большее сообщество. IronPython также имеет явное благословение Microsoft.
Ответ 2
IronPython - это реализация python, поскольку Boo - это еще один язык с синтаксисом python-esque. Одно из основных отличий заключается в том, что Boo статически типизирован по умолчанию.
Я уверен, что есть больше различий, я только кратко посмотрел на Boo, но я имел в виду смотреть немного глубже (так много языков так мало времени!).
Вот список Boo gotchas для программистов на питоне, который суммирует различия довольно красиво:
Ответ 3
IronPython - это Python. Boo выглядит как Python.
У них разные цели, и хотя IronPython стремится быть таким же, как Python, Boo этого не делает. Boo не беспокоится о совместимости с Python, как IronPython...
Ответ 4
Вкратце, Boo претендует на славу в том, что он должен предоставить вам большую часть преимуществ элегантного, кратковременного синтаксиса Python и очень высокоуровневых абстракций, но не жертвуя (большей частью) преимуществами скорости статически типизированного язык, подобный С#.