EDIT: Questa domanda all'inizio sembra colpire Java, e immagino che a questo punto sia un po '. Tuttavia, il punto più grande che sto cercando di chiarire è il motivo per cui ogni singola lingua viene scelta come unica soluzione per essere una soluzione a tutti i problemi. Java sembra essere quello che è stato usato, quindi è quello che ho dovuto battere qui, ma non sono intenzionalità a strapparne uno nuovo :)
Non mi piace Java nella maggior parte delle impostazioni accademiche. Non sto dicendo che il linguaggio in sé sia cattivo - ha diversi aspetti estremamente desiderabili, soprattutto la capacità di funzionare senza ricompilazione su quasi tutte le piattaforme. Nulla di sbagliato nell'uso della lingua per la tua prossima app ^ TM. (Non qualcosa che farei personalmente, ma è più perché ho meno esperienza con esso, piuttosto che il design è scadente)
Penso che sia uno spreco il fatto che i corsi CS di alto livello vengano insegnati usando Java come lingua. Troppi miei studenti non possono programmare un lavoro degno, perché non sanno come lavorare in un mondo non raccolto. Fondamentalmente non comprendono le macchine per le quali stanno programmando. Quando qualcuno può lavorare al di fuori di un mondo raccolto dall'immondizia, può lavorare all'interno di uno, ma non viceversa. GC è uno strumento, non una stampella. Ma il modo in cui viene usato per insegnare agli studenti di informatica è come una stampella.
L'informatica non dovrebbe insegnare un'intera suite di corsi su misura per una singola lingua. Gli studenti escono con l'idea che tutto il buon design sia un design idiomatico di Java, e che il design orientato agli oggetti sia UN VERO MODO CHE È L'UNICO MODO CHE LE COSE POSSONO ESSERE FATTE. Altre lingue, almeno una delle quali non è una lingua raccolta immondizia, dovrebbero essere utilizzate nell'insegnamento, al fine di dare al laureato una migliore comprensione delle macchine.
È imbarazzante che qualcuno con un dottorato di ricerca in CS da un'istituzione rispettata non possa programmare l'uscita da un sacco di carta.
Quel che è peggio, è che quando parlo con quei professori di CS che realmente capiscono come funzionano le cose, condividono sentimenti come questo, che stiamo facendo un disservizio ai nostri studenti facendo tutto in Java. (Nota che quanto sopra sarebbe lo stesso se lo sostituissi con qualsiasi altra lingua, generalmente il problema è usare una sola lingua, non Java stesso)
In totale, sento di non poter più rispettare alcun tipo di laurea - quando non riesco a vedere chi mi circonda in grado di programmare la propria uscita da problemi di fizzbuzz.
Perché / come è potuto essere così?