nipdev – nipcast
nipdev – nipcast
Unknown
Nipdev 23 – Go, go, go…
1 seconds Posted Sep 4, 2014 at 1:58 pm.
0:00
0:01
Download MP3
Show notes

Share

Podcast: Téléchargement

Dans la série langages, Antoine et Fabrice accueillent aujourd’hui Stéphane Klein que vous pouvez retrouver sur twitter ici et qui nous parle du langage Go de Google.

Sommaire

Histoire du langage Golang

Pourquoi/Motivation de la création de Golang ? [ref]

  • Les développeurs de chez Google ont fait le constat qu’il existe des langages qui ont les caractéristiques suivantes :
    • soit avec une compilation efficace (rapide)
    • soit avec une exécution efficace
    • soit avec une facilité de développement

mais qu’il n’existe pas de langage avec ces trois caractéristiques réunies, d’où l’idée du lancement du projet Go.

Quels sont les projets cibles, les développeurs cible du langage Go ?

  • Au départ : les développeurs systèmes C, C++ étaient la cible du langage Go
  • J’ai pu observer et en faire l’expérience que les développeur Python sont très rapidement opérationnels en Go et apprécient le langage
  • En pratique : beaucoup de développeur Ruby, Python, Php s’intéressent/migrent des projets vers ce langage.
  • Pour le moment, le langage Go est principalement adapté à des projets backend

Les forces du langage Golang

  • En pratique, les projets développés en Go ont de très bonnes performance, cela pour plusieurs raison :
    • Faible consommation mémoire
    • Rapide car c’est un langage compilé
    • Les fonctionnalités de concurrences directement intégré au langage
  • Go a un système de type statique, fortement typé mais permet aussi d’avoir un typage dynamique grâce aux interfaces
  • Gestion propre de la parallélisation sur un ou plusieurs coeurs
  • Go permet de faire facilement de la cross compilation
  • Facilité de déploiement
  • Les « batteries sont incluses » (la librairie standard du langage est riche)
  • Facilité d’apprentissage du langage (pas de concept nouveau pour faciliter l’adoption)
  • Communauté très active et de bon niveau

Spécificité du langage et sa syntax

Gestion des packages / modules

Comment apprendre le langage et se documenter :

Ce que j’aime avec dans le langage Golang

  • « explicite better implicite »
  • les outils inclus avec la commande « go »
  • les tests
  • couverture de code
  • go benchmark
  • go get
  • rapidité, peu d’emprunte mémoire
  • la gestion des import, ressemble énormément du Python
  • simplicité de déploiement :
    • exemple : https://github.com/gogits/gogs (Github/gitlab like), un fichier à déposer sur le serveur, c’est parti (en dehors de la conf postgresql), pas de runtime

Ce que j’aime pas dans le langage Golang

  • Pour moi, c’est quand même beaucoup plus rapide de coder en Python
  • La gestion des retour d’erreur partout, c’est pénible
  • À cause de la gestion d’erreur, il est souvent impossible d’enchainer des appels de fonctions
  • Moins de lisibilité que Python
  • Pour le moment, pas de solution mature pour créer des applications loudes, type Qt…

Adoption et des success stories