Frage von Yoshiro21, 372

Wieso beschweren sich leute über java?

Kenne mich nicht so gut mit der software aus, weiß nur das viele java nicht mögen, wieso eigentlich?

Antwort
von PerfectMuffin, 136

Vor dieser Unkenntnis bist du sogar hier nicht sicher, wie ich sehe.

Viele Leute kennen Java(als Programm) nur von Minecraft und heulen dann rum, weil jedes Mal wenn Minecradt abstürzt nur da steht, dass Java abgestürzt sei. Die typischen moströsen Stacktraces von Javalaufzeitfehlern geben dabei den Eindruck, dass java sehr fehlerhaft sei, weil viel roter Text=nicht gut.

Viele andere, die es ebenfalls nur von Minecraft kennen heulen rum, weil es so langsam sei. Java(als Programmiersprache) ist prinzipiell weniger effizient als z.B. C/C++ weil diese Sprachen hardwarenäher sind, dafür ist es aber portierbar und einfacher zu programmieren. Außerdem hat java einen sogenannten Just-in-time Compiler und wird anders als JavaScript in Form von Bytecode und nicht als Skript ausgeführt, wodurch der Geschwindigkeitsunterschied eigentlich ziemlich klein wird.

Noch mehr, die wegen Minecraft rumheulen, glauben, dass Java ressourcenhungrig sei, aber das liegt vor allem in der Natur von Minecraft. Java braucht nur ein paar Extraressourcen für die JVM, aber das sind nur ein paar MB. (Möglicherweise speichert Java Variablen aber weniger effizient)

Die die es NICHT nur von Minecraft kennen, glauben, dass es ein Sicherheitsrisiko und eine Virenschleuder ist, nein, es ist lediglich eine Laufzeitumgebung für Programme, die Änderungen am PC vornehmen können, ob etwas übles passieren kann hängt also nur von ausgeführten Programmen ab. Da kann man also genausogut auf KeinVirus.exe doppelklicken.

Was aber stimmt, ist dass Java-Applets einige Sicherheitslücken hatten, die es erlaubten, die internen Sperren zu umgehen und Änderungen am PC vorzunehmen, zu denen man eigentlich nicht befugt ist. Außerdem hatten einige Leute eingestellt, dass Java-Applets immer ausgeführt werden sollen und konnten sich daher nicht schützen.

Ob die Lücken behoben sind, oder nicht, nicht einmal Java traut seinen eigenen Applets noch und sie werden kaum mehr ausgeführt, ohne dass der Nutzer eine Warnung ist Gesicht bekommt.

Kommentar von PrivatfragenDE ,

Endlich mal eine kon­s­t­ruk­tive Antwort, danke dafür.

Kommentar von procoder42 ,

wodurch der Geschwindigkeitsunterschied eigentlich ziemlich klein wird.

Das Argument mit der Effizienz kommt aus den 90ern. Heutzutage hat jeder Rechenkapazität ohne Ende, da macht es kaum einen Unterschied ob interpretiert oder kompiliert (nach dem Moorschen Gesetz verdoppelt sich die Rechenleistung alle 2 Jahre).

Die die es NICHT nur von Minecraft kennen, glauben, dass es ein Sicherheitsrisiko und eine Virenschleuder ist

Die Story kommt wiederum vom Irrglaube, Java = JavaScript.

Und Appletts werden (Ausgenommen im Physikunterricht als Anschauungsmaterial) eh nicht mehr verwendet.

Kritisch sollte man immer sein, aber man kann es auch übertreiben.

Bis jetzt ist das hier über mir übrigens die einzig wirklich vernünftige Antwort

Kommentar von Borgler94 ,

von allen Antworten die eindeutig kompetenteste :)

Kommentar von PerfectMuffin ,

Wow. Die Upvotes.

Kommentar von MarkusBu ,

Beste Antwort

Expertenantwort
von medmonk, Community-Experte für Computer, 145

Vorteile die für Java sprechen:

  1. Plattform-unabhängig 
  2. Einfach erlernbar
  3. Lizenzierung (unter GPL lizenziert, was auch ein Nachteil sein kann)

