Zudem: Technologisch ist C# lediglich eine Weiterentwicklung von Delphi. Das, was in Delphi
run-time Packages sind, ist das .NET Framework. Die Assembler-Optimierungen, die vorhin mal angesprochen wurden und die Du so cool fandest, finden bei .NET durch das Framework statt. Du kannst niemals bei einer statischen Kompilierung auf das konkrete Zielsystem optimieren, sondern Du kannst nur allgemein pro CPU-Typ optimieren. Mit zig ifdefs. Bei .NET / Mono übernimmt das der Compiler der aus Deinem
IL-Code Plattformspezifischen Code bastelt. Und der wird regelmäßig von Leuten optimiert, die davon Ahnung haben und die das Hauptberuflich machen.
Dazu hätte ich auch mal eine Frage, denn ich habe mich bisher nur oberflächlich damit beschäftigt.
Genau das, was du schreibst, habe ich mir auch immer gedacht; nämlich, dass die .net-Programme nach dem ersten Starten (= "Kompilieren für Zielplattform" ?) ja wegen der Optimierungen für die konkrete Zielplattform schneller sein müssten. Man liest aber immer, dass .net i.d.R. langsamer ist. Woran liegt das nun? Ist es nur die garbage collection? Ist das
OS/Framework einfach (noch) nicht gut genug dafür optimiert? Oder stimmen die Aussagen nicht, die man überall so liest?
Also zweites frage ich mich, wie die Zukunft von .net aussieht. Als MS damit gestartet ist, hatte ich es so aufgefasst, dass es zwar zunächst ein Framework/Laufzeitumgebung ist, aber zukünftige Betriebssysteme "darum herum" gebaut werden sollen, also .net das "native Kernsystem" werden soll und "alte" Technologien (
Win32,
COM, ...) dann nur noch emuliert werden. Also in etwa so, wie Windows am Anfang nur ein Aufsatz für DOS war und später dann DOS in Windows "emuliert" wurde.
.net/C# wird zwar nicht verschwinden, aber oben skizzierten Stellenwert wird es wohl auch nicht mehr erreichen? Hier beziehe ich mich auf die Entwicklung von z.B. Windows Phone. Bei WP7 hat MS noch voll auf C#/.net/silverlight gesetzt. Bei WP8 und Win RT ist die neue "Schlüsseltechnologie" auf einmal ein (modernisiertes)
COM. Sieht für mich so aus, als ob MS zwar weiterhin .net/C# supportet, aber nur als Option, mit einem geringeren Stellenwert.
Wäre schön, wenn jemand meine Darstellungen bestätigen oder widerlegen könnte (wie gesagt, habe mich nur oberlächlich damit beschäftigt).