C'est une question à laquelle il est difficile de répondre, car il y a généralement un décalage gigantesque entre le moment où une nouvelle fonctionnalité utile d'un langage est conçue et celui où elle est mise en pratique à grande échelle. Alors, devons-nous donner du crédit à la langue où elle a été implémentée pour la première fois, ou à la langue qui a rendu la fonctionnalité courante ?
Par exemple, je dirais que le garbage collection est une fonctionnalité incroyablement précieuse des langages modernes. Son absence est une sérieuse déception pour les gars du C. Libérer la mémoire est un processus douloureux et souvent source d'erreurs. Si vous ne me croyez pas, renseignez-vous sur Hans Boehm. Il a écrit un ramasseur d'ordures conservateur pour C/C++, et a comparé les benchmarks avec free et malloc. Vous sacrifiez le temps d'exécution minimal du C, mais dans de nombreux cas, il y a réellement une augmentation des performances.
Découvrez quand le garbage collector a été inventé. Avez-vous deviné 1959 ? Je n'aurais pas deviné non plus. LISP a été le premier langage à utiliser cette idée, à partir de la fin des 50's. Je pense que Java a été le premier langage à rendre cette fonctionnalité disponible et populaire auprès d'un large public, travaillant sur des applications industrielles. En fait, l'un des objectifs de Java était de reprendre les idées utiles de Lisp et de les rendre accessibles au développeur d'entreprise moyen. Au cas où vous ne me'croiriez pas, je'm'en remettrai à Guy Steele (l'un des auteurs de la spécification Java, ainsi qu'un créateur du langage de programmation Scheme).
"Nous en avions après les programmeurs C++. Nous avons réussi à entraîner beaucoup d'entre eux à mi-chemin vers Lisp." -Steele
Je vais donc répondre à votre question par une question. Lisp a-t-il révolutionné l'industrie du logiciel, ou Java l'a-t-il fait ?