11

Можно ли начать использовать Iron Ruby и Iron Python в производственных системах? Кроме того, существуют ли какие-либо дополнительные требования для их размещения?Готовы ли «железные» языки к прайм-тайму?

А для бонусных очков, учитывая, что F # является языком функционального программирования таким же образом, что и Python, есть ли какое-то преимущество в использовании одного из них в рамках .NET?

+3

Возможно, вам это интереснее, прежде чем вы начнете: http://bit.ly/dl7YC9 – Lloyd

+1

Да, как указывает Ллойд, это довольно неплохое время на ваш вопрос, есть ... – Frosty840

+7

Python не является функциональным языком , – delnan

ответ

10

Можно ли начать использовать Iron Ruby и Iron Python в производственных системах?

Да. Я отвечаю за программную систему, которая работает 24/7/365. Не Критика Жизни или Смерти критическая, но очень важная. И он использует IronPython, хотя и не очень много - в основном небольшие скрипты для вещей, которые легче делать на динамическом языке. Это означает: он работает, он не разбивает ваш процесс или не потребляет безумных объемов памяти без уважительной причины. Но база пользователей и «языковое сообщество» намного меньше, чем, например, C#, поэтому может оказаться сложнее найти помощь в Интернете.

Добавить: О «MS, сброшенном железом» - новости: мне действительно было бы не по силам. Существует много хороших языков, которые Microsoft не активно разрабатывает. Пока есть активная разработка, если она делает то, что вы хотите, и пока вы можете найти поддержку, если не можете понять, что происходит, вы должны быть в порядке. Но это, вероятно, скорее вопрос вкуса, чем технический момент.

Также есть ли какие-либо дополнительные требования для их размещения?

Для IronPython 1.0 (который по-прежнему используется) вам нужны только две сборки. Для 2.0 вам также нужны сборки DLR, но ни один из них не очень большой или имеет какие-либо внешние зависимости (что я знаю).

А для бонусных очков, учитывая, что F # является функциональным языком программирования так же, как и Python, есть ли какое-то преимущество в использовании одного из них в рамках платформы .NET?

Как сказал Дельнан, F # является функциональным языком, Python - нет. Python - это многостраничный язык, который поддерживает некоторые функциональные концепции программирования, такие как лямбда-выражения или списки, но также и C#. F # и Python - действительно очень разные звери.

Основные отличия:

  • F # компилируется в IL в F # компилятор (это не динамический язык), IronPython можно скомпилировать или интерпретируемого во время выполнения
  • F # статически типизированных с умозаключения типа , Python динамически типизирован (проверка типа выполняется во время выполнения)
  • F # - функциональный язык: он поддерживает такие функции, как сопоставление образцов, функции более высокого порядка и типы, метапрограммирование. Это действительно здорово, если вам нужно реализовать очень сложный алгоритм, который может быть проще реализован на функциональном языке, и вы хотите взаимодействовать с кодом C#. (Последняя часть - мое личное мнение.)
  • Python - это прежде всего язык ООП/императив.Это действительно здорово для добавления скриптов в существующее приложение C#. (Последняя часть - мой личный взгляд.)

Если вы расскажете нам больше о том, что вы хотите сделать, возможно, мы сможем дать вам более конкретный ввод или предложить другие альтернативы.

+1

Извините за мое недоразумение в отношении парадигмы программирования Питона и спасибо за разъяснение. Похоже, что Iron Python лучше всего добавить поддержку скриптов в мои приложения, а F # лучше всего будет добавлять сложные алгоритмы (например, сопоставление шаблонов). Звучит ли это правильно? – PureCognition

+0

@PureCognition: Да, это звучит правильно для меня, и вот как я использую эти два. Но если кто-то другой не согласен, я был бы рад расширить список с большим количеством плюсов и минусов. – Niki

1

F # подходит для научных и финансовых приложений. Его можно использовать там, где Scala используется в мире JVM. Другие языки, реализующие эти парадигмы, - Caml, OCaml, Erlang.

+1

F # также отлично подходит для высококонкурентных приложений. – GregC

+0

Вы комментарий параллелизма может пригодиться вперед, Грег. Благодарю. – PureCognition

3

Мы используем IronPython для построения B2B приложений в Silverlight. Мы никогда не сталкивались с проблемами, связанными с производительностью или стабильностью.

Итак, у нас было построено два приложения (каждая около 20 000 строк кода python в интерфейсе - бэкэнды построены с использованием инфраструктуры Django или Catalyst) и строят следующее еще большее приложение.

С динамическим языком, таким как IronPython, можно изменить f.e. функцию в классе и перезагрузить ее через HTTPRequest. Не нужно перекомпилировать, перезагрузить приложение silverlight в браузере и перейти к точке, в которой изменения кода вступают в силу.

Недавно код IronPython был помещен в руки сообщества, и такие люди, как Майкл Фоорд, очень хорошо справляются с сохранением этой версии Python up2date.

+0

spassig, вы в основном используете IronPython для создания настраиваемых правил ведения бизнеса и проверки, которые можно изменить после компиляции? – PureCognition

+1

PureCognition, создадим логику для всего графического интерфейса нашего приложения в IronPython (Диалоги, диаграммы, EventHandler, Requests, DocumentWindows, ...) – spassig

Смежные вопросы