Go souffle sa cinquième bougie
Go souffle sur sa cinquième bougie
le langage de Google peine à convaincre les développeurs
Novembre est décidément le mois des anniversaires. Après Firefox qui a soufflé sur sa dixième bougie le 9 novembre dernier, c’est au tour du langage de programmation Go de fêter ses 5 ans.
Le 10 novembre 2009, un nouveau langage de programmation venait s’immiscer dans la pléthore de langages déjà disponibles. Développé par Google, le langage a rapidement attiré l’attention de l’industrie et de bon nombre de développeurs.
Go est une alternative au langage de programmation C/C++. Il reprend ce qui a fait le succès de ces langages, tout en intégrant des nouveautés pour rendre le code plus concis, lisible et offrir plus de sécurité. C’est un langage compilé permettant de simplifier le développement d'applications concurrentes. Il est destiné notamment à la programmation système.
Selon Google, les langages de programmation majeurs datent de plus d’une décennie, et ne se sont pas adaptés à l’évolution du paysage informatique qui a énormément changé. Go a été conçu pour tirer parti des processeurs multicœurs, fournir des fonctionnalités modernes comme le typage dynamique, le ramasse-miettes (garbage collection), et abandonner des aspects pénibles comme l’inclusion des fichiers pour le langage C.
Après son lancement, Go a eu droit à un court moment de gloire. En quelques mois, le langage a enregistré la plus forte croissance sur l’indice Tiobe, faisant de celui-ci le langage de l’année 2009, d’après Tiobe.
Un succès du probablement à un effet de curiosité de la part des développeurs, parce que le langage est soutenu par un acteur majeur du Web. Cinq ans après la naissance de Go, il ne semble pas séduire beaucoup de développeurs, tandis que les langages C et C++ restent encore très populaires. Selon l’index de popularité Tiobe, Go n’apparaît qu’en 41e position, alors que C demeure le langage le plus populaire.
Actuellement Go est à sa version 1.4, avec son environnement d’exécution et ses outils de développement. La prochaine version du langage sera publiée le 1er décembre 2014, et un support des terminaux mobiles est prévu pour 2015.
Source : Blog Go
Et vous ?
:fleche: Que pensez-vous de Go ? Avez-vous adopté le langage ?
:fleche: Go a-t-il du potentiel pour concurrencer C/C++ ?
Go = YACCK, pour Yet Another C/C++ Killer
Perso je vois le Go comme une énième tentative de C/C++ killer. Dans 20 ans on en verra toujours pour le sempiternel même résultat et C/C++ seront toujours là. Go sera alors bien placé entre le langage D et Mozilla Rust dans ce panthéon. Tous ont des idées mais C/C++ sont trop universels pour être détrônés.
Pour Go j'ai même trouvé ces idées bizarres. :weird: De mémoire le langage Go veut être "un C/C++ mais qui compile plus vite". Or ceci est une grave erreur de base. Sid Meier, le développeur derrière la série de jeux vidéo "Civilization", a énoncé plusieurs règles fondamentales de game design, dont certaines peuvent aussi s'appliquer aux programmes informatiques en général à mon avis. L'une d'entre elles est "The Player Should Have the Fun, not the Designer or the Computer" et s'applique particulièrement bien à Google Go. On se fiche que le programme final ait mis 1 ou 10 minutes à compiler. Ce n'est pas ça qui fera que le programme final sera plus performant ou pas. L'utilisateur final se fiche de l'algorithme utilisé et du temps de compilation. Ce qu'il voit c'est si le programme est performant ou bien s'il ne l'est pas. Les quelques minutes de compilations gagnées lors de l'unique compilation de la version de prod ne sont rien face à toutes celles perdues par tous les utilisateurs à cause d'un programme qui rame. Or à ce petit jeu des performances ce sera très difficile de détrôner C/C++ et leurs dizaines d'années d'optimisation de compilateurs en tous genres.
Après il y a également le volet commercial pour le langage, et là aussi Google a mal fait les choses pour Go. Mountain View aurait dû l'associer à Android. Ils auraient dû l'imposer dans le NDK du robot vert et/ou l'introduire en remplacement de Java dans le SDK, surtout avec leurs démêlés face à Oracle. Google a échoué là où Apple et Microsoft ont réussi. Si Objective-C est parmi les langages les plus utilisés en ce moment, c'est surtout parce que Cupertino l'a imposé pour les développements iPhone et iPad. Swift devrait aussi suivre cette voie dans les années à venir. Quant à Microsoft il s'agit bien sûr de C#/.NET dans les programmes WORA face au Java.
"Le langage de Google peine à convaincre les développeurs"
Je ne sais pas comment on peut écrire ça.
Go est au coeur de la révolution qui est en train de faire basculer tout l'hébergement et l'exploitation des applications et des services web dans la prochaine décennie.
Tous les grands acteurs du cloud (Google, Microsoft, Paypal, Apple, Sengrid, etc...) ont adopté ce langage à part sans doute Facebook qui a choisi de recruter le concepteur de D.
Docker qu'on ne présente plus (s'il y a des personnes qui lisent Developpez et qui ne connaissent pas Docker aujourd'hui alors je les encourage à changer de job) a pu voir le jour grâce à Go dixit ses concepteurs.
Cet un langage qui est capable de "tout" (système et apps), il permet une exploitation simple de tous les coeurs fournis par nos CPUs (pour ceux qui suivent toujours, ça fait un moment que les fréquences de ces derniers n'évoluent plus), il compile beaucoup plus vite que tous les autres langages tout en produisant un code en moyenne inférieur en taille de 20%, il est simple à déployer car le binaire embarque les dépendances, etc...
Go a été initié par Google pour réponse aux problématiques hors normes du géant conçu par Robert Griesemer, Rob Pike et Ken Thompson (je laisse à tout le monde le soin d'apprécier leur cv, c'est quand même plus impressionnant que pour certains autres langages plus populaires).
Aujourd'hui c'est un langage qui peut être utilisé dans tous les projets, du simple site web jusqu'à Kubernetes capable de gérer des clusters de centaines de milliers de conteneurs Docker.
Alors écrire "Le langage de Google peine à convaincre les développeurs" je ne comprends pas ? Mais quels développeurs ? Les développeurs qui s'enferment dans un langage comme PHP qui a 20 ans et qui reste un des langages les moins performant du web ? Et bien ces développeurs là on n'en a plus besoin, y en a plein les placards.