Die Dümmste Programmiersprache der Welt - Java. =============================================== Into ---- Java lässt sich am besten an Minecraft erklären, um die Sprachfeatures zu verstehen. Die elementaren Features von Minecraft sind: - es ist langsam(performace) - es stürzt ab(fehler zur laufzeit) - es lässt sich gar nicht erst starten Diese drei Freatures sind nicht Problem von Minecraft, sondern elementare Sprachfeatures. Im folgenden soll das anhand von fundierteren Beispielen erörtert und bestätigt werden. Performace ---------- Wenn du mit einem Java-Jünger über die Performace sprichst, dann wird er dir sagen: Java ist "prinzipiell" genauso schnell wie C - wenn nicht schneller. Hier kannst du das Gespräch abbrechen, da dieser Satz dem Sprecher absolute Ahnungslosigkeit nachweist. Prinzipiell gilt bezüglich der Performance: Assembler > C > C++ > Alle anderen Sinnvollen Sprachen > Java Dabei gilt allerdings nicht per se, dass Assembler schneller ist - es besteht nur die Möglichkeit mit Assembler(lesbarer Maschinencode) die schnellsten Programme zu schreiben. Die höheren Sprachen wie C und C++ erlauben für den Menschen besser lesbaren Code zu schreiben. Dafür wird an möglicher Performance eingebüßt. Assembler, C und C++ arbeiten dabei direkt auf unserer Prozessorarchitektur und bilden diese ab. Das ist sinnvoll! Java geht da ein etwas anderen Weg. Um den zu verstehen muss erstmal ein wenig ausgeholt werden: Unsere Prozessorarchitektur ist vereinheitlicht unter dem Standart x86 (und die Zahl steht dabei für das Jahr - lol) bzw x64 (doppelt so großer Speicher, selbe Architektur). Nun hat sich leider aus monetären Gründen drei verschiedene Betriebsysteme entwickelt, die nicht kompatibel untereinander sind, aber alle auf der selben Hardware laufen. Genau hier setzt Java an. Java ist ein Programm, dass es für diese drei Betriebsysteme jeweils gibt. Dieses Programm erstellt dann eine virtuelle Maschiene, die mit den Java-Befehlen umgehen kann. Ziel des ganzen ist es wieder Kompatibilität zwischen den Betriebsystemen herzustellen (ein Programm kann auf allen drei ausgeführt werden) - die per se vorhanden ist, da die Hardware ja die gleiche ist. Schon hier ist die Retardedness von Java zu erkennen. Und jedem sollte klar sein, dass wenn ich auf einer Maschine eine virtuelle Maschine ausführe, dass das auf keinen Fall schnell(er) von statten gehen kann, als wenn ich es direkt auf der Maschine ausführe. OOP --- OOP (Objekt orientiertes Programmieren) wird in Java groß geschrieben. Dabei haben die Entwickler vergessen, dass das nur ein Hilfsmittel ist, dass in den seltesten Fällen sinnvoll einsetzbar ist. Alles in Java ist ein Objekt - das lustige dabei - alles erbt vom selben Objekt (genannt "Object"). Das führt aber zwangsläufig dazu, dass OOP in Java gar nicht mehr möglich ist - betrachte folgendes Beispiel: a type Apfel erbt von Object b type Banane erbt von Object Vergleiche a mit b -> Oh beides ist ein Object... lol Mache a zu b -> Das geht - da beide Objects sind - und da haben wir den schönen Äpfel = Bananen. Warum sollte man zwei absolut unterschiedliche Objekte von einem gemeinsammen erben lassen? Das ist dumm! Und das schöne - in Java wird das erzwungen ;-) (Jeder der schonmal eine clone() oder copy() Funktion für ein Objekt geschrieben hat wird schnell festgestellt haben, dass das keine Sprache ist die ein denkender Mensch freiwillig einsetzen würde) Neben den verirrungen innerhalb von OOP ist es generell nciht sonderlich sinnvoll viele Objekte anzulegen - die kosten Speicherplatz - und wer Minecraft gespielt hat kennt das Problem - Ram = Voll = Always. Selbiges für den Server; warum sollte eine Klötzchenwelt 2-4gb ram auf dem Server verbrauchen? Es gibt dafür nur einen Grund - Java ;-)