JIT e AOT podem existir em uma mesma linguagem compilada, não tem nada a ver com a linguagem ser interpretada ou compilada, como o autor do post deixa a entender.
Exemplo simples: Dart tem ambos os tipos de compilação, sendo o JIT para durante o desenvolvimento, em que só é recompilado o que foi mudado desde a última compilação, facilitando a visualização das alterações do código; e AOT para a build de produção, pois consegue otimizar mais coisas que só são possíveis tendo conhecimento do código completo, mas toma mais tempo para compilar.