• [^] # Re: Ne te prends plus la tête

    Posté par . En réponse au journal C(++) ?. Évalué à 10.

    Mouais, un des avantages de C/C++, c'est d'avoir de bonnes performances. Et bien que Go soit un langage compilé, pour l'instant la performance est plus ou moins au niveau de Java (même si il y a de bonnes chances que l'occupation mémoire soit meilleure) [1] [2]. Et tant qu'à avoir la performance de Java, j'ai envie de dire autant faire du Java qui est un langage beaucoup plus répandu (donc avec plus de bibliothèques disponibles). Oups, j'ai (削除) marché (削除ここまで) plongé dedans. Beh, j'en ai jusqu'au genou. Et on est pas du tout vendredi.

    Cela étant dit, j'ai lu que Go était très bien pour faire des applications réseau. Il contient notamment tout ce qu'il faut en standard pour faire des applications asynchrones et propose des choses sympathiques pour gérer la concurrence, ce qui est très utile quand on fait du réseau [3].

    Pour revenir plus sur le sujet de ton commentaire, ça me fait toujours tiquer quand on conseille un truc nouveau qui serait la panacée pour remplacer un truc vieux qui deviendrait par conséquent obsolète. Les nouveaux langages même s'ils apportent des améliorations très agréables n'ont pas toujours autant fait leurs preuves que les vieux machins qui sont utilisés depuis des dizaines d'années par des milliers de personnes. Ça fait qu'on peut très bien être le premier à déterrer un bug dans le compilateur/le framework qu'on utilise, qu'on a moins de documentation, etc. Personnellement, il n'y a rien qui m'horripile plus que de passer mon temps à chercher de la doc parce que la doc officielle n'est pas complète (des fois carrément lire le code source pour pallier le manque de doc), contourner des bugs ou découvrir que le compilateur ne sait pas optimiser une partie particulière de mon code.

    Dans le cas de Go, il commence à être relativement éprouvé (tu ne seras pas le premier à l'utiliser pour faire une appli réseau) mais la jeunesse relative du langage se ressent dans le manque d'optimisations du compilateur.

    [1] SO - Performance of Google Go
    [2] Loop Recognition in C++/Java/Go/Scala
    [3] Go Tour - Concurrency