Ответ 1
Можно ли начать использовать Iron Ruby и Iron Python в производственных системах?
Да. Я отвечаю за программную систему, которая работает 24/7/365. Не Критика Жизни или Смерти критическая, но очень важная. И он использует IronPython, хотя и не очень много - в основном небольшие скрипты для вещей, которые легче делать на динамическом языке. Это означает: он работает, он не разбивает ваш процесс или не потребляет безумных объемов памяти без уважительной причины. Но база пользователей и "языковое сообщество" намного меньше, чем, например, С#, поэтому может оказаться сложнее найти помощь в Интернете.
Добавить: о "MS ушел из железа" - новости: мне действительно было бы не все в порядке. Существует много хороших языков, которые Microsoft не активно разрабатывает. Пока есть активная разработка, если она делает то, что вы хотите, и пока вы можете найти поддержку, если не можете понять, что происходит, вы должны быть в порядке. Но это, вероятно, скорее вопрос вкуса, чем технический момент.
Также есть ли какие-либо дополнительные требования для их размещения?
Для IronPython 1.0 (который по-прежнему используется) вам нужны только две сборки. Для 2.0 вам также нужны сборки DLR, но ни один из них не очень большой или имеет какие-либо внешние зависимости (что я знаю).
И для бонусных очков, учитывая, что F # является языком функционального программирования таким же образом, что и Python, есть ли какое-то преимущество в использовании одного из них в рамках .NET Framework?
Как сказал Делнан, F # - функциональный язык, Python - нет. Python - это многостраничный язык, который поддерживает некоторые функциональные концепции программирования, такие как лямбда-выражения или списки, но также и С#. F # и Python - действительно очень разные звери.
Основные отличия:
- F # компилируется в IL компилятором F # (это не динамический язык), IronPython может быть скомпилирован или интерпретирован во время выполнения
- F # статически типизируется с типом вывода, Python динамически типизируется (проверка типа выполняется во время выполнения)
- F # - функциональный язык: он поддерживает такие функции, как сопоставление образцов, функции более высокого порядка и типы, метапрограммирование. Это действительно здорово, если вам нужно реализовать очень сложный алгоритм, который может быть проще реализован на функциональном языке, и вы хотите взаимодействовать с кодом С#. (Последняя часть - мое личное мнение.)
- Python - это, прежде всего, ООП/императивный язык. Это действительно отлично подходит для добавления скриптов в существующее приложение С#. (Последняя часть - мое личное мнение.)
Если вы расскажете нам больше о том, что вы хотите сделать, возможно, мы сможем дать вам более конкретный ввод или предложить другие альтернативы.