Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #21
    Membre averti
    Profil pro
    Inscrit en
    septembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2009
    Messages : 169
    Points : 408
    Points
    408

    Par défaut

    Citation Envoyé par LLB Voir le message
    Les concepteurs de Go ont beaucoup d'expérience (parmi les plus expérimentés à Google) - et ce n'est pas forcément la même que vous ! Évitez les attaques trop simples, c'est souvent le signe que vous n'avez pas compris les objectifs du langage.
    Je n'ai pas trop l'impression que les concepteurs de Go aient tant que ça d'expérience en création de langage de programmation. A contrario, Anders Hejlsberg après Delphi et C# il est passé sur Typescript (qui hormis les "défauts" pour être compatible avec Js) est un langage encore plus poussé, ce qui semble plutôt montrer que c'est en rajoutant des features qu'on aide les développeur dans leur travail. Mais surtout j'ai bien compris les objectifs du langages. C'est juste que pour moi Go n'a pas de raison d'exister et résout un problème inexistant. Des langages terre à terre ça fait un moment que l'on en a eu un paquet (Basic ça remonte au années 70) et à part les goroutines on peut écrire du "Go like" dans n'importe quel langage, il suffit juste de se limiter a ne pas utiliser la majorité des features. Après concernant la maintenance, il y a une part de vérité dans ce que tu dis (forcément que le code trivial est plus facile à maintenir) mais il faut aussi reconnaitre que Go est tellement verbeux que pour le même problème tu vas avoir plus de lignes à maintenir en Go. Et encore pour la maintenance, je réitère que sa trop grande simplicité est à double tranchant. En Go on se trouver avec les pointeurs des void* en C pour les structures génériques ou il faut le caster dans le bon type pour pas que ça fasse n'importe quoi. C'est hyper sujet à l'erreur et ça ne se détecte qu'au runtime.

  2. #22
    Nouveau membre du Club
    Inscrit en
    juin 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : juin 2010
    Messages : 6
    Points : 29
    Points
    29

    Par défaut

    Citation Envoyé par codec_abc Voir le message
    Je n'ai pas trop l'impression que les concepteurs de Go aient tant que ça d'expérience en création de langage de programmation. A contrario, Anders Hejlsberg après Delphi et C# il est passé sur Typescript (qui hormis les "défauts" pour être compatible avec Js) est un langage encore plus poussé, ce qui semble plutôt montrer que c'est en rajoutant des features qu'on aide les développeur dans leur travail. Mais surtout j'ai bien compris les objectifs du langages. C'est juste que pour moi Go n'a pas de raison d'exister et résout un problème inexistant. Des langages terre à terre ça fait un moment que l'on en a eu un paquet (Basic ça remonte au années 70) et à part les goroutines on peut écrire du "Go like" dans n'importe quel langage, il suffit juste de se limiter a ne pas utiliser la majorité des features. Après concernant la maintenance, il y a une part de vérité dans ce que tu dis (forcément que le code trivial est plus facile à maintenir) mais il faut aussi reconnaitre que Go est tellement verbeux que pour le même problème tu vas avoir plus de lignes à maintenir en Go. Et encore pour la maintenance, je réitère que sa trop grande simplicité est à double tranchant. En Go on se trouver avec les pointeurs des void* en C pour les structures génériques ou il faut le caster dans le bon type pour pas que ça fasse n'importe quoi. C'est hyper sujet à l'erreur et ça ne se détecte qu'au runtime.
    Je trouve personnellement que l’existence de Go est tout à fait justifié en remplacement du C la où il n'y a pas de majorité de codeurs pointus toujours disponibles. Pourquoi prendre un langage plus complexe a prendre en main si celui ci suffit ? On peut écrire du Go like en C, avec une certaine discipline, mais franchement, si tous les dev étaient si disciplinés nous n'aurions besoin que du C++ pour tout. Pour moi le Go existe pour permettre l’implémentation de solution simple sans s'ennuyer avec des détails techniques que, finalement, peu de dev maitrise n'interressent pas tous les dev.

    EDIT : j'ai été trop pessimiste / lassé dans mon poste d'origine

  3. #23
    Membre expert
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    avril 2016
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : avril 2016
    Messages : 799
    Points : 3 503
    Points
    3 503

    Par défaut

    Citation Envoyé par codec_abc Voir le message
    Je n'ai pas trop l'impression que les concepteurs de Go aient tant que ça d'expérience en création de langage de programmation.
    Parmi les 3 créateurs du Go, Ken Thompson a créé le langage B avec Dennis Ritchie.

    Mais, à mon avis, le plus important, ce n'est pas d'avoir de l'expérience en création de langage, mais d'avoir une culture générale solide sur les langages enrichissants, y compris ceux qui sont peu utilisés dans l'industrie. Par exemple :
    • Haskell est intéressant pour la programmation fonctionnelle, pour son système de type et pour le niveau d'abstraction élevé de sa bibliothèque standard.
    • D est intéressant pour la programmation générique, la métaprogrammation et ses très nombreuses fonctionnalités.
    • Les dialectes du Lisp sont intéressants pour la métaprogrammation basée sur les syntactic macros.
    • Rust (sorti après Go) est intéressant pour ses contrôles stricts à la compilation alors qu'il supporte le bas niveau comme le C.


    Citation Envoyé par codec_abc Voir le message
    à part les goroutines on peut écrire du "Go like" dans n'importe quel langage, il suffit juste de se limiter a ne pas utiliser la majorité des features.
    « N'importe quel langage », c'est trop large. Les interfaces de Go sont une forme de polymorphisme au runtime qui facilite la création de types parents a posteriori sans modifier le code du type enfant, le tout avec du typage statique. Ce n'est pas le seul à savoir le faire et ce n'est pas celui qui le fait le mieux (à cause des risques de sous-typage accidentel), mais ce n'est pas une fonctionnalité si répandue que ça.
    Par exemple, en Java, pour ajouter un type parent (typiquement une interface) à une classe existante, il faut modifier le code de cette classe pour dire qu'elle implémente cette interface. Si modifier le code de cette classe n'est pas possible ou pas souhaitable, alors on doit l'encapsuler dans un wrapper qui implémentera cette interface. Ce n'est pas très flexible quand on doit gérer des hiérarchies d'interfaces.

    Citation Envoyé par Dymmm Voir le message
    On peut écrire du Go like en C, avec une certaine discipline
    Le langage C décourage le polymorphisme. Dès que l'on veut faire du polymorphisme en C, le code devient hyper verbeux car il faut tout bricoler à la main.

    Citation Envoyé par Dymmm Voir le message
    mais franchement, si tous les dev étaient si disciplinés nous n'aurions besoin que du C++ pour tout.
    Pas pour tout. Par exemple, si j'écris un petit script en Python au lieu de l'écrire en C++, ce n'est pas pour des raisons de discipline.

  4. #24
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 967
    Points : 1 335
    Points
    1 335

    Par défaut

    Mais, à mon avis, le plus important, ce n'est pas d'avoir de l'expérience en création de langage, mais d'avoir une culture générale solide sur les langages enrichissants, y compris ceux qui sont peu utilisés dans l'industrie.
    Bien sûr. Si tu prends le design sur les generics, il ont écrit pas mal de documents depuis des années. Tu te doutes bien qu'ils ont étudié les solutions des autres langages et qu'ils ont beaucoup de retours d'autres gens. En l'occurrence, ils citent quelques langages dans le dernier document : https://go.googlesource.com/proposal...ther-languages

  5. #25
    Membre à l'essai
    Homme Profil pro
    Autodidacte={développeur web, webdesigner, administrateur système}
    Inscrit en
    janvier 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Autodidacte={développeur web, webdesigner, administrateur système}

    Informations forums :
    Inscription : janvier 2010
    Messages : 10
    Points : 15
    Points
    15

    Par défaut Je ne comprends pas pourquoi les gens râlent à propos de Golang

    Bonjour,

    J'ai lu beaucoup d'articles sur ce site à propos de Go, souvent les gens le criquent parce qu'ils le trouvent un peu de contre nature quand ils sont habitués à la POO de leur language favori, en fait beaucoup ne connaissent pas suffisamment ce longue je pense. C'est un langage magnifique qu'on peut apprendre facilement, même si au début on a l'impression d'être perdu, en réalité une qu'on a bien compris le langage, on peut faire des choses magnifique avec sans aller ce casser le c... à gérer la mémoire ou installer des choses pour le faire fonctionner sur d'autres machines ou systèmes.

    J'ai beaucoup développé en PHP principalement de la POO, j'ai essayé Python, un jour le me suis dis je dois apprendre un langage qui me permettra de faire beaucoup de choses tout en étant robuste et rapide, j'ai voulu apprendre le C, C++, Java, franchement je n'ai pas arraché, soit trop complexe, soit trop lourd (Java), alors j'ai fait le chois de Golang, mon dieu que c'est le pied de faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	go server.coursCoucou()
    	go server.coucouVasPasBloquer()


    Avec Go, j'ai réalisé un petit CMS en 1 mois alors que je débutais avec ce langage ! De plus celui embarque un sacré serveur web magique ! Des programme de chiffrement en quelques jours et le plus kiffant que j'ai réalisé il a quelques jours c'est un système client/serveur/tcp de backup pour faire des sauvegardes de mon serveur distant la synchronisation est quasi instantanée tout ceci sans être ingénieur ni informaticien, je suis électricien à la base ! C'est ça la vraie force de Golang ! La simplicité et rapidité. Aujourd'hui je fais quasiment tout avec Go, je code Go, je pense Go et je reve Go Car j'ai une mission désormais : développé des programmes Go avec des interfaces graphiques, purée ça doit être le pied ça ! un simple "go install" ou "go build" ou encore "GOOS=darwin go build" pour la pomme fera affaire. C'est quand même une révolution non ? Puis Go permet contrairement à ce pensent certains, de faire de la programmation objet et gérer l'héritage. Bref vive Golang !

  6. #26
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Consultant
    Inscrit en
    juillet 2013
    Messages
    2 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2013
    Messages : 2 090
    Points : 67 306
    Points
    67 306
    Billets dans le blog
    2

    Par défaut L'équipe Go revient sur le processus de développement de la version 2.0 du langage

    L'équipe Go revient sur le processus de développement de la version 2.0 du langage
    et soumet des changements à venir dans Go 1.13

    Développé par Google, Go est un langage de programmation compilé et concurrent inspiré de C et Pascal. Il a été créé avec pour objectif de permettre aux développeurs, même ceux qui n'ont pas d'expérience, d'écrire facilement de bons programmes.

    Depuis sa sortie en 2009, Go a connu une forte adoption, du moins d'après les différents baromètres. Mais le langage est relativement jeune et il a encore beaucoup à faire pour séduire les développeurs et entreprises. Google travaille donc pour y parvenir, et pour annoncer cela, la firme a commencé par travailler sur l'image de son langage, en se dotant d’un nouveau logo en avril dernier. Mais les efforts des développeurs de Go sont plus concentrés sur la version 2 du langage.

    Le processus de réflexion sur la prochaine grande version de Go a été officiellement lancé l'année dernière, et fin août, Google a partagé des informations (un brouillon) sur la conception de Go 2, qui abordaient des thèmes importants comme la programmation générique et une meilleure prise en charge de la gestion des erreurs. Dans un récent billet de blog, Robert Griesemer, l'un des créateurs du langage, est revenu sur le processus de développement de Go et la manière dont les fonctionnalités seront livrées aux développeurs.


    Go 2 ne viendra pas comme une seule version majeure, ses fonctionnalités arriveront de manière incrémentale

    Ce qu'il faut savoir, c'est que Go 2 ne viendra pas comme une version majeure avec un tas de fonctionnalités majeures qui vont casser la compatibilité avec les versions précédentes. Oui, ce serait un peu brusque, et c'est d'ailleurs l'une des raisons pour lesquelles les développeurs sont réticents à adopter de jeunes langages ou technologies.

    « Nous avons appelé ce futur langage de manière informelle Go 2, même si nous comprenons maintenant qu’il arrivera de manière incrémentale plutôt qu'avec un big-bang (un changement radical, NDLR) et une seule version majeure », explique Robert Griesemer. « Néanmoins, Go 2 est un surnom utile, ne serait-ce que pour avoir un moyen de parler de ce futur langage, alors continuons de l’utiliser pour le moment », dit-il.

    En 2015, l'équipe Go a introduit un processus de proposition afin de recueillir un type de retour spécifique : les propositions de modification de langage et de bibliothèque. Un comité composé de membres éminents de l'équipe Go a ainsi été chargé d'examiner, catégoriser et décider des propositions entrantes sur une base régulière. Cela fonctionnait assez bien, mais dans le cadre de ce processus, ils ont ignoré toutes les propositions qui n'étaient pas compatibles avec les versions précédentes du langage. Ces propositions ont simplement été marquées avec la mention "Go 2", ce qui suggère qu'ils seraient intégrés dans Go 2.

    Actuellement, il y a environ 120 propositions marquées "Go 2". Les propositions liées ont été fusionnées et celles qui semblaient clairement hors de la portée de Go ou qui ne pouvaient pas être gérées ont été fermées. Mais les propositions restantes vont probablement influencer les bibliothèques et le langage et, dans certains cas, ne vont pas permettre de satisfaire la garantie de compatibilité existante de Go 1.

    Comme nous l'avons déjà dit, deux grands thèmes sont ressortis très tôt de ces propositions : la prise en charge d'une meilleure gestion des erreurs et les génériques. Mais il y en a bien d'autres. Alors qu'en est-il du reste ? Une question à laquelle répond le co-créateur de Go :

    « Nous sommes limités par le fait que nous avons maintenant des millions de programmeurs Go et un vaste corpus de code Go, et que nous devons continuer dans cette voie, sans quoi nous risquerions un écosystème scindé. Cela signifie que nous ne pouvons pas faire beaucoup de changements, et les changements que nous allons faire doivent être choisis avec soin », explique M. Griesemer. Pour progresser, l'équipe Go met donc en place un nouveau processus d'évaluation des propositions pour ces changements potentiels importants.

    Si Go 1 était donc un petit effort d'équipe avec une influence extérieure modeste, Go 2 sera beaucoup plus axé sur la communauté ; laquelle communauté pourra désormais influencer la conception et la façon dont les décisions sont prises, d'après Robert Griesemer.

    Des propositions marquées "Go 2" seront publiées dans Go 1.13

    Vu le défi à relever, l'équipe Go a décidé de commencer par un petit nombre de propositions de modification de langage compatibles avec les versions antérieures. « Cela fait longtemps que nous n’avons pas fait de changement dans le langage, alors cela nous ramène à ce mode. De plus, les changements ne nécessiteront pas que nous nous inquiétions de casser le code existant ».

    Cela dit, elle soumet une petite sélection de propositions Go 2 qui seront publiées dans Go 1.13 - rappelons encore que les fonctionnalités de Go 2 seront livrées de manière incrémentale pour éviter tout changement radical. Les propositions concernent :
    • l'adoption des identifiants Unicode généraux basés sur Unicode TR31 : cela corrige un problème important pour les programmeurs Go utilisant des alphabets non occidentaux et devrait avoir peu d’impact sur les autres développeurs ;

    • les littéraux entiers binaires et prise en charge de _ dans les littéraux numériques : il s'agit selon l'équipe Go de modifications relativement mineures pour ajouter des fonctionnalités qui semblent extrêmement populaires chez les développeurs. Ils ne viennent pas résoudre un « problème important », estime Robert Griesemer, mais ils rapprochent Go de la plupart des autres langages à cet égard et peuvent soulager certains programmeurs. Ils ont en plus un impact minimal sur les autres utilisateurs indifférents au littéral entier binaire ou au formatage numérique, et la mise en œuvre est bien comprise ; et

    • la modification de la spécification du langage de telle sorte que l'opérande de droite dans une opération << ou >> puisse être un entier (non constant) signé ou non signé, ou toute valeur constante non négative pouvant être représentée par un nombre entier.

    En vertu du nouveau processus, ces propositions étant faites, c’est maintenant à la communauté Go de donner son avis. Pour chaque proposition pour laquelle l'équipe Go recevra des commentaires clairs et approuvés, cette dernière va procéder à l'implémentation pendant le cycle de développement de 3 mois (février, mars et avril 2019).

    Source : Blog Go

    Et vous ?

    Utilisez-vous le langage Go ? Qu'en pensez-vous ?
    A-t-il des chances de se faire une place parmi les langages les plus populaires ? Pourquoi ?
    Que pensez-vous de l'approche de Google pour passer à Go 2 ?

    Voir aussi :

    Google annonce la sortie du runtime Go 1.11 sur App Engine, après la disponibilité de la nouvelle version de son langage
    L'équipe de Go publie des brouillons du design du langage Go 2, au menu : la généricité, la gestion des erreurs et la sémantique des valeurs d'erreur
    L'équipe en charge du développement de Go annonce la disponibilité de la version Go 1.11, qui s'accompagne d'un port expérimental pour WebAssembly
    Go : après 5 ans de Go 1, la communauté du langage open source planifie une transition vers Go 2, en minimisant les perturbations entre les versions
    Go est plus utilisé par les développeurs pour leurs projets personnels, selon le sondage Go 2016
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

Discussions similaires

  1. Réponses: 7
    Dernier message: 19/01/2011, 12h56
  2. Réponses: 2
    Dernier message: 14/01/2011, 14h07
  3. Réponses: 0
    Dernier message: 13/03/2010, 11h20
  4. Quand Google publie des statistiques mondiales
    Par X-plode dans le forum Webmarketing
    Réponses: 6
    Dernier message: 10/03/2010, 14h14
  5. Réponses: 38
    Dernier message: 27/08/2009, 20h23

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