header banner
Default

Jeder C++-Standard ist eine Momentaufnahme, sagt Bjarne Stroustrup


Table of Contents

    Als Vater der Programmierspache C++ hat Bjarne Stroustrup einige Berühmtheit erlangt; auch heutzutage noch ist er an der Standardisierung von C++ beteiligt. Im Gespräch mit heise Developer erklärt Stroustrup, was bei C++20 für Entwickler langfristig Bedeutung haben wird und wie die weitere Zukunft der Programmiersprache aussieht.

    heise Developer: Welche neuen Features aus C++20 werden langfristig am meisten Bedeutung für C++ haben und wieso?

    Dr. Bjarne Stroustrup: Module, Concepts und Coroutinen.

    Module werden uns endlich bessere Code-Hygiene bringen (weniger Makro-Verschmutzung), die einfachere Zusammenstellung von Code aus Libraries und viel schnellere Kompilierung. Ich freue mich auf reife Modulimplementierungen, die sich gut in die Umgebung der Programmentwicklung allgemein integrieren lassen. Das wird Zeit brauchen.

    Bitte seid euch darüber bewusst, dass C++20 jetzt noch einige Monate lang nicht offiziell sein wird, bis das ISO-Sekretariat in Genf seine nichttechnische Review abgeschlossen hat [Anm. Red.: das Interview stammt aus dem Sommer 2020]. Deshalb sollten wir uns zufrieden geben mit frühen Implementierungen und nicht zu ungeduldig sein bei Unvollkommenheiten. Wir müssen auch erst lernen, Module gut zu nutzen. Vieles von dem, was wir tun, ist durchsetzt von schlechten Angewohnheiten aus fast 50 Jahren von #include und #define. Nur weil der Präprozessor uns geläufig ist, muss das nicht heißen, dass er auch einfach zu handhaben ist.

    Concepts werden wohl generisches Programmieren stark dem annähern, was heute gewöhnliches Programmieren ist. Sie werden unseren Code deutlich flexibler machen, wiederverwendbar und effizient. Als ich die Templates entworfen habe, wollte ich drei Dinge:

    • Expressiveness Generality, wobei „Expressiveness“ für die Fähigkeit steht, eine Idee konzise und direkt auszudrücken. „Generality“ ist das Vermögen, das für eine breite Spanne an Themen zu tun, statt nur einen vom Designer so vorgesehenen begrenzten Satz an Auswahlmöglichkeiten zu haben.
    • Unübertroffene Effizienz.
    • Type Checking als "präzise Spezifikation".

    (Bild: Bjarne Stroustrup)

    • Dr. Bjarne Stroustrup ist der Vater von C++. Der Mathematiker und promovierte Informatiker ist Technical Fellow in der Technologieabteilung bei Morgan Stanley in New York City und Gastprofessor an der Columbia University. Er ist Mitglied der US-amerikanischen National Academy of Engineering (NAE) und Träger des Charles-Stark-Draper-Preises.
    • Seit über 30 Jahren wirkt er im ISO-Standard-Komitee mit. Sein Ziel ist es, C++ zu einer stabilen, zeitgemäßen Basis für Softwareentwicklung "für das echte Leben" zu machen.

    Die ersten beiden habe ich hinbekommen, nicht aber den dritten Punkt. Das genügte, um generisches Programmieren und Metaprogrammieren mit Templates zu einem durchschlagenden Erfolg zu machen, aber es strapazierte die Möglichkeiten der Programmiersprache und ihre Implementierung über ein vertretbares Maß hinaus. Der Umstand, dass vernünftige Leute bereit waren, diese Unvollkommenheiten zu ertragen, um die Vorteile zu erlangen, ist ein starkes Argument dafür, dass die grundlegenden Ideen von C++ gesund sind.

    Sources


    Article information

    Author: Darren Cabrera

    Last Updated: 1704668042

    Views: 1411

    Rating: 4.9 / 5 (115 voted)

    Reviews: 89% of readers found this page helpful

    Author information

    Name: Darren Cabrera

    Birthday: 2016-06-08

    Address: 123 Yolanda Underpass Apt. 845, Melissaton, IL 67397

    Phone: +4640096084761785

    Job: Real Estate Agent

    Hobby: Sculpting, Painting, Arduino, Raspberry Pi, Geocaching, Role-Playing Games, Badminton

    Introduction: My name is Darren Cabrera, I am a unreserved, unyielding, persistent, Colorful, rich, Open, strong-willed person who loves writing and wants to share my knowledge and understanding with you.