Heim >Backend-Entwicklung >Golang >Ist die Go-Sprache Open Source?

Ist die Go-Sprache Open Source?

青灯夜游
青灯夜游Original
2022-11-29 18:42:496773Durchsuche

go-Sprache ist Open Source. Die Go-Sprache wurde im November 2009 offiziell angekündigt und wurde auf Linux- und Mac OS X-Plattformen implementiert und später dem Windows-System hinzugefügt. Die Go-Sprache übernimmt das BSD-Open-Source-Protokoll. Die BSD-Open-Source-Lizenz ist eine Lizenz, die den Benutzern viele Freiheiten gibt. Sie können sie frei verwenden, den Quellcode ändern und den geänderten Code als Open-Source- oder proprietäre Software erneut veröffentlichen.

Ist die Go-Sprache Open Source?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

go-Sprache – Open-Source-Programmiersprache


Go (auch bekannt als Golang) ist eine von Google entwickelte statisch stark typisierte, kompilierte, gleichzeitige und Garbage-Collection-Programmiersprache.

Robert Griesemer, Rob Pike und Ken Thompson begannen im September 2007 mit der Entwicklung von Go, später kamen Ian Lance Taylor und Russ Cox hinzu. Go wurde auf Basis des Inferno-Betriebssystems entwickelt. Go wurde im November 2009 offiziell als Open-Source-Projekt angekündigt und auf Linux- und Mac OS

Um es einfach auszudrücken: Die Go-Sprache ist Open Source und übernimmt die BSD-Lizenz.

Das BSD-Open-Source-Protokoll ist ein Protokoll, das Benutzern viel Freiheit bietet. Sie können es frei verwenden, den Quellcode ändern und den geänderten Code als Open Source oder proprietäre Software erneut veröffentlichen. Wenn Sie Code veröffentlichen, der das BSD-Protokoll verwendet, oder Ihr eigenes Produkt basierend auf dem BSD-Protokollcode entwickeln, müssen Sie drei Bedingungen erfüllen:

  • Wenn das erneut veröffentlichte Produkt Quellcode enthält, dann ist der Quellcode das BSD-Protokoll im Originalcode enthalten sein.

  • Wenn Sie nur binäre Klassenbibliotheken/Software weiterverbreiten, müssen Sie das BSD-Protokoll in den Originalcode in der Dokumentation und Urheberrechtserklärung der Klassenbibliothek/Software aufnehmen.

  • Sie dürfen den Namen des Autors/der Organisation des Open-Source-Codes und den Namen des Originalprodukts nicht für Marketingzwecke verwenden.

BSD-Code fördert die gemeinsame Nutzung von Code, aber das Urheberrecht des Codeautors muss respektiert werden. BSD ist ein Protokoll, das für die kommerzielle Integration geeignet ist, da es Benutzern die Änderung und Weiterverbreitung von Code ermöglicht und außerdem die Veröffentlichung und den Verkauf kommerzieller Software unter Verwendung oder Entwicklung von BSD-Code ermöglicht. Viele Unternehmen bevorzugen bei der Auswahl von Open-Source-Produkten das BSD-Protokoll, da sie diese Codes von Drittanbietern vollständig kontrollieren und bei Bedarf ändern oder neu entwickeln können.

Ist die Go-Sprache Open Source?

zur Sprachbeschreibung


Im Jahr 2007 versammelte der Chef-Softwareentwickler von Google, Rob Pike, der genug von C++ hatte, zwei talentierte Leute, Robert Griesemer und Ken Thompson, um sich und beschloss, eine neue Sprache zu entwickeln Ersetzen Sie C++. Obwohl die im 21. Jahrhundert erschienene GO-Sprache C++ nicht wie erwartet ersetzen kann, sind ihre nahezu C-ähnliche Ausführungsleistung, die nahezu analytische Sprachentwicklungseffizienz und die nahezu perfekte Kompilierungsgeschwindigkeit auf der ganzen Welt beliebt geworden. Vor allem bei Cloud-Projekten werden die meisten davon mit Golang entwickelt. Man muss sagen, dass Golang schon lange tief in den Herzen der Menschen verankert ist. Für ein neues Projekt ohne historische Belastung ist Golang möglicherweise die beste Wahl.

