Also hörte ich Hanselminutes Podcast 158 , wo Joel Spolsky das erwähnt Wasabi ist eine erstklassige .NET-Sprache. Was bedeutet das?
Eine Sprache als eine erstklassige .NET-Sprache zu beschreiben, ist eine subjektive Beschreibung. Es bezieht sich auf eine .NET-Sprache, die alle .NET CLR-Funktionen unterstützt (in der realen Welt glaube ich, dass dies die meisten der Features unterstützt).
Es wurde auch traditionell verwendet, um eine Sprache zu beschreiben, die hilft, die .NET CLR zu gestalten, was bedeutet, dass ich bezweifle, dass Wasabi eine echte erstklassige Sprache ist.
Aktualisieren
Zitat aus einem Artikel , der beschreibt, wie F # ist eine erstklassige .NET-Sprache.
"Dies bedeutet, dass F # auf der CLR ausgeführt wird, objektorientierte Programmierung umfasst und über Funktionen verfügt, die eine reibungslose Integration mit .NET Framework gewährleisten."
Soweit ich weiß, gibt es keine klare Definition für "erstklassige .NET-Sprache". Ich denke, es bezieht sich einfach auf die Sprachen, die die meisten Funktionen der CLR unterstützen.
"Erstklassige .NET-Sprache" ist kein offizieller Begriff.
Offiziell kann eine Sprache Common Language Specification (CLS) -kompatibel sein in der Lage sein, mit anderen CLS-kompatiblen Sprachen zusammenzuarbeiten.
(Hinweis: CLS-konform zu sein ist natürlich eine Eigenschaft der Software , die Sie schreiben, und damit der Assembly, die Sie erzeugen. A CLI-Sprache können Sie CLS-konformen Code schreiben, aber Sie erzwingen das nicht. Sie können eine nicht-CLS-konforme Assembly schreiben C #, zum Beispiel durch Verwendung von nicht signierten Typen in der öffentlichen API.)
Da es jedoch (wieder) keine offizielle Definition für "erstklassige .NET-Sprache" gibt, denken manche Leute vielleicht nicht, dass sie in einer "erstklassigen" .NET-Sprache arbeiten, es sei denn, sie können WPF oder (Morgen) Code Contracts, die deutlich viel anspruchsvoller als die CLS-Compliance-Anforderung ist.
Wie bereits erwähnt, gibt es keine offizielle Definition, aber eine .NET-Sprache erster Klasse ist im Wesentlichen eine, die CLS-konforme Assemblys erstellen und konsumieren kann.
Wenn Sie gelangweilt sind und die ECMA CLI-Spezifikationen lesen möchten, dann sind Sie hier richtig Sie werden unterscheiden zwischen CLS-Frameworks (CLS-konformen Assemblies), CLS-Consumern (Compiler, die CLS-Frameworks verwenden können) und CLS-Extendern (Compilern, die CLS-Frameworks erstellen können).
In der CLI-Spezifikation spricht eine 1. Klasse .NET-Sprache daher eine Sprache, deren Compiler als CLS Consumer und CLS Extender fungieren kann.
Es bedeutet, dass es vollständig von .NET unterstützt wird und umgekehrt alle Features von .net unterstützt. Es gibt keine Einschränkungen. Alles, was in einer "First-Class-Sprache" gemacht werden kann, kann in einem anderen gut gemacht werden.
C #, VB.net, IronPython usw. sind alle erstklassige Sprachen. XAML ist jedoch nicht. Es wird in Teilen von .net verwendet, aber Sie konnten sicherlich nicht alles darin tun.
Teil von ILAsm keine .NET-Sprache unterstützt alle Funktionen der CLR
In meinem Buch ist eine Sprache der ersten Klasse eine Sprache, die bis IL kompiliert und überprüfbaren Code erzeugt, d. h. Sie können die Baugruppe mit Reflector ("Rundauslösung") zurück in den ursprünglichen Code zerlegen.
Ich denke in diesem Zusammenhang, dass es nicht nur einen Wasabi zu IL Compiler gab, sondern auch, dass es Visual Studio / Tool-Unterstützung gab.
Es kann auch bedeuten, dass die Typen usw. alle .Net-Typen sind und nicht zur Zeit der Kompilierung auf .Net-Entsprechung-Objekte abgebildet sind?
Ich denke, eine erstklassige Sprache würde traditionell alle Spielzeuge (Reflection, Code-Generierung usw.) haben, wo eine 2. Klasse nach IL kompiliert werden könnte, und nicht viel mehr.
Tags und Links .net programming-languages