Heim  >  Artikel  >  Backend-Entwicklung  >  Nach dem Rücktritt des Chefs der Go-Sprache wurde eine einheimische Sprache geboren

Nach dem Rücktritt des Chefs der Go-Sprache wurde eine einheimische Sprache geboren

PHPz
PHPznach vorne
2023-04-10 12:21:031143Durchsuche

Event Review

Letzte Woche gab Steve Francia, der Leiter des Go-Sprachprojekts, seinen Rücktritt bekannt, als Grund gab er an, dass die Arbeit am Go-Projekt ins Stocken geraten sei, was ihn beunruhigt unbequem. Interessanterweise haben auch einige einheimische Gophers (der selbsternannte Name von Go-Sprachbegeisterten) neue Ideen über die Go-Sprache. Beispielsweise beschlossen Gophers wie Chai Shushan, einer der ersten Go-Enthusiasten in China, und Shi Bin, der seit langem zu den Top 50 der globalen Go-Mitwirkendenliste zählt, eine neue Programmiersprache auf Basis von Go auf den Markt zu bringen Sprache: Ao Language™ (Ao). Ausgesprochen „Wa“.

Derzeit ist der Code von Concave Language™ als Open Source auf Github verfügbar und es werden einfache ausführbare Beispiele bereitgestellt. Laut der Einführung seines Warehouse lauten die Designziele von WaGo Language™ wie folgt: 1. C++-Sprache, gehüllt in Go- und Rust-Syntax 2. Das Suffix der Quellcodedatei von Wago Language™ ist .wa3 und die konkave Sprache ™-Compiler ist mit der WaGo-Syntax kompatibel. Die konkave Grammatik stimmt mit der WaGo-Grammatik auf AST-Ebene überein (beide können denselben AST generieren und sich gegenseitig verlustfrei konvertieren). 4. Concave Language™ unterstützt zweisprachige Schlüsselwörter in Chinesisch/Englisch, d. h. jedes Schlüsselwort Es gibt eine chinesische und eine englische Version. Sie sind auf grammatikalischer Ebene gleichwertig. Gao Language™-Angabe, Bildquelle @GitHub. Laut Chai Shushan, Shi Bin und anderen ist die „ Der „zurückhaltende“ Stil der Go-Sprache ist ihre Herangehensweise an Programmiersprachen. Der größte gemeinsame Nenner der Ästhetik. Als das Concave Language™-Projekt gestartet wurde, stützte es sich daher stark auf die Designideen und die spezifische Umsetzung von Go.

Nach dem Rücktritt des Chefs der Go-Sprache wurde eine einheimische Sprache geborenNatürlich sagten sie auch, dass die Wahl der Go-Sprache als anfängliche Blaupause ein Kompromiss sei, der mit begrenzten Investitionen eingegangen werden müsse. Sie hoffen, dass sie mit der Entwicklung des Projekts mehr originelle Designs sammeln und zum Trend der unabhängigen Innovation beitragen werden. Obwohl Chai Shushan, Shi Bin und andere ältere Gophers sind, ist es nicht schwer, ihre Vorliebe für die Go-Sprache zu verstehen, aber wir kommen nicht umhin, uns zu fragen: Wie magisch ist die Go-Sprache, die sie so von der Go-Sprache fasziniert?

Warum Go-Sprache wählen

Nach der Bewertung von Go durch viele Entwickler, die Go-Sprache verwendet haben, weist die Go-Sprache die folgenden vier Merkmale im Design auf.

1. Einfach und benutzerfreundlich

Im Gegensatz zu den gängigen Programmiersprachen (wie C++, Java usw.), die ständig neue Funktionen hinzufügen, indem sie sich von ihnen leihen Andere, Go-Designer sind im Sprachdesign Von Anfang an haben wir uns geweigert, den Weg der Fusion von Sprachfunktionen einzuschlagen, und haben uns für „Subtraktion“ entschieden.

