Zitat:
Der Grund dafür ist, das ein hochrangiger Entwickler von Borland Delphi (habe leider den Namen nicht parat)
zu Microsoft
gewechselt hat und dort C# massgeblich mitentwickelt hat.
<edit>Anders Hejlsberg. Der hatte schon den Pascal Compiler bevor er zu Borland kam. (Für irgendsoein proprietäres System damals...)
Er war nicht nur irgendein hochrangiger Entwickler bei Borland. Ohne ihn wäre Delphi nie gewesen (er kam ja mit dem ganzen Pascal Kram zu Borland) bzw. nicht das was du heute kennst.</edit>
Die meisten Features gewinnt C# aber alleine durch .Net. Es ist sozusagen nur ein dünner Layer über der CLR.
Was .Net nicht direkt kann, kann auch C# nicht, selbst wenn es mit nur minimalen Extraklassen/Extracode kompilierbar wäre.
C# ist eine feine Sprache, aber nicht das Maß der Dinge.
(verglichen zu der in meiner sig ist es aber alles andere als überlegen,
IMHO )
Zitat:
C# benötigt z.B. keinerlei Forward-Deklarationen mehr.
Das gilt für fast alle .Net Sprachen. (bis auf unbedeutende Ausnahmen, welche wohl deshalb unbedeutend sind)
Ich für meinen Teil fasse so schnell beruflich keinen Single pass compiler mehr an. Ist einfach zu nervig und die resultierenden Friemeleien kosten
IMHO zu viel Zeit.
Zitat:
Man kann sich also in Klasse A schon auf Klasse B beziehen, obwohl Klasse B erst viel später definiert wird.
Entscheidend ist das
Unit-Konzept; es gibt also keine Headerfiles wie bei C++ mehr, sondern es ist alles in einer
Unit (Datei).
Das ist so nicht richtig.
In C#, Chrome, VB.Net, Eifel,... muss man sich überhaupt nicht mehr mit irgendwelchen Dateien bzw. Dateinamen rumärgern.
Du musst nur die Dateien dem Compiler bekannt machen (also in deinem Projekt haben), schon kann man mit den enthalten Klassen arbeiten, welche man von überall (also in jeder Datei) in jeder Reihenfolge verwenden kannst.
Zitat:
Die compilierten
Unit enthalten eine Symboltabelle mit allen Infos, die andere Units benötigen.
Das ist ein Hauptgrund, warum Delphi so schnell compiliert und dies trifft auch bei C# zu.
C# kompiliert nicht sonderlich schnell. Und es wird ganz sicher
keine temporären Zwischenprodukte (also keine
DCU-Gegenstücke) rumliegen lassen, bzw. überhaupt verwenden.
In der Kompiliergeschwindigkeit liegt ein Vorteil von single pass compilern, aber der ist doch in Wirklichkeit ziemlich uninteressant...
Falls du damit Assemblies meintest: Die sind ziemlich ähnlich zu den Packages in good old Delphi32.
Zitat:
Ausserdem enthalten Delphi und C# ein automatisches Make-Tool (
http://de.wikipedia.org/wiki/Make );
es wird kein make-file mehr benötigt, sondern der Compiler erkennt welche Abhängigkeiten bestehen und was compiliert werden muss.
Das ist auch normal für fast alle .Net-sprachen.