Nachteile die gegen Java sprechen:

  1. Sicherheitslücken (die sich wie bei Flash leider häufen)
  2. Aufwand, auf Grund »beschränkter« Syntax
  3. Performance (i.d.R. langsamer als C++, C# oder andere Hochsprachen)
  4. Abstraktionen -  bei/unter diverser Hardware aufwändig(er)
  5. Interpreter - ohne installierter JDE nicht ausführbar (ähnlich wie Flash)

LG medmonk 

Kommentar von janwelter ,

Hört sich so an als wenn du selbst keinen Plan von Java hättest, Java ist mittlerweile Kein bisschen langsamer wie C/++. Bei der Laufzeitumgebung beim testen während dem Programmieren ist Java sogar schneller, und später ist sowieso alles in Maschinencode Compiliert

Kommentar von medmonk ,

Ich habe es lediglich aufs wesentlich und stark vereinfacht herunter gebrochen und bewusst diverse Details ausgelassen. Da der/die Fragende damit wohl kaum etwas anfangen kann. Kurz um, eher ein mit Kanonen auf Spatzen schießen wäre und zu viele Informationen die meisten eher erschlägt. Wenn sich Yoshiro mit Java auseinandersetzen möchte, er/sie um gute Fachlektüre nicht herum kommt. In jener wird dann alles sehr detailliert erläutert. Somit an deiner Ergänzung nichts auszusetzen habe. 

LG medmonk   

Kommentar von PerfectMuffin ,

Mit javac stimmt das womöglich nicht ganz.

Es gibt extra Compiler dafür, aber auch der JIT übersetzt soweit ich weiß nicht alles.

Kommentar von procoder42 ,

Performance (i.d.R. langsamer als C++, C# oder andere Hochsprachen)

Toll, C# läuft unter Windows natürlich schneller, weil MS die Laufzeitumgebung auf sein Betriebssystem abstimmen kann. Wenn man jetzt einen allgemeinen Vergleich macht, ist Java schneller, da C# unter anderen OS gar nicht (bzw. nur mit der Mono Laufzeitumgebung funktioniert). Und bei der Rechenleistung machen die zeitlichen Unterschiede in der Laufzeit im Vergleich zu C++ kaum mehr was aus, bei der Rechenleistung die ein PC heutzutage hat; das Argument stammt aus der Anfangszeit von Java (in den 90ern), als das noch nicht so war.

Kommentar von medmonk ,

Ich habe diesbezüglich überhaupt keine Einwände. Jedoch gibt es (auch heute noch) diverse Bereiche, wo Java im Vergleich zu anderen (neueren) Technologien eher träge ist. Primär was Web-Applikationen angeht. Gerade dort gehört Java eigentlich zu den letzten Mitteln, die ich nutzen würde. Was jedoch mehrere Gründe hat (unter anderem die zwingend benötigte JDE).

LG medmonk 

Kommentar von procoder42 ,

Ich habe diesbezüglich überhaupt keine Einwände.

Gut, dann ist das ja geklärt :D.

Primär was Web-Applikationen angeht. Gerade dort gehört Java eigentlich zu den letzten Mitteln, die ich nutzen würde.

Das kommt ganz darauf an, wo man dort auf Java zurückgreifen würde : Ich würde auch niemals auf die Idee kommen, ein Java Applett ins Frontend einer Webanwendung zu klatschen. Im Backend kann man Java meiner Meinung nach gut einsetzen. Ich persönlich finde Servletts ne nette Sache und für Business Anwendungen wird Java im Backend eines Servers gerne hergenommen (für sämtliche ERP Software). Aber das ist halt auch wieder Geschmackssache.

Kommentar von medmonk ,

Ja, mit letzte Mittel waren vorrangig Applets im Frontend gemeint. Allgemein ist man gut beraten, dort möglichst nur die Technologien zu nutzen, die A: keine Extensions (JDE oder Flash) benötigen - und B: Plattform-unabhängig ohne Umwege beim Client laufen. Letzteres ist mit Java so eine Sache. Zumal in Google Chrome Java überhaupt nicht ausgeführt werden kann. Daher das wo und wie bei der Konzeption immer eine Rolle spielen sollte. 

Was deine Anwendungsbeispiele angeht, Java seine Berechtigung hat und selber durchaus nutzen würde. Wobei ich aktuell gerade verstärkt mit Electron arbeite und mich etwas auf die Entwicklung nativer Apps auf Basis von Web-Technologien fokussiere. Vorerst ein An und Austesten "was geht, was nicht und wenn dem so ist, wie umgehe ich es".   

Kommentar von procoder42 ,

Zumal in Google Chrome Java überhaupt nicht ausgeführt werden kann. Daher das wo und wie bei der Konzeption immer eine Rolle spielen sollte.

Java im Frontend ist ohnehin er eine theoretische Möglichkeit, eine ersthafte Alternative zu JS stellen Java Appletts nicht dar.

Vorerst ein An und Austesten "was geht, was nicht und wenn dem so ist, wie umgehe ich es". 

Das ist sowie so die sinnvollste Option. Wenn man programmieren kann, ist die Sprache letztendlich egal; dann wählt man die Option, die für die Aufgabenstellung am besten passt.

Ich wollte eigentlich auch keine Kritik an deiner Antwort üben, sondern diese ergängen um ggf. Unklarheiten zu beseitigen.

Kommentar von medmonk ,

Wenn man programmieren kann, ist die Sprache letztendlich egal; dann wählt man die Option, die für die Aufgabenstellung am besten passt.

Ich denke da trennt sich auch die Spreu vom Weizen. Sprich ob man in der Lage ist zu erkennen, ob sich diese oder jene Sprache für Aufgabe X besser eignet oder nicht. Letztendlich auch vom eigenen Wissen, Können, diversen Schnittstellen und der Nachfrage abhängt (abhängig ist). 

Ich wollte eigentlich auch keine Kritik an deiner Antwort üben, sondern diese ergängen um ggf. Unklarheiten zu beseitigen.

Ich habe deine Antwort(en) auf meinen Beitrag auch nicht anders wahrgenommen. Davon mal ab, selbst wenn du es kritisierst - ist es halt so. Damit muss/müsste ich leben. Gilt im übrigen für alle, die sich auf Plattformen wie dieser beteiligen. Bekommen aber zu viele nicht hin und fühlen sich gleich auf den Schlipps getreten. Why? Keine Ahnung. ;-) 

Antwort
von NiveauIsNoCreme, 20

Es kommt immer auf die Sicht an, aus der Java betrachtet wird.Jede Hochsprache hat seine vor und Nachteile...

Antwort
von Tions, 168

Java führt 'ungefragt' Aktionen aus. Bei seriösen Sachen wird zum Beispiel einfach ein Video oder ähnliches gestartet. Es ist aber auch möglich Viren oder andere Schadprogramme ausführen zu lassen ohne das der Benutzer etwas davon mitkriegt. Es bietet einfach zu viele Möglichkeiten einen PC zu sabotieren. 

Kommentar von medmonk ,

Java führt 'ungefragt' Aktionen aus. Bei seriösen Sachen wird zum Beispiel einfach ein Video oder ähnliches gestartet.

Standardmäßig werden Java-Anwendungen ohne Bestätigung des Users gar nicht erst ausgeführt. Gerade was das angeht sich Java etwas von Flash unterscheidet. In Google Chrome kann Java beispielsweise überhaupt nicht mehr ausgeführt werden. 

Dir aber in sofern zustimme, das Sicherheitslücken von Java ebenso wie die von Flash häufig ausgenutzt werden, um Angriffe durchzuführen. Zwar nicht ausschließlich, trotzdem eben immer ein gewisses Angriffs-potenzial besitzen. 

LG medmonk

Antwort
von SiroOne, 128

Jedes Programm kann Sicherheitslücken haben, es geht eigentlich nur um ein Prinzip auch bei Java, was man nicht braucht soll man auch nicht unbedingt auf den Rechner haben.
Ich brauche Java nicht, also hab ich es nicht auf den Rechner, so einfach kann das sein.
Die größte Sicherheitslücke ist nämlich nicht der Computer sondern der, der vor den Computer sitzt.

Antwort
von TheLegendary, 145

Es kommt drauf an worauf bezogen.

Es frisst viel Arbeitsspeicher bei Spielen (siehe Minecraft), die Updates funktionieren bei sehr vielen Leuten einfach nicht vernünftig (ich zähle mich leider dazu) und wenn man aus Bequemlichkeit java die Standardrechte im Browser lässt, um nicht bei jedem Sh.t erstmal eine Erlaubnis erteilen zu müssen können so vergleichsweise leicht Viren eingeschleust werden.

Kommentar von gerlochi ,

Hauptsächlich ist Minecraft aber CPU-Lastig, bei mir zumindest :-)

Keine passende Antwort gefunden?

Fragen Sie die Community