@tymanst

Если jit так хорош, то зачем вообще нужна интерпретация?

Популярные интерпретируемые языки поголовно движутся в сторону JIT. PHP(уже есть), Ruby, Python (пока только планирует). Если jit так хорош, то почему эти языки изначально не делались с jit или не перешли на него 10ки лет назад (речь о самых популярных реализациях этих языков)?

Какие преимущества дает интерпретация и жертвуют ли чем-то существенно языки внедряя jit? Пишут что jit нужен прогрев и в некоторых операциях он будет медленнее по дефолту, но из того что я видел разница там не сильно большая, в отличии от разницы в cpu-bound задачах.
  • Вопрос задан
  • 194 просмотра
Пригласить эксперта
Ответы на вопрос 4
@deliro
1. JIT сложно и долго писать
2. JIT не только ускоряет выполнение, но и замедляет (потому что нужно тратить время на анализ, компиляцию, деоптимизацию и т.п.). Далеко не всегда (RoR тому пример и почти любые скрипты, которые выполняются один раз и умирают) JIT позитивно влияет на время исполнения
3. JIT дороже по памяти
Ответ написан
Комментировать
Adamos
@Adamos
Если для вас очевидны преимущества заранее откомпилированного кода и неудачность применения скриптовых языков в конкретной задаче - вы уже давно можете взять С++ и не задавать наивных вопросов.
JIT появляется там, где язык, первоначально не предназначенный для тяжелых задач, развился настолько, чтобы сунуться в эту нишу. Причем, как выше уже отметили, JIT даже в этом случае - не единственно возможное решение.
Кстати, бывает и наоборот - в С++ для интерфейсов притаскивают JS, а для динамичной логики - Lua, потому что ресурсы по факту копеечные, а в гибкость очень хочется...
Ответ написан
Комментировать
gbg
@gbg
Любые ответы на любые вопросы
Потому что реализация JIT - это технически трудная задача, которая требует экспертизы и ресурсов. Которыми молодые, динамично развивающиеся языки просто не обладают на начальном этапе.
Ответ написан
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
jit это не какая-то готовая библиотека - прикрутил к проекту и радуешься, это технология/архитектурное решение и его реализация у всех языков различается.

не перешли на него 10ки лет назад?

почему в windows95 не могли сделать все что есть windows11? или почему твоя первая программа/сайт не были идеальными? вот и у всех так - растем со временем
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы