Ist Java tod?

14 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Java ist nicht tot, ganz im Gegenteil. Es gibt viele offene hochbezahlte Java Stellen. Java wird hier auch als "Highend" Programmier Sprache bezeichnet.

Dann haben deine Freunde einfach keine Ahnung.

Schau bspw. mal auf Stackoverflow, hier hat Java mit die meisten offenen gut bezahlten Stellen:

http://stackoverflow.com/jobs?sort=i&searchTerm=java

Und Javascript ist keine Programmiersprache, sondern eine Skriptsprache.

Jedoch werden Fullstack Javascript Entwickler sicher sehr gefragt sein auch in der Zukunft im Bezug auf Single Page Applications, Realtime Applications auf Basis von Node.js, Sockets, Angular / React / Vue usw.

Eine Auswahl wären hier im Prinzip Java, C++, Python, Ruby, PHP usw.

Jedoch hat das Informatik Studium in der Regel erst einmal nichts mit der Programmierung zu tun, sondern ist sehr theoretisch.

Und um eine Sprache zu lernen benötige ich kein Studium, die wahren Entwickler sind die Autodidakten ;)

Und Javascript ist keine Programmiersprache, sondern eine Skriptsprache.
Eine Auswahl wären hier im Prinzip Java, C++, Python, Ruby, PHP usw.

Ach ja, Python und PHP sind keine Skriptsprachen?

1
@Mikkey

Geht jetzt wieder das PHP Hating los?
Und nein - PHP ist schon lange keine Hacky Skriptsprache mehr.

Wenn es dich aber glücklich macht, nenn es Skriptsprache.

0
@BobbyBackblech

Definition "Skriptsprache": Eine interpretierte Programmiersprache. Punkt.

Und jetzt rate mal, was PHP ist? ;)

Natürlich sind PHP, Python und Ruby Programmiersprachen. Aber anders als die kompilierten Programmiersprachen C++, Java, Pascal, usw. werden diese eben interpretiert, sind demnach also Skriptsprachen. So einfach ist das.

Im Übrigen ist "interpretiert" und "kompiliert" doch überhaupt keine Wertung! Du scheinst da völlig falsche Vorstellungen zu haben. Weder das eine, noch das andere, ist in irgendeiner Form schlecht oder gut. :)

PS: Und um nochmal etwas Öl ins Feuer zu gießen ... mir ist KEINE andere Programmiersprache außer PHP bekannt, die so extrem viele Inkonsistenzen im API Design und so viele Fehler in der Dokumentation hat. Der PHP-Interpreter an sich ist in einem grauenvollen Stil programmiert. Ich habe zu dem Thema hier vor längerem schon mal etwas detaillierter geschrieben und wiederhole mich jetzt nicht nochmal.

Aber du musst berechtigte Kritik nicht als Bashing abtun. Ich habe in meiner Laufbahn alle Jahre halbwegs Regelmäßig mit ca. 50 verschiedenen Programmiersprachen zu tun, und PHP ist mit Abstand die unsauberste und am schlechtesten Durchdachte.

Allein schon die wirren Namenskonventionen "strcmp" vs "str_pad" oder "asort" vs. "array_fill".

Oder "file_put_contents" hat einen $flags-Parameter und erlaubt damit Blocking. "file_get_contents" hat das nicht. Es ist damit also unter PHP überhaupt nicht möglich, synchronisiert Dateien zu schreiben und zu lesen, ohne dabei Datensalat zu riskieren. Man muss "file_get_contents" selber neu implementieren, um diesen "Bug" zu umgehen.

Aber egal, lassen wir das. :)

Auf jeden Fall gibt es bei PHP deutlich mehr zu kritisieren, als in allen anderen Sprachen. Die Betonung liegt hier auf "mehr", da ja alle Sprachen irgendwelche Knickeier beinhalten. Aber PHP schießt den Vogel ab! Und das ist kein Bashing, sondern ein harter Fakt. :)

1
@TeeTier

Das es bei PHP eine Menge zu kritisieren gibt, dass dementiere ich auch nicht. Ich denke mit der Version 7 wurde vieles besser gemacht. Alles unter 5.3 war tatsächlich grauenhaft und man kann vieles besser machen. Ruby gefällt mir auch 10 mal besser als Mr. Hacky.

Man kann aber kein PHP, Java & Co mit Javascript vergleichen.

Das war warum ich sagte, dass Javascript eine Skriptsprache sei.

0
@BobbyBackblech

PS: Ruby ist übrigens in beiden Lagern. Du kannst Ruby zwar ohne Kompilierung nutzen, aber der Main Part ( CPython ) bedarf einer Kompilierung.

Es wird meiner Meinung nach immer mehr verschwommen, auch gerade durch die on-the-fly compiler.

0
@BobbyBackblech

Man kann aber kein PHP, Java & Co mit Javascript vergleichen.

Warum nicht? Nimmt man "node.js", "JSP", "Django", "Rails" und "mod_php", dann hat man Technologien, die auf exakt demselben Gebiet miteinander konkurieren, wobei einmal in JS, einmal in Java, einmal in Python, einmal in Ruby und einmal in PHP entwickelt wird.

Ein Vergleich ist also sehr sinnvoll. :)

0
@BobbyBackblech

Ich habe nur auf den Widerspruch hingewiesen, das war nicht mit einer Wertung verbunden.

Und - ja, man kann durchaus PHP mit Javascript vergleichen, denn in der Verwendung mit ASP (ja, ich weiß, dass da vorwiegend VBScript benutzt wird, aber Javascript geht auch) ist sogar der Anwendungsfall fast derselbe und die Quellen sind sich sehr ähnlich.

0
@BobbyBackblech

Was nun "on-the-fly" durch einen JIT-Compiler kompiliert wird, wann ein Kompilat im RAM gehalten oder in einem Plattencache abgelegt wird, ist irrelevant für die Definition.

Es geht NUR darum, was du im Normalfall (!) startest!

Startest du eine Textdatei: Interpretiert

Startest du eine Binärdatei: Kompiliert

Bei Ruby, Python und PHP startest du eine Textdatei (ggf. über einen HTTP-Request), es sind somit Skriptsprachen. Bei Java, C++ oder C# startest du einen Binärblob. Ergo: Keine Skriptsprachen.

Das einzige, wo man mit viel zugedrückten Hühneraugen beide Begriffe verwenden könnte, wären solche Sprachen wie z. B. Google Go.

Allderdings bedeutet "Skriptsprache" eigentlich "nicht kompiliert", wäre also bei Google Go falsch, auch wenn man sein Go-Skript nur durch den Interpreter nudelt, ohne den Compiler zu starten.

Auch wenn CPython deine Python-Skripte als PYC-Dateien zwischenspeichert, benötigst du a) trotzdem immer noch den Originalsource und b) macht man das eigentlich nur bei Modulen der Standardbibliothek. Den Normalfall (!) stellt nun mal die Ausführung einer Textdatei dar. :)

0
@TeeTier

"Natürlich sind PHP, Python und RubyProgrammiersprachen. Aber anders als diekompilierten Programmiersprachen C++, Java, Pascal, usw. werden diese eben interpretiert,sind demnach also Skriptsprachen. So einfach ist das." 

Leider nicht teetier, zB wird ActionScript (Flash) kompiliert, Adobe bezeichnet es aber selbst als Skriptsprache (ist sogar strikt, nicht dynamisch), in Wikipedia steht dazu auch dass hier ein objekt orientiertes scripting Paradigma verwendet wird. Ich weiß nicht ob der Unterschied kompiliert oder interpretiert für die Einordnung entscheidend ist und ob man es dementsprechend so sagen kann. Wenn man das o.g. Beispiel anschaut so trifft die Definition eigtl nicht zu. Ich glaube dass eine Abgrenzung heutzutage aufgrund der enormen vielfalt an Programmiersprache und Ausnahmefälle nicht mehr möglich ist. 

0
@kingbongo

Der Actionscript Kompiliervorgang besteht darin, Bezeichner durch binäre IDs zu ersetzen. Am Ende befindet sich in einer SWF-Datei der optimierte und nicht mehr so ganz lesbare Quelltext.

Das ist auch der Grund, warum es bei Actionscript eine eval() Funktion geben kann. Wäre alles "richtig" kompiliert, wie z. B. bei C++, wäre das nicht mehr möglich. :)

Wie du schon sagst, verschwimmen hier die Grenzen, und ich bin mir nicht sicher, ob man Adobes "Umfummeln" des Quelltextes schon als "Kompilieren" bezeichnen sollte. :)

Ich denke, Adobes Actionscript ist so ein ähnlicher Grenzfall wie Googles Go. :)

PS: Früher war Flash wirklich zu 100% interpretiert. Dabei wurden sogar Integerewerte intern als Strings auf dem Stack abgelegt, weil Flash unter der Haube keine anderen Typen als Strings kannte. Die Rechenoperationen (z. B. Addition) arbeiteten auch auf Strings, so wie Grundschüler schriftlich rechnen! Das Ergebnis lag dann ebenfalls als String wieder auf einer Art Stack.

Seit ActionScript 3 kennt Flash intern auch andere "richtige" Datentypen, was zu dieser Zeit für den Performance-Boost gesorgt hat. Das war kurz vor dem Zeitpunkt, als sie die "Filter" und "Video" eingeführt haben. :)

0

Auch eine Skriptsprache ist eine Programmiersprache, sei hier noch angedeutet/verbessert

1

Wichtiger ist, dass du aus jeder "Gruppe" mindestens eine Sprache kennst. Für OOP z.B. Java, oder besser c++, funktionale Programmierung z.B. Haskel, systemnahe Programmierung asm/c.

Das würde ich weniger meinen ...

Momentan ist Java die Programmiersprache, mit der man in den meisten Bereich weiterkommt.

LG Ungedacht

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!

Woher ich das weiß:Studium / Ausbildung – Ich studiere seit 2016 Informatik an einer Universität

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.

2
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.

Was möchtest Du wissen?