Difference between revisions of "VT2016 Go"

From air
Jump to navigation Jump to search
Line 33: Line 33:
 
La syntaxe du langage Go est proche de celle du langage C; Les strucutres de contrôle (if..else, for, switch) s'écrivent presque de la même façon. Les instructions en Go ne se terminent pas par un point-virgule, celles-ci étant ajoutées automatiquement par le compilateur.
 
La syntaxe du langage Go est proche de celle du langage C; Les strucutres de contrôle (if..else, for, switch) s'écrivent presque de la même façon. Les instructions en Go ne se terminent pas par un point-virgule, celles-ci étant ajoutées automatiquement par le compilateur.
   
Il existe deux façons pour déclarer une variable en Go:
+
Il existe deux façons de déclarer une variable en Go:
 
* Déclaration sans initialisation
 
* Déclaration sans initialisation
 
<syntaxhighlight lang="go">
 
<syntaxhighlight lang="go">
Line 39: Line 39:
 
var y string
 
var y string
 
</syntaxhighlight>
 
</syntaxhighlight>
* Délcaration avec initialisation
+
* Déclaration avec initialisation
 
<syntaxhighlight lang="go">
 
<syntaxhighlight lang="go">
 
var x = 5 // inférence de type
 
var x = 5 // inférence de type
 
// ou
 
// ou
 
x := 5
 
x := 5
</syntaxhighlight
+
</syntaxhighlight>

Revision as of 18:21, 15 October 2016

Présentation

  • Sujet : Go, un langage pour les serveurs
  • Auteur : Marwan Hallal
  • Enseignants : Didier Donsez, Georges-Pierre Bonneau
  • Date : 14/10/2016


  • Mots-clés : Go, langage, système, concurrence


Historique

Le langage Go a été crée en 2007 au sein de Google par une équipe de trois ingénieurs: Robert Griesemer, Ken Thompson (Unix) et Rob Pike (UTF-8). Le projet devient open-source le 10 Novembre 2009.

Le nouveau langage était une réponse à certains grands problèmes rencontrés lors du développement de l'infrastructure interne de Google:

  • lenteur du processus de build
  • mauvaise gestion des dépendances
  • coût des mises à jour
  • illisibilité du code, mauvaise documentation


Introduction

Go est un langage compilé, statiquement typé, concurrent et avec une gestion automatique de la mémoire (garbage-collection). Aujourd'hui, beaucoup de projets utilisent le langage Go, notamment Docker, Vitess (système de clustering pour MySQL, utilisé pour l'infrastructure de YouTube), InfluxDB, ainsi que le serveur de téléchargement de Google.

C'est un langage de la famille C (syntaxe de base), mais qui s'est inspiré aussi des langages Pascal et Modula (déclarations, packages). Le modèle de concurrence de Go repose sur le langage formel dit CSP de Tony Hoare.

Une librairie standard exhaustive permet aux développeurs de créer des applications qui accédent au réseau en sécurité (crypto), d'internationaliser (i18n) leur programmes (support Unicode), et de manipuler les données dans beaucoup des base de données les plus utilisées (drivers SQL).

Syntaxe de base

La syntaxe du langage Go est proche de celle du langage C; Les strucutres de contrôle (if..else, for, switch) s'écrivent presque de la même façon. Les instructions en Go ne se terminent pas par un point-virgule, celles-ci étant ajoutées automatiquement par le compilateur.

Il existe deux façons de déclarer une variable en Go:

  • Déclaration sans initialisation
        var x int
        var y string
  • Déclaration avec initialisation
        var x = 5 // inférence de type
        // ou
        x := 5