Sie überlassen die Komplexität dem Design und der Implementierung der Sprache selbst, dem Go-Kernentwicklungsteam, und überlassen die Einfachheit, Benutzerfreundlichkeit und Klarheit der Mehrheit der Entwickler, die die Go-Sprache verwenden. Daher bietet die Go-Sprache:
Präzise, ​​konventionelle Syntax (kein Parsen von Symboltabellen erforderlich),

Keine Header-Dateien;

Keine zirkulären Abhängigkeiten (Pakete);

  • Konstanten sind nur Zahlen;
  • Jeder Typ kann Methoden haben (keine Klassen); KEINE SUB -CLASSING); ");
  • Keine Zeigerarithmetik;
  • Speicher wird immer auf den Wert Null initialisiert;
  • Keine Typanmerkungssyntax (wie const, static in C++ usw.)
  • ……
  • 2. Bevorzugte Kombination
  • Mainstream-objektorientierte Sprachen wie C++ und Java koppeln verschiedene Teile des Programms durch ein riesiges Top-Down-Typsystem, Vererbung, explizite Schnittstellenimplementierung und andere Mechanismen, aber wir können keine klassischen objektorientierten Sprachen finden ​in der Go-Sprache Objektsyntaxelemente, Typsysteme und Vererbungsmechanismen.

    Wie verbindet die Go-Sprache die verschiedenen Teile des Programms miteinander? Es ist eine Kombination.

    Auf der Ebene des Sprachdesigns verwendet Go orthogonale Syntaxelemente, einschließlich des typlosen Go-Sprachsystems. Es gibt kein Konzept für Untertypen. Jeder Typ kann seinen eigenen Satz von Methoden, Typen und Methodenimplementierungen haben sind orthogonal unabhängig.
    Durch Typeinbettung werden bereits implementierte Funktionen in neue Typen eingebettet, um die funktionalen Anforderungen neuer Typen schnell zu erfüllen. Beim Aufrufen einer Methode für eine Instanz eines neuen Typs hängt die Methodenübereinstimmung vom Methodennamen und nicht vom Typ ab.
    Darüber hinaus wird die Aggregation von Schnittstellenverhalten durch Einbetten des Schnittstellentyps in die Definition der Schnittstelle erreicht, um eine große Schnittstelle zu bilden. Diese Methode wird besonders häufig in der Standardbibliothek verwendet und ist in der Standardbibliothek weit verbreitet Geh zur Sprache.

    Dies ist ein innovatives Design der Go-Sprache: Eine Schnittstelle ist lediglich eine Sammlung von Methoden, und die Beziehung zum Implementierer ist implizit, wodurch die Kopplung zwischen verschiedenen Teilen des Programms minimiert wird. 3. Parallelität und geringes Gewicht Die Hardware war in den nächsten zehn Jahren sehr komplex. Es ist sehr unklug, die Sprache eng an die damalige Hardware zu koppeln. Dies wird den Entwicklern beim Schreiben umfangreicher gleichzeitiger Programme nicht viel bringen.
    Daher betrachten sie die Multi-Core-orientierte, native integrierte Parallelitätsunterstützung als eines der Designprinzipien der neuen Sprache. Die Designphilosophie der nativen Unterstützung der Go-Sprache für Parallelität spiegelt sich in den folgenden zwei Punkten wider.

    (1) Die Go-Sprache verwendet ein leichtes Coroutine-Parallelitätsmodell, wodurch Go-Anwendungen skalierbarer werden, wenn sie auf Multi-Core-Hardware abzielen.
    (2) Die Go-Sprache bietet Entwicklern Syntaxelemente und Mechanismen, die Parallelität unterstützen. 4. Ingenieursorientiert Betrachtet man die Syntax und Toolkette von Go? Das Design der Standardbibliothek ist auch ein wesentlicher Unterschied in den Designideen zwischen Go und den eher akademischen und forschungsorientierten Programmiersprachen.

    Dies macht die Go-Sprachspezifikation einfach und flexibel genug, dass Programmierer mit Kenntnissen in anderen Sprachen schnell loslegen können. Noch wichtiger ist, dass Go über eine vollständige Toolkette verfügt, die die Konsistenz der Teamzusammenarbeit erheblich verbessert. Gofmt formatiert beispielsweise Go-Code automatisch, wodurch das Problem inkonsistenter Formatierungsstile von Codes, die von verschiedenen Personen geschrieben wurden, weitgehend beseitigt wird. Konfigurieren Sie den Editor so, dass Gofmt beim Bearbeiten eines Archivs automatisch ausgeführt wird, sodass Sie es beim Schreiben von Code an einer beliebigen Stelle platzieren können und es beim Archivieren automatisch zu korrekt formatiertem Code wird. Darüber hinaus gibt es sehr nützliche Tools wie Gofix und Govet.
    Kurz gesagt:
    Gos Einfachheit auf Sprachebene ermöglicht es Go, eine Ausdruckskraft zu erreichen, die C++/Java usw. nicht nachsteht, und gleichzeitig eine bessere Lesbarkeit, höhere Entwicklungseffizienz usw. im Bereich der Softwareentwicklung zu erzielen. als wichtiges Element.

    Die Zukunft der konkaven Sprache™

    Obwohl Go heute mit seiner überlegenen Leistung (mehr als 75 % der CNCF Projekt, einschließlich Kubernetes und Istio, beide geschrieben in Go, außerdem ist Go auch eine der wichtigsten Cloud-Anwendungssprachen), Geh Sprache in China Es ist auch sehr beliebt, aber wir müssen uns immer noch Sorgen machen, ob die konkave Sprache™, die aus Go geboren wurde, eine glänzende Zukunft haben wird?


    Es war schon immer schwierig, die Zukunft vorherzusagen. Glücklicherweise gibt es einen Vorläufer der Concave Language™-Go+-Sprache. Wir könnten genauso gut über die Zukunft der Concave Language™ spekulieren die Entwicklung von Go+.

    Go+ ist eine Programmiersprache, die vom CEO von Qiniu Cloud, Xu Shiwei, erfunden wurde. Sie wurde offiziell im Juli 2020 veröffentlicht und Version 1.0 wurde im Oktober 2021 veröffentlicht. Die aktuellste Version ist Version 1.1, die am 13. Juni dieses Jahres veröffentlicht wurde. Mit anderen Worten, es sind fast zwei Jahre vergangen, seit Go+ noch im Anfangsstadium ist und von einer groß angelegten Anwendung noch weit entfernt ist. Es ist abzusehen, dass Concave Language™ noch lange nicht auf den Markt kommen wird Die Zukunft. In den Augen der Mehrheit der Entwickler.

    Darüber hinaus ist Xu Shiwei nach den Ansichten von Xu Shiwei auf der ECUG Con 2022-Konferenz der Ansicht, dass Python nur aus der Perspektive der Leistung betrachtet werden kann, obwohl jeder der Leistung von Programmiersprachen mehr Aufmerksamkeit schenkt Da Python unter den Skriptsprachen zweitklassig ist, ist es eigentlich nicht schnell. Nach Ansicht von Xu Shiwei ist das Wichtigste für eine neue Sprache die Zielgruppe, die sie wählt.

    Die von Go+ gewählte Zielgruppe ist das ganze Volk.

    Es sind diese Funktionen von Go+, die einige Entwickler optimistisch für die Zukunft von Go+ stimmen. Die positiven Erwartungen an Go+ werden ein Anstoß für die weitere Entwicklung von Go+ sein.

    Dieses Prinzip gilt auch für Concave Language™: Der Entwicklungsschwerpunkt von Concave Language™ liegt möglicherweise nicht auf der Leistung, sondern darauf, welche Gruppen es als Zielgruppe auswählt und wie man Seed-Benutzer gewinnt.

    Wenn das Projektteam von Ao Language™ diese Neuigkeiten in Zukunft bekannt geben wird, dann können wir uns trotzdem auf die Zukunft von Ao Language™ freuen.

Das obige ist der detaillierte Inhalt vonNach dem Rücktritt des Chefs der Go-Sprache wurde eine einheimische Sprache geboren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen