Avec Go, Google compte accélérer la programmation

Publié le 12 novembre 2009 , par Mathieu Chartier - dans Logiciels - Mots clés : Google, Go

Google présente un nouveau langage de programmation ambitieux baptisé Go.

>> Retour à l'article <<

Réactions


dodfr - le 12/11/09 à 13:48
Heu... je me trompe peut-être mais les deux langages actuellement disponibles pour Android sont le SDK C ou Java (que j'ai testé rapidement avec les exemples fournis) et je ne pense pas que l'on puisse qualifier aucun des ces deux langages de "simples" et "dérivés du basic", ceci-dit si j'ai manqué un outil de dèv je serait heureux de savoir lequel.
La Toupie - le 12/11/09 à 14:50
dodfr - le 12/11/09 à 15:56
ok vu ! par contre ça ressemble plus à du ré-interprété (par le moteur JAVA d'android ?) que du vrai "compilé", à vérifier.

Je n'ai pas trouvé de functions socks ou sqlite mais ce n'est qu'une 0.1 donc patience.
tfpsly - ( 2 approbations ) - le 12/11/09 à 17:19
C'est quoi le pb avec "const" en C/C (dans les premières slides) :o
Ok pour les temps de compilation, c'est vraiment emmerdant. Mais du code C/C sans template compilera aussi vite que ce Go.

Code typé vs Javascript-like : je déteste le second, donc c'est vite vu (hautement subjectif bien sûr). Par contre l'écriture de certaines choses en C est trop lourde, notamment les templates et cast C - vivement les autotypes pour corriger le second point, comme son exemple : foo.MyFoo *myFoo = new foo.Foo(foo.FOO_INIT).

J'aime bien la syntaxe de ce Go : pas dépaysante. À part le mot clef "var" et le ":=", qui pourraient être éliminés. Marrant ce mélange C-Pascal :)

Quid de la vérification de type par contre? Aussi, on ne sait pas si les nombres sont des int ou des floats ou des types vectoriels, ce qui peut avoir des conséquences catastrophiques en termes de bugs et de perfs.
EDIT: apparemment il y a les int et let Number (float?)

Plus d'infos sur la grammaire :

http://golang.org/doc/go_for_cpp_programmers.html
Anne Aunimousse - le 13/11/09 à 06:26
si c'est un langage compilé ça perd déjà des points en terme de simplicité et de souplesse...
Amos_666_ - le 13/11/09 à 11:23
Anne Aunimousse
si c'est un langage compilé ça perd déjà des points en terme de simplicité et de souplesse...

pas du tout de ton avis, les langages interprétés ça va pour certaines applications, mais dés qu'il s'agit de performance rien ne remplace le langage compilé. j'ai due abandonner matlab (lui même semi compilé car basé sur des appel aux libraires F77 Blas et Lapack ) et passer au bon vieux C durant ma thèse pour diviser les temps d'exécution de mon "usine a gaz" par un facteur supérieur a 10 !!
autrement 1 a tfpsly pour le typage, de plus je rajouterais qu'une fois qu'on a maitrisé les mécanismes d'allocation de mémoire on peut gagner pas mal de performances en alignant les objets en blocs mémoire contigües ( Vecteurs , matrices ... ) et en utilisant des pointeurs pour les parcourir de manière linéaire
Anne Aunimousse - le 13/11/09 à 12:33
Amos_666_
Anne Aunimousse
si c'est un langage compilé ça perd déjà des points en terme de simplicité et de souplesse...

pas du tout de ton avis, les langages interprétés ça va pour certaines applications, mais dés qu'il s'agit de performance rien ne remplace le langage compilé.

J'ai bien parlé uniquement de simplicité et de souplesse, pas de performances (Cela dit avec un bon interpréteur qui fait du compilé JIT pour les parties du code qui sont compilables ça serait tout aussi bien...) Et le meilleur langage n'est pas forcément celui qui fait les applis les plus rapides, sinon tout le monde coderait en assembleur.
SartMatt - le 13/11/09 à 14:00
J'aime bien le principe du "defer".
Ça peut éventuellement faire perdre un peu en lisibilité, mais ça peut pas mal aider pour bien nettoyer tout ce qui doit l'être.
Amos_666_ - le 13/11/09 à 18:54
Anne Aunimousse
... sinon tout le monde coderait en assembleur.


lol,
je ne suis pas un extrémiste non plus. mais bon, un langage proche de la machine ( C/C ) et une bonne connaissance de la libc (par ex : http://www.gnu.org/software/libc/m...ndex.html) et de la translation que fait le compilateur de ton programme plus un petit coup d'oeil sur l'ASM pour vérifier tout ça peut faire des miracles ;-)

je vous rassure c'est très rare que j'en arrive là !

ps : mon boulot actuel est de coder dans ça http://www.mat.ensmp.fr/Accueil/fr...pe=zebulon , CQFD
Anne Aunimousse - le 13/11/09 à 19:42
Moi j'ai été longtemps un extremiste dans mon jeune temps puisque je codais exlusivement en assembleur pendant des années (j'ai d'ailleurs fait quelques plugins virtualdub en assembleur mmx il y'a 7 ou 8 ans pour ceux que ça intéresse...) Cela dit avant je maîtrisais déjà le Basic, le C, le TurboPascal, et surtout le RPL des caltoches HP, ça donne de bonnes bases surtout le RPL qui donne à réfléchir...) Mais bon avec l'âge j'ai fini par mettre de l'eau dans mon vin, après avoir mis du vin dans mon rhum, et si déjà les gens utilisaient toutes les possibilités des langages existants je serais content sans même penser au Go...
Sinon à part ça je trouve dommage qu'en Go la fonction 'new' initialise les variables à zéro plutôt qu'à un état 'indéfini' ça fait tout de suite moins 'haut niveau' comme langage et pour l'instant je n'ai pas vu de référence à un équivalent du 'yield' des dernières versions de Python (dont j'aurais eu besoin récemment mais en C++, oui je sais je suis pas clair et alors ?) mais j'avoues que j'ai pas tout lu...
Les commentaires sur ce document sont clos.
  • Tout
  • Hi-Tech
  • Matériel
  • Mac
  • Jeux