EDIT: Cette question semble au premier abord dénigrer Java, et je suppose qu'à ce stade, c'est un peu. Cependant, le point le plus important que j'essaie de faire valoir est la raison pour laquelle une seule langue est choisie comme étant l'unique solution à tous les problèmes. Java se trouve être celui qui est utilisé, c'est donc celui que j'ai dû battre ici, mais je ne suis pas intentionnel d'en déchirer un nouveau :)
Je n'aime pas Java dans la plupart des milieux académiques. Je ne dis pas que le langage lui-même est mauvais - il a plusieurs aspects extrêmement souhaitables, surtout la possibilité de fonctionner sans recompilation sur la plupart des plates-formes. Rien de mal à utiliser la langue de votre prochaine application ^ TM. (Pas quelque chose que je ferais personnellement, mais c'est plus parce que j'ai moins d'expérience avec ça, plutôt que sa conception est mauvaise)
Je pense que c'est un gaspillage que des cours de CS de haut niveau soient enseignés en utilisant Java comme langage. Trop de mes camarades de classe ne peuvent pas faire un programme qui en vaut la peine, car ils ne savent pas comment travailler dans un monde sans ramassage des ordures. Ils ne comprennent pas fondamentalement les machines pour lesquelles ils programment. Quand quelqu'un peut travailler en dehors d'un monde de collecte des ordures, il peut travailler à l'intérieur de celui-ci, mais pas l'inverse. GC est un outil, pas une béquille. Mais la façon dont il est utilisé pour enseigner aux étudiants en informatique est une béquille.
L'informatique ne devrait pas enseigner une suite complète de cours adaptés à une seule langue. Les étudiants partent avec l'idée que tout bon design est un design Java idiomatique, et que le design orienté objet est la VRAIE VOIE QUI EST LA SEULE FAÇON QUI PEUT ÊTRE FAITE. D'autres langues, dont au moins une n'étant pas une poubelle, devraient être utilisées dans l'enseignement, afin de permettre au diplômé de mieux comprendre les machines.
Il est gênant qu'une personne titulaire d'un doctorat en sciences sociales d'une institution respectée ne puisse pas programmer sa sortie d'un sac en papier.
Le pire, c'est que lorsque je parle à ces professeurs de CS qui comprennent vraiment comment les choses fonctionnent, ils partagent des sentiments comme celui-ci, que nous rendons un mauvais service à nos étudiants en faisant tout en Java. (Notez que ce qui précède serait le même si je le remplaçais par un autre langage, généralement l'utilisation d'un seul langage est le problème, pas Java lui-même)
Au total, je sens que je ne peux plus respecter aucun type de diplôme du tout - quand je ne vois pas ceux qui m'entourent capables de programmer leur chemin pour sortir des problèmes de fizzbuzz.
Pourquoi / comment en est-il arrivé ainsi?