vendredi, 26 avril 2024

À quoi sert vraiment le langage de programmation Go ?

Crédit : Dreamstime

Pendant plus de dix ans dans la nature, le langage Go de Google , alias Golang – avec la version 1.18 sortie depuis mars 2022 – est passé d’une curiosité pour les geeks alpha à un langage d’émissions testé au combat derrière quelques-uns des projets cruciaux centrés sur le cloud au monde.

Pourquoi Go a-t-il été choisi par les développeurs de jobs tels que Docker et Kubernetes ? Quels sont les attributs déterminants de Go, en quoi diffère-t-il des autres langages d’émissions et quels types de tâches est-il le plus idéal pour créer ?

Dans ce court article, nous explorerons l’ensemble de fonctionnalités de Go, l’utilisation idéale cas, les omissions et les restrictions de la langue, et où Go peut aller à partir d’ici.

Go langue est petit et simple

Go, ou Golang comme on l’appelle généralement, a été développé par des employés de Google – principalement Rob Pike, expert Unix de longue date et ingénieur distingué de Google – mais ce n’est pas à proprement parler un « Tâche Google. » Au contraire, Go est établi comme une tâche open source dirigée par la communauté, dirigée par la direction qui a des opinions bien arrêtées sur la façon dont Go doit être utilisé et la direction que le langage doit prendre.

Go est suggéré comme basique à découvrir, simple à gérer et facile à vérifier par d’autres designers. Go n’a pas un grand ensemble de fonctions, en particulier par rapport à des langages comme C.

Go rappelle C dans sa syntaxe, ce qui le rend assez simple à découvrir pour les concepteurs C de longue date. Cela dit, de nombreuses fonctionnalités de Go, en particulier ses fonctionnalités de programmation simultanée et fonctionnelle, rappellent des langages tels qu’Erlang.

En tant que langage de type C pour créer et conserver des applications d’entreprise multiplateformes de toutes sortes, Go a beaucoup en commun avec Java. Et comme moyen de permettre une progression rapide du code qui pourrait s’exécuter n’importe où, vous pourriez établir un parallèle entre Go et Python, bien que les distinctions soient bien plus importantes que les ressemblances.

Le langage Go a quelque chose pour tout le monde

Les documents Go décrivent Go comme « un langage compilé rapide, typé statiquement, qui ressemble à un langage analysé et typé dynamiquement ». Même un gros programme Go s’assemblera en quelques secondes. De plus, Go évite une grande partie de la surcharge du style C composé de fichiers et de bibliothèques.

Go facilite la vie du développeur dans une variété de méthodes.

Go est pratique

Go a en fait été comparé à des langages de script comme Python dans sa capacité à satisfaire de nombreux besoins typiques d’émissions. Certaines de ces fonctionnalités sont intégrées au langage lui-même, telles que les « goroutines » pour la concurrence et le comportement de type thread, tandis que des fonctionnalités supplémentaires sont proposées dans les plans de bibliothèque standard Go, comme le package http de Go. Comme Python, Go fournit des fonctionnalités de gestion automatique de la mémoire, y compris la collecte des déchets.

Contrairement aux langages de script tels que Python, le code Go s’assemble en un binaire natif rapide. Et contrairement à C ou C, Go s’assemble extrêmement rapidement – assez rapidement pour que travailler avec Go ressemble plus à un langage de script qu’à un langage compilé.

De plus, le système de construction de Go est moins complexe que ceux des autres langages assemblés. Il faut peu d’étapes et peu de comptabilité pour construire et exécuter une tâche Go.

Go est rapide

Les binaires Go s’exécutent plus lentement que leurs équivalents C, mais la différence de vitesse est minime pour de nombreuses applications. L’efficacité de Go est aussi grande que C pour la grande majorité du travail, et généralement beaucoup plus rapide que d’autres langages compris pour la vitesse d’avancement (par exemple, JavaScript, Python et Ruby).

Go est portable

Les exécutables développés avec la chaîne d’outils Go peuvent être autonomes, sans dépendances externes par défaut. La chaîne d’outils Go est facilement disponible pour une variété de systèmes en cours d’exécution et de plates-formes matérielles, et peut être utilisée pour assembler des binaires sur toutes les plates-formes.

Go est interopérable

Go fournit tout ce qui précède sans compromettre l’accès au système sous-jacent. Les programmes Go peuvent communiquer avec des bibliothèques C externes ou effectuer des appels système natifs. Dans Docker, par exemple, Go s’interface avec les fonctions Linux de bas niveau, les groupes de contrôle et les espaces de noms, pour faire fonctionner la magie des conteneurs.