Rob Pike, bekannt als der Vater der GO-Sprache, sagte, dass die Frage, ob Sie mit der GO-Sprache einverstanden sind, davon abhängt, ob Sie zustimmen, dass weniger mehr oder weniger weniger ist (weniger ist mehr oder weniger ist weniger). Rob Pike fasst die gesamte Designphilosophie der GO-Sprache auf sehr einfache Weise zusammen – und verkörpert Einfachheit und Praktikabilität in vollen Zügen.

Viele Leute bezeichnen die GO-Sprache als die C-Sprache des 21. Jahrhunderts, da GO nicht nur die Einfachheit und Leistung von C aufweist, sondern auch verschiedene praktische Funktionen für die serverseitige Entwicklung in der Internetumgebung des 21. Jahrhunderts bietet, sodass Entwickler dies tun können Erhalten Sie ganz einfach das, was Sie auf dem Sprachniveau wollen.

Go-Sprache ist die zweite Open-Source-Programmiersprache, die 2009 von Google veröffentlicht wurde. Die Go-Sprache ist speziell für die Programmierung von Multiprozessor-Systemanwendungen optimiert. Mit Go kompilierte Programme können so schnell wie C- oder C++-Code sein, sind sicherer und unterstützen parallele Prozesse.

1. Entwicklungsteam

Ist die Go-Sprache Open Source?

Das Entwicklungslager der GO-Sprache kann als beispiellos mächtig bezeichnet werden. Zu den wichtigsten Mitgliedern gehören historische Persönlichkeiten der Computersoftwarebranche, die einen tiefgreifenden Einfluss auf die Entwicklung von Computern haben Software. Ken Thompson von Bell Labs entwarf die B-Sprache und erstellte das Unix-Betriebssystem (zunächst in der B-Sprache implementiert). Später, während der Entwicklung von Unix, entwarf er zusammen mit Dennis Ritchie die C-Sprache und rekonstruierte sie dann mit C Sprache. Unix-Betriebssystem. Dennis Ritchie und Ken Thompson gelten als die Väter von Unix und der Sprache C und wurden 1983 gemeinsam mit dem Turing Award für ihre herausragenden Beiträge zur Entwicklung von Computersoftware ausgezeichnet. Rob Pike, ebenfalls von Bell Labs, ist ein wichtiges Mitglied des Unix-Teams. Er hat die Limbo-Sprache erfunden und gemeinsam mit Ken Thompson die UTF-8-Kodierung entworfen. Er ist einer der Autoren von „Unix Programming Environment“ und „Programming“. Üben".

