• [^] # Re: GO GO GO GO

    Posté par (site web personnel) . En réponse au journal The Go Programming Language. Évalué à 10. Dernière modification le 06 décembre 2015 à 17:25.

    Je pratique ce langage depuis plus de 2 ans avec un background Java [Spring/Spring Boot] principalement.
    J’apprécie dans ce langage :
    - Sa simplicité, tout est dans le code, pas besoin d'aller voir un fichier xml pour comprendre le comportement d'un bout de code ou une injection de dépendance (un pique contre Spring)
    - Sa compilation pas de choses mystérieuses/magiques au runtime (un autre pique contre Spring)
    - Sa communauté très réactive/sympathique/compétente
    - Son outillage très complet (profiling cpu/mémoire, formatage de code, fuzzing)
    - Sa concurrence simplissime et performante (c'est un langage monte très bien en charge) grâce aux goroutines
    - Un écosystème complet avec une multitude de librairies disponibles
    - Un sobriété sur l'usage de la mémoire largement supérieur à Java (pour diverses raisons)
    - La possibilité d'écrire du code (sync.Pool) qui limite l'allocation dynamique de la mémoire, et de le tester via du microbenchmark. Ce permet de limiter l'usage du garbage collector pour avoir des applications vraiment performantes (comme l'indique Brad Fitzpatrick un des gurus de Go dans cette vidéo ou ici)

    Il y a aussi des manques dans ce langage :
    - D'un débogueur fiable et multi-plateforme (même si cela change avec Delve)
    - Les generics afin d’éviter les insertions de type qui peuvent générer des erreurs au runtime

    Bref, je pourrais en parler des heures mais le temps me manque :)