Qu’est-ce Go ?

Google Go est un langage de programmation de type bas niveau permettant d’écrire du code s’exécutant côté serveur mais pas seulement.

Il supporte pleinement le développement d’applications côté client et permet depuis ses versions les plus récentes, le développement d’applications pour les environnements mobiles (Android et iOS).

C’est un langage impératif avec lequel on écrit du code procédural. Il n’intègre pas de concept de « classe » mais fournit les mécanismes nécessaires à l’écriture de code dans un style orienté-objet.

Conçu pour la gestion des infrastructures back-end il intègre dans sa conception de base le principe de concurrence et parallélisme.
 
Il est distribué sous Licence BSD-Style ce qui signifie que Go est pleinement Open Source.

La performance avant tout

Les langages actuelles créés il y a un certains nombres d’années n’ont pas tous suivi l’évolution des machines récentes. De ce fait ils sont plus ou moins bien adaptés aux architectures de nouvelles générations (Mutlticoeurs).

L’un des atouts non-négligeable de Go est la prise en charge de ces systèmes informatiques récents, afin de pleinement profiter de la puissance de calcul des processeurs les plus robustes du marché.

Il fournit un support pour les systèmes de communication en réseau, la concurrence et le parallélisme. La conception du langage lui permet d’atteindre une rapidité élevée, équivalentes ou supérieur à celles des langages de même catégorie.

Rob Pike Chez O’Reilly :

« You can compile and run a go program faster than some interpreters can even start »

— Rob Pike

Traduction :

« Vous pouvez compiler et exécuter un programme Go avant même que certains interpréteurs ne démarrent »

— Rob Pike

Un code simple et accessible

La particularité du langage Go est sa simplicité d’écriture, sa syntaxe.
 Cette dernière a été largement inspirée du langage C et du Pascal.

Il est doté d’une puissance qui n’a rien à envier aux langages similaires tout en offrant une écriture aussi claire que celle d’un langage interprété comme par exemple Python, Ruby voir même JavaScript.

La ligne de conduite de Go est clairement l’obtention d’un code procédural et des éléments bien distincts pour éviter la confusion. Un code concis et clair était l’un des points importants visés par l’équipe de développeurs lors de l’élaboration du projet.

A cet effet des propositions récurrentes ont été effectuées durant l’évolution du langage comme retirer le point-virgule « ; » à la fin des lignes pour alléger le code et limiter d’éventuelles erreurs.

Éviter la complexité en limitant le nombre de fonctionnalités facilite la lisibilité.

Qualité et Productivité

Certains langages nécessitent l’installation de divers composants pour compléter un environnement de développement.

Pour normaliser et améliorer la qualité du travail entre développeurs, Go intègre nativement une large palette d’outils utiles au formatage du code, aux tests unitaires et la mesure de performances (Benchmarks).

« Le point central ici est que nos programmeurs sont des Googleurs, ce ne sont pas des chercheurs. Typiquement ils sont plutôt jeunes, fraichement sortis de l’école, ont probablement appris Java, peut-être C ou C++, et peut-être Python. Ils ne sont pas capables de comprendre un langage brillant mais nous voulons les amener à réaliser de bons programmes. Ainsi, le langage que nous leur donnons doit être facile à comprendre et facile à adopter. »

— Rob Pike