Плюсы и минусы IronPython и IronPython Studio

Мы готовы в нашей компании перевести все на Python вместо C#, мы являемся консалтинговой компанией и обычно пишем небольшие проекты на C#, мы не делаем больших проектов, и наша работа больше основана на сложных математических моделях, а не на сложных программных структурах. Поэтому мы считаем, что IronPython является хорошей платформой для нас, потому что он обеспечивает стандартную функциональность графического интерфейса для окон и доступ ко всем библиотекам.Net.

Я знаю, что студия Ironpython не завершена, и на самом деле мне было трудно добавлять свои ссылки, но мне было интересно, кто-нибудь мог бы перечислить некоторые плюсы и минусы этой миграции для нас, учитывая, что код Python легче читается нашими клиентами и мы обычно поставляем проверочный концептуальный прототип вместо полнофункционального кода, наши клиенты обычно сами реализуют приложение

3 ответа

Решение

Моя компания, Resolver Systems, разрабатывает, вероятно, самое большое приложение, написанное на IronPython. (Это называется Resolver One, и это электронная таблица Pythonic). У нас также есть проект Ironclad (для запуска расширений CPython под IronPython), и он идет хорошо (мы планируем выпустить бета-версию Resolver One и скоро).

Причиной, по которой мы выбрали IronPython, была интеграция.NET - наши клиенты хотят 100% интеграции с Windows, и самый простой способ сделать это сейчас -.NET.

Мы проектируем наш графический интерфейс (без поведения) в Visual Studio, компилируем его в DLL и создаем подклассы из IronPython.

Мы обнаружили, что IronPython быстрее в некоторых случаях и медленнее в других. Тем не менее, команда IronPython очень отзывчива, когда мы сообщаем о регрессии, они исправляют ее и обычно сообщают об этом в выпуске исправлений. Если вы беспокоитесь о производительности, вы всегда можете реализовать критическую часть в C# (нам еще не приходилось это делать).

Если у вас есть опыт работы с C#, то IronPython будет для вас естественным и проще, чем C#, особенно для прототипов.

Что касается студии IronPython, мы ее не используем. У каждого из нас есть свой редактор на выбор (TextPad, Emacs, Vim & Wing), и все работает отлично.

Есть много причин, по которым вы хотите перейти с C# на python, я недавно сделал это сам. После долгих исследований вот причины, по которым я придерживаюсь CPython:

  • Производительность: Есть несколько статей, в которых говорится, что всегда есть случаи, когда ironpython медленнее, поэтому, если производительность является проблемой
  • Возьмите оригинал: многие люди утверждают, что сначала в CPython всегда интегрируются новые функции и т. Д., И вам нужно подождать, пока они будут реализованы в Ironpython.
  • Лицензирование: Некоторые люди утверждают, что это бомба замедленного действия: никто не знает, как лицензирование ironpython/mono может измениться в ближайшем будущем.
  • Расширения: одна из сильных сторон python - это тысячи расширений, которые все могут использовать CPython, как вы упомянули математические проблемы: numpy может быть подходящим быстрым пакетом для вас, который может работать не так, как ожидалось в IronPython (хотя Ironclad)
  • Особенно под Windows у вас есть встроенный GUI-инструментарий с wxPython, который также отлично смотрится под несколькими другими платформами, есть pyQT и множество других инструментариев. У них есть хороший дизайнер, такой как wxGlade, но здесь VisualStudio C# Designer проще в использовании.
  • Независимость от платформы (если это проблема): CPython портирован на очень много платформ, тогда как ironpython может использоваться только на основных платформах (недавно читал, что разработчику было грустно, что он не мог запустить mono под своей AIX)

Ironpython - отличная работа, и если бы у меня была специальная библиотека.NET, которую я должен был бы использовать, IronPython мог бы быть выбором, но для задач общего назначения люди, кажется, предлагают использовать оригинальный CPython, если Гвидо не передумает.

То, как вы описываете вещи, звучит так, будто ваша компания переключается на Python просто ради Python. Есть ли какая-то конкретная причина, по которой вы хотите использовать Python? Нужен ли более динамичный язык? Функциональное программирование вам вообще поможет? Если у вас есть отлично работающий набор инструментов в C#, зачем переключаться?

Если вы настроены на переключение, вы можете начать со стандартного Python, если вы не привязаны к библиотекам.NET. Вы можете писать кроссплатформенные графические интерфейсы, используя ряд различных сред, таких как wxPython, pyQt и т. Д. Тем не менее, Visual Studio имеет гораздо лучший дизайнер GUI, чем любой из инструментов для создания оконных макетов Python.

Другие вопросы по тегам