Ответ 1
Имейте в виду, что IronPython был запущен одним из первоначальных разработчиков Jython (Джим Хьюгинин), пытаясь доказать, что .NET CLR была плохой платформой для динамических языков. В результате он оказался неверным, а ядро IronPython в конечном итоге стало .NET Dynamic Language Runtime (создание других динамических языковых реализаций на .NET, таких как IronRuby, значительно проще в построении).
Итак, там есть две основные точки различия:
- оригинальные разработчики .NET CLR выиграли от дополнительного опыта работы в отрасли по сравнению с ранними версиями JVM, позволяя им избежать известных проблем без обратной совместимости.
- то же самое применимо для Джима, зная, какие ловушки избегать, основываясь на его опыте в Jython.
Добавьте в простой недостаток ресурсов для разработки, посвященных Jython по отношению как к CPython, так и к IronPython, а также к приоритетам развития Jython, которые были сосредоточены на том, чтобы довести его до сочетания с предыдущими версиями Python moreso, чем оптимизация скорости, и вполне понятно, что Jython отставание, когда дело доходило до скорости.
Тем не менее, Jython похож на CPython и IronPython, поскольку использование лучших алгоритмов часто превосходит более низкую производительность на микрообъектах. JVM/CLR также означает, что переход к Java или С# для определенных компонентов проще, чем переход к расширению C для CPython (хотя такие инструменты, как Cython, пытаются немного закрыть этот пробел).