Discussion: Go, ca sert a quoi?

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    février 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : février 2017
    Messages : 20
    Points : 13
    Points
    13

    Par défaut Go, ca sert a quoi?

    Bonjour,

    il est grand temps pour moi d'apprendre un nouveau langage. J'ai donc regarde Go...mais je ne comprends pas quel est son public.
    (le but de mon billet est de comprendre, pas de critiquer ou comparer)
    Dans ma tête, Go est le successeur de C/C++, donc je comprends parfaitement bien que des choses comme Consul et Docker soient faites en Go. Jusque la, aucun problème.

    Mais je vois que les gens utilisent Go pour faire des microservices et de la logique métier. Pourquoi? On ne le ferait pas en C/C++, alors pourqoi le fait-on en Go?

    Dans l'esprit d'un chef d’équipe, Java serait plus simple car il a des objets et plein de gens le connaissent.

  2. #2
    Membre éclairé

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    février 2004
    Messages
    416
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : février 2004
    Messages : 416
    Points : 831
    Points
    831

    Par défaut

    Après avoir regardé des tutos et avoir mis mon nez dans le langage, je ne comprends pas non plus le public d'un tel langage.

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : octobre 2013
    Messages : 156
    Points : 218
    Points
    218

    Par défaut

    Je ne suis pas un développeur Go, mais c'est un des langages que j'aimerai approfondir.

    Parmi ses points forts :
    - Open-source (ça compte)
    - Supporté par de grosses boites (Google, Dropbox, Soundcloud, Docker)
    - Courbe d’apprentissage plus ou moins rapide (En fonction de ton background)
    - Compilation rapide
    - Simplicité de déploiement
    - Facilement maintenable
    - Développement rapide
    - Très bonne perfs
    - C'est un langage moderne. Il a été développer pour répondre aux besoins d’aujourd’hui en prenant en compte les problématiques d'hier
    - Il excelle dans la programmation concurrente, la ou pas mal de langage (Notamment utilisé en backend) pêche un peu
    - Crossplatforme
    - Malgré qu'il soit comparé au C++, lui il à un garbage collector, ce qui est pas négligeable.
    - Apparemment il utiliserai un "strict compiler" ce qui réduirai grandement le risque d'erreur (Je suis pas sure de comprend bien ce que ça signifie vraiment, peut-être simplement un compilateur plus intelligent)

    Un petit exemple assez impressionnant : https://github.com/gogits/gogs
    Un clone de Github écrit en Go qui tourne parfaitement sur une Raspberry Pi

    Mais je vois que les gens utilisent Go pour faire des microservices et de la logique métier
    Pour la facilité de maintenance, son modèle concurrent et ça rapidité de développement.

    Dans l'esprit d'un chef d’équipe, Java serait plus simple car il a des objets
    Go n'a ni classes, ni objets, ni exceptions, et ni de templates. Mais il a des structures (Pour ce qui ont déjà essayé de faire de l'objet en C, ça à l'air de se ressembler un peu), des interfaces ... C'est une approche un peu différente de la POO comme on peux la voir en Java par exemple

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    janvier 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : janvier 2008
    Messages : 119
    Points : 96
    Points
    96

    Par défaut

    Avec Go, tu peux même faire le café si tu en as envie. Plus sérieusement, tu peux tout faire en Go, du web, des applications qui tournent avec Qt...Il ne vise pas vraiment de public particulier.

    Voici un large panel des librairies en Go...il y a de quoi faire.

  5. #5
    Membre actif Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : septembre 2008
    Messages : 200
    Points : 288
    Points
    288

    Par défaut

    Bonjour antoine,

    Clairement « Go » peut-être vu comme un successeur de C/C++.

    C'est beaucoup plus rapide est simple de coder en Go et c'est moderne.

    Tu peux faire du WEB aussi avec, son système de programmation concurrente et la compilation en un seule fichier rend la langage intéressant pour de gros projets WEB.

    Après c'est vrai que le système structure, méthode et interface peut dérouter, mais ce n'est pas pire que JavaScript avec les prototypes…

    Sinon vu que tu fais du Java, Go est surement préférable à Rust (plutôt Web) ou Crystal (ce dernier pour ceux qui aime vraiment Ruby).
    Vous cherchez à apprendre les bases en langage « C », « Go », « PHP » ou « Python » ? N'hésitez pas à me contacter par MP.

  6. #6
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2016
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2016
    Messages : 101
    Points : 211
    Points
    211

    Par défaut

    Citation Envoyé par antoinemartin Voir le message
    Mais je vois que les gens utilisent Go pour faire des microservices et de la logique métier. Pourquoi? On ne le ferait pas en C/C++...
    Vraiment ? J'ai quelques doutes sur cela

    Go est un langage généraliste bas niveau qui fournit tout un tas d'avancées.

    - typage statique fort: c'est génial, tu compiles, tu as tout un tas de messages pour t'aider à corriger tes erreurs. Mieux encore, cette étape est très rapide en go, comparée à d'autres environnements.
    - GC: le langage fournit un mécanisme de GC naît des différentes expériences. En gros il doit être aussi bon qu'un gc java dans la majorité des cas, sans avoir toute la complexité de java à ce sujet. Pour nous autres c'est un régal.
    (pas exactement la vidéo que je cherchais, mais elle semble être équivalente)

    - cross compilation: je peux générer un binaire pour windows sur mon linux, et inversement
    - système de type sans hiérarchie: c'est ce que je préfère dans le langage. Les types n'ont plus de relations hiérarchique genre self/parent. Ils doivent satisfaire un contrat, point final.
    - un environnement de dev bas niveau qui plaît bien aux habitués du c, sans être un frein aux nouveaux entrants.
    - une syntaxe élégante: tous les appendices inutiles et redondants ont était supprimés, de plus, les batailles au sujet du code style sont finies, il n'y en a qu'un et tout le monde est invité à le suivre.
    - un outillage riche: le langage fournit de base les outils nécessaire à différentes tâches durant l'utilisation du langage (doc, profileur, test, détection des races, formatteur, détecteur de code smell).
    - les goroutines: on peut difficilement faire plus simple sur le sujet.
    - Les channels: un très bon outil de synchronisation

    Bon il doit y avoir d'autres points, je t'invites à regarder des vidéos sur youtube.

    Maintenant, tout n'est pas rose, pas de générique, une bibliothèque de librairies à parfaire et des points frictions car le langage à une opinion très forte sur le comment des choses (dogmatique), ce qui en emmerde plus d'un.

    Aussi, je pense qu'il est primordial de bien choisir son ide lorsque l'on débute go, cela peut tout changer dans l'expérience à l'utilisation.
    Si vous commencez avec notepad, vous n'aurez pas accès à toute la richesse de l'outillage automatiquement, il faudra le faire manuellement.
    Avec Atom il y a ce module go-plus qui fait cela pour vous, c'est un régal.

    bref, dans un monde ou tu passes ton temps à choisir le bon outil pour la bonne tâche, cet outil supplémentaire à l'avantage de répondre à beaucoup, beaucoup de cas de manière tout à fait correct.

Discussions similaires

  1. ca sert a quoi tomcat?
    Par ledu_alexandre dans le forum Tomcat
    Réponses: 2
    Dernier message: 28/12/2007, 14h29
  2. GTK? mais ça sert a quoi?
    Par nooblender dans le forum GTK+
    Réponses: 9
    Dernier message: 14/09/2006, 09h53
  3. idFTP.passive sert a quoi ?
    Par exyacc dans le forum Delphi
    Réponses: 2
    Dernier message: 27/06/2006, 10h36
  4. [TPW] Uses wincrt : sert a quoi exactement
    Par baya dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 26/12/2005, 15h41
  5. Réponses: 8
    Dernier message: 18/05/2004, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo