Maison  >  Article  >  développement back-end  >  Le langage go est-il un langage de bas niveau ?

Le langage go est-il un langage de bas niveau ?

青灯夜游
青灯夜游original
2022-11-30 20:01:556603parcourir

Le langage go n'est pas un langage de bas niveau. Le langage sous-jacent est également appelé langage de bas niveau, qui fait référence à un langage avec une faible efficacité de mise en œuvre, une efficacité d'exécution élevée, une forte contrôlabilité du matériel, un petit code cible, une mauvaise maintenabilité et une mauvaise portabilité. Le langage go est un langage de programmation de haut niveau. Il est conçu pour résoudre des problèmes pratiques dans le processus de développement de systèmes à grande échelle. Il prend en charge la concurrence, les spécifications unifiées, la simplicité, l'élégance et les performances puissantes.

Le langage go est-il un langage de bas niveau ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.

Le langage de bas niveau, également appelé langage de bas niveau, fait référence à un langage avec une faible efficacité de mise en œuvre, une efficacité d'exécution élevée, une forte contrôlabilité du matériel, un petit code cible, une mauvaise maintenabilité et une mauvaise portabilité.

Le langage go n'est pas un langage de bas niveau. Le langage Go est un langage de programmation de haut niveau open source par Google en 2009. Il est conçu pour résoudre des problèmes pratiques dans le processus de développement de grands systèmes. Il prend en charge la concurrence, les spécifications unifiées, la simplicité, l'élégance et les performances puissantes. Il est utilisé par de nombreux évangélistes de Go Language et le salue comme « le langage C à l'ère du cloud computing ».

Le langage Go, en tant que langage de haut niveau de type C, tout en abaissant le seuil de programmation du pointeur C, ajoute également des pièges de programmation potentiels. Même les vétérans qui maîtrisent le langage Go tomberont accidentellement dans des pièges. Il faut donc faire attention.

Parlons de l'histoire du développement du langage Go et des caractéristiques du langage Go.

Le nom de Go

Le langage go est-il un langage de bas niveau ?
Ceci est un e-mail envoyé par Rob Pike à Robert Griesemer et Ken Thompson le 25 septembre 2007 à 15h12 sur le thème de la discussion sur le langage de programmation, Le principal le texte de l'e-mail est :

J'ai eu de l'inspiration en rentrant chez moi : * Nommez ce langage de programmation "go". Il est court et facile à écrire. * Les classes d'outils peuvent être nommées : goc, gol, goa. * L'outil de débogage interactif peut également être directement nommé « go ». * Le suffixe des fichiers de langue est .go, etc.
Comme beaucoup de grandes entreprises nées dans les garages, le nom du langage Go est également lié aux voitures. Ce qui précède est à l’origine du nom du langage Go. Personnellement, j'aime beaucoup le nom Go. Cela semble être une idée aléatoire, mais il est très précis. Il a le sang pur de Google et incarne les caractéristiques d'un langage simple et élégant. Et le mot-clé pour ouvrir une coroutine dans Go est go.

20 % du temps des ingénieurs de Google

Depuis lors, Robert, Rob et Ken ont commencé à mener des recherches et des développements au sein de Google. Ce n'est qu'en 2009 que l'équipe du projet Go est officiellement open source. c'est-à-dire le caractère japonais de la langue officiellement ouverte au monde extérieur lors de son anniversaire officiel. Le code source était initialement hébergé sur

http://code.google.com, et a été progressivement déplacé vers GitHub au cours des années suivantes. La méthode de travail « 20 % de temps » de Google permet aux ingénieurs de consacrer 20 % de leur temps à travailler sur leurs projets préférés. Le service vocal Google Now, Google News, les informations trafic sur Google Map, etc. sont tous des produits de 20 % du temps. La langue Go était également un produit de 20% du temps au début.

Les trois fondateurs du langage Go

Les trois fondateurs les plus importants du langage Go sont mentionnés dans l'e-mail :

Le langage go est-il un langage de bas niveau ?
Faisons connaissance avec ces trois grands :

  • Rob Pike : Il était membre de l'équipe de développement Unix des Bell Labs, principal leader dans le développement du système d'exploitation Plan9 et principal leader dans le développement du système d'exploitation Inferno.
  • ken tomption : lauréat du prix Turing, auteur du langage B, prédécesseur du langage C, l'un des inventeurs d'Unix et auteur principal du système d'exploitation Plan 9. Co-développement UTF-8.
  • Robert : Développement de code pour le moteur JavaScript V8 de Google et Chubby.

Lignée des langages Go

Le développement des langages de programmation est similaire à l'évolution des espèces. Chaque langage de programmation s'appuie sur le meilleur de ses prédécesseurs, puis innove et les améliore. La figure ci-dessous montre quels avantages Go a hérité de ses prédécesseurs, Go s'appuie sur les épaules de ces géants et joue un rôle de plus en plus important à l'ère du cloud.

Le langage go est-il un langage de bas niveau ?

