BOO против IronPython
-
03-07-2019 - |
Вопрос
В чем разница между ЖелезоПитон и БУ?Есть ли необходимость в двух Python-подобных языках?
Решение
ЖелезоПитон разработан как точная реализация Python на платформе .NET.Версия 1 предназначена для совместимости с Python 2.4, а версия 2 — с версией 2.5 (хотя большинство модулей стандартной библиотеки Python, реализованных на C, не поддерживаются).
БуЗаявленная цель-быть «благоприятным для запястья [динамический] язык для CLI». Требуется много вдохновения от Python, но расходится на четырех основных моментах:
- Он разработан специально для эффективного использования преимуществ платформы .NET.
- Дизайнер отклоняется от синтаксиса Python, когда он не согласен с проектными решениями (в первую очередь из-за отсутствия явного указания self).
- Язык специально разработан так, чтобы быть «удобным для запястья», то есть свести к минимуму необходимость использования клавиши Shift или других комбинаций нескольких клавиш.
- Boo по умолчанию типизирован статически, но допускает дополнительный ввод текста.
Есть и другие незначительные различия в реализации/производительности, но указанные выше цели проектирования должны (IMO) влиять на ваш выбор языков.
Еще две вещи, которые следует учитывать, — это зрелость и общность.Python гораздо более зрелый, чем Boo, и имеет гораздо большее сообщество.IronPython также имеет явное благословение Microsoft.
Другие советы
IronPython — это реализация Python, тогда как Boo — это еще один язык с синтаксисом в стиле Python.Одним из основных отличий является то, что Boo по умолчанию типизирован статически.
Я уверен, что различий больше, я лишь бегло рассмотрел Boo, но хотел посмотреть немного глубже (так много языков, так мало времени!).
Вот список ошибок Boo для программистов на Python, который довольно хорошо суммирует различия:
IronPython — это Python.Бу похож на Питона.
У них разные цели, и хотя IronPython стремится быть таким же, как Python, Boo этого не делает.Бу не беспокоится о совместимости с Python, как IronPython...
Вкратце, претензия Boo на известность заключается в том, что он должен предоставить вам большую часть преимуществ элегантного, лаконичного синтаксиса Python и абстракций очень высокого уровня, но не жертвуя (большинством) преимуществами скорости статически типизированного языка, такого как C#. .