Ich kann und will einiges von deinem Geblubber nicht so stehen lassen...
CaptainIglo schrieb:
@CapFuture:
In dieser Hinsicht ist .net weit vor Java. Ein .net-Programm im Idle hat auch 0%-Prozessorlast. Wie genau der GarbageCollector bei .net arbeitet weiß ich jetzt auch nicht, aber er frisst nicht durchgehend Resourcen. .net Reserviert auch nicht von vornherein einen Speicherbereich sondern immer nur den Wirklich benötigten.
von Java hast du überhaupt keine Ahnung wie mir scheint. Java reserviert auch auf Bedarf den Speicher. Du kannst beim Start der VM eine Maximalgröße mitgeben. Der Garbage Collector läuft meist erst dann an wenn nicht mehr genug Platz für ein neues Objekt vorhanden ist oder wenn gerade wenig los ist.
Eclipse wird dir vielleicht was sagen, oder? läuft idle auf 0%, auch wenns bei 20 geöffneten Dateien etc. schon mal seine 120MB im Speicher braucht.
CaptainIglo schrieb:
@Spacy:
Also gerade viel Ahnung von der Materie hast du nicht: VB gibts mit und ohne .net, also ist die Aussage nimm VB anstatt .net etwas unsinnig. Und die API/MFC (steht überigens für Application Programming Interface und Microsoft Foundation Class) hat nix mit Hardwarenähe zu tun. Das sind lediglich Bibliotheken zur graphischen Ausgabe. Wobei hier die von mir erwähte Integrierung im System nötig ist, welche schon standartmäßig vorhandne ist, wie es in zukunft mit .net auch sein wird. Und wozu .net? Ließ mal meine Argumente oben. Wenn du die Dinge nicht brauchst: Du musst ja nicht .net nehmen...
VB ohne .net (Version 6 und kleiner) sind aber immer noch um Längen schneller also VB.NET
[...]
CaptainIglo schrieb:
.net hat mit der Programmierung an sich NIX zu tun. Bei managed C++ programmiert man ganz normal C++ nur wird kein Assembler Programm erstellt sonder der MSIL (Microsoft Intermediat Languge, der Zwischencode welcher von der RE übersetzt wird). Und wenn man das ganze auf die Spitze treiben möchte, könnte man sagen, das du davon absolut keine Ahnung hast...
Ich glaub ich steh im Wald... Wenn .net nichts Programmierung zu tun hat.... hmm... erklär das mal einem Microsoft Programmierer.
CaptainIglo schrieb:
@Siberian..Husky:
VM = Virtual Maschine = Komplett simulierter PC auf einem anderen.
RE = Runtime Envirorment = bei .net besteht es z.B. aus dem JIT (Just in Time-Compiler), Security Modul, Classloader, Garbagecollector,... und wird zum Echtzeitübersetzen von Zwischencode benötigt. Einen Vorteil davon hast du aber richtig erkannt, aber es gibt noch mehr (siehe oben).
Das is nun wirklich Bullshit. Bei VMware mag das zwar stimmen, bei Java aber sicherlich nicht. Die Java VM heißt auch nicht umsonst Java Runtime Environment.
Die .net Runtime ist auch eine Virtual machine. Die Unterschiede bei Java und .net sind in diesem Bereich absolut nicht vorhanden.
Ansonsten kann ich zu .net sagen, dass es sagenhaft langsam ist im Vergleich zu einer nochmalen C++ Anwendung wenn man bedenkt welche Plattformen man damit gegenwärtig ansprechen kann.
Für Java trifft das genauso zu, kein Zweifel, ich kann aber schon jetzt Win/Mac/*NIX damit programmieren ohne mich in 20 verschiedene Grafikbibliotheken und damit auch Denkweisen einarbeiten zu müssen.
SUN hat mit der Hotspot VM eine Technik, die häufig benutzten Code optimiert und nur marginal langsamer als C++ ablaufen lässt. Allerdings erst nach einigen Durchläufen.
Bedenkt man aber, dass Java ursprünglich für Server entwickelt wurde, die den ganzen Tag überwiegend den gleichen Code abarbeiten und das bestenfalls jahrelang, ist die Idee ganz akzeptabel.
edit: .net auch...
Java wird aber immer mehr für GUI verwendet und ist dafür noch ein bisschen zu langsam. Ein Schritt in die Richtige Richtung ist da das SWT von IBM. Damit greift man auf Systemeigene Steuerelemente (Buttons, Scrollbars etc.) zurück und ist deutlich schneller.
Zu C#: Es ist eine Freude Java oder C# zu lernen, vor allem weil man nicht so viele Tücken hat wie z.B. mit C++. Die Bibliotheken die dabei sind, stellen MFC in meinen Augen in den Schatten. Die STL ist aber sicherlich performanter.
Wenn man bedenkt, dass Java vorher da war und weiter verbreitet ist, sehe ich für .net nicht unbedingt eine rosige Zukunft. Zumindest solange man keinen Performancevorteil gegnüber Java hat.
Du merkst, ich komme aus der Java Ecke und bin somit nicht ganz objektiv. Mit .net hab ich mich aber auch schon weit genug beschäftigt um mitreden zu können. Ich mags nur nicht wenn Halbwissen laut ausgeschrien wird und du dann auch noch andere zu Sau machst dies nicht besser wissen.
edit / Ergänzung:
Bei Java und .net geht es allgemein nicht nur um Peformance sondern um Wartbarkeit von Code, Protabilität und Software Engineering.
Bei der Portabilität kommt .net noch ein wenig zu kurz, beim anderen ist es aber mit Java gleichauf.
Ich hab mich auch lange gegen Java ausgesprochen weils mir so langsam erschien, aber Programmieren ist damit wirklich um einiges effektiver.
Nicht umsonst heißt es: "CPU Zyklen sind billig, Programmierer nicht"... lasst euch das mal durch den Kopf gehen wenn ihr das nächste Memory Leak jagt.