Google publie la version finale de son langage Go 1.6

Google publie la version finale de son langage Go 1.6

Une somme de petites améliorations

Avatar de l'auteur
Vincent Hermann

Publié dans

Logiciel

22/02/2016 2 minutes
33

Google publie la version finale de son langage Go 1.6

Google a publié en fin de semaine dernière la version finale de son langage Go 1.6. On ne note pas vraiment d’apports majeurs, mais Go s’ouvre à de nouveaux portages et ajoute la compatibilité avec HTTP/2.

Go est pour rappel un langage créé par Google pour accélérer le développement logiciel. Pour l’éditeur, cet objectif peut être atteint à la fois par la simplicité d’apprentissage de Go et par sa compilation rapide. Ses performances se veulent proches du C, sans pour autant les atteindre. Il se veut surtout nettement plus simple à aborder, avec un héritage très prononcé du C++ et du langage de script Python.

La nouvelle mouture 1.6 n’apporte pas de vraies nouveautés majeures pour le langage lui-même. Cependant, des apports et améliorations restent à signaler, comme la compatibilité avec HTTP/2 dans le paquet net/http. Certains changements sont également de la partie, comme l’utilisation par défaut du compilateur Clang sur FreeBSD, en lieu et place de GCC. Sur Linux et PowerPC 64 bits, la compilation supporte le linking externe et cgo.

Outre quelques améliorations sur les performances (moins de pauses pour le ramasse-miettes), Go 1.6 prend en charge un nombre plus important de plateformes. Android x86 est ainsi de la partie, tout comme MIPS 64 bits, mais avec du linking interne uniquement. Ceux qui souhaitent voir la liste complète des nouveautés de Go 1.6 pourront lire les notes de version.

Le téléchargement pourra se faire depuis le site officiel du langage.

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Commentaires (33)


Quelqu’un s’est vraiment penché sur le langage et sait s’il est utilisé dans un ou des projets majeurs ?

Parce qu’en regardant le TIOBE index, on remarque qu’il n’est même pas dans le top 20 des langages les plus populaires. (Il est 38ème pour le moment)








Cwoissant a écrit :



Quelqu’un s’est vraiment penché sur le langage et sait s’il est utilisé dans un ou des projets majeurs ?

Parce qu’en regardant le TIOBE index, on remarque qu’il n’est même pas dans le top 20 des langages les plus populaires. (Il est 38ème pour le moment)





Docker par exemple.



Quelques gros projets écrits en Go (de mémoire) : Docker, Kubernetes, Heka, Influxdb








trexmaster a écrit :



Quelques gros projets écrits en Go (de mémoire) : Docker, Kubernetes, Heka, Influxdb





Je remarque que Go est encore bien à la ramasse côté GUI.









gokudomatic a écrit :



Je remarque que Go est encore bien à la ramasse côté GUI.





Comment ça ?



Tous les gros projets Go cités n’utilisent pas d’interface graphique.

Et puis j’ai vite regardé un peu. Go n’a rien de natif pour afficher une fenêtre et des boutons. Il faut utiliser une des librairies fait par des gus dans leur garage, absolument pas stables ni prêts pour un usage professionnel. Même le wrapper qt5 est encore considéré comme un prototype.


Go est un langage dit ‘système’. Il n’est pas conçu pour faire des fenêtres et boutons ou Half-Life 3.



 C’est très bien pour les services ‘headless’ sur serveurs et c’est conçu pour ca.

Son plus gros avantage est l’exploitation aisée du parallélisme des CPU (cores) avec les channels (exemple:&nbsphttp://play.golang.org/p/9U22NfrXeq )

 

Son deuxième avantage est la simplicité et le cadre très rigide du formatage du code qui permet un partage facile entre devs surtout en milieu open source avec des centaines de devs (certains n’aiment pas ca, moi j’adore).








gokudomatic a écrit :



Tous les gros projets Go cités n’utilisent pas d’interface graphique.

Et puis j’ai vite regardé un peu. Go n’a rien de natif pour afficher une fenêtre et des boutons. Il faut utiliser une des librairies fait par des gus dans leur garage, absolument pas stables ni prêts pour un usage professionnel. Même le wrapper qt5 est encore considéré comme un prototype.





Yep après c’est surtout du au fait que Go a la base est très oriente réseaux/internet/server. A la base il n’est pas fait pour faire des GUI. C’est un moyen d’avoir par exemple des choses plus avancée qu’avec Bash.









kgersen a écrit :



Go est un langage dit ‘système’. Il n’est pas conçu pour faire des fenêtres et boutons ou Half-Life 3.





Non, justement, Go a beau être compilé en code natif, ce n’est pas vraiment un langage système, car il n’est pas adapté à faire un OS, des drivers, ou un Half-Life 3 … En effet il dispose d’un runtime conséquent  notamment pour gérer son GC, ce qui le rend complètement inadapté à ce genre de chose.



La confusion vient du fait que Google l’a annoncé par erreur comme tel au moment de sa sortie, mais même s’il ont vite arrêté de le nommer ainsi, la réputation perdure



Sinon j’ai un collègue de travail qui taffe beaucoup avec ce langage :&nbsphttps://blog.zenithar.org/

 








kgersen a écrit :



Son deuxième avantage est la simplicité et le cadre très rigide du formatage du code qui permet un partage facile entre devs surtout en milieu open source avec des centaines de devs (certains n’aiment pas ca, moi j’adore).





Malheureusement cela n’empêche pas de coder comme un goret. Quand je vois ce que certains arrivent à écrire en cobol ou livrent un programme pour la première fois en production avec la moitié du code en commentaire… <img data-src=" />



Encore un billet sur Go 1.6 ?

&gt;https://www.nextinpact.com/news/98195-go-1-6-langage-google-souvre-a-android-x86…

Sérieusement ?



Et sans la moindre info supplémentaire depuis le billet précédent, posté au début du mois, il y a 20 jours ?





C’est une blague ? <img data-src=" />

C’est quoi l’idée au juste, Monsieur Hermann ?


Je parle système au sens large, pas forcement drivers ou autre ni meme OS.

Docker n’est pas une application systeme pour toi donc ?

&nbsp;

Apres on peut jouer des heures sur la définition d’un “langage système” ou de la nécessité ou pas de programmer tout les composants d’un OS avec un seul langage.



ethttps://golang.org/doc/faq#Origins confirme clairement l’intention.


<img data-src=" /><img data-src=" />



ben y’a 20 jours c’était la RC, là c’est la version finale.

Critiquer c’est marrant, mais faut lire avant. <img data-src=" />








jb18v a écrit :



<img data-src=" /><img data-src=" />



ben y’a 20 jours c’était la RC, là c’est la version finale.

Critiquer c’est marrant, mais faut lire avant. <img data-src=" />







Je sais lire, merci.

Et c’est pour ça que je râle.



C’est pas la première fois que je constate que certains rédacteurs sont à peine orientés vers certaines technos plus que d’autres, et je trouve ça dommage.



Puis un jour des pubs vont surgir dans vos applications développées en Go.


justement ca me tentait de partir sur une nouvelle techno, et je suis trés peu emballé par node.js qui semble incontournable.



Est ce que Go serait un remplacant de choix selon vous ?








kgersen a écrit :



Je parle système au sens large, pas forcement drivers ou autre ni meme OS.

Docker n’est pas une application systeme pour toi donc ?



Docker fait des opérations système mais ce n’est pas pour ça que Go est un langage système, sinon on peut aussi dire que bash est un langage système.

&nbsp;

Pour moi un langage système, c’est un langage qui permet de savoir a tout moment de maîtriser tout ce qui se passe en bas niveau, ce que ne permet pas Go, notamment a cause du ramasse-miettes.



C’est pas vraiment fait pour faire la même chose, mais bon, c’est toi qui voit :-/


D’accord, merci, en lecture rapide, j’avais cru comprendre qu’ils étaient sur les même créneaux. Je vais sérieusement étudier ça, j’aimerais bien ne pas partir sur un truc mort-né qd même :)


Les rédacteurs du même site qui nous avertit à chaque évolution dans le fast ring de Windows 10 ?


Après tout dépend de tes besoins :-)

Si tu as besoin des websocket ou de mongoDB par exemple, il vaudra mieux se tourner vers Nodejs.

Et tous les modules et framework disponibles pour NodeJS sont vraiment un plus.

Par contre le côté asynchrone du JavaScript peut compliquer la programmation.

Go m’a l’air pas mal pour faire des applications en ligne de commande, comme le C.


Choupinet, c’est toi? <img data-src=" />








levhieu a écrit :



Les rédacteurs du même site qui nous avertit à chaque évolution dans le fast ring de Windows 10 ?







Les rédacteurs du même site qui nous annonces les RC de Kodi/Cynogen/Maegia et du noyeau linux ? Mais aussi des béta de Chrome,Firefox et Opera ?

Qui nous parle des futures version de .net, Rust et un peu d’ECMA script ? et je parle pas de la news sur TypeScript d’autjourd’hui ( ah ben si en faite ;) )



Arrêtez de faire vos persécutés les gars …



Sinon, histoire de pas être HS, j’ai jamais dev en GO, mais leurs amélioration au niveau du GC m’ont pas mal impressionné ( dans les benchs ), je sais pas si les dev des gros projet ont vu des nets améliorations de ce coté là ou pas :)



Pour&nbsp; ma part, je ne me sens pas persécuté.

Au contraire, je donnais juste un (contre-)exemple là où tu as fait plus détaillé.


Ah, au temps pour moi, j’ai cru que ^^

Vu qu’il y en as qui ralent qu’il y ait des news à presque chaque build insider, tandis qu’il y as une 40/50ene de coms à chaque fois ( indicateur comme quoi ça intéresse les lecteurs ).








