Плюсы и минусы IronPython и IronPython Studio - PullRequest
16 голосов
/ 23 января 2009

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

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

Ответы [ 3 ]

17 голосов
/ 23 января 2009

Моя компания, 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), и все работает отлично.

8 голосов
/ 23 января 2009

Есть много причин, по которым вы хотите переключиться с 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, если Гвидо не передумает .

6 голосов
/ 23 января 2009

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

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

...