Suite à cette discussion particulière , on peut se poser la question de manière plus générale :

Sachant qu'un programme, c'est à la fois un code écrit par un humain et un code interprété par une machine (virtuelle ou non) et qu'entre les deux, il peut y avoir un intermédiaire ou non (compilateur), qu'est-ce qui fait qu'un programme est en langage X ?
  • S'il est écrit en langage X ?
  • S'il est compatible à l'exécution avec d'autres programmes écrits en langage X ?
  • Les deux à le fois ?
  • Autre (préciser ...)


Exemples particuliers :
  • Il existe des programmes écrits dans différents langages (Java, Scala, Groovy, ...) mais compatibles à l'exécution (JVM)
  • Il existe des programmes écrits dans différents langages (C#, C++, VB, ...) mais compatibles à l'exécution (CLR)
  • Il existe des programmes écrits dans un même langage mais incompatibles à l'exécution ? Est-ce du à quoi ?
    (Dans le cas de java, c'est dû à un compilo différent qui génère du byte code dans un cas et du javascript dans un autre (gwt))


Un avis sur la question ?