Хотя языки F # и IronPython технически неодинаковы, на мой взгляд существует большое совпадение их потенциальных возможностей. Когда применимо другое, чем другое?
Пока мне кажется, что F # является более эффективным с точки зрения вычислений, в то время как IronPython наследует лучшую библиотеку от Python. Я рад, что вас исправили.
Существует несколько актуальный вопрос - это F # для IronPython/IronRuby, поскольку С# - для VB.NET?, но большинство ответов есть о языковых парадигмах, а не их фактическая применимость.
Изменить. Наверное, я должен добавить немного больше фона. У меня есть хороший опыт работы с Python в целом, и я только что узнал F # после нескольких нерешительных шагов функционального программирования, прежде всего, в основном в Erlang. В настоящее время я могу продолжать использовать Python или F # в будущем. Я хотел бы решить, какой из них я должен использовать и где. Например:
- Python имеет очень хорошие структуры данных как часть стандартной библиотеки. На днях мне нужен был эквивалент Python
heap
, и он недоступен в стандартной библиотеке F #/. Net. Point для IronPython. - F # можно использовать для создания более удобных библиотек, облегчающих доступ с других языков .Net. Так что для библиотеки .Net проживания я бы предпочел F #.
- Кросс-платформенная разработка. IronPython здесь лучше. F #/Mono - это гораздо меньший набор платформ, а совместимость с F #/OCaml нелегко поддерживать, особенно в плане библиотек.
- Интерактивная оболочка IronPython мне кажется проще, чем fsi. YMMV.
Итак, вопрос сводится к: есть ли какие-либо причины, помимо предпочтения одной парадигмы другому или некоторым командам или корпоративным предпочтениям, это заставит вас выбрать F #, а не IronPython или наоборот? Предполагая, что вы одинаково уверены в обоих? Или они абсолютно эквивалентны для всех практических целей?
Изменить. Хорошо, ребята, похоже, вы считали, что это глупый вопрос, опрокидывая его и ответы. Но, по крайней мере, это честно. Поэтому, пожалуйста, просто намек. Разве невозможно провести различие между двумя или я вхожу в какое-то секретное табу, задавая этот вопрос? Если это похоже на тролля, кто-нибудь, пожалуйста, сообщите мне?