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

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

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

F# тоже неплохо подходит для написания сценариев, не знаю, рассматривали ли вы это как вариант.

Benjol 20.03.2009 14:05
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
16
1
4 872
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

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

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

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

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

Следует отметить, что теперь IronPython 2.0 превзошел CPython во всех тестах производительности. IronPython 1.0 был о совместимости, 2.0 был о производительности. Имейте в виду, что можно использовать JIT, например Psyco, для значительного улучшения производительности Cpython (от 2x до 100x).

Soviut 24.01.2009 04:49

Лично я использую и IronPython, и Cpython. Я обычно использую IronPython, когда мне нужен .Net, Cpython, когда мне нужны numpy, scipy или matplotlib. Остальные мои скрипты, как правило, нормально работают и под тем, и с другим. Я использую SciTe в качестве редактора для IronPython и Spyder в качестве среды IDE для CPython. Лично я большой поклонник Spyder, но в настоящее время он не очень хорошо работает с IronPython.

TimothyAWiseman 06.01.2010 00:56
Ответ принят как подходящий

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

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

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

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

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

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

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