Google optimise la compilation de son langage Go avec la version 1.7
Binaires plus rapides et légers à la clé
Le 19 août 2016 à 09h00
2 min
Logiciel
Logiciel
Google propose depuis peu la version 1.7 de son langage de développement Go. Au programme, des améliorations sur la compilation, notamment sur l’utilisation du processeur.
Six mois après la version 1.6, la nouvelle mouture 1.7 du langage Go est disponible. Elle est surtout synonyme d’améliorations pour la chaine d’outils. Google a entrepris de vastes travaux visant à convertir le compilateur lui-même en langage Go, une opération qui débute avec le back end. Il est désormais basé sur la forme SSA (Static single assignment), chaque variable n’étant donc affectée qu’une seule et unique fois.
Selon Google, les optimisations sont donc appliquées de manière beaucoup plus efficace, comme l’élimination des sous-expressions communes. Dans l’ensemble, le gain de performances irait de 5 à 35 % selon les opérations d’après les tests réalisés par l’éditeur. En outre, le code produit est annoncé comme plus compact. Pour l’instant, ces changements ne sont exploitables que sur architecture x86_64, même si les autres seront ajoutées par la suite.
Ces améliorations se combinent à un nouveau format d’exportation, lui aussi plus compact. Google indique dans son annonce que les binaires qui en résultent seront plus légers de 20 à 30 %, soit un gain significatif. Les programmes ainsi compilés devraient outre être plus rapides, grâce à des optimisations dans la bibliothèque standard et dans le ramasse-miettes. Ce devrait être particulièrement le cas pour les programmes ayant de nombreuses goroutines.
Outre un support ajouté pour macOS Sierra, on pourra consulter la liste complète des nouveautés depuis cette page. Go peut quant à lui se télécharger depuis son site officiel.
Commentaires (33)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 19/08/2016 à 09h42
Ok, merci à vous pour ces infos.
J’avoue que de ce que j’en ai vu j’aime bien la syntaxe, mais je n’ai pas l’impression de voir une vraie dynamique/écosystème autour.
Le 19/08/2016 à 09h42
C’était volontairement impertinent, la réponse plus détaillée:
Google ne vise à pas à s’étendre à tout prix avec ce langage (contrairement à Dart, qui est un echec sur ce point) car la cible c’est plus des gros barbus avec des projet bien specifique qu’une cours de récrée pleine de hype.
Les mecs les plus enclins à utiliser Go aujourd’hui ne craignent pas pour sa pérennité car le langage est assez mature et ouvert, et leur bagage assez solide pour ne pas en dépendre.
Le 19/08/2016 à 09h44
Ce langage est très utiliser pour les projets entourant docker par exemple,a un point même que si tu veux faire un truc pour docker, tu ne seras pas pris aux sérieux si c’est pas développé en Golang.
J’exagère un peu c’est vrai.
Le 19/08/2016 à 09h47
Golang à été crée pour que les jeunes employées ayant très peu d’expérience puissent être productif le plus rapidement possible. Rob Pike a été très claire la dessus.
Le 19/08/2016 à 10h08
euuh il ont sans doute mis des pokemon dedans ->[]
Le 19/08/2016 à 10h16
Le 19/08/2016 à 10h42
Intellij a un plugin golang bien foutu, sinon sublime text avec gosublime est aussi très bon.
Le 19/08/2016 à 11h10
https://blog.golang.org/go1.7-binary-size
Go was designed for writing servers. That is how it is most widely used today, and as a result a lot of work on the runtime and compiler is focused on issues that matter to servers: latency, ease of deployment, precise garbage collection, fast startup time, performance.
;)
Edit: y’a pas moyen de connaitre les tags pour les commentaires ? Et je trouve que les smileys sont pas très rangés :(
Le 19/08/2016 à 11h13
Intellij community et pycharm community avec le plugin go font très bien le taf.
En plus de docker et kubernes, on peut citer influxdb (db timeseries) ou grafana (frontend métrologie).
Concernant les applications desktop ce n’est pas utilisé même si ce serait possible.
Le 19/08/2016 à 12h38
Le 19/08/2016 à 13h22
Je vois de plus en plus de nouveaux projets en Go.
C’est un language élégant et puissant, une sorte de C++ nouvelle génération.
De ce point de vue ça doit être plus facile de former qqun au Go qu’au C++.
Le 19/08/2016 à 14h09
Je ne connaissais que de nom ; à la faveur de cet article, je connais en plus via la description faite dans son article wikipédia.
Ca a l’air effectivement intéressant, notamment l’approche du sous-typage qui semble une forme de mix entre la notion de contrat par interface, celle d’OO, et celle (qui a ma faveur en ce moment) d’orienté prototype à la Javascript. Le tout avec du fortement typé, et de bonnes perfs…
… vu comme ça, de loin, ça pourrait être ma prochaine marotte " />
Le 19/08/2016 à 14h23
Le 19/08/2016 à 17h15
On peut faire de la GUI avec ça ?
Le 19/08/2016 à 18h38
Le 20/08/2016 à 04h24
J’ai fait le choix de Go dans mon entreprise. C’est un langage simple et performant. Côté server on est 10x plus rapide que du python et ruby.m et cela s’apprend en moins d’une semaine. Le seul problème de Go est l’absence de genericité. C’est une des raison principale qui fait qu’il n’y ait pas de framework mais plutôt des librairies.
Le 20/08/2016 à 09h59
Vmware l’utilise pour sa gestion des containers il me semble ( vSphere Integrated Container )
Le 20/08/2016 à 10h29
Les goroutines et les channels sont simplement une pure merveille. #love#
Le 20/08/2016 à 22h19
Je viens de retranscrire toute une API basée sur LAMP en Node.JS et je vais bientôt la faire en Go ^^ J’avais gagné en perf et surtout en réactivité, je ne pense pas voir de diff avec Go… mais bon ça a l’air puissant et intéressant comme langage. (et les callback hell m’y poussent un peu)
Le 21/08/2016 à 08h04
Le 21/08/2016 à 08h23
J’utilise async pour gérer les callbacks, ça suffit à mes besoins actuels.
Je n’ai jamais été fan de javascript mais les perfs sont excellentes, si Go est aussi performant (ce qui semble être le cas), je vais devoir sérieusement m’y intéresser.
Le 21/08/2016 à 14h53
Merci pour la ressource :)
Le 21/08/2016 à 23h29
Le 22/08/2016 à 10h06
Déjà les langages de programmation fonctionnelle c’est marginal alors de la programmation fonctionnelle multithread/concurente c’est encore plus rare :)
Le 19/08/2016 à 09h13
C’est utilisé comme langage ?
Hormis les news sur les nouvelles versions je n’en entends jamais parler… je ne sais même pas quel IDE est compatible.
Le 19/08/2016 à 09h16
C’est principalement pour faire des applications sur serveur.
Le 19/08/2016 à 09h16
Le 19/08/2016 à 09h23
Le 19/08/2016 à 09h24
Le 19/08/2016 à 09h28
C’est pour Pokémon GO non ?
Le 19/08/2016 à 09h38
On n’en parle pas beaucoup mais ça attire la curiosité. C’est un langage à la fois très simple à prendre en main, très puissant, très compatible et très performant.
Après je ne connais pas de langage récent qui a fait l’unanimité instantanément, sauf sur les plateformes où ces langages sont obligatoires (style swift sur iOS).
Le 19/08/2016 à 09h38
Perso j’en ai fait un peu pour test avec visual studio code
Le 19/08/2016 à 09h40
Ah, parfait ! Ce langage est particulièrement excellent, ça fait plaisir de voir une nouvelle version sortir :-)