Go est généralement pris en charge

La chaîne d’outils Go est facilement disponible en tant que binaire Linux, MacOS ou Windows ou en tant que conteneur Docker. Go est inclus par défaut dans de nombreuses distributions Linux populaires, telles que Red Hat Enterprise Linux et Fedora, ce qui facilite un peu le déploiement de la source Go sur ces plates-formes.

La prise en charge de Go est également solide dans de nombreux environnements de développement tiers, de Microsoft Visual Studio Code à l’IDE Komodo d’ActiveState.

Où le langage Go fonctionne le mieux

Aucune langue n’est adaptée à chaque emploi, mais certaines langues sont adaptées à plus de tâches que d’autres. Go brille le plus pour le développement des types d’applications suivants.

Avancement cloud natif

Les fonctionnalités de simultanéité et de mise en réseau de Go, ainsi que son haut degré de mobilité, en font approprié pour créer des applications cloud natives. Go a été utilisé pour construire de nombreuses bases d’informatique native dans le cloud comprenant Docker, Kubernetes et Istio.

Services réseau dispersés

Les applications réseau fonctionnent et passent loin par la concurrence, et les fonctionnalités de concurrence natives de Go – les goroutines et les canaux, principalement – sont bien adaptées à un tel travail. De nombreux emplois Go concernent la mise en réseau, les fonctions dispersées et les services cloud : API, serveurs Web, cadres minimaux pour les applications Web, etc.

Énergies et outils autonomes

Programmes Go assemblés en binaires avec un minimum de dépendances externes. Cela les rend de préférence adaptés au développement d’utilitaires et d’autres outils, car ils se lancent rapidement et peuvent être facilement emballés pour la redistribution. Un exemple est un gain d’accès au serveur appelé Teleport (pour SSH, pour n’en nommer que quelques-uns). Teleport peut être publié sur des serveurs rapidement et rapidement en l’assemblant à partir de la source ou en téléchargeant un binaire prédéfini.

Limites de langage Go

L’ensemble de fonctionnalités de Go a en fait suscité à la fois des éloges et des critiques. Go est conçu pour être petit et simple à comprendre, avec des fonctionnalités spécifiques intentionnellement laissées de côté. Le résultat est que certaines fonctions répandues dans d’autres langages ne sont tout simplement pas proposées dans Go, à dessein.

Un problème de longue date était l’absence de fonctions génériques, qui permettent à une fonction d’accepter plusieurs types de variables. Pendant plusieurs années, l’équipe d’avancement de Go s’est opposée à l’inclusion de génériques dans le langage, au motif qu’elle voulait une syntaxe et un ensemble de comportements qui complétaient le reste de Go.

Depuis Go 1.18, sorti début 2022, le langage consiste désormais en une syntaxe pour les génériques. La leçon à tirer est que Go ajoute rarement des fonctionnalités importantes et seulement après de nombreux facteurs à prendre en compte, pour mieux maintenir une large compatibilité entre les versions.

Un autre inconvénient potentiel de Go est la taille des binaires générés. Les fichiers binaires Go sont assemblés statiquement par défaut, ce qui suggère que tout ce qui est requis au moment de l’exécution est composé de l’image binaire. Cette approche simplifie la construction et la procédure de mise en œuvre, mais au prix d’un « Hello, world! » pesant environ 1,5 Mo sur Windows 64 bits.

Le groupe Go a travaillé pour minimiser la taille de ces binaires à chaque version suivante. Il est également possible de réduire les fichiers binaires Go avec compression ou en supprimant les détails de débogage de Go. Ce dernier choix peut fonctionner beaucoup mieux pour les applications dispersées autonomes que pour les services cloud ou réseau, où disposer d’informations de débogage est utile si un service cesse de fonctionner sur place.

Une autre fonction promue de Go, la gestion automatique de la mémoire , peut être considéré comme un inconvénient, car la récupération de place nécessite une quantité spécifique de temps système de traitement.

Par style, Go n’offre pas de gestion manuelle de la mémoire, et la corbeille dans Go a en fait été critiquée pour ne pas bien gérer le type de charges de mémoire qui apparaissent dans les applications professionnelles.

Cela dit, chaque nouvelle variante de Go semble améliorer les fonctionnalités de gestion de la mémoire. Go 1.8 a apporté des temps de latence beaucoup plus courts pour la collecte des ordures. Les développeurs Go ont la possibilité d’utiliser l’allocation manuelle de mémoire dans une extension C, ou par la méthode d’une bibliothèque tierce de gestion manuelle de la mémoire, mais la majorité des concepteurs Go préfèrent les options natives à ces problèmes.

Le La culture des applications logicielles autour de la création d’interfaces graphiques abondantes pour les applications Go, telles que celles des applications de bureau, est encore dispersée.

La plupart des applications Go sont des outils de ligne de commande ou des services réseau. Cela dit, différents travaux s’efforcent d’apporter de nombreuses interfaces graphiques pour les applications Go. Il existe des liaisons pour les structures GTK et GTK3. Une autre tâche est prévue pour fournir des interfaces utilisateur natives de la plate-forme, bien que celles-ci dépendent des liaisons C et ne soient pas écrites en Go pur. Et les utilisateurs de Windows peuvent consulter walk.

Aucun gagnant clair ou pari sûr et durable n’a en fait émergé dans cet espace, et certaines tâches, telles que la tentative de Google de créer une bibliothèque d’interface graphique multiplateforme, ont en fait été abandonnées. Étant donné que Go est indépendant de la plate-forme de par son style, il est peu probable que l’un d’entre eux fasse partie de l’ensemble de packages de base.

Bien que Go puisse parler aux fonctions système natives, il n’a pas été conçu pour le développement de bas niveau des éléments système, tels que des noyaux ou des pilotes de périphériques, ou des systèmes intégrés. Le runtime Go et le garbage collector pour les applications Go dépendent du système d’exploitation sous-jacent. Les développeurs intéressés par un langage innovant pour ce type de travail peuvent se pencher sur le langage Rust.

L’avenir du langage Go

L’avancement futur de Go se tourne davantage vers les désirs et exige de sa base de concepteurs, les gardiens de Go changeant le langage pour mieux s’adapter à ce public, au lieu de donner l’exemple têtu. Un exemple concret est celui des génériques, finalement ajoutés au langage après de longues délibérations sur la meilleure méthode pour le faire.

L’enquête auprès des développeurs Go 2021 a révélé que les utilisateurs de Go étaient dans l’ensemble ravis de ce que le langage utilise, cependant également mentionné beaucoup d’espace pour l’amélioration. Les principaux domaines dans lesquels les utilisateurs de Go souhaitaient des améliorations étaient la gestion des dépendances (une difficulté constante dans Go), l’identification des bogues et la fiabilité, avec des problèmes tels que la mémoire, l’utilisation du processeur, les tailles binaires et les temps de développement bien inférieurs.

La plupart des langages gravitent autour d’un ensemble de cas d’utilisation de base. Au cours des années où Go a existé, son créneau est devenu les services de réseau, où il est le plus susceptible de continuer à étendre son emprise. Dans l’ensemble, le principal cas d’utilisation signalé pour le langage était la production d’API ou de services RPC (49 %), suivi du traitement des données (10 %), des services Web (10 %) et des applications CLI (8 %). .

Une autre indication de l’attrait croissant du langage Go est le nombre de développeurs qui le choisissent après l’avoir évalué. 75 % des personnes interrogées qui envisageaient d’utiliser Go pour un travail ont choisi la langue. Parmi ceux qui n’ont pas choisi Go, Rust (25 %), Python (17 %) et Java (12 %) étaient les meilleures options.

Chacun de ces langages a découvert, ou est en train de trouver, d’autres créneaux spécifiques : Rust pour une programmation système sûre et rapide ; Python pour le prototypage, l’automatisation et le code de collage ; et Java pour les applications d’entreprise durables.

Il reste à voir jusqu’où la vitesse et la simplicité de développement de Go l’amèneront dans d’autres cas d’utilisation, ou à quel point Go va imprégner l’avancement de l’entreprise.

Cependant, l’avenir de Go en tant que langage d’émissions majeures est actuellement garanti – certainement dans le cloud, où la vitesse et la simplicité de Go facilitent l’avancement d’une infrastructure évolutive qui peut être préservée à long terme.

.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

xnxx sex download russianporntrends.com hardxxxpics saboten campus freehentai4u.com read manga porn rakhi sex photo ganstagirls.com nani sex video xxx indian girl video download elporno.mobi tamilauntycom bf hd video bf hd video porn555.me anyporn hd tamil beach sex erolenta.com xxx sex boy to boy bustyboobs pakistanixxxx.com nude sexy videos desi sex xvideos.com tubaka.mobi justdesi in free naked dance vegasmpegs.mobi eva grover desi ass lick eroanal.net 69 xvideo 4k xnxx thefuckingtube.com xxii roman numerals translation tamil nayanthara sex sexozavr.com indian porn videos tumblr كلبات سكس porn-arab.net نيك ف الكس y3df comics popsexy.net akhil wife hentai ahri wowhentai.net the sarashina bloodline