2. Funktionen der Go-Sprache

  • Automatische Speicherbereinigung verringert die Schwierigkeit der Entwicklung
    Speicher- und Ressourcenverwaltung waren schon immer ein sehr frustrierendes Problem. In anderen Sprachen (wie C oder C++) muss dieser Speicher vor der Verwendung zugewiesen und nach der Verwendung freigegeben werden. Ein kleines Versehen kann zu einem Speicherverlust führen, der zum Absturz des Programms oder sogar des Systems führt. Der moderne Garbage-Collection-Mechanismus der Go-Sprache reduziert die Schwierigkeit der Entwicklung erheblich und überlässt die uninteressante Speicherverwaltung professionellen Compilern, sodass sich Programmierer auf interessantere Dinge konzentrieren können.

  • Unterstützt mehrere Rückgabewerte für Funktionen
    Derzeit unterstützen Mainstream-Sprachen außer Python grundsätzlich keine mehreren Rückgabewerte für Funktionen, aber in vielen Fällen benötigen Entwickler diese Funktion sehr. Die Mehrfachrückgabewertfunktion der Go-Sprache ermöglicht es Entwicklern, keine

  • schöne Fehlerbehandlungsspezifikation
    mehr zu definieren, nur um mehrere Werte zurückzugeben. Die Go-Sprache führt das Schlüsselwort defer für den Standard-Fehlerbehandlungsprozess ein und stellt den Build bereit -in-Funktionen „Panic“ und „Recover“ werden verwendet, um das Auslösen und Abfangen von Ausnahmen abzuschließen. Im Vergleich zum Ausnahmeabfangmechanismus in Sprachen wie C++ und Java kann der Fehlerbehandlungsmechanismus der Go-Sprache die Codemenge erheblich reduzieren. Entwickler müssen nicht mehr nur eine große Anzahl von Try-Catch-Anweisungen hinzufügen für die Programmsicherheit.
    Golang unterstützt keine strukturierten Methoden zur Ausnahmeauflösung wie try...catch, da es das Gefühl hat, dass dadurch die Codemenge erhöht wird und missbraucht wird, egal wie klein die Ausnahme ist, sie wird ausgelöst. Die von Golang empfohlene Ausnahmebehandlungsmethode lautet:

    • Gewöhnliche Ausnahme: Der Aufgerufene gibt das Fehlerobjekt zurück und der Aufrufer bestimmt das Fehlerobjekt.
    • Schwerwiegende Ausnahme: Bezieht sich auf eine unterbrechende Panik (z. B. Division durch 0), die mithilfe des Defer...Recover...Panic-Mechanismus erfasst und verarbeitet wird. Schwerwiegende Ausnahmen werden im Allgemeinen automatisch intern von Golang ausgelöst und erfordern nicht, dass Benutzer sie aktiv auslösen, wodurch die Situation vermieden wird, dass überall traditionelles try...catch geschrieben wird. Natürlich können Benutzer auch panic(‘xxxx’) verwenden, um aktiv zu werfen, aber dadurch wird dieser Mechanismus zu einem strukturierten Ausnahmemechanismus degeneriert.
  • Gleichzeitige Programmierung
    Die Go-Sprache ist in Bezug auf die gleichzeitige Programmierung viel einfacher als die meisten Sprachen. Dies ist eines ihrer größten Highlights und ein wichtiger Verhandlungsvorteil für den Einstieg in die hohe Parallelität und Leistung Szenarien in der Zukunft.
    Im Gegensatz zu herkömmlichen Multiprozessen oder Multithreads ist die gleichzeitige Ausführungseinheit von Golang eine Coroutine namens Goroutine.
    Im heutigen Multicore-Zeitalter liegt die Bedeutung der gleichzeitigen Programmierung auf der Hand. Natürlich unterstützen viele Sprachen Multithread- und Multiprozessprogrammierung, aber leider ist die Implementierung und Steuerung nicht so einfach und angenehm. Der Unterschied zu Golang besteht darin, dass die Sprachebene die Parallelität von Coroutinen (Goroutinen) unterstützt (Coroutinen werden auch als Mikro-Threads bezeichnet, die leichter, kostengünstiger und leistungsfähiger sind als Threads) Die Sprachebene bietet Das Schlüsselwort (go) wird zum Starten von Coroutinen verwendet, und Tausende von Coroutinen können auf demselben Computer gestartet werden.

  • Netzwerkprogrammierung
    Da Golang im Internetzeitalter geboren wurde, ist es von Natur aus dezentralisiert und verteilt. Eine seiner spezifischen Erscheinungsformen besteht darin, dass es umfangreiche und praktische Netzwerkprogrammierschnittstellen bereitstellt, wie z. B. Socket mit net.Dial (basierend auf TCP). /udp, das die herkömmlichen Schnittstellen zum Verbinden, Abhören, Akzeptieren und anderen kapselt), http verwendet http.Get/Post(), rpc verwendet client.Call('class_name.method_name', args, &reply) usw.

  • Kompilierung
    Für das Ausführen eines kompilierten Go-Programms ist keine zusätzliche Installation einer laufenden Umgebung wie Javas JDK oder JS-Knoten erforderlich. Gleichzeitig bietet Go native Cross-Compilation-Unterstützung, was die plattformübergreifende Entwicklung und Bereitstellung sehr praktisch macht .
    Natürlich ist das Kompilieren und Ausführen auch einfacher, um eine bessere Betriebseffizienz zu erzielen, aber wir sollten in dieser Hinsicht nicht abergläubisch sein. Immer mehr Betriebssystemumgebungen für Programmiersprachen unterstützen JIT, was die Kompilierung wie Go ermöglicht Der Leistungsvorteil wird weniger offensichtlich. 3. Go-Sprachverwendungsszenarien Dateisysteme, verteilte Systeme, Datenbankagenten usw.; im Hinblick auf die Netzwerkprogrammierung wird die Go-Sprache häufig in Webanwendungen, API-Anwendungen, Download-Anwendungen usw. verwendet. Darüber hinaus eignet sich die Go-Sprache auch für In-Memory-Datenbanken und Clouds Plattformfelder. Derzeit werden viele ausländische Cloud-Plattformen mit Go entwickelt.

