BOO против IronPython

В чем разница между IronPython и BOO ? Есть ли необходимость в двух Python-подобных языках?

Ответов (4)

Решение

IronPython разработан как точная реализация Python на платформе .NET. Версия 1 нацелена на Python 2.4 для совместимости, а версия 2 нацелена на версию 2.5 (хотя большинство модулей стандартной библиотеки Python, реализованные на C, не поддерживаются).

Заявленная цель Boo - стать «удобным для запястья [динамическим] языком интерфейса командной строки». Он во многом вдохновлен Python, но расходится по четырем основным пунктам:

  1. Он разработан специально для использования преимуществ платформы .NET.
  2. Дизайнер отклоняется от синтаксиса Python, в котором он не согласен с проектными решениями (в первую очередь, отсутствие явного самовыражения).
  3. Язык явно разработан так, чтобы быть «дружественным к запястью», то есть минимизировать необходимость использования клавиши Shift или других многоклавишных комбинаций.
  4. По умолчанию Boo набирается статически, но допускает необязательный утиный ввод.

Есть и другие незначительные различия в реализации / производительности, но расхождения в целях дизайна, приведенных выше, должны (IMO) информировать ваш выбор языков.

Еще две вещи, которые следует учитывать, - это зрелость и общность. Python намного более зрелый, чем Boo, и имеет гораздо большее сообщество. IronPython также получил явное благословение Microsoft.

IronPython - это Python. Бу похож на Python.

У них разные цели, и хотя IronPython стремится быть таким же, как Python, Boo - нет. Бу не беспокоится о совместимости с Python, как IronPython ...

IronPython - это реализация Python, тогда как Boo - еще один язык с синтаксисом в стиле Python. Одно из основных отличий заключается в том, что Boo по умолчанию типизирован статически.

Я уверен, что есть больше различий, я только бегло посмотрел на Бу, но я хотел посмотреть немного глубже (столько языков, так мало времени!).

Вот список ошибок Boo для программистов на Python, который довольно хорошо суммирует различия:

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