Je ne l'ai pratiqué que superficiellement mais, à mon avis; il dispose de solides atouts :
Langage libre, avec de nombreux contributeurs hors Google (qui y emploie une dizaine de personnes à temps plein aujourd'hui).
Relativement efficace (CPU, mémoire vive)
Doté d'une syntaxe familière.
Des concepts simples, plutôt réfléchis et suffisants (on peut comprendre et pratiquer l'ensemble de ceux-ci en quelques semaines, ce que peu de langages permettent réellement). C'est à mon sens l'un de ses plus gros atouts.
À la base prévue pour de la programmation système et réseau, son usage réel l'amène aujourd'hui à devenir un langage généraliste.
La production d'un binaire (avec cross-compilation) qui facilite le déploiement et la distribution.
La commande go, qui prend en charge la compilation, la gestion de dépendances, le style du code, la documentation, les tests….
Une compilation rapide.
Batteries incluses : une librairie standard que je trouve assez complète et bien pensée.
Un langage assez "moderne" : prise en charge native d'Unicode, concurrence aisée via les goroutines et les channels…
Déjà utilisé en production et parfois sur des applications critiques par des entreprises de renom (surtout des startups) : Google lui-même, mais aussi Heroku, Atlassian, Camlistore…
Cela dit, le langage a ses propres défauts :
Il est encore jeune : initié courant 2007, une révélation publique fin 2009, la version "stable" est arrivée il y a seulement quelques semaines.
Conséquence du premier point, le nombre de projets actifs en Go est limité (1, 2) (CGo permet cependant d'utiliser du code existant C). La communauté est dynamique mais cela peut être dû à l'effet de Buzz de la 1.0.
Dans le même ordre, peu de gens connaissent Go, même s'il est relativement simple à apprendre. C'est donc un risque au niveau de certains décideurs, qui de toute façon n'imaginent rien en dehors de Java, C#, PHP voire C(++).
Il s'agit d'un langage compilé statiquement typé. Certains avantages des langages interprétés ne sont logiquement pas présents.
Go est un peu verbeux (beaucoup moins que Java à mon sens mais davantage que des langages comme Ruby, ooc, …).
Il est moyennement portable : Windows, GNU/Linux, OSX, FreeBSD (OpenBSD est quasi officiel je crois) mais trois architectures (x86, 64, ARM). GCCGo vise davantage de plateformes mais n'est pas encore complet.
Certains défauts existent au niveau du ramasse-miettes, notamment en 32bits. Le journal cité au dessus en parle; et un nouveau GC est en cours de développement parait-il.
Certains reprocheront le fait que ce soit une entreprise, Google, qui décide en dernier ressort (et non une fondation et/ou une communauté démocratique).
Cela ne veut en aucun cas dire que c'est du lourd ou qu'il aura un brillant avenir; la qualité technique ou même conceptuelle n'influençant pas toujours sur le succès d'un langage.
Mais personnellement, je trouve qu'il remplit très bien son espace et parierai sur sa pérennité, même si je doute qu'il entre dans le TOP10 de popularité avant longtemps.
# AMHA
Posté par Yakulu . En réponse au message Et alors ? Go de google, c'est bien ?. Évalué à 7.
Je ne l'ai pratiqué que superficiellement mais, à mon avis; il dispose de solides atouts :
Cela dit, le langage a ses propres défauts :
Cela ne veut en aucun cas dire que c'est du lourd ou qu'il aura un brillant avenir; la qualité technique ou même conceptuelle n'influençant pas toujours sur le succès d'un langage.
Mais personnellement, je trouve qu'il remplit très bien son espace et parierai sur sa pérennité, même si je doute qu'il entre dans le TOP10 de popularité avant longtemps.