EDITAR: Esta pregunta al principio parece estar afectando a Java, y supongo que en este punto es un poco. Sin embargo, el punto más importante que estoy tratando de aclarar es por qué se elige un solo idioma como el único fin, todo será una solución a todos los problemas. Java es el que se usa, así que ese es el que tuve que superar aquí, pero no estoy intencionalmente arrancando Java uno nuevo :)
No me gusta Java en la mayoría de los entornos académicos. No estoy diciendo que el lenguaje en sí sea malo: tiene varios aspectos extremadamente deseables, lo más importante es la capacidad de ejecutarse sin recompilación en la mayoría de las plataformas. No tiene nada de malo usar el idioma para su próxima aplicación ^ TM. (No es algo que haría personalmente, pero eso es más porque tengo menos experiencia con él, en lugar de que su diseño sea pobre)
Creo que es un desperdicio que los cursos de CS de alto nivel se enseñen utilizando Java como lenguaje. Demasiados de mis compañeros no pueden programar nada, porque no saben cómo trabajar en un mundo no recolectado. No entienden fundamentalmente las máquinas para las que están programando. Cuando alguien puede trabajar fuera de un mundo de recolección de basura, puede trabajar dentro de uno, pero no al revés. GC es una herramienta, no una muleta. Pero la forma en que se usa para enseñar a los estudiantes de informática es como una muleta.
La informática no debe enseñar un conjunto completo de cursos adaptados a un solo idioma. Los estudiantes parten con la idea de que todo buen diseño es un diseño idiomático de Java, y que el Diseño Orientado a Objetos es la ÚNICA FORMA QUE ES LA ÚNICA MANERA QUE SE PUEDEN HACER. Otros idiomas, al menos uno de ellos que no sea un idioma recolectado como basura, deben usarse en la enseñanza, para que el graduado comprenda mejor las máquinas.
Es una vergüenza que alguien con un doctorado en CS de una institución respetada no pueda programar su salida de una bolsa de papel.
Lo que es peor, es que cuando hablo con esos profesores de CS que realmente entienden cómo funcionan las cosas, comparten sentimientos como este, que estamos perjudicando a nuestros estudiantes al hacer todo en Java. (Tenga en cuenta que lo anterior sería lo mismo si lo reemplazara con cualquier otro idioma, generalmente el problema es usar un solo idioma, no el propio Java)
En total, siento que ya no puedo respetar ningún tipo de título, cuando no puedo ver a los que están a mi alrededor capaces de salir de problemas de fizzbuzz.
¿Por qué / cómo llegó a ser así?