C# für Systemprogrammierung

Microsoft-Entwickler Joe Duffy hat Einblicke in ein Forschungsprojekt gegeben, dass sich mit der Entwicklung von Erweiterungen für C# zur Systemprogrammierung auseinandersetzt.

In Pocket speichern vorlesen Druckansicht 265 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Julia Schmidt

Microsoft-Entwickler Joe Duffy hat in seinem Blog einen Einblick in seine Forschungsarbeiten gegeben. Zusammen mit seinen Kollegen hat er die letzten vier Jahre damit verbracht, ein Set von Erweiterungen zur Systemprogrammierung für C# zu entwickeln und zu implementieren.

Die Frage, warum man überhaupt eine neue Sprache brauche, beantwortet er mit dem Wunsch, Performance mit Sicherheit und Produktivität zu vereinen. Bisher gebe es keine Sprache, die beides zufriedenstellend unter einen Hut bringe, da immer einer der beiden Punkte zu kurz käme. Zudem solle man das Ergebnis mehr als Erweiterung denn als komplett neue Sprache sehen.

Joe Duffy versucht mit seinem Team eine Sprache zu entwickeln, die nicht nur leistungsstark, sondern auch sicher und gut für die Produktivität der Sprachnutzer ist.

(Bild: Joe Duffy )

Die Entscheidung für C# als Grundlage ist in der guten Typensicherheit der Sprache begründet. Außerdem sind Features wie Lambdas und Delegates vorhanden. Andere geeignete Sprachen wie D, Rust und Go waren zum Beginn des Projekts noch nicht oder in einem nicht tragfähigen Rahmen vorhanden, sodass die Wahl auf das im selben Haus entwickelte C# fiel. Dessen .NET-Framework ließ sich auch als Vorlage für das Projekt nutzen, wobei allerdings schnell klar wurde, dass starke Änderungen nötig wären, bevor es sich für den gewünschten Einsatzzweck eignete.

Zukünftig will Duffy außerdem untersuchen, wie sich die Aufgabenstellung mit C++ lösen ließe, um zum einen die Portabilität zu erhöhen und zum anderen die Chancen für eine Standardisierung zu erhöhen. Einiger Verhaltensweisen von C++, wie etwa dem Umgang mit Referenzen und ähnlichem, bedient sich die C#-Erweiterung bereits in ihrer jetzigen Ausführung.

Eigenschaften der Sprache fassen die Entwickler in sechs Punkten zusammen. Darunter fällt etwa ein modernes Fehlermodell, das Überprüfungen beziehungsweise Verträge (Contracts) an allen möglichen Stellen vorsieht und mit Fail-fast als Standardstrategie, Ausnahmen für dynamische Störungen und Typed Exceptions kombiniert. Auch typensichere Programmierung und ein Typensystem, das effizient wahlweise auf leichtgewichtige Koroutinen oder Continuation-Passing abbilden kann, sind in der Liste zu finden.

Es sollen weitere Einträge folgen, um die Arbeiten zu erklären und in den Dialog mit der Open Source Community zu treten, erhofft sich Duffy doch, das Projekt in Zukunft quelloffen bereitstellen zu können. Nach den Diskussionen, die sein Artikel etwa auf Twitter ausgelöst hatte, bittet er in einem Update außerdem darum, diesen nicht als Spekulationsgrundlage zu nehmen, sondern vielmehr als Vorstellung von Forschungsergebnissen und einen ersten Schritt zur Kollaboration mit der Gemeinschaft zu sehen. (jul)