levhieu a écrit :



Les rédacteurs du même site qui nous avertit à chaque évolution dans le fast ring de Windows 10 ?









Firefly’ a écrit :



Les rédacteurs du même site qui nous annonces les RC de Kodi/Cynogen/Maegia et du noyeau linux ? Mais aussi des béta de Chrome,Firefox et Opera ?

Qui nous parle des futures version de .net, Rust et un peu d’ECMA script ? et je parle pas de la news sur TypeScript d’autjourd’hui ( ah ben si en faite ;) )



Arrêtez de faire vos persécutés les gars …







Vous savez lire ?

Le problème n’est pas qu’il y ait un billet sur la sortie de Go 1.6. C’est très bien et je n’étais pas gêné de le lire.

Le problème est qu’il ne contient virtuellement aucune information supplémentaire par rapport à l’article d’il y a 20 jours sur la publication de la RC correspondante. C’est à la limite du copier-coller !

Pour une version assez mineure.

Quand le billet sur PHP 7 précédemment était aussi long qu’un seul de ces deux articles sur la même version de Go 1.6.

PHP 7, le truc à peine important qu’on attendait pas depuis trouzemille années et qui ne change que des détails au langage. [ironie]



Dans le même genre, souvent quand Chrome pète un coup et ajoute une ou deux fonctionnalités à la noix on a le droit à un billet dédié, comme si c’était l’évènement du siècle.





Soyons sérieux deux secondes…



Même pour ce cas particulier les 2 articles ont chacun leur intérêt propre.





  • Go 1.6 RC disponible ?

    Pour celui qui suit de près le langage, c’est intéressant de pouvoir commencer à voir tout de suite s’il trouvera effectivement dedans ce qu’il attend.

    Pour ma part, je ne me suis pas senti concerné.



  • Go 1.6 final disponible ?

    Celui qui suit de près le langage a déjà remarqué parce que depuis la sortie de la RC il est chaud sur le sujet.

    Pour ma part, je jette un œil histoire de savoir si je dois ajouter le Go à la liste des outils à envisager … éventuellement.








levhieu a écrit :



Même pour ce cas particulier les 2 articles ont chacun leur intérêt propre.





  • Go 1.6 RC disponible ?

    Pour celui qui suit de près le langage, c’est intéressant de pouvoir commencer à voir tout de suite s’il trouvera effectivement dedans ce qu’il attend.

    Pour ma part, je ne me suis pas senti concerné.



  • Go 1.6 final disponible ?

    Celui qui suit de près le langage a déjà remarqué parce que depuis la sortie de la RC il est chaud sur le sujet.

    Pour ma part, je jette un œil histoire de savoir si je dois ajouter le Go à la liste des outils à envisager … éventuellement.







    Celui qui suit de près le langage sait déjà qu’il y a une RC dans les parages.



    Tu viens d’expliquer pourquoi c’est redondant, du coup.



Par «suivre de près», je ne voulais pas dire «consulter tous les jours le site golang pour voir ce qu’il y a de neuf» mais utiliser et connaitre suffisamment le langage pour être intéressé par les éventuelles nouveautés.

Pourquoi ? Parce que pour suivre l’actualité quotidienne, il y a PCnextinpact.








levhieu a écrit :



Par «suivre de près», je ne voulais pas dire «consulter tous les jours le site golang pour voir ce qu’il y a de neuf» mais utiliser et connaitre suffisamment le langage pour être intéressé par les éventuelles nouveautés.

Pourquoi ? Parce que pour suivre l’actualité quotidienne, il y a PCnextinpact.







Deux problèmes auxquels tu n’as toujours pas répliqué :




  • pourquoi Go aurait droit à un traitement de faveur avec un billet pour la RC et un pour la sortie à peine trois semaines plus tard ?

    Si toutes les technos proches qui ont des cycles de développement similaires avaient ce genre de traitement, NextINpact croulerait littéralement sous les doublets de billets.

    Mais non, seules quelques technos soit-disant à la mode ont droit à ce genre de traitement.

    Donc, juste pour satisfaire la flemmardise vaguement intéressée de quelques lecteurs, on balance à l’intégralité des lecteurs des répétitions de billets. Autant j’aime bien lire des infos sur Go à l’occasion, autant lire deux fois exactement les mêmes infos sur le même site à à peine 1 mois d’intervalle me contrarie.



  • Il n’y a strictement pas plus d’informations dans le premier billet que dans le second. 20 jours après !

    C’est du remplissage.



oops, j’ai gaffé.

Je ne comptais continuer la conversation, parce que nous avons chacun présenté nos arguments, constaté que nous resterons sur notre position, le tout avec douceur et politesse.

Je comptais donc clore par une plaisanterie, mais j’ai oublié le smiley (ci-dessous), my bad !

<img data-src=" />