Yerf!
Erm, Java wird grundsätzlich erstmal in Bytecode übersetzt und ist somit bereits vor der Laufzeit fertig für die VM kompiliert. Was Java "just in time" macht ist es Klassen zu laden, was das ganze eher langsamer macht, als schneller, aber wohl etwas Speichereffizienter ist, falls eine Klasse doch mal nicht gebraucht wird.
Java compiliert Just-In-Time in Maschinencode... Der Bytecode ist nur ein Zwischenprodukt um Plattformunabhängig zu sein und trotzdem besser dazustehen als mit reinem Quellcode.
Aber dagegen wirkt der Effekt, dass OO Programmierung sowieso grundsätzlich mehr Speicher braucht.
Ein Problem aller OO-Sprachen, auch C++
Um ein Gefühl dafür zu entwickeln, habe ich mal ausprobiert, wie viel Speicher ich in Java und in C in 10 Millisekunden kopieren kann. In Java kam ich auf etwa 8 MB, in C ist mir der zugewiesene Speicherplatz ausgegangen, bevor die 10 Millisekunden rum waren. Java ist schnecken langsam im Vergleich zu C.
In diesem einen Speziellen Fall... Wie oft muss einen *normale* Applikation denn einfach nur Speicher durch die Gegend schaufeln?
Das einzige, wofür Java wirklich gut ist, dass es eine schön saubere Syntax hat und man damit mit den entsprechenden Tools (z.B. Eclipse) unglaublich schnell und agil entwickeln kann. Du kannst quasi schon per drag and drop deinen Code strukturieren bzw. refakturieren und per Autovervollständigung steht die Syntax ratz fatz auf dem Bildschirm.
Die Sprache mit ihrer Syntax find ich alleridngs auch recht nett... da vermisse ich einiges davon in anderen Sprachen.
Aber gerade wegen der unglaublichen Lahmarschigkeit hat sich Java nie als eine Sprache für Anwendungen durchgesetzt, oder habt ihr schon mal eine befriedigend schnelle Swing Oberfläche gesehen?
Hast du schon mal nen schnellen trabi gesehen? ...also sind alle Autos langsam, oder? Swing ist (leider) ein ganz schlechtes Beispiel, es gibt wesentlich bessere UI-Bibliotheken. (es gibt sogar Grafik-Demos in Java, z.B. von Digital Nerds, hab blos grad keinen Link)
Ich behaupte sogar, dass Perl und PHP schneller laufen, als Java. Es sind interpretierte Sprachen, d.h. sie werden bei jeder Ausführung erstmal übersetzt, aber dann laufen sie in Form von Maschinencode ab und das ist schnell, anstatt in einer lahmarschigen VM verpackt zu sein. Diese Behauptung kann ich allerdings nicht mit einem Test untermauern.
Ähm... Hallo? Das was du hier beschreibst ist JIT (Just in Time compiling) und das hat Java schon lange... und Perl6 soll mit einer eigenen VM daherkommen... wie es mit PHP und so aussieht, ob die vorher wirklich compilieren weis ich nicht, aber eigentlich werden die unter Interpretersprachen geführt, das spricht eigentlich dagegen...
Ich finde was der Welt noch fehlt ist eine Programmiersprache, die so schön ist wie Java, aber direkt in Maschinencode kompiliert wird, damit es trotzdem schnell läuft, und natürlich nicht nur auf Betriebssystemen von Microsoft lauffähig ist.
Es gibt auch Java-Compiler, weis aber nicht wie gut die sind.
Gruß,
Harlequin
<!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->