Au commencement

Go est né dans les laboratoires de Google, Il a initialement été créé par Rob Pike, Ken Thomson, et Robert Griesemer.

« Mais qui sont-ils ?? »

— Gopher

Rob Pike, un ancien ingénieur de chez Bell est principalement le co-créateur avec Kenneth Thomson du système UTF-8, du système Plan 9 pour Bell.

Kenneth Thomson est principalement le co-concepteur du système Unix, créateur du langage B l’ancêtre du langage C.

Robert Griesemer a entre autres travaillé sur le moteur JS V8 de Google Chrome et la machine virtuelle Java HotSpot.

Go a été Conçu et utilisé uniquement en interne chez Google pour la gestion des infrastructures back-end, le projet fût publiquement annoncé en Novembre 2009, bien qu’il ait vu le jour en Septembre 2007.

Les motivations du projet

Les langages évoluent moins vite que les machines qui sont en constantes progressions techniques. Il fallait donc concevoir un programme nouveau, robuste répondant à cette différence entre software et hardware pour les besoins actuels.

Les concepteurs de Go voulaient un langage moderne, puissant et rapide mais simple comme un langage dynamique. Ils ne voulaient pas d’un langage trop éloigné des standards pour ne pas trop désorienter les développeurs et ainsi le rendre accessible au plus grand nombre.

Ils ont tout repensé en partant de zéro car leur but n’était pas d’ajouter des nouveaux composants à des langages existants mais bien de réinventer une façon de faire les choses!

Go a été conçu pour répondre à des difficultés rencontrées au sein des laboratoires de Google avec d’autres langages moins adaptées aux contextes et challenges du moment.

En effet les systèmes réseaux deviennent de plus en plus conséquents avec des interactions tierce-parties plus nombreuses et ces interactions ne sont pas gérées aussi bien qu’elles pourraient l’être. De plus les programmes continuent de prendre du volume et le développement est réparti entre un nombre de développeurs de plus en plus grand, confie Russ Cox lors d’un entretien accordé à Michael Hicks.

« A language that works very well for a small group may not work as well for a large company with thousands of engineers working on many millions of lines of code »

— Russ Cox

Traduction :

« Un langage qui fonctionne bien pour une petite entreprise peut ne pas fonctionner aussi bien pour une grande compagnie avec des milliers d’ingénieurs travaillant sur des millions de lignes de code »

— Russ Cox