Hi Filippo,
ein kompiliertes C++ Programm bringt so ziemlich alles mit was es zu Laufen braucht und zwar auch genau nur das, wenn man eimal von möglichen Zusatzbibliotheken absieht. Außerdem ist es direkt lauffähig, da es genau für eine bestimmte Hardware-Umgebung kompiliert wurde.
Wenn eine .NET-Anwendung gestartet wird, muss diese zur Laufzeit vom JIT-Compiler (Just-In-Time-Compiler) beim jeweils ersten Zugriff von Klassen und Methoden für die aktuell vorgefundene Prozessor-Architektur in CPU-Anweisungen übersetzt (kompiliert) werden. Außerdem müssen alle referenzierten externen Assemblies geladen werden, denn die eigene .NET-Anwendung besteht ja zum größten Teil aus Aufrufen der Klassenbibliothek vom .NET Framework.
Dieser ganze "Aufwand" sorgt dafür, dass
a) das Starten einer .Net-Anwendung i.d.R. länger dauert
b) wesentlich mehr Arbeitsspeicher belegt wird
Im Gegenzug hat man aber den Vorteil, dass die Programmierung unabhängig von der Prozessor-Architektur erfolgen kann. Gerade wir mit Basic4ppc nutzen ja oftmals die Möglichkeit, quasi per Knopfdruck eine Desktop- und eine Device-Variante unserer Programme zu erzeugen.
Außerdem nimmt einem das Framework beim Programmieren etliche Arbeit ab, da man sich um viele Dinge (z.B. Speicherverwaltung, Dateihandling, ...) nicht so detailiert kümmern muss, wie es bei C++ Programmen notwendig ist.
Der gesamte Vergleich gilt übrigens analog für Java-Programme.
Gruß
specci48