Inhaltsverzeichnis[Ausblenden][Zeigen]
In dem Bemühen, das ehrwürdige, aber träge C++ zu ersetzen, haben Google-Forscher eine brandneue „experimentelle“ Open-Source-Programmiersprache namens Carbon eingeführt.
Carbon könnte als Nachfolgesprache von C++ dienen, die Entwicklern einen einfachen Ausgangspunkt für eine neuere Sprache bietet, die zeitgenössische Entwicklungskonzepte wie Speichersicherheit und Generika anspricht.
Dies wäre ähnlich wie Microsoft Typescript entwickelt hat, um JavaScript und Kotlin zu aktualisieren, um Schwachstellen in Java zu verstärken.
Google hat im Laufe der Jahre eine Reihe von Programmiersprachen entwickelt, von denen einige erhebliche Bekanntheit und Bekanntheit erlangt haben.
Zum Beispiel wurde Golang (oder einfach nur Go) entwickelt, um die Erstellung von Servern und verteilten Systemen zu erleichtern, und wurde anschließend von der breiten Öffentlichkeit angenommen.
Der Pfeil Programmiersprache, das als JavaScript-Ersatz entstand, wurde erst mit Flutter bekannt.
Chandler Carruth, ein Google-Mitarbeiter, stellte seine Idee für eine neue Programmiersprache namens Carbon am 19. Juli 2022 auf der Cpp North Convention in Toronto vor. nach Conor Hoekstra, die an den Folien teilnahmen und diese aufzeichneten.
Um das Szenario festzulegen, demonstrierte Carruth, wie einige der beliebtesten Programmiersprachen der Gegenwart Nachkommen hatten, die es Entwicklern ermöglichen, schnell produktiv zu sein und auch vom modernen Sprachdesign zu profitieren.
Beginnen wir mit einer allgemeinen Einführung in die Programmiersprache Carbon, einschließlich ihrer Funktionen, des Zwecks ihrer Erfindung durch Google und mehr.
Einführung in die Programmiersprache Carbon
Am 19. Juli 2022 enthüllte Google Carbon als die neueste von ihm entwickelte Programmiersprache. Es war beabsichtigt, C++ experimentell zu ersetzen.
Dank eines Generika-System, wodurch eine doppelte Überprüfung des Codes bei jeder Instanziierung entfällt, wird Carbon auf der Grundlage moderner Programmierkonzepte aufgebaut.
Bis Ende des Jahres plant das Design, eine grundlegende betriebsbereite Version (Version 0.1) bereitzustellen.
Speicherintegrität ist ein entscheidendes Element, das C++ fehlt. Eine der Hauptursachen für Sicherheitslücken sind Probleme beim Speicherzugriff.
Die Entwicklung dynamischer Begrenzungsprüfungen, eine bessere Verfolgung nicht initialisierter Zustände und ein gründlicher Standard-Debug-Build-Modus sind alles Ziele des Carbon-Teams. Die Ersteller beabsichtigen, im Laufe der Zeit eine sichere Kohlenstoff-Untermenge zu erstellen.
Im Folgenden sind jedoch einige entscheidende Merkmale der neuen Programmiersprache aufgeführt:
- Um Typen zu benennen, verwenden Sie Ausdrücke.
- Starke Generika mit Definitionsprüfungen
- Typen führen speziell Schnittstellen aus
- Einführungsphrasen und grundlegende Grammatik
- Zeiger ermöglichen uneingeschränkten Zugriff und Mutation.
- Werte für Funktionseingangsparameter sind schreibgeschützt.
- Der Root-Namespace ist das Paket.
- APIs können mit ihren Paketnamen importiert werden.
- Eine Methode wird über einen expliziten Objektparameter deklariert.
- Klassen sind standardmäßig endgültig; Es gibt nur eine Erbschaft
Eigenschaften von Kohlenstoff
Modern und entwickelnd
- Upgrades zwischen Carbon-Versionen sind einfach und werkzeugbasiert.
- Starke sprachliche Grundlagen, besonders wenn Sie C++ verwendet haben, und einfach zu erlernen
- Sicherere Grundlagen und eine schrittweise Annäherung an eine speichersichere Teilmenge
Begrüßung der Community von Open Source
- Eine Gemeinschaft, die danach strebt, warmherzig, akzeptierend und einladend zu sein
- Seine Ziele und Prioritäten sind eindeutige und starke Governance
- Eine All-in-One-Strategie mit Compiler, Bibliotheken, Dokumentation, Tools, Paketverwaltung und mehr
Schnell und kompatibel mit C++
- Arbeiten Sie zusammen mit der C ++ - Code die Sie bereits haben, einschließlich Vererbung und Vorlagen
- Mit LLVM eine mit C++ vergleichbare Leistung und Low-Level-Zugriff auf Bits und Adressen
- Builds, die schnell und skalierbar sind und mit Ihren vorhandenen C++-Buildsystemen kompatibel sind
Warum hat Google die Programmiersprache Carbon entwickelt?
Leistungskritische Software wird weiterhin hauptsächlich in C++ geschrieben, das über enorme und wachsende Codebasen und Investitionen verfügt.
Es hat jedoch Probleme, die oben erwähnten Anforderungen der Entwickler voranzutreiben und zu erfüllen, was hauptsächlich darauf zurückzuführen ist, dass jahrelange technologische Schulden angehäuft wurden.
Es ist außerordentlich schwierig, C++ inkrementell zu verbessern, aufgrund der technischen Schulden, die es angehäuft hat, sowie aufgrund von Schwierigkeiten mit seinem Entwicklungsprozess.
Der ideale Ansatz zur Lösung dieser Probleme besteht darin, mit einer starken Sprachgrundlage zu beginnen, z. B. einem zeitgemäßen generischen System, einer modularen Codestruktur und einer konsistenten, einfachen Syntax, anstatt direkt die Tradition von C oder C++ zu übernehmen.
Go, Swift, Kotlin, Rust und viele weitere zeitgenössische Sprachen bieten bereits ein hervorragendes Entwicklungserlebnis. Entwickler, die in der Lage sind, eine dieser aktuellen Sprachen zu verwenden, sollten dies tun.
Leider werden die Einführung und Migration von C++ durch die Designs dieser Sprachen stark behindert. Zu diesen Hindernissen gehören Leistungsmehraufwand und Modifikationen am idiomatischen Design der Software.
Carbon ist kein Versuch, C++ schrittweise zu verbessern; vielmehr handelt es sich um eine Nachfolge-Sprachstrategie. Der Schwerpunkt liegt auf der C++-Interoperabilität sowie auf der weit verbreiteten Akzeptanz und Migration für Entwickler und Codebasen, die derzeit C++ verwenden.
Eine C++-Ersatzsprache muss Folgendes haben:
- Eine mit C++ vergleichbare Performance ist ein entscheidendes Merkmal für Entwickler.
- Eine überschaubare Lernkurve und Vertrautheit für C++-Programmierer
- Migration, die skalierbar ist und einige idiomatische C++-Codeübersetzungen von Quelle zu Quelle umfasst.
- Ähnliche Ausdrucksstärke und Unterstützung für die Architektur und das Design aktueller Software.
- Interoperabilität mit C++, die nahtlos und bidirektional ist, sodass jede Bibliothek Carbon übernehmen kann, ohne den Rest des Stacks portieren zu müssen.
Mit dieser Strategie erweitert Google das bereits bestehende Ökosystem für C++ und bezieht aktuelle Investitionen, Codebasen und Entwicklungsgemeinschaften ein.
Einige Sprachen haben diesen Ansatz für verschiedene Ökosysteme übernommen, und Carbon versucht, in diesen Situationen eine ähnliche Funktion wie C++ zu spielen:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – Kohlenstoff
C++ vs. Carbon-Code
Carbon sollte eine niedrige Lernkurve haben, wenn Sie bereits ein C++-Entwickler sind. Es besteht aus einem festen Satz grammatikalischer Konstruktionen, die natürlich klingen und einfach zu lesen und zu verstehen sein sollten.
Ein Beispiel für C++-Code:
Dieser Kohlenstoffcode entspricht:
Kohlenstoff gegen Rost
Eine weitere zeitgemäße Sprache, die ausdrücklich auf die Anforderungen speichersicherer Performance-Anwendungen ausgelegt ist, heißt Rust.
Warum also nicht einfach Rust verwenden?
Während einige argumentieren, dass Rust, das als Mozilla-Projekt begann und seitdem eine beträchtliche öffentliche Anhängerschaft hat, ein Nachfolger von C++ ist, bezweifelt Carruth, ob die Parallele noch gültig ist.
Rust ist zweifellos eine fantastische Sprache, um ein neues Projekt zu beginnen, aber da ihr die „bidirektionale Interoperabilität“ von Sprachen wie Java und Kotlin fehlt, ist es eine Herausforderung, schrittweise darauf umzusteigen.
Carruth hielt einen Vortrag bei CPP North und ermutigte Menschen, die Rust bereits nutzten, dies auch weiterhin zu tun. Entwickler, die bereits umfangreiche C++-Codebasen haben, deren Konvertierung zu Rust schwierig ist, sollten Carbon verwenden.
Insbesondere ist Carbon das, was Carruth als „Nachfolgersprache“ bezeichnete, die auf einem bestehenden Ökosystem aufgebaut ist, in diesem Fall C++.
Zu diesem Zweck soll Carbon vollständig kompatibel mit aktuellem C++-Code sein, auch wenn es viele Ziele mit Rust hat, wie beispielsweise die Unterstützung von Programmierern bei der Erstellung „leistungskritischer Anwendungen“.
Außerdem soll der Umstieg von C++ auf Carbon so einfach wie möglich werden.
Zusammenfassung
Schließlich haben sich die Ersteller der Carbon-Sprache bemüht, dem Erstellungsprozess Aufmerksamkeit zu schenken. Der Code des Projekts kann angefordert und offen gespeichert werden Github, und seine Kultur wird als inklusiv und offen sowohl für Privatpersonen als auch für den IT-Sektor definiert.
Das Carbon-Team war der Meinung, dass Carbon ein autonomes Projekt sein muss, das von der Community vorangetrieben wird, und nicht nur ein Projekt, das von Google angetrieben wird, um sich in Zukunft weiterzuentwickeln.
Caruth fügte hinzu, dass sich dieses Konzept trotz des Interesses einiger IT-Unternehmen noch im Experimentierstadium befinde.
Hinterlassen Sie uns einen Kommentar