mash_gh4 hat geschrieben: ↑Mi 15 Dez, 2021 10:30
wenn ich mich hin und wieder nach arbeit umsehe, fällt mir natürlich schon auf, wie gefragt java in der realen wirtschaftswelt da draußen noch immer ist. damit verhält es sich offenbar ganz ählich wie der videotechnik die in den rundfunkanstalten genutzt wird. auch dort hält man qualitätsstandards und auslieferungsformaten fest, die heute jedem einigermaßen engagierterter amateur höchstens ein kopfschütteln abverlangen.
Das ist doch überhaupt nicht vergleichbar. Abgesehen davon: Java heute != Java der 90er.
mash_gh4 hat geschrieben: ↑Mi 15 Dez, 2021 10:30
so gesehen muss man ohnehin froh sein, wenn dort nicht "erfahrene" cobol od. fortan programmierer gesucht werden. ;)
Werden wohl tatsächlich gesucht und angeblich gut bezahlt.
mash_gh4 hat geschrieben: ↑Mi 15 Dez, 2021 10:30
da fällt es dann schon auf, wie wenig von den großen java-versprechungen in der praxis tatsächlich übrig gebieben ist.
Wenn man Marketing und Applets weg lässt, was fehlt denn? Java ist mit das Portabelste, was es im Augenblick gibt. Die ganzen interpretierten Sprachen mit ihren Defiziten kann man wohl kaum einen vergleichbaren Ersatz nennen, auch wenn sie - wenn nicht spezielle Erweiterungen genutzt werden - natürlich portabel sind.
mash_gh4 hat geschrieben: ↑Mi 15 Dez, 2021 10:30
dort, wo es sich programmierer frei aussuchen können, mit welchen mitteln sie arbeiten bzw. wie sie ihr ziel möglichst sauber und befriedigend erreichen können, dürfte heute wohl kaum noch jemand aus freien stücken zu java greifen
Oh doch. Und es gibt Gründe.
Android: Java (die Sprache, nicht die gleiche Laufzeitumgebung). Ja, es gibt noch Kotlin (auf der gleichen Runtime), ein paar Dinge sprechen jedoch noch immer dagegen: Wie lange wird die Sprache weiterentwickelt? Wird sie vielleicht nur wegen dem Streit um Java so gepushed, um rasch eine Alternative zu haben? Der Hauptsponsor hat schon so manches große Projekt überraschend eingestellt. Abgesehen davon: Eine neue Sprache bedeutet auch (viel) Zeit investieren, neue Fehler machen, weniger Erfahrung nutzen können (=zunächst geringere Produktivität). Java unter Android nutzen heißt auch Teile des gleichen Codes auf dem Server nutzen zu können, wieder ein Produktivitätsgewinn und abgesenktes Fehlerpotential.
Prototyping: Java ist von der Syntax noch nah genug an C/C++, um einen Prototypen später einfacher portieren zu können, da man eine ähnliche Vorlage hat. Versuch das mal mit PHP.
Portable spezielle Desktop-/Server-Anwendungen: Die Spezialsoftware soll unter Windows und Linux laufen. Klar, beides muss getestet werden, aber es sollte funktionieren. Wenn man keinen direkten Zugriff auf die OS APIs braucht und höchste Performance keine Rolle spielt, ist Java (oder zum Teil auch .NET) eine akzeptable Wahl.
Was sollen denn die Alternativen für die Bereiche Mobile, Server und Desktop sein?
PHP? Python? Sprachen, die einen freundlichen Einstieg ermöglichen, Fehler jedoch erst zur Laufzeit melden und praktisch keine Typensicherheit haben? Gleich C/C++ nehmen? Immer neu kompilieren, nicht triviale Programme für jedes OS anpassen (oder teils riesige abstrahierende Bibliotheken/Umgebungen wie Qt verwenden), im Grunde keine Festlegungen, was z.B. ein "int", "short", usw. genau sein soll? Das volle Potential für Speicherlecks, Speicherfehlern und Buffer-Overflows endgültig auf die Server holen, deren Software (Webanwendung, Webservice, ...) viel zu oft von Leuten ohne viel Ahnung und Übersicht geschrieben wird? Klar, viele davon sind selbst mit Java überfordert, darum benutzen sie es auch nicht. Wenn Du aber all den vielen Nur-Java-Entwicklern jetzt C++ verordnest: Viel Vergnügen! :-D
Kommerzielle Software: Ein Alleinstellungsmerkmal, direkt samt Quelltext auch zum Mitbewerber geliefert, ist für viele ein No-Go. Selbst gegenüber Java und .NET gab es lange eine gewisse Abneigung, da der Bytecode viel leichter als ein C++-Programm rückübersetzt werden kann und erhebliche Rückschlüsse erlaubt. Aufgrund diese Ängste gibt es die ganzen Obfuscator-Werkzeuge, um Bezeichner unleserlich zu machen.
Es ist nicht so einfach. Man muss Java nicht mögen, muss jedoch auch den Nutzen sehen und verstehen, warum es so beliebt ist.
Ich kann Java für Prototypen/Entwürfe/Spezialprogramme gut leiden. Die Einschränkungen erzwingen die Konzentration auf das Wesentliche, man kümmert sich zunächst nur um die Sache/das Ergebnis. Da Java beliebt ist, gibt es viele Bibliotheken, die helfen, die benötigten (Test-)Daten zu importieren oder die ein oder andere benötigte Fleißarbeit abnehmen. Aufgrund einer zu C++ ähnlichen Syntax, kann man bei Bedarf leichter portieren, im Gegensatz zu Matlab/Python/usw. Beizeichner können im Vergleich zu C++ leicht umbenannt werden, die Java-IDE prüft auf Konflikte. Bei C++ ist das für die Tools viel schwieriger. Gleiches gilt für weitere Refactoring-Werkzeuge. Auch wird es kompiliert und hat gegenüber den genannten interpretierten Sprachen Typensicherheit.