EDIT: Questa domanda in un primo momento sembra bashing Java, e credo che a questo punto è un po '. Tuttavia, il punto più grande che sto tentando di fare è il motivo per cui viene scelta una sola lingua, poiché l'unica soluzione è la soluzione a tutti i problemi. Java sembra essere quello che è stato usato così è quello che ho dovuto battere qui, ma non sono intenzionalmente a strappare a Java uno nuovo:)
Non mi piace Java nella maggior parte delle impostazioni accademiche. Non sto dicendo che la lingua in sé sia cattiva - ha diversi aspetti estremamente desiderabili, soprattutto la possibilità di eseguire senza ricompilazione sulla maggior parte delle piattaforme. Niente di sbagliato nell'usare la lingua per la tua prossima app ^ TM. (Non qualcosa che farei personalmente, ma è più perché ho meno esperienza con esso, piuttosto che il design è scarso)
Penso che sia uno spreco che i corsi di alto livello di CS vengono insegnati usando Java come lingua. Troppi dei miei co-studenti non possono programmare niente di cui preoccuparsi, perché non sanno come lavorare in un mondo non raccolto dalla spazzatura. Non comprendono fondamentalmente le macchine per le quali stanno programmando. Quando qualcuno può lavorare fuori da un mondo di raccolta dei rifiuti, può lavorare all'interno di uno, ma non viceversa. GC è uno strumento, non una stampella. Ma il modo in cui è usato per insegnare agli studenti di informatica è una stampella.
L'informatica non dovrebbe insegnare un'intera serie di corsi su misura per una singola lingua. Gli studenti partono dall'idea che tutto il buon design sia un design Java idiomatico, e che il design orientato agli oggetti sia l'UNICO VERO MODO CHE LE COSE SOLO POSSONO ESSERE FATTE. Altre lingue, almeno una delle quali non è una lingua raccolta rifiuti, dovrebbero essere utilizzate nell'insegnamento, al fine di dare al laureato una migliore comprensione delle macchine.
È imbarazzante che qualcuno con un PHD in CS di un'istituzione rispettata non possa programmare la propria uscita da un sacchetto di carta.
Quel che è peggio, è che quando parlo con quei professori CS che effettivamente capiscono come funzionano le cose, condividono sentimenti come questo, che stiamo facendo un cattivo servizio ai nostri studenti facendo tutto in Java. (Nota che quanto sopra sarebbe lo stesso se lo sostituissi con qualsiasi altra lingua, generalmente usando una sola lingua è il problema, non Java stesso)
In totale, sento che non riesco più a rispettare alcun tipo di laurea, quando non riesco a vedere quelli che mi circondano in grado di programmare la loro via d'uscita dai problemi di fizzbuzz.
Perché / come è diventato così?