Множество людей ответили, может быть, я скиммирую (возможно, у меня неправильный конец клюшки), но для меня это две разные вещи:
AFAIK ничто не мешает вам JIT'скомпилировать c ++, например, машинный код проекта Dynamo JIT:
http://arstechnica.com/reviews/1q00/dynamo/dynamo-1.html
И это действительно обеспечивало улучшение скорости при определенных обстоятельствах.
Компиляция кода в смысле компилятора c ++ означает взятие кода, написанного на языке, и превращение его в набор инструкций (или, в некоторых случаях, в другой язык для последующей компиляции), который может быть выполнен каким-то логическим устройство.
например. компиляция с ++ в сборку (я думаю ;-)
или c # компиляция в IL
или компиляция Java в байт-код
JIT - это процесс, который происходит во время выполнения. Машина, выполняющая код, анализирует его, чтобы увидеть, сможет ли он его улучшить. Java и C # могут использовать и то и другое, поскольку компилятор готовит команды для виртуальной машины, и тогда у виртуальной машины есть возможность, по крайней мере, еще раз оптимизировать ее.
Некоторые программы не скомпилированы, они интерпретируются, то есть машина, на которой они выполняются, читает именно тот код, который вы написали. У этих машин есть возможность сделать JIT, но помните, что они также могут быть статически скомпилированы, потенциально быть сторонними поставщиками способами, о которых никогда не задумывался первоначальный разработчик языка.
Поэтому, чтобы ответить на ваш вопрос, я не думаю, что JIT заменит статические компиляторы. Я думаю, что всегда (если есть хотя бы программирование) будет место для представления программы и преобразования ее в набор инструкций для машины какого-либо типа. (потенциально оптимизирует, пока это делает)
ОДНАКО, я действительно думаю, что JIT может стать большей частью истории, так как среда выполнения Java и среда .net развиваются. Я уверен, что JIT улучшится и с учетом таких вещей, как проект Dynamo, я предполагаю, что есть место для аппаратного обеспечения и JIT, так что все, что делает ваш процессор, оптимизируется в зависимости от среды выполнения.