Interview 12.05.2022, 08:31 Uhr

"Ich vermute, dass wir eine Reifephase von .NET erleben werden."

Jon Skeet ist Buchautor, Fan von C# und arbeitet gleichzeitig für Google. Ein Widerspruch? Im Interview erklärt er, wie beides wunderbar zusammenpasst und welche C#-Features ihn stören.
(Quelle: Jon Skeet)

Jon, du bist C#-Anhänger. Dein Arbeitgeber Google ist aber nicht sehr mit C# oder .NET verbunden. Programmierst du beruflich trotzdem in C#?

Jon Skeet: Ich habe das große Glück, dass ich die meiste Zeit (und fast die gesamte Programmierzeit) damit verbringe, für Google Code in C# zu schreiben und die Google-Cloud-Client-Bibliotheken für .NET zu pflegen - ebenso wie das .NET Functions Framework, die .NET-Unterstützung für Protocol Buffers und das CloudEvents SDK für .NET. Vor meiner jetzigen Tätigkeit habe ich hauptsächlich in Java gearbeitet, was mir persönlich weniger zusagte. Gelegentlich schreibe ich immer noch Java, aber ich bin inzwischen sehr eingerostet.

Gibt es Funktionen in C#, die du als "lästig" bezeichnen würden, zum Beispiel null?

Jon Skeet: Ich bin nicht annähernd so genervt von null wie die meisten Leute. Es gibt aber definitiv Dinge, die ich in C# nicht so gerne mag. Hier eine kurze Liste:
  • Ich wünschte, Klassen wären standardmäßig versiegelt. Ich bin ein großer Fan von "entwerfe für Vererbung oder verbiete sie". Und Design für Vererbung ist schwer...
  • Ich wünschte, Fließkomma-Literale hätten keinen Standard-Typ. Entwickler sollten lieber decimal statt double verwenden. Die Tatsache, dass die Sprache standardmäßig double verwendet, führt zu Problemen.
  • Die Kovarianz von Arrays kann sowohl irreführend sein als auch zu geringfügigen Leistungseinbußen führen.
  • Das Design von "jedes Objekt hat einen Monitor zum Sperren" ist wahrscheinlich nicht etwas, was wir heute in eine Sprache einbauen sollten. Es ist eine Schande, dass wir diese Lektion nicht von Java gelernt haben.
  • Ich frage mich, welche Aspekte von C# nicht notwendig gewesen wären, wenn Lambda-Ausdrücke und Generics von Anfang an in der Sprache enthalten gewesen wären. Es gibt Dinge wie implizite Konvertierungen in foreach-Schleifen und anonyme Methoden, die wir dann vermutlich vermieden hätten.
  • Ich frage mich, wie anders C# wäre, wenn nullbare Referenztypen von Anfang an in der Sprache und in der Laufzeit enthalten gewesen wären. Es kann sehr schwierig sein, Sprachaspekte zu entwerfen, die sich auf etwas so Grundlegendes wie das Typsystem beziehen, wenn dieser Aspekt unter der Haube nicht gründlich unterstützt wird.

Was wäre dein erster Gedanke, wenn Oracle verkünden würde, dass es Java nicht mehr weiterentwickeln wird?

Jon Skeet: In Anbetracht meines Arbeitgebers wäre es wohl unklug von mir, mich dazu zu äußern.

Es gab eine Zeit, in der Java an der Spitze stand und .NET hinterherhinkte. Was denkst du, wie die Rangfolge zwischen diesen beiden heute ist?

Jon Skeet: Ich glaube nicht, dass es wirklich sinnvoll ist, eine allgemeine Rangfolge aufzustellen. Ich denke, C# hat sich viel schneller entwickelt als Java - aber in den letzten fünf bis zehn Jahren hat Java meiner Meinung nach bei den Sprachkonstrukten ziemlich schnell aufgeholt. Ohne aktiv in diese Welt involviert zu sein, kann ich nichts über die Akzeptanz der neuen Funktionen sagen oder darüber, wie die Entwicklung in Bezug auf die Plattformunterstützung verlaufen ist... wohingegen .NET definitiv sehr interessante Dinge in Bezug auf die Unterstützung von mehr Plattformen in einer konzertierteren Art und Weise als je zuvor erfahren hat.
Ich bin froh, dass es beide Sprachen und Plattformen gibt, um voneinander zu lernen.

Denk fünf Jahre voraus. Wie wird das .NET-Universum deiner Meinung nach aussehen?

Jon Skeet: Zunächst einmal sind Vorhersagen, die ich mache, in der Regel völlig falsch, also nimm das nicht ganz ernst. Aber ich vermute, dass wir eine Reifephase von .NET erleben werden. Der große Wechsel von .NET Framework zu .NET Core zum vereinheitlichten .NET ging ziemlich schnell vonstatten. .NET Core 1.0 wurde erst 2016 veröffentlicht, was in Bezug auf die Plattform noch gar nicht so lange her ist. Ich denke, es gibt Raum, um ein wenig durchzuatmen und sicherzustellen, dass diese gesamte Vereinheitlichung felsenfest steht, um einige fehlende Bereiche zu ergänzen und die Punkte vielleicht noch ein wenig mehr zu verbinden. Ich vermute, dass die Reifungsphase weniger als fünf Jahre dauern wird - vielleicht drei. Daher erwarte ich, dass wir in fünf Jahren einen weiteren Wachstumsschub für .NET erleben werden.
Ich weiß allerdings nicht, wo das sein wird. Ich persönlich behalte den Bereich Augmented Reality im Auge, hauptsächlich, weil ich denke, dass es Spaß macht, und nicht, weil ich einen praktischen Bedarf habe, den ich erfüllen möchte. Im Grunde habe ich noch nicht gerechtfertigt, mir eine HoloLens zu kaufen, aber ich würde diese Rechtfertigung gerne finden.
Jon Skeet ist Staff Developer Platform Engineer bei Google. Er arbeitet an den Google-Cloud-Platform-Client-Bibliotheken für .NET. Jon ist Autor des Buchs "C# in Depth" und Sprecher auf Konferenzen, außerdem sehr aktiv auf Stackoverflow.
Developer Week ist die große Entwicklerkonferenz in Nürnberg. Fünf Tage lang können sich Softwareentwickler zu Themen wie Architektur, .NET, Web, Datenbanken oder Softskills fortbilden. 150 Sprecher, 30 Themenstränge, DevSessions und Workshops formen das Programm. Sie findet dieses Jahr vom 4. bis 8. Juli statt.


Das könnte Sie auch interessieren