Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Le langage Go

7 réponses
Avatar
candide
Bonjour,

Vous avez peut-être vu l'annonce sur le "nouveau" langage de
programmation lancé par Google

http://golang.org/

et conçu par entre autres Ken Thompson (le créateur de B -> ancêtre de
C) et Robert Pike (que je connais comme étant le co-auteur avec
Kernighan du très bon bouquin The Practice of Programming mais bon il
doit être connu pour autre chose j'imagine).


Oui très bien et alors ? vous dites-vous et vous vous demandez
quelle-est-la-question-sur-le-langage-C-? Voilà : par curiosité, j'ai
téléchargé les sources et j'ai l'impression que le langage est
implémenté en C ANSI. Mais il y a tellement de fichiers et de
répertoires que, pauvre programmeur du dimanche, j'ai un peu du mal à
m'y retrouver même si j'ai l'impression que les sources de
l'implémentation proposée sont dans

gccgo/libgo/runtime

Est-ce bien le cas et si oui, pourquoi ont-ils choisi d'écrire la
première implémentation en C plutôt qu'en C++ ou Java sachant surtout
que quand on commence à implémenter dans un langage on recommence
rarement dans un autre ?


Sinon, quel nom vraiment nul (ou vraiment génial penseront certain) : ou
bien le langage a un succès mitigé ou faible et l'indexation dans les
pages web en "go" renverra à autre chose que le langage ("to go", "go
home", "jeu de go", etc) donc nul si on cherche de la doc sur le langage
GO ou bien le succès est net et alors chaque fois qu'on dira "go" on
fera de la pub à ce langage et à Google. Mais c'est vrai qu'on nous a
fait déjà tellement le coup : Windows, Vista, Sun, Perl, Maple, NET,
Java, etc

7 réponses

Avatar
Vincent Lefevre
Bonjour,

Dans l'article <4b003e37$0$2580$,
candide écrit:

Vous avez peut-être vu l'annonce sur le "nouveau" langage de
programmation lancé par Google



http://golang.org/



et conçu par entre autres Ken Thompson (le créateur de B -> ancêtre de
C) et Robert Pike (que je connais comme étant le co-auteur avec
Kernighan du très bon bouquin The Practice of Programming mais bon il
doit être connu pour autre chose j'imagine).


[...]
Est-ce bien le cas et si oui, pourquoi ont-ils choisi d'écrire la
première implémentation en C plutôt qu'en C++ ou Java sachant surtout



Parce qu'il est conçu par Ken Thompson?

que quand on commence à implémenter dans un langage on recommence
rarement dans un autre ?



Parfois on réécrit le compilateur dans le langage lui-même.

Tu devrais trouver en partie des réponses dans la FAQ:

http://golang.org/doc/go_faq.html#Implementation

et il semble y avoir un peu de C++...

--
Vincent Lefèvre - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon)
Avatar
YBM
candide a écrit :
et conçu par entre autres Ken Thompson (le créateur de B -> ancêtre de
C) et Robert Pike (que je connais comme étant le co-auteur avec
Kernighan du très bon bouquin The Practice of Programming mais bon il
doit être connu pour autre chose j'imagine).



Plan 9 !

Sinon, quel nom vraiment nul (ou vraiment génial penseront certain)



Il risquent fort de devoir en changer : il y a une querelle
d'antériorité, cf :
http://code.google.com/p/go/issues/detail?id=9
Avatar
Samuel Devulder
YBM a écrit :
candide a écrit :
et conçu par entre autres Ken Thompson (le créateur de B -> ancêtre de
C) et Robert Pike (que je connais comme étant le co-auteur avec
Kernighan du très bon bouquin The Practice of Programming mais bon il
doit être connu pour autre chose j'imagine).



Plan 9 !

Sinon, quel nom vraiment nul (ou vraiment génial penseront certain)



Il risquent fort de devoir en changer : il y a une querelle
d'antériorité, cf :
http://code.google.com/p/go/issues/detail?id=9



Ils vont le renommer en GOOF (en francais: gaffe) :
Google Object Oriented Framework

sam :) :)
Avatar
-ed-
On 15 nov, 18:45, candide wrote:
Vous avez peut-être vu l'annonce sur le "nouveau" langage de
programmation lancé par Google

                       http://golang.org/

et conçu par entre autres Ken Thompson (le créateur de B -> ancêtre de
C) et Robert Pike (que je connais comme étant le co-auteur avec
Kernighan du très bon bouquin The Practice of Programming mais bon il
doit être connu pour autre chose j'imagine).

Oui très bien et alors ? vous dites-vous et vous vous demandez
quelle-est-la-question-sur-le-langage-C-? Voilà : par curiosité, j'ai
téléchargé les sources et j'ai l'impression que le langage est
implémenté en C ANSI. Mais il y a tellement de fichiers et de



Tu parles de quoi ? Des sources du compilateur ? Ça t'intéresse
vraiment ?

répertoires que, pauvre programmeur du dimanche, j'ai un peu du mal à
m'y retrouver même si j'ai l'impression que les sources de
l'implémentation proposée sont dans

                gccgo/libgo/runtime

Est-ce bien le cas et si oui, pourquoi ont-ils choisi d'écrire la
première implémentation en C plutôt qu'en C++ ou Java sachant surto ut



Java ? Un langage interprété pour générer du code ? Combien de temp s
pour compiler 1M de lignes ? Déjà en C, il nous fallait plus de 20
minutes...

Peu importe le langage du compilateur, il n'a aucune influence sur la
qualité de la traduction du code. Tu te poses de drôles de
questions ...

que quand on commence à implémenter dans un langage on recommence
rarement dans un autre ?



Je ne vois pas où est le problème. La plupart des compilateurs (C, C+
+, Pascal, etc.) sont écrits en C. Des outils de production de code
existent (flex/bison etc.) et on fait leur preuve (même si le code
généré est parfois horrible, il est efficace et sûr).

Le jour où Go aurait fait la preuve de sa stabilité et de son
efficacité, il servira peut être à écrire un compilateur Go. En
attendant, le C est largement suffisant pour le besoin (et encore une
fois, ultra rodé).

Tout cela n'a aucune importance et n'a que peu d'intérêt ...

Il serait plus intéressant de voir ce que Go apporte par rapport au C.
Personnellement, ce qui m'intéresse dans Go, c'est le multitâche
natif.

Sinon, quel nom vraiment nul (ou vraiment génial penseront certain) : o u



On fait du marketing maintenant, ici ? Tu te disperses...
Avatar
Pierre Maurette
Samuel Devulder, le 16/11/2009 a écrit :
YBM a écrit :
candide a écrit :
et conçu par entre autres Ken Thompson (le créateur de B -> ancêtre de
C) et Robert Pike (que je connais comme étant le co-auteur avec
Kernighan du très bon bouquin The Practice of Programming mais bon il
doit être connu pour autre chose j'imagine).



Plan 9 !

Sinon, quel nom vraiment nul (ou vraiment génial penseront certain)



Il risquent fort de devoir en changer : il y a une querelle
d'antériorité, cf :
http://code.google.com/p/go/issues/detail?id=9



Ils vont le renommer en GOOF (en francais: gaffe) :
Google Object Oriented Framework



Et le Goofy portera haut les couleurs de la communauté. L'emblème
semble s'imposer, mais il n'est pas libre de droits, loin s'en faut.

--
Pierre Maurette
Avatar
Alexandre Bacquart
candide wrote:
Bonjour,

Vous avez peut-être vu l'annonce sur le "nouveau" langage de
programmation lancé par Google

http://golang.org/

et conçu par entre autres Ken Thompson (le créateur de B -> ancêtre de
C) et Robert Pike (que je connais comme étant le co-auteur avec
Kernighan du très bon bouquin The Practice of Programming mais bon il
doit être connu pour autre chose j'imagine).


Oui très bien et alors ? vous dites-vous et vous vous demandez
quelle-est-la-question-sur-le-langage-C-? Voilà : par curiosité, j'ai
téléchargé les sources et j'ai l'impression que le langage est
implémenté en C ANSI. Mais il y a tellement de fichiers et de
répertoires que, pauvre programmeur du dimanche, j'ai un peu du mal à
m'y retrouver même si j'ai l'impression que les sources de
l'implémentation proposée sont dans

gccgo/libgo/runtime

Est-ce bien le cas et si oui, pourquoi ont-ils choisi d'écrire la
première implémentation en C plutôt qu'en C++ ou Java sachant surtout
que quand on commence à implémenter dans un langage on recommence
rarement dans un autre ?



Peut-être qu'ils ont l'intention de proposer le compilateur sur beaucoup
de plate-formes sans se soucier de savoir s'il existe un environnement
C++ ou Java pleinement fonctionnel pour le compiler.

Sans doute veulent-ils que le compilateur soit rapide sur de gros
projets (donc Java rejeté), c'est d'ailleurs un argument mis en avant je
crois.

Une chose est sûre, les gars qui implémentent ça ont certaines
accointances avec le monde C :) Et la maîtrise du langage est aussi un
critère de choix...

Sinon, quel nom vraiment nul (ou vraiment génial penseront certain) :



Ni l'un ni l'autre. On s'en tamponne pas mal du nom.

ou
bien le langage a un succès mitigé ou faible et l'indexation dans les
pages web en "go" renverra à autre chose que le langage ("to go", "go
home", "jeu de go", etc) donc nul si on cherche de la doc sur le langage



En même temps, "C" ce n'est pas super comme nom de langage non plus :)
Google.fr donne "C (langage) - Wikipédia", bon hit, mais C a déjà une
place privilégiée sur le net. Avec "Go", le premier lien non-commercial
en rapport avec le langage est une news (google.fr ou google.com). Ce
qui, étant donné la nouveauté, tendrait plutôt à montrer que Google
résiste à la tentation de mettre en avant son bébé (pour l'instant du
moins).

"langage Go" donne des résultats suffisants pour commencer (je lui
préférerais "language Go", mais c'est kif-kif). Quand on cherche
sérieusement de la documentation sur un langage, on ne se contente pas
de taper son nom dans Google et de cliquer sur "j'ai de la chance !". On
fouille un peu, on fait des raccourcis et on télécharge éventuellement
des fichiers pour pouvoir consulter localement.

GO ou bien le succès est net et alors chaque fois qu'on dira "go" on
fera de la pub à ce langage et à Google.



Honte à Google de profiter de l'envie irrépressible du genre humain à
taper "go" dans son moteur !


--
Alex
Avatar
Ureir
"Alexandre Bacquart" a écrit dans le message de
news: 4b014829$0$27490$
candide wrote:
Bonjour,

Vous avez peut-être vu l'annonce sur le "nouveau" langage de
programmation lancé par Google

http://golang.org/

et conçu par entre autres Ken Thompson (le créateur de B -> ancêtre de
C) et Robert Pike (que je connais comme étant le co-auteur avec
Kernighan du très bon bouquin The Practice of Programming mais bon il
doit être connu pour autre chose j'imagine).


Oui très bien et alors ? vous dites-vous et vous vous demandez
quelle-est-la-question-sur-le-langage-C-? Voilà : par curiosité, j'ai
téléchargé les sources et j'ai l'impression que le langage est
implémenté en C ANSI. Mais il y a tellement de fichiers et de
répertoires que, pauvre programmeur du dimanche, j'ai un peu du mal à
m'y retrouver même si j'ai l'impression que les sources de
l'implémentation proposée sont dans

gccgo/libgo/runtime

Est-ce bien le cas et si oui, pourquoi ont-ils choisi d'écrire la
première implémentation en C plutôt qu'en C++ ou Java sachant surtout
que quand on commence à implémenter dans un langage on recommence
rarement dans un autre ?



Peut-être qu'ils ont l'intention de proposer le compilateur sur beaucoup
de plate-formes sans se soucier de savoir s'il existe un environnement
C++ ou Java pleinement fonctionnel pour le compiler.



C'est effectivement l'une des raisons, mais le choix est encore plus
pragmatique que cela: gccgo est une implémentation basée sur le compilateur
gcc, qui est, à la base, un compilateur C. Cela permet, donc, d'être
compatible et bien optimisé sur toutes les plateformes que supportent ce
compilateur (elles sont nombreuses). Même si gcc supporte le C++ (ainsi que
d'autres langages comme Fortran ou Ada...) les langages autres que le C sont
optionnels, alors que le C est systématiquement disponible avec gcc.
(Le choix des langages disponibles ou non est fait lors de la compilation de
gcc...)

Le plus simple, quand on veut développer un nouveau compilateur, c'est donc
de faire un compilateur qui génère du code C et d'utiliser gcc pour compiler
le code C en exécutable.

Sans doute veulent-ils que le compilateur soit rapide sur de gros
projets (donc Java rejeté), c'est d'ailleurs un argument mis en avant je
crois.



Tout à fait, et le C leur permet d'implémenter tout cela plus efficacement
qu'en C++, surtout que leur modèle objet n'est pas celui du C++ (interfaces
plutôt qu'héritage de classe, ramasse-miettes), donc utiliser C++ plutôt que
C n'aurait rien apporté, sinon diminuer les performances.

Une chose est sûre, les gars qui implémentent ça ont certaines
accointances avec le monde C :) Et la maîtrise du langage est aussi un
critère de choix...



C'est sûr, mais je pense que les personnes concernées maîtrisent également
le C++...

Sinon, quel nom vraiment nul (ou vraiment génial penseront certain) :


Ni l'un ni l'autre. On s'en tamponne pas mal du nom.


[snip]
Je ne m'étendrais pas là-dessus: tout est dit...

--------
Ureir.