>> Суть в том, что от проектов LLVM и JVM то и дело слышны возгласы...
> Ну это не технические отличия, а вопрос позиционирования.
> И на самом деле, производительность можно улучшить за счет JIT. Например, JIT
> позволяет вызывать напрямую или даже встраивать полиморфные вызовы, если во время
> выполнения оказывается, что используется только одна реализация (может зависеть от входных
> данных — оптимизировать статически не получится).Да, это может дать прирост производительности. Однако я не очень представляю, как оптимизации, основанные на входных данных могут быть произведены автоматически. Это наверняка потребует строго выдержанного стиля кода, отступление от которого приведёт к невозможности подобных оптимизаций.
Если бы Вас не затруднило предоставить примеры, где подобный подход действительно применяется и даёт выигрыш - было бы здорово.
К тому же, не стоит забывать, что такой подход подразумевает возрастающие накладные расходы для постоянного анализа входных данных, чтобы отловить случай, когда они перестанут удовлетворять выбранной по умолчанию реализации. Об этом в частности свидетельствует Ваша ссылка[1]. Окупятся ли данные расходы за счёт JIT - тоже нетривиальный вопрос.
Итого мы стоим лицом к лицу со многими неочевидными вопросами и сомнительным выигрышем в производительности. Собственно, для меня это и является причиной считать LLVM и JVM - не правильной вещью.
[1] https://wikis.oracle.com/display/HotSpotInternals/Performanc...
PS: Извиняюсь за столь длительную задержку с ответом -- меня выбила из колеи магистерская диссертация. Если у Вас будет желание, мы могли бы продолжить дискуссию по email.