Lass mich gerne mit irgendwelchen Statistiken überraschen, aber dass Java sich auch am Desktop "größter Beliebtheit" erfreut, würd ich stark bezweifeln. Hab grade vier Rechner in Reichweite und abgesehen von meinem Lappy ist auf keinem der Geräte die Java VM installiert.
Kleine Auswahl gefälligst?
TuxGuitar (Notensatz- und Sequenzer-Programm)
TV-Browser (Programmführer)
UC Browser (Webbrowser)
UltraMixer (DJ Tool)
UMLet (UML Werkzeug)
Violet (UML Werkzeug)
Vuze (Filesharing Programm)
WaveMaker (Entwicklungsplattform)
Web Language (Scriptsprache von HP die über die JavaVM interpretiert wird)
WebSphere
WildFly (Application Server)
Wordfast (Übersetzung)
Wurm Online (Spiel)
XDEV (Entwicklungsumgebung)
XMind (Mindmap)
yEd (Visualisierungsprogramm für Diagramme und mehr)
Zirkel und Lineal (Geometriesysteme)
Ich bin zu faul alle 149 auf Wikipedia gelisteten Einträge hier zu übernehmen. Die Liste ist lange nicht vollständig und enthält nur die sehr populären Anwendungen.
Wieviele Java-Programme fallen euch ein, die ihr am Desktop regelmäßig nutzt und euch dabei nicht jedes Mal über die hässliche Gui und/oder die Performance ärgert? Die einzigen Java Apps, die ich am Desktop regelmäßig in Verwendung hab, sind jDownloader und Netbeans.
GUI Programmierung mit Java ist tatsächlich hässlich, was jedoch nicht unbedingt an Java selbst liegt.
Was die Performance angeht, bin ich vielleicht von früher [SUP](TM)[/SUP] ein wenig biased und bilde mir das nur ein. Hab grad erst
in einem anderen Thread diesen
Performance Vergleich verschiedener Sprachen verlinkt und dort schlägt Java auch Assembler und C, was ich mir
niemals gedacht hätte. Anscheinend sind JIT Compiler inzwischen aber wirklich dazu in der Lage. Fakt ist aber, wenn ich irgendeine Java Anwendung starte, beginnt mein guter alter Lappy zu schwitzen und dreht die Kühler auf Vollgas.
Richtig, mittlerweile ist Java durchaus auf Performanz getrimmt worden. Das ist eine Entwicklung, der letzten Jahre. Kommt es dir natürlich auf das Einsparen von wenigen CPU Takten an, dann wirst du mit Java nicht zwangsweise glücklich. Wir können uns aber wohl einig sein, dass es dir bei den meisten, besonders Desktopanwendungen nicht darauf ankommt. Sollen Präzisionsmessungen im CERN vorgenommen werden, dann schätze ich, dass Java zu träge ist...
Ob verbreitet oder nicht, ist imho vorallem im Grundstudium kaum relevant, weil man dort in der Regel ohnehin viel zu wenig Zeit mit Programmierung an sich verbringt um danach für eine Firma als Entwickler wirklich interessant zu sein. Es geht grundsätzlich darum den Leuten Allgemeines über das Programmieren beizubringen (Schleifen, if then else, Funktionen) und ihnen die Basics von Objektorientiertem Design zu vermitteln. Viel mehr ist bei den paar Semesterstunden kaum möglich und dafür eignen sich Java oder C++ hervorragend.
Pauschal würde ich das nicht sagen. Natürlich kommt es auf die Hochschule an und den genauen Studiengang, aber mathematische Programmierung, Bio-Informatik, reine Informatik können, je nach dem durchaus eine gewisse Rolle spielen. Natürlich braucht und sollte sich keiner vorstellen, dass ein Informatikstudium 90% Programmieren und 10% Spielen ist. Wer den Fokus auf praktische Programmierarbeit legt, ist wohl mit einer Ausbildung besser bedient. Nichts desto trotz würde ich nicht pauschal sagen, dass einem Programmierung im Studium nicht/ nicht in relevanten Anteilen begegnet. An der lokalen Hochschule macht praktische Programmierarbeit etwa 10% und 20% des Informatik Bachelor-Studiums aus.
Ich nehme an, jeder Programmierer wird mir beipflichten, dass es auch nicht um die Sprache in der man programmiert geht; hat man die Basics intus, kann man innerhalb von kürzester Zeit jede neue Programmiersprache verstehen.
Wann und wo geht es nicht um die Sprache, in der man programmiert? Um prinzipielle Konzepte des Programmierens (Objektorientiertes Programmieren, Rekursion, etc) zu erlernen, kommt es nicht unbedingt auf die Sprache an. Dazu braucht man nicht einmal eine echte Programmiersprache. Selbst Pseudocode reicht hier in vielen Fällen aus. Geht es jedoch um die faktische Umsetzung eines Programms, kann es durchaus auf die Programmiersprache ankommen. Wie ich bereits sagte, wenn es wirklich darum geht den letzten CPU-Takt einzusparen, wirst du dich kaum mit Java versuchen. Wenn es um hochperformante Anwendungen geht willst du nicht, dass dein Quellcode interpretiert wird. Willst du sehr systemnah programmieren, wirst du mit Java ebenfalls nicht unbedingt glücklich. Willst du möglichst plattformunabhängigen Code, dann wirst du eher zu Java zurück greifen..