EDYCJA: To pytanie na początku wydaje się bić Java, i chyba w tym momencie jest trochę. Jednak większą uwagę staram się wyjaśnić, dlaczego jeden język jest wybrany jako jeden koniec, wszystkie rozwiązania wszystkich problemów. Zdarza się, że Java jest tą, która została użyta, więc musiałem ją tutaj pokonać, ale nie zamierzam zgrywać Java nowej :)
Nie lubię Java w większości ustawień akademickich. Nie twierdzę, że sam język jest zły - ma kilka bardzo pożądanych aspektów, a przede wszystkim możliwość uruchamiania bez ponownej kompilacji na większości platform. Nie ma nic złego w używaniu języka dla Twojej następnej aplikacji ^ TM. (Nie jest to coś, co osobiście bym zrobił, ale to więcej, ponieważ mam mniej doświadczenia z tym, niż z powodu złego projektu)
Myślę, że marnotrawstwem jest nauczanie kursów CS na wysokim poziomie przy użyciu języka Java jako języka. Zbyt wielu moich studentów nie jest w stanie uczyć się nic, bo nie wiedzą, jak pracować w świecie, w którym nie ma śmieci. Nie rozumieją zasadniczo maszyn, dla których programują. Kiedy ktoś może pracować poza światem śmieci, może pracować wewnątrz jednego, ale nie odwrotnie. GC jest narzędziem, a nie kulą. Ale sposób, w jaki jest on używany do nauczania studentów informatyki, jest kulą.
Informatyka nie powinna uczyć całego zestawu kursów dostosowanych do jednego języka. Uczniowie odchodzą z myślą, że każdy dobry projekt jest idiomatycznym projektem Java i że projekt obiektowy jest JEDNYM PRAWDZIWYM SPOSOBEM, JAKIM JEST JEDYNY SPOSÓB, JAKIE MOŻNA ZROBIĆ. W nauczaniu należy stosować inne języki, z których przynajmniej jeden nie jest językiem zbierania śmieci, aby umożliwić absolwentowi lepsze zrozumienie maszyn.
To zawstydzenie, że ktoś z doktoratem w CS z szanowanej instytucji nie może zaprogramować wyjścia z papierowej torby.
Co gorsza, kiedy rozmawiam z tymi profesorami CS, którzy faktycznie rozumieją, jak rzeczy działają, dzielą się takimi odczuciami, że wyrządzamy krzywdę naszym studentom, robiąc wszystko w Javie. (Zauważ, że powyższe byłoby takie samo, gdybym zastąpił go innym językiem, problem polega zazwyczaj na użyciu jednego języka, a nie na samej Javie)
W sumie wydaje mi się, że nie mogę już dłużej szanować żadnego stopnia - kiedy nie widzę ludzi wokół siebie, którzy potrafią zaprogramować wyjście z problemów z fizzbuzz.
Dlaczego / jak to się stało?