Caractéristiques que le langage Go hérite de ses prédécesseurs :

  • Langage C : Le langage Go est parfois décrit comme un « langage de type C », ou « le langage C du 21ème siècle ». Go hérite d'une syntaxe d'expression, d'une structure de flux de contrôle, de types de données de base, d'un transfert de valeur de paramètre d'appel, de pointeurs et de nombreuses autres idées similaires du langage C, ainsi que de l'efficacité d'exécution du code machine compilé et de l'efficacité d'exécution du code machine compilé que C le langage a toujours valorisé une adaptation transparente aux systèmes d’exploitation existants.
  • Pascal : Mais il y a d'autres ancêtres dans l'arbre généalogique de la langue Go. Une branche influente vient du langage Pascal conçu par Niklaus Wirth. Puis le langage Modula-2 a inspiré le concept de
  • packages. Ensuite, le langage Oberon a abandonné la distinction entre les fichiers d'interface de module et les fichiers d'implémentation de module. Le langage Oberon-2) de deuxième génération affecte directement la syntaxe d'importation et de déclaration des packages, ainsi que la syntaxe de déclaration des méthodes fournies par les fonctionnalités orientées objet du langage Oberon.
  • CSP : Autre ancêtre du langage Go, il apporte les caractéristiques importantes du langage Go
  • qui le distinguent des autres langages Il a été inspiré par le document de recherche peu connu sur la concurrence publié par Tony Hoare des Bell Labs en. 1978. Littérature de base, communication des processus séquentiels (CSP). Dans CSP, un programme est un ensemble de processus exécutés en parallèle sans état partagé. Ils utilisent des pipelines pour la communication et la synchronisation des contrôles. Cependant, le CSP de Tony Hoare n'est qu'un langage de description utilisé pour décrire les concepts de base de la concurrence, et n'est pas un langage de programmation généraliste capable d'écrire des programmes exécutables. Le langage Go utilise des tuyaux pour communiquer dans les coroutines.

Applications lourdes

Voici quelques-unes des applications lourdes du langage Go :

Le langage go est-il un langage de bas niveau ?

Avantages de Go

Voix d'un programmeur : Si le monde réel a besoin de moi, je peut prototyper, tester et déployer un système de production en quelques jours et gérer 5 fois plus de requêtes par seconde avec très peu de surcharge de processeur et de mémoire. Je pense que seul le langage Go peut le faire.
Le langage Go présente les avantages suivants :

  • Version binaire séparée : la compilation du projet Go générera un fichier exécutable statique. Ce fichier peut s'exécuter indépendamment sans aucune autre dépendance. Cette approche est particulièrement adaptée aux environnements de conteneurs cloud natifs.
  • Compilation croisée : compilez des binaires sur n'importe quel système d'exploitation fonctionnant sur d'autres plates-formes. Par exemple, sur un système Mac, des fichiers binaires peuvent être compilés et peuvent fonctionner sous Linux et Windows.
  • Collecte des ordures : le langage Go prend en charge le ramassage des ordures. En comparaison, C++, Rust, etc. obligent les développeurs à se contrôler.
  • Performance d'exécution : Go est très rapide. Les performances sont proches du C++. Bien supérieur à Java, Python et Node.
  • Efficacité de développement : le langage Go possède à la fois les performances d'exécution des langages statiques et l'efficacité de développement des langages dynamiques.
  • Simplicité et efficacité : la philosophie de conception du langage Go inclut la simplicité et l'efficacité. Un contre-exemple typique est le langage Java, complexe et volumineux.
  • Concurrence : le niveau de langage prend en charge la concurrence, simplifie le développement simultané via des coroutines et des canaux et améliore les performances de concurrence.
  • Bibliothèque standard riche : la bibliothèque standard Go couvre le texte, les E/S, le réseau, le cryptage, les services Web, le RPC distant, le moteur de modèles et d'autres fonctions.
  • Peut appeler le langage C : vous pouvez appeler des fonctions du langage C pour optimiser davantage les performances et réutiliser l'immense écosystème du langage C.
  • Temps de compilation rapide : Go compile extrêmement rapidement. Vous pouvez vous référer à deux systèmes de génération de blogs statiques, Hexo (développement Node) et Hugo (développement Go).
  • Type d'ingénierie : le but de la conception du langage Go est de devenir un langage d'ingénierie pour résoudre des problèmes d'ingénierie réels. Le langage Go définit les spécifications de développement et fournit une multitude d'outils. En utilisant le langage Go, vous pouvez écrire des programmes faciles à lire et à comprendre, et faciles à tester, à maintenir et à développer.

Go Inconvénients

  • Manque de cadre lourd. Tels que Ruby's Rails, Python's Django et Java's Spring.
  • Gestion des erreurs : pas de système d'exception. Les responsables de Go résolvent ce problème.
  • Gestion des packages logiciels : Depuis longtemps, Go ne dispose pas officiellement de système de gestion des packages. Jusqu'à récemment, la version 1.13 de Go introduisait officiellement Go Module en tant qu'outil officiel de gestion des dépendances.
  • Il ne s'agit pas d'un modèle de programmation orienté objet standard : c'est aussi une innovation du langage Go. Si vous êtes un fervent défenseur de la POO, vous pourriez vous sentir un peu mal à l'aise

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéos de programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn