IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Go Discussion :

Le nouveau langage de programmation de Google connait beaucoup plus de succès que prévu


Sujet :

Go

  1. #81
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Niark13 Voir le message
    La surcharge d'opérateur, ça dépend comment c'est fait. Employé à l'excès, ça peut nuire à la lisibilité du code.
    C'est clair... En fait, je pense que la principale règle à respecter, c'est que toutes les surcharges d'une même méthode doivent faire à peu près la même chose, les différents paramètres ne servant qu'à préciser le comportement voulu ou le résultat attendu. Evidemment si tu fais une méthode Toto qui prend une date et planifie une action à cette date, et une autre méthode qui s'appelle aussi Toto, prend une chaine de caractères, et affiche cette chaine dans une boite de dialogue, on comprend plus rien

  2. #82
    Membre chevronné
    Profil pro
    Développeur Java Indépendant
    Inscrit en
    Mai 2007
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java Indépendant

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 333
    Points : 2 061
    Points
    2 061
    Par défaut
    Citation Envoyé par tomlev Voir le message
    C'est clair... En fait, je pense que la principale règle à respecter, c'est que toutes les surcharges d'une même méthode doivent faire à peu près la même chose, les différents paramètres ne servant qu'à préciser le comportement voulu ou le résultat attendu. Evidemment si tu fais une méthode Toto qui prend une date et planifie une action à cette date, et une autre méthode qui s'appelle aussi Toto, prend une chaine de caractères, et affiche cette chaine dans une boite de dialogue, on comprend plus rien
    Oui voilà, moi la surcharge de fonction je vois ça comme une facilité d'utilisation de ton objet.
    Le plus souvent, les méthodes surchargé cast un objet, et appel une autre méthode qu'elle surcharge (je suis clair ?).

    Comme ça a été un peu dit, je suis pour qu'on supprime dans un langage l'obligation de se soucier d'un problème (pointeurs, garbage collector), mais je suis contre l'impossibilité de réaliser une action quand on le veux (tout les exemples cités sur go, et même en Java il y en a, héritage multiple par exemple).
    Yoshi

    PS : tous les propos tenus dans le message ci-dessus sont à préfixer avec "A mon humble avis", "Je pense que". Il serait inutilement fastidieux de le rappeler à chaque phrase.

  3. #83
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Points : 13
    Points
    13
    Par défaut
    Comme remplaçant de C/C++ Go a peut-être ses chances mais il me semble quand même un poil trop verbeux et bas niveau pour remplacer des langages comme Python, Ruby et cie.

    Quand je vois ce qu'il faut comme code pour faire une fonction 'somme'[1] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    func sum(a []int) int {   // returns an int
        s := 0;
        for i := 0; i < len(a); i++ {
            s += a[i]
        }
        return s
    }
    Alors que la même chose en Haskell, un langage un poil plus haut niveau mais également statiquement typé donne ceci :
    De plus 'sum' existe déjà dans la 'Data.List'.

    Les 'channels' sont très intéressant, ça ressemble pas mal à la communication inter-processus dans Erlang mais en version typé.

    J'attends tout de même avec impatience la suite des évolutions

    [1] : http://golang.org/doc/go_tutorial.html

  4. #84
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    un mot clé "func" ?
    Ils arrivent pas à analyser le code sans ca ?
    Je trouve ca bizarre, pas tres élégant en tout cas.
    "vaste programme"

  5. #85
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    J'ai beau chercher, je ne vois pas trop la nouveauté "fondamentale" dans ce langage par rapport a du java, C#, Vala, et autres langages scriptés.

    J'aurais de loin préféré que Google participe à l'évolution d'un langage existant. J'imagine un "Vala" qui ne dépendrait pas de GObject.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #86
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Le fait que c'est pas scripté, ni managé, mais que ça produit du code natif. Ensuite les fonctionnalités, je pense qu'on aura très vite un Go objet, sans cela j'imagine mal la moindre interface graphique.

  7. #87
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Citation Envoyé par Tommy31 Voir le message
    Java, Python, Ruby, Groovy...
    Je ne sais pour rubu et groovy mais pour java et python, c'est de la fausse métaprogrammation. Ça en à la syntaxe, ça s'utilise pareil, mais il ne se passe pas du tout la même chose sur la machine.

    En java par exemple, on fait tout avec du cast, dans la mesure ou tout ou presque est objet. Comme les fonctions sont virtuelles, ça marche pas trop mal, mais ça n'a pas grand chose à voir avec faire faire du code au compilo.

  8. #88
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut POO à typage structurel
    Ensuite les fonctionnalités, je pense qu'on aura très vite un Go objet, sans cela j'imagine mal la moindre interface graphique.
    Go utilise le sous-typage structurel (relation d'inclusion entre interfaces) au lieu du sous-typage hiérarchique (relation d'héritage entre classes).

    Go est bien un langage POO puisqu'il y a sous-typage, mais avec un modèle objet plus proche de celui de Objective-Caml que de Java car il se base sur l'interface et pas sur la classe pour établir le sous-typage.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  9. #89
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par SpiceGuid Voir le message
    Go utilise le sous-typage structurel (relation d'inclusion entre interfaces) au lieu du sous-typage hiérarchique (relation d'héritage entre classes).
    Je suppose que c'est là leur astuce pour concilier "vitesse du travail de développement" et "sécurité d'un langage comme C ou C++". Mais bon, faut voir a l'usage.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #90
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par Niark13 Voir le message
    Erreur que la plupart des débutants font car ils n'ont pas le recul nécessaire pour l'apprécier.
    J'avais pas l'impression que Go était un langage conçu pour les débutants

  11. #91
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    Je ne sais pour rubu et groovy mais pour java et python, c'est de la fausse métaprogrammation. Ça en à la syntaxe, ça s'utilise pareil, mais il ne se passe pas du tout la même chose sur la machine.
    Java est un langage réflexif (support de l'intropection et de l'intercession), qui peut se modifier ou se générer au chargement. En outre, l'introduction des annotations ouvre de nouvelles perspectives dans cette voie.

    Tu peux argüer que ce n'est pas de la méta-programmation au sens ou il y a plus ou moins confusion syntaxique (les deux niveaux s'expriment de la même façon), ou qu'il n'y a pas une implication forte du compilateur, il me semble que les effets sont très similaires.

  12. #92
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Ça dépend de pourquoi tu utilises la métaprogrammation.

    Par exemple, tu as les expressions templates (il y a un article sur developpez). Cela permet de faire de l'optimisation transparente sur le calcul vectoriel/matriciel.

    Typiquement, en java, si tu fais quelque chose du même type, au lieu d'observer un gain de performance, tu va observer une perte. Car bien que le concept s'utilise de la même façon, ce ne sont pas les mêmes. java « imite » la métaprogrammation en proposant un système de cast automatiques. Ce sont deux outils servant à la même chose, ayant une syntaxe proche, pouvant parfois servir à la même chose, mais ce ne sont clairement pas les mêmes outils.

  13. #93
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    Par exemple, tu as les expressions templates (il y a un article sur developpez).
    Oui, tu parles des templates C++ vs des generics Java. Bien évidemment ce n'est pas la même chose (mais c'est voulu). C'est un sujet intéressant sur lequel je discuterais bien volontiers, mais j'ai peur qu'on soit hors sujet. Il faudrait peut-être ouvrir un autre fil de discussion ?

  14. #94
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 264
    Points : 725
    Points
    725
    Par défaut
    Citation Envoyé par Tommy31 Voir le message
    Java est un langage réflexif (support de l'intropection et de l'intercession), qui peut se modifier ou se générer au chargement. En outre, l'introduction des annotations ouvre de nouvelles perspectives dans cette voie.

    Tu peux argüer que ce n'est pas de la méta-programmation au sens ou il y a plus ou moins confusion syntaxique (les deux niveaux s'expriment de la même façon), ou qu'il n'y a pas une implication forte du compilateur, il me semble que les effets sont très similaires.
    +1
    La metaprogrammation à base de templates (C++) et les metaclasses de python n'ont en effet rien à voir sur le plan technique, maintenant dire que l'un mérite l'appellation "metaprogrammation" et pas l'autre...

    Mais on s'éloigne du sujet là.
    "By and large I'm trying to minimize mentions of D in C++ contexts because it's as unfair as bringing a machine gun to a knife fight." - Andrei Alexandrescu

  15. #95
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par Ummon Voir le message
    Comme remplaçant de C/C++ Go a peut-être ses chances mais il me semble quand même un poil trop verbeux et bas niveau pour remplacer des langages comme Python, Ruby et cie.

    Quand je vois ce qu'il faut comme code pour faire une fonction 'somme'[1] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    func sum(a []int) int {   // returns an int
        s := 0;
        for i := 0; i < len(a); i++ {
            s += a[i]
        }
        return s
    }
    Alors que la même chose en Haskell, un langage un poil plus haut niveau mais également statiquement typé donne ceci :
    De plus 'sum' existe déjà dans la 'Data.List'.


    si j'en crois cet article, il y a une syntaxe pour faire de la programmation fonctionnelle
    http://www.doc.ic.ac.uk/~klc/gowp.html
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  16. #96
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    si j'en crois cet article, il y a une syntaxe pour faire de la programmation fonctionnelle
    http://www.doc.ic.ac.uk/~klc/gowp.html
    Je crois qu'on ne parle pas du même go, voir : http://code.google.com/p/go/issues/detail?id=9

  17. #97
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par Ummon Voir le message
    Je crois qu'on ne parle pas du même go, voir : http://code.google.com/p/go/issues/detail?id=9
    forcemment, si en plus ils prennent un nom déjà utilisé
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  18. #98
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Citation Envoyé par hugobob Voir le message
    Tout ce qui concerne Google m'interesse.
    Je compte bien l'essayer.


    Alller Gooo!


    Tout ce qui concerne Google me concerne egalement. Mais en Aout dernier Google s'est lancé en un projet de langage qu'on appelle Noop ou java like. Sans faire de resultat, on entend parler de Go. Alors pourquoi ce virement.

    Pour que Go peut percer! c'est pas seulement le marketing qui va l'envoler c'est pas un produit pour les non-avertie! mais pour les developpeur, il va falloir creer une autre maniere de coder.

    Le developpeur ne sait pas ou aller car beaucoup de langage surtout dans le domaine des mobile ! Chaque jour un langage pour un constrcuteur.

  19. #99
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 490
    Points
    15 490
    Par défaut
    Noop est Go ne visent pas du tout le même domaine.

    Noop est un langage pour la JVM qui irait plutôt dans la direction de groovy,... tandis que Go est clairement un langage compilé qui lorgne du coté du C/C++.

  20. #100
    Expert éminent sénior

    Inscrit en
    Juillet 2009
    Messages
    3 407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 407
    Points : 149 059
    Points
    149 059
    Par défaut Go connait un début de succès
    Go connait beaucoup plus de succès que prévu
    Selon Rob Pike, ingénieur logiciel chez Google


    Go, le langage de programmation open-source lancé par Google, n'en finirait pas de séduire les développeurs.

    C'est en tout cas le message que Moutain View donne dans un communiqué à la presse : « Le niveau d'intérêt de la communauté a été plus élevé que prévu et il est très encourageant », note Rob Pike, ingénieur logiciel chez Google.

    Pour expliquer ce succès, certains notent que Google a réussi à intégrer les feedbacks des développeurs sans laisser le projet open-source partir dans toutes les directions.

    Les auteurs de Go seraient donc très stricts sur les règles de formatage. Ils semblent avoir pour objectif principal de conserver la simplicité du langage.

    Pour autant, Go n'est pas encore arrivé à maturité. En tout cas pas assez pour développer des applications critiques.

    Il est en revanche suffisamment stable pour créer des « serveurs Web simples, un traitement de texte ou d'autres projets de ce type », ajoute Rob Pike.

    De fait, de nombreux développeurs ont déjà commencé à l'utiliser pour construire ces applications non critiques.

    Particulièrement dans le domaine du multithread et de la programmation multiprocesseur, note John Gordon, développeur ayant publié plusieurs tutoriels sur Go et auteurs de plusieurs applications.

    Pour lui, développer ce type de projet était « au mieux très dur avec les autres langages populaires » connus jusqu'ici.
    Sous-entendu, Go faciliterait la vie dans ce domaine et - pour lui - ne devrait pas tarder à s'imposer.

    Google serait donc sur le point de réussir son pari : réduire la complexité du codage sans compromettre les performances des applications, en alliant la rapidité de développement des langages dynamiques comme Python et le robustesse des langages compilés comme le C ++.

    Certains y voient même un futur concurrent très sérieux pour Java et son « threading model » qualifié de « trop vieux » et de « trop compliqué » par les partisans les plus enthousiastes de Go.

    C'est peut-être mettre la charrue avant les bœufs.


    A lire : Installation de Go, par Brice Colucci, un tutoriel de Développez.com

    Et vous ?

    Pensez-vous que Go va remplacer Python et C++ ? Et Java ?

    Avez-vous déjà développé une application avec Go ? Qu'en avez-vous pensé ?

Discussions similaires

  1. Réponses: 290
    Dernier message: 31/05/2013, 10h43
  2. [OpenSource][C++] Eplith: Un nouveau langage de programmation
    Par Quent42340 dans le forum Mon programme
    Réponses: 2
    Dernier message: 02/06/2012, 22h32
  3. Choix d'un nouveau langage de programmation
    Par ProgVal dans le forum Langages de programmation
    Réponses: 9
    Dernier message: 09/01/2010, 15h20
  4. Comment rajouter un nouveau langage de programmation ?
    Par Acropole dans le forum Eclipse
    Réponses: 2
    Dernier message: 12/11/2009, 15h40
  5. Nouveau langage de programmation : le langage G
    Par G-FACTION dans le forum Autres langages
    Réponses: 10
    Dernier message: 19/07/2009, 19h58

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