Serverprogrammierung: Wenn Sie zuvor C oder C++ für diese Aufgaben verwendet haben, ist Go dafür sehr gut geeignet, z. B. Protokollverarbeitung, Datenverpackung, Verarbeitung virtueller Maschinen, Dateisystem usw.

Verteilte Systeme, Datenbankbroker, Middleware usw., wie Etcd.

  • Netzwerkprogrammierung wird derzeit am häufigsten verwendet, einschließlich Webanwendungen, API-Anwendungen und Download-Anwendungen. Das integrierte Net/http-Paket von Go implementiert im Grunde alle Netzwerkfunktionen, die wir normalerweise verwenden.

  • Datenbankbetrieb

  • Entwicklung von Cloud-Plattformen Derzeit nutzen viele ausländische Cloud-Plattformen die Go-Entwicklung.

  • Implementiert die Geschäftslogik serverseitiger Dienste und ist eine gute Alternative zu C++, Java, Ruby, Python und PHP. Es kann auch zur Implementierung von Middleware mit hoher Parallelität verwendet werden.

    Vergleich zwischen Go-Sprache und anderen Open-Source-Sprachen


    • Entwicklungseffizienz GO-Sprache ist einfach zu verwenden, verfügt über eine hohe Codebeschreibungseffizienz, einheitliche Codierungsstandards und ist schnell einsatzbereit.

    1. Ursprüngliche Absicht des Go-Sprachdesigns

    Öffnen Sie go 05. Vergleich zwischen Go-Sprache und anderen Sprachen
    Referenz-URL: https://studygolang.com/articles/24885

    Hoffnung Werde die C-Sprache des Internetzeitalters. Die grundlegende Programmierphilosophie der meisten Sprachen auf Systemebene (einschließlich Java und C#) stammt aus C++ und entwickelt die objektorientierte Natur von C++ weiter. Aber die Designer der Go-Sprache sind anderer Meinung Sie glauben, dass es sich lohnt, die C-Sprache zu lernen. Der Grund für die anhaltende Beliebtheit der C-Sprache liegt darin, dass sie einfach genug ist. Daher ist die Go-Sprache einfach genug.

    Go wurde von und für diejenigen entwickelt, die große Systeme entwickeln; es soll technische Probleme lösen, nicht um Sprachdesign zu studieren, sondern um unsere Programmierung komfortabler und bequemer zu machen. **

    Aber in Kombination mit einigen internen Realitäten von Google zu dieser Zeit, wie zum Beispiel, dass viele Ingenieure aus der C-Abteilung kamen, muss die neu entwickelte Sprache leicht zu erlernen sein, vorzugsweise eine Sprache, die C ähnelt 20 Jahre. Die neu gestaltete Sprache muss also modern sein (z. B. integrierter GC) und so weiter. Basierend auf praktischen Erfahrungen entwickelten sie schließlich die Go-Sprache entsprechend ihren Zielen.

    2. Go-Sprache und JAVA

    Kompilierte Sprache, mäßige Geschwindigkeit (2,67 Sekunden),Derzeit sind große Websites in Java geschrieben, wie Taobao, JD.com usw. Seine Hauptmerkmale sind Stabilität, gutes Open Source, eigene Schreibspezifikationen, mäßige Entwicklungseffizienz und es ist derzeit die am weitesten verbreitete Sprache.

    3. Go-Sprache und C/C++

    • C
      hat eine schnelle Ausführungsgeschwindigkeit (4,28), mäßige Lernschwierigkeiten und mäßige Entwicklungsgeschwindigkeit. Aufgrund der vielen Mängel von C# wurden die Vorgänger großer Websites wie JD.com und Ctrip jedoch alle in C# entwickelt, jetzt aber auf Java migriert.

    • C/C++
      Der Vorfahr der bestehenden Programmiersprachen, aus dem alle anderen Sprachen hervorgegangen sind. Die schnellste Ausführungsgeschwindigkeit ist unübertroffen. Aber es ist am kompliziertesten zu schreiben und am schwierigsten zu entwickeln.

    In Bezug auf die Spracheigenschaften unterscheiden sich Java und C erheblich, während Go und C näher beieinander liegen.

    4. Go-Sprache und Python

    Wie wählt man 2019 zwischen Python, Golang, Java und C++?
    Referenz-URL: https://zhuanlan.zhihu.com/p/65177007
    Vergleichendes Lernen: Golang VS Python3
    Referenz-URL: https://zhuanlan.zhihu.com/p/65613337

    Sowohl Golang als auch Python sind derzeit verfügbar Eine der beliebtesten Entwicklungssprachen in ihren jeweiligen Bereichen.

    Golangs effiziente und benutzerfreundliche Syntax hat die Gunst vieler Back-End-Entwickler gewonnen und ist eine der am besten geeigneten Sprachen für die Netzwerkprogrammierung mit hoher Parallelität.

    Unnötig zu erwähnen, dass Python zu den zehn besten Dauerbewohnern im TIOBE-Ranking gehört und sich mittlerweile unter den ersten fünf stabilisiert hat. Es ist zu einer Sprache geworden, die man in den Bereichen maschinelles Lernen, KI und Datenanalyse unbedingt lernen muss.

    • Im Vergleich zu Python hat Go einen klaren Vorteil in der Leistung, da die Laufgeschwindigkeit von interpretierten Sprachen und kompilierten Sprachen nicht gleich ist. Darüber hinaus ist Go in Bezug auf die Leistung besser als Python Prägnantes Syntax- und Typsystemdesign.

    • Obwohl die Leistung stark ist, ist die Entwicklungseffizienz nicht schlechter als bei dynamischen Sprachen wie Python. Es ist normalerweise eine Größenordnung höher als native Python-Anwendungen und eignet sich zum Schreiben einiger Engpassdienste. Auch der Speicherverbrauch ist sehr sparsam.

    Python
    Skriptsprache, die langsamste (258 Sekunden), prägnanter Code, kurzer Lernfortschritt und schnelle Entwicklungsgeschwindigkeit. Douban ist in Python geschrieben. Zu den bekannten Server-Frameworks für Python gehören Django und Flask. Allerdings ist Python für große Projekte nicht stabil, weshalb einige Unternehmen, die Python verwenden, später auf Java migrierten.

    【Verwandte Empfehlung: Go-Video-Tutorial

Das obige ist der detaillierte Inhalt vonIst die Go-Sprache Open Source?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn