Moin,
Was für einen Grund gibt es, mit Java zu programmieren und was für welche, das nicht mit Java zu machen? Welche größeren Projekte sind in Java programmiert. Warum gibt der Tiobe-Index Java mit knapp 20% auf Platz 1 an?
"Große" Client-Server-Systeme...und ich meine damit WIRKLICH(!) große...wie z.b. die Backend-Systeme in Websjops, Banken, Versicherungen usw. sind sehr oft in Java programmiert.
Der Grund hierfür ist z.b., dass Java (weniger als Sprache, sondern die ganze Architektur) sehr frühzeitig an Skalierbarkeit gedacht hat: Große Systeme müssen zum Teil mehrere zehn-tausend komplexe Transaktion in der Sekunde verarbeiten. Java kann das, wenn man es clever einsetzt. Andere Sprachen allerdings inzwischen auch (Facebook = PHP+MySQL, nur als Beispiel), aber in der Zeit, in der Java "groß" geworden ist (Ende 90er/Anfang 2000er) gab es in dieser Hinsicht kaum Vergleichbares.
Die strenge Typisierung, die hier oft als Nachteil gesehen wird, ist bei großen Entwickler-Teams IMO von Vorteil. Es gibt einfach Applikationen, die so groß sind, dass es keinen mehr im Team gibt, der alle Schnittstellen und Klassen überschauen kann, und über Coding-Guidelines kann man bei so einer Größe auch nicht sicherstellen, dass alle Entwickler nach einer bestimmten Vorgabe programmieren. Die "Strenge" bei Java hilft dabei, wenigstens ein Minimum an Code-Qualität einzuhalten.
Der Einsatz in Schulen und im Studium ist IMO widerrum dadurch begründet, dass Java einen sehr sauberen Programmierstil erzwingt, den man in anderen Sprachen zwar ebenso nutzen kann aber keineswegs muss.
Fazit: Java gilt als Dinosaurier und der Ruf ist berechtigt: Es ist schwerfällig, langsam, unflexibel, starr,... aber es fällt eben auch nicht so schnell auf die Füsse, wenn der Wind mal etwas stärker bläst.
Aber es muss eben nicht jedes Tier einen Hurrican überstehen können, will sagen, es gibt vergleichsweise wenig Applikationen, für die man in solchen Dimensionen denken muss.
Ich habe von einem Informatikstudenten gehört, dass Java oder C als Alternative zu Auswahl stehen an der Uni, also ein von beiden _muss_ man lernen.
Wir mussten an der Uni beides lernen, und ich kann auch beides empfehlen: Java aus den o.g. Gründen, C, weil es einen wie nur wenig andere Sprachen sehr nah an die Maschine heranführt, sodass man wirklich lernen kann, was auf unterster Ebene passiert.