Vous avez peut-�tre vu l'annonce sur le "nouveau" langage de
programmation lanc� par Google
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
Dans l'article <4b003e37$0$2580$426a...@news.free.fr>,
candide <can...@free.invalid> �crit:
> Vous avez peut-�tre vu l'annonce sur le "nouveau" langage de
> programmation lanc� par Google
> 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 <vin...@vinc17.net> - 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)
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 :) :)
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 surtout
Java ? Un langage interprété pour générer du code ? Combien de temps
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) : ou
On fait du marketing maintenant, ici ? Tu te disperses...
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
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
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.