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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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