© Liashko/Shutterstock.com
Eine kurze Geschichte von C# (und seinen Fehlern)

Was Entwickler wollen


C# ist eine weit verbreitete, ausgereifte Universalprogrammiersprache; Millionen professioneller Entwickler weltweit nutzen sie, doch das war nicht immer so. Welche Schritte führten zum Erfolg? Was konnten die C#-Schöpfer von der Praxis lernen? Wir blicken in die Vergangenheit, Gegenwart und Zukunft von C# und stellen die Top-3-Fehler in echtem C#-Code vor.

Besserer C# Code durch funktionale Programmierung

C# zum Gruseln

Die ersten beiden Sätze der Spezifikation von C# 1.0 zeigen die Entwicklungsziele der Sprache in ihrer Reinform: „C# ist eine einfache, moderne, objektorientierte und typsichere Programmiersprache. C# hat seine Wurzeln in der C-Sprachfamilie und wird Programmierern von C, C++ und Java schnell geläufig sein.“

Der C#-Chefarchitekt, Anders Hejlsberg, hat einmal gesagt: „Neue Sprachen starten mit minus zehntausend Punkten.“ Die Kosten, um eine Sprache zu entwickeln, zu verbreiten, zu pflegen und zu erweitern, sind so gewaltig, dass die Gewinne daraus wirklich enorm sein müssen – verglichen mit denen einer bestehenden Sprache. Daher ist jede neue Sprache ein Versuch, die Fehler ihrer Vorgängerin auszubessern. C# ist hier keine Ausnahme.

Und am Anfang war C# 1.0

C# 1.0 wurde als Antwort auf C++ entwickelt, von ihr übernimmt sie auch ihre grundlegenden syntaktischen Elemente. Die C#-Schöpfer verschafften sich einen Überblick über die vielen Fallstricke, mit denen Nutzer von C++ zu kämpfen haben, und entwickelten Lösungen für viele der Probleme. Einige Lösungen waren zugleich große Abschiede, etwa der Rauswurf der multiplen Klassenvererbung. Die meisten Lösungen waren subtiler, beispielsweise die Regel, dass ein Name in einem Block nur für die gleiche Sache genutzt werden darf.

Die Entwickler achteten besonders auf die Typsicherheit der Sprache. Eine Sprache bezeichnet man dann als typsicher, wenn der Compiler bestimmte Operationen verbietet – etwa das Speichern von einem Kundennamen an einem für Währungsbeträge vorgesehenen Speicherplatz. Typsicherheit ist jedoch meist ein zweischneidiges Schwert: Obwohl es die Kompilierung vieler fehlerhafter Programme verhindert, erschwert es doch manche Programmiertechniken. C# 1.0 wurde deshalb als goldene Mitte konstruiert: Es verfügt über ein Typensystem, das zwar strikt genug ist, um Fehler zu verhindern – Entwicklern es aber gleichzeitig erlaubt, einen Teil der Typprüfung auf die Laufzeit zu schieben. Das Ergebnis war, wie die Spezifikation es ausdrückt, eine ziemlich einfache objektorientierte Sp...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang