Ist Java tod?
Hallo Leute,
ich möchte unbedingt eine Programmiersprache lernen, die für mein zukünftiges Studium also Informatik nützlich wird. Ich hatte mich für Java entschieden und habe das Buch 'Java, eine Einführung in die Programmierung' von Hanser gekauft. Ich hatte ein Gespräch mit meinen Freunden und sie bestanden darauf, dass Java fast eine tote Sprache ist und sie schlugen vor, dass ich C# oder C++, Python oder Java Script lernen soll. Wollte deswegen wissen, was eure Meinung ist.
12 Antworten
Also wer ernsthaft Informatik studieren will, sollte nie auf nur 1 Sprache setzen!
Jede Sprache hat ihre Vor- & Nachteile!
Zwar stimmt es, dass alle guten Browser JAVA (nicht verwechseln mit JavaScript!) nicht mehr unterstützen, da es eine Vermischung aus "Sicherheitsbereich Browser" und "alles können und dürfen Java" ist (wer will schon gern auf fremde Seiten gehen, die im Hintergrund Schreib- & Löschrechte auf die lokale Festplatte einholen können).
Aber JAVA ist in der Verbreitung weiterhin weit vorn!
Bei der Berechnungs-Geschwindigkeit extrem großer Zahlen liegt natürlich c++ unschlagbar vorn (AVX-Befehle bis 256 Bit, Hardware-nah...; der Weltrekord an Pi-Nachkommastellen auf einem Home-PC wäre ohne c++ undenkbar gewesen!)
Aber lokales JAVA ist im direkten Vergleich mit c# und Zahlen mit mehr als 2000 Stellen bei vielen Befehlen (pow, Java.math.BigInteger.nextProbablePrime() ) schneller als c# !
Was viele nicht wissen: es gibt auch JAVA-Compiler die eine EXE erzeugen.
c# ist dann gut, wenn man mal schnell Programme schreiben will, die viel mit wenigen Befehlen können sollen (Datenbank, Sprachausgabe, bunte Flächen, schräge Schrift, Abfangen von möglichen Fehlern) aber nicht besonders schnell sein müssen. Setzt aber viel voraus (Windows Betriebssystem, wo alles fertig eingerichtet ist). Wer weit in die Zukunft schaut, darf die totale Abhängigkeit nicht vergessen: GB weise .Net (Framework usw.) ständige Updates, sich ständig ändernde Sicherheitsregeln und ständig ändernde Schnittstellen. Man weiß nie, was alles nach einem Update oder einer neuen Framework-Version noch funktioniert und was bei welchem Befehl über das Internet läuft! (viele Befehle funktionieren nicht mehr, wenn man eine EXE aus einem Netzwerkpfad aufruft; ActiveX, was wieder ein ActiveX aufruft, zeigt anderes Verhalten...)
Ich nutze auch gern c# als Rumpf, wobei schnelle Funktionen in eine DLL ausgegliedert werden, die mit c++ optimiert sind. So hat man beides: schnell mal einfach was an der Oberfläche oder Sprachausgabe ändern und komplizierte Berechnungen an die superschnelle DLL übergeben.
Für Homepage ist das Zusammenspiel von JavaScript (sehr sicher) und php (Serverseitige Teile wie Datenbanken; bcmath für extrem große Zahlen) ideal.
Oft hat man auch den bereits fertigen Code vorliegen und will nur eine winzige Änderung -> dann ist es einfacher die Originalsprache zu verwenden als das ganze Projekt komplett umzuschreiben.
Im Bereich der Programmierung für mobile Endgeräte ist Java nach wie vor seit weit oben. Und es ist auf Sicht der nächsten Jahre auch nicht davon auszugehen, dass sich das ändert. Denn gerade in diesem Bereich spielt Java seine Stärken aus, nämlich plattformunabhängig ausführbarer Code und gute Kapselung von Aufgaben.
Im Bereich der Serverprogrammierung scheint mir Java tatsächlich auf dem Rückzug zu sein, und das ist auch gut so. Denn in diesem Bereich bringt die Abstraktionsebene mit interpretiertem Bytecode nicht viel, und die diversen Frameworks, mit denen gern gearbeitet wird/wurde, sind völlig überzüchtet. Ergebnis waren unglaublich viele schlechte, überladene Programme, und sehr viele gescheierte Projekte, weil den Entwicklern die Komplexität über den Kopf gewachsen ist.
Dementsprechend scheint im Serverbereich der Trend derzeit in zwei Richtungen zu gehen: 1. für rechenintensive/performancehungrige Software geht man (wieder) verstärkt auf C++ und ähnliches, und 2. für "einfache" Aufgaben, wo schnelle Wartbarkeit ein Kriterium ist und Transaktionsaufwände nachrangig sind, setzen immer mehr Leute auf Skriptsprachen. Das ist zwar auch alles andere als unproblematisch, weil da gern ziemlicher Spaghetticode bei rauskommt, aber wenigstens gehen die Entwicklungskosten runter, weil man schnell was zusammenschmeißen kann. Etliche Unternehmen stellen sich da nun auf den Standpunkt "schnell und billig bauen, und sobald es Ärger macht, wird's halt eingerissen, war dann ja nicht allzu teuer".
Meine Freunde haben mir genau das gleiche gesagt! Das war allerdings schon 1998, kurz nachdem ich mit Java angefangen hatte.
Im Nachhinein muss man wohl sagen, dass sich meine Freunde geirrt haben. Und ich vermute, dass das auch für deine Freunde gilt. :)So, wie es im Moment aussieht, wird uns Java wohl noch locker einige Jahrzehnte erhalten bleiben. Also lerne diese Sprache ruhig.
Und, ohne deinen Freunden nahe treten zu wollen, muss man leider sagen, dass ihre Aussagen so klingen, als seien sie selber noch blutige Anfänger. Das ist natürlich an sich überhaupt nichts Schlimmes (jeder hat schließlich mal irgendwo angefangen), aber auf diesem Level sollte man sich normalerweise mit "Ratschlägen" zurück halten. :)
Also dann, viel Erfolg! ;)PS: Da eine Sprache nur ein Werkzeug ist, wählt man diese normalerweise anhand der Anforderungen, und nicht nach dem Geschmack der Kumpels, aus. :)
PPS: C++, Python, JavaScript und C# sind auch sehr schöne Sprachen! Du kannst du ja zusätzlich auch irgendwann mal lernen, aber im Moment spricht wirklich GAR NICHTS dagegen, dass du mit Java anfängst. Lass dich von deinen Freunden nicht verunsichern ... die kochen auch nur mit Wasser. :)
Lustig, das er dir C# vorgeschlagen hat... Das ist nichts anderes, als der Microsoft Klon von Java, womit es WEIT unter Java in der Anwendung liegt.
Java ist definitiv nicht Tod. Wenn es um den Einstieg in die objektorientierte Programmierung geht, nutzen viele Unis Java, z.B. die TU Darmstadt.
Java ist plattformunabhängich, wodurch es sich durchaus eignet mal einen näheren Blick drauf zu werfen.
Außerdem, wie der Herr unter mir schon sagt ist Java sehr beliebt und du weist ja: Never change a running system!
C# wurde nicht nur von Java inspiriert, sondern auch von Haskell, C/C++ und Delphi.
Übrigens hat C# Java mittlerweile überholt, was Features und Flexibilität angeht. Und C# ist auch auf dem Weg platformunabhängig zu werden - wobei, nicht C# sondern das .NET-Framework. Das ganze nennt sich .NET Core, wird bei ASP.NET bereits eingesetzt
Was die Unis angeht:
Mir hat mal ein Berufsschullehrer gesagt, dass er kaum Zeit hat, sich in neue Technologien einzuarbeiten. Er muss sich ja um die Schüler kümmern und der Job hört nach Schluss-Klingeln nicht auf. Und dann will er noch Zeit für seine Familie haben.
Das dürfte bei Professoren nicht viel anders sein.
Meine Theorie daher: Die können größtenteils Java einfach besser als C# was natürlich auch positiv für die Studenten ist, weshalb die Unis da Rücksicht nehmen. Mein Mitbewohner hat in der Uni Java gelernt, ist mittlerweile aber auch auf C# umgestiegen.
Jede Sprach stirbt siehe Link: https://www.johndcook.com/blog/2017/08/19/programming-language-life-expectancy/