So, jetzt muss ich auch mal meinen Senf dazu geben:
Bei Java vermisse ich am meisten die Pointer
Eigentlich ist jei Java grundsätzlich ALLES ein pointer (ausser den simplen Datentypen wie int oder double), was man schon daran erkennen kann, dass man sie mit "new" erzeugen muss, bevor man sie verwenden kann. Weil jetzt alles ein pointer ist, kann man sich auch die extra Syntax mit dem "->" sparen.
Was natürlich nicht geht, ist diesem pointer irgendwelche Information zu entlocken oder ihn zu verändern.
Eine direkte Adressierung des Speichers der Vm wäre echt zu viel gewesen und den normalen Speicher direkt zu adressieren hätte das gesamte Sicherheitskonzept von Java untergraben.
Auch das stimmt nur zum Teil: Die VM hat immer die Möglichkeit, einen pointer zu checken, bevor sie irgendwas mit ihm anfängt. Das macht sie auch in der Regel (zum Besipiel um die Typ-Prüfung durchzuführen, die geht nämlich nicht immer schon zur Compilierzeit).
Mal ganz abgesehen davon muss die VM soweiso über jede Refernz Buch führen, sonst kann nämlich die "garbage collection" nicht funktionieren.
Und selbst "echt kompilierte" Sprachen können da noch die eine oder andere Sicherheit einbauen, da muss der Compiler halt Code dafür erzeugen. Beispiel dafür wäre z.B. Smalltalk, das auch eine garbage collection beinhaltet.
Das Feature, das ich persönlich am meisten an Java vermisse, ist die Mehrfachvererbung. Manche Sachen lassen sich mit diesem Interface-Zeug nämlich nicht richtig schön abbilden...
MfG,
Tilmann
P.S.: Oha, was für ein Denglish. Aber wenn man über solche Sachen quatscht, kommt immer ein etwas seltsamer Sprachstil raus. Weiss jemand zufällig ein gutes, deutsches Wort für "garbage collection"? Oder für "thread"? Für SINNVOLLE Vorschlage wäre ich dankbar (also nicht "Müllabfuhr" oder "Faden")...