java text proto
This commit is contained in:
parent
1b199afa7d
commit
5d5e87dbe9
75
neopolimatrix/files/java.md
Normal file
75
neopolimatrix/files/java.md
Normal file
@ -0,0 +1,75 @@
|
||||
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. Prinziepiell 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 ;-)
|
||||
Loading…
x
Reference in New Issue
Block a user