Go doit pouvoir être utilisé pour de la programmation système donc c'est un langage compilé et pas interprété.
La gestion de la mémoire doit être automatique (garbage collector)
http://fr.wikipedia.org/wiki/Programmation_syst%C3%A8me
S'il faut un langage compilé pour obtenir de meilleures performances, pourquoi en faire un langage à gestion automatique de mémoire ? plutôt que d'utiliser de simples aides à la gestion comme les pointeurs intelligents, qui n'impactent pas les performances mais gardent la souplesse et la puissance d'une gestion manuelle ?
Linus Torvalds disait qu'il ne voulait pas de C++ dans le noyau Linux car il a tendance à cacher la gestion de la mémoire, qui est un élément trop important pour être laissé à de simples algorithmes. En programmation système c'est la même chose en général (gestion fine des ressources, la mémoire en particulier en fait partie).
En plus avec un garbage collector, le côté "temps réel" est beaucoup plus délicat à assurer (typiquement on a beaucoup de mal à régler le moment où il doit se déclencher et les mauvais cas sont fréquents).
Ça me paraît donc un peu aninomique, surtout qu'en compilant vite (ce qui est un objectif prioritaire du langage) on ne pourra pas profiter de beaucoup d'optimisations de la part du compilateur.
Ça s'apparente donc plutôt une sorte de langage de script compilé, avec une syntaxe proche du C. Mais alors les langages de scripts les plus utilisés sont vraiment si lents que ça par rapport à du code compilé en natif mais avec peu d'optimisation ? (la Faq sur le langage parle de python en disant que ce n'est pas efficace, les développeurs Python devraient apprécier ; il devrait être possible de développer un compilateur python rapide non ? ) http://golang.org/doc/go_lang_faq.html
Bref je ne comprends pas trop la position du langage par rapport à ses concurrents, au niveau des performances voulues/atteintes. En revanche les idées derrière l'implémentation de la concurrence sont intéressantes.
# Interrogations...
Posté par khivapia . En réponse au journal Go : Un nouveau langage chez Google. Évalué à 8.
La gestion de la mémoire doit être automatique (garbage collector)
http://fr.wikipedia.org/wiki/Programmation_syst%C3%A8me
S'il faut un langage compilé pour obtenir de meilleures performances, pourquoi en faire un langage à gestion automatique de mémoire ? plutôt que d'utiliser de simples aides à la gestion comme les pointeurs intelligents, qui n'impactent pas les performances mais gardent la souplesse et la puissance d'une gestion manuelle ?
Linus Torvalds disait qu'il ne voulait pas de C++ dans le noyau Linux car il a tendance à cacher la gestion de la mémoire, qui est un élément trop important pour être laissé à de simples algorithmes. En programmation système c'est la même chose en général (gestion fine des ressources, la mémoire en particulier en fait partie).
En plus avec un garbage collector, le côté "temps réel" est beaucoup plus délicat à assurer (typiquement on a beaucoup de mal à régler le moment où il doit se déclencher et les mauvais cas sont fréquents).
Ça me paraît donc un peu aninomique, surtout qu'en compilant vite (ce qui est un objectif prioritaire du langage) on ne pourra pas profiter de beaucoup d'optimisations de la part du compilateur.
Ça s'apparente donc plutôt une sorte de langage de script compilé, avec une syntaxe proche du C. Mais alors les langages de scripts les plus utilisés sont vraiment si lents que ça par rapport à du code compilé en natif mais avec peu d'optimisation ? (la Faq sur le langage parle de python en disant que ce n'est pas efficace, les développeurs Python devraient apprécier ; il devrait être possible de développer un compilateur python rapide non ? ) http://golang.org/doc/go_lang_faq.html
Bref je ne comprends pas trop la position du langage par rapport à ses concurrents, au niveau des performances voulues/atteintes. En revanche les idées derrière l'implémentation de la concurrence sont intéressantes.