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 :

Go souffle sa cinquième bougie


Sujet :

Go

  1. #1
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut Go souffle sa cinquième bougie
    Go souffle sur sa cinquième bougie
    le langage de Google peine à convaincre les développeurs

    Novembre est décidément le mois des anniversaires. Après Firefox qui a soufflé sur sa dixième bougie le 9 novembre dernier, c’est au tour du langage de programmation Go de fêter ses 5 ans.

    Le 10 novembre 2009, un nouveau langage de programmation venait s’immiscer dans la pléthore de langages déjà disponibles. Développé par Google, le langage a rapidement attiré l’attention de l’industrie et de bon nombre de développeurs.

    Go est une alternative au langage de programmation C/C++. Il reprend ce qui a fait le succès de ces langages, tout en intégrant des nouveautés pour rendre le code plus concis, lisible et offrir plus de sécurité. C’est un langage compilé permettant de simplifier le développement d'applications concurrentes. Il est destiné notamment à la programmation système.

    Selon Google, les langages de programmation majeurs datent de plus d’une décennie, et ne se sont pas adaptés à l’évolution du paysage informatique qui a énormément changé. Go a été conçu pour tirer parti des processeurs multicœurs, fournir des fonctionnalités modernes comme le typage dynamique, le ramasse-miettes (garbage collection), et abandonner des aspects pénibles comme l’inclusion des fichiers pour le langage C.

    Après son lancement, Go a eu droit à un court moment de gloire. En quelques mois, le langage a enregistré la plus forte croissance sur l’indice Tiobe, faisant de celui-ci le langage de l’année 2009, d’après Tiobe.

    Un succès du probablement à un effet de curiosité de la part des développeurs, parce que le langage est soutenu par un acteur majeur du Web. Cinq ans après la naissance de Go, il ne semble pas séduire beaucoup de développeurs, tandis que les langages C et C++ restent encore très populaires. Selon l’index de popularité Tiobe, Go n’apparaît qu’en 41e position, alors que C demeure le langage le plus populaire.

    Actuellement Go est à sa version 1.4, avec son environnement d’exécution et ses outils de développement. La prochaine version du langage sera publiée le 1er décembre 2014, et un support des terminaux mobiles est prévu pour 2015.


    Source : Blog Go


    Et vous ?

    Que pensez-vous de Go ? Avez-vous adopté le langage ?

    Go a-t-il du potentiel pour concurrencer C/C++ ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Membre expérimenté
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Août 2005
    Messages
    851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 851
    Points : 1 717
    Points
    1 717
    Par défaut
    Après Firefox qui a soufflé sur sa vingtième bougie le 9 novembre dernier
    C'est la dixième

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 90
    Points : 154
    Points
    154
    Par défaut
    je pense qu'il a du potentiel dans le web , je n'ai pas approfondi plus que ça , j'ai regardé vite fait quelques framerworks web comme Beego , Martini , Revel mais je trouve la ressource trop pauvre sur ces sujets pour le moment . La doc des frameworks n'est pas forcément mauvaise , je regrette l'absence d'ouvrage comme on peut en trouver pour d'autres techno , il y a des ouvrages sur le Go lui même mais rien sur les framework comme c'est le cas en Ruby par exemple avec rails , sinatra..

  4. #4
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 33
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    Je serais intéressé par ce language mais pas pour le WEB, pour développer des applications portables entre Windows, Linux et Macintosh. Le problème étant encore une fois de savoir quelle interface graphique (fenêtre, menu déroulant) utiliser pour la stabilité, la portabilité et les fonctionnalités...

    A+

  5. #5
    Membre expérimenté Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Points : 1 587
    Points
    1 587
    Par défaut
    Cinq ans après la naissance de Go, il ne semble pas séduire beaucoup de développeurs, tandis que les langages C et C++ restent encore très populaires. Selon l’index de popularité Tiobe, Go n’apparaît qu’en 41e position, alors que C demeure le langage le plus populaire.
    Rome ne s'est pas construite en un jour.
    Il faut généralement prés de 10 ans pour construire un écosystème solide pour un nouveau langage. Et puis sincèrement, depuis quand l'index Tiobe a une quelconque valeur ?

    J'aurai plutôt tendance à dire l'inverse: Golang est en progression, trés net progression, même si on reste loin de mastodontes comme C/C++ ou Java.

    Les googles trends parlent d'eux même je pense : http://www.google.com/trends/explore#q=golang&cmpt=q

    Go en moins de 5 ans a réussi à se faire une place dans les langages à considéré pour le développement d'apps Web (Revel), ou d'application système légère comme Docker... qui est en Go.
    Un petit passage sur github donne plus de 44 000 repos qui utilisent golang, soit bien plus que pour des languages comme Scala, Clojure or F# qui sont de la même génération.


    Même si je reste assez allergique à sa syntaxe, j'ai assez de respect pour ce nouveau venu pour être honnête.

    Un langage à surveiller.
    It's not a bug, it's a feature

  6. #6
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 33
    Points : 79
    Points
    79
    Par défaut
    Re-bonjour,

    Globalement, je ne trouve plus de langages de programmation avec UI (user interface en client lourd) qui permettent de faire des applications aussi facilement qu'on pouvait le faire avec Visual Basic 6.0...

    Si vous en connaissez des gratuits...

    A+

  7. #7
    Membre émérite
    Homme Profil pro
    Ingénieur en génie logiciel
    Inscrit en
    Juin 2012
    Messages
    855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur en génie logiciel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2012
    Messages : 855
    Points : 2 439
    Points
    2 439
    Par défaut
    Citation Envoyé par frasene Voir le message
    Re-bonjour,

    Globalement, je ne trouve plus de langages de programmation avec UI (user interface en client lourd) qui permettent de faire des applications aussi facilement qu'on pouvait le faire avec Visual Basic 6.0...

    Si vous en connaissez des gratuits...

    A+

    • delphi
    • lazarus
    • java avec netbeans

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur C++
    Inscrit en
    Octobre 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur C++

    Informations forums :
    Inscription : Octobre 2008
    Messages : 242
    Points : 705
    Points
    705
    Par défaut
    Normal que Go est inintéressant, c'est fait par les mêmes développeurs que Plan9.

  9. #9
    Membre à l'essai
    Profil pro
    Jacques
    Inscrit en
    Mai 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Jacques

    Informations forums :
    Inscription : Mai 2002
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Je pense que positionner Go en concurrent de C/C++ n'est pas très heureux; ce serait plutôt Rust le concurrent de ces langages. Pour moi Go est mieux placé comme étant une alternative au Python/PHP/Ruby/... pour développer des applications web très performantes avec un langage compilé très productif, et tirant parti du hardware actuel. Et pour ce genre d'applications il n'est pas utile de rechercher des frameworks; la librairie standard comprend tout ce qu'il faut. A la limite, une "boite à outils" comme Gorilla peut s'avérer utile et simplifier la vie.

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 49
    Points : 110
    Points
    110
    Par défaut
    OmicroN : ben si, Go me semble clairement un remplaçant du C... mais pas du C++ (pas de notion d'objet ni d'exceptions) : C#, Rust remplissent bien mieux cet objectif.

    Je ne sais pas si tu es dev web mais la vitesse d’exécution est rarement un problème : c'est les IO le nerf du problème.
    Go avec son asynchronisme quasi "naturel" en fait un très bon candidat face à PHP mais pas forcément Ruby et/ou Python qui sont à mon sens déjà bien équipé.

    Ces 2 derniers langages me semble bien plus appropriés pour du web sans compter la panoplie de frameworks/librairies qui les accompagne.

    Perso, je dev en python et après des benchs, j'identifie les parties critiques si besoins et les remplace en C... je louche progressivement sur Go pour raccourcir mon temps passé sur du bas-niveau.

    En plus, si celui-ci venait à être dispo sur de l'Android, je le privilégierais à du Java par exemple...

  11. #11
    Membre expérimenté Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Points : 1 587
    Points
    1 587
    Par défaut
    OmicroN : ben si, Go me semble clairement un remplaçant du C...
    Absolument pas. C'est de nos jours grandement utilisé pour la programmation système ( librairies ) ou kernel. Golang n'est pas adapté à la création de libs systèmes ( pas d'ABI stable ) et encore moins à la programmation kernel.


    Go avec son asynchronisme quasi "naturel" en fait un très bon candidat face à PHP mais pas forcément Ruby et/ou Python qui sont à mon sens déjà bien équipé.
    Il fait aussi un trés bon candidat face à Ruby ou Python qui ne sont pas loin de PHP en terme de performances de toute manière.... (http://benchmarksgame.alioth.debian....id=7&data=u64q)
    Et qui souffrent de quelques problèmes avec le threading ( Global interpreter lock).

    Golang offre un compromis entre la flexibilité des langages de haut niveau comme python/Ruby ( reflexbilité, typage dynamique, faible verbosité ) et la performance des langages systèmes (C++) ou managés (Java).

    Les go-routines sont une implémentation native des "green threads" qui permettent d'abstraire complètement la gestion asynchrones des I/O derrière de simple call "blocking". Python et Ruby ne peuvent faire ce genre de choses qu'en utilisant des runtimes spéciaux ( greenlets ) qui s'interface généralement trés mal avec leur modules natifs.

    A ma connaissance et à l'heure actuel, seul Go et Erlang peuvent faire ce genre de chose.
    It's not a bug, it's a feature

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 49
    Points : 110
    Points
    110
    Par défaut
    Je n'ai pas assez de connaissances dans la programmation système pour avoir une réponse objective à ton affirmation.
    Néanmoins, le langage C ne me semble vraiment pas limité qu'à ça (Go c'est dev par Google donc plutôt orienté web.)... donc on peut dire que Go remplace le C dans certains cas de figure. (D'ailleurs, Ken Thompson n'aurait pas influencé le langage Go alors qu'il est lui-même le co-auteur du langage C?)


    Ton exemple de benchmark est typiquement le contre-exemple du cas d'école.
    Franchement, tu connais bcp de projets concrets qui calcule des fractales...

    Comme dis, je parle de ce que je connais et dans le web, il y a énormément de softs ou la performance n'est pas l'aspect prioritaire.
    La très forte demande de "réactivé" fait que les langages dynamiques ont toujours la côte.

    Pour Python, on parle souvent du GIL mais c'est finalement très rare que ça soit limitant.
    De plus, cette spécificité n'existe que pour CPython et non pour les autres implémentations : Pypy, IronPython, Jython.

  13. #13
    Membre expert Avatar de air-dex
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 653
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 653
    Points : 3 773
    Points
    3 773
    Par défaut Go = YACCK, pour Yet Another C/C++ Killer
    Perso je vois le Go comme une énième tentative de C/C++ killer. Dans 20 ans on en verra toujours pour le sempiternel même résultat et C/C++ seront toujours là. Go sera alors bien placé entre le langage D et Mozilla Rust dans ce panthéon. Tous ont des idées mais C/C++ sont trop universels pour être détrônés.

    Pour Go j'ai même trouvé ces idées bizarres. De mémoire le langage Go veut être "un C/C++ mais qui compile plus vite". Or ceci est une grave erreur de base. Sid Meier, le développeur derrière la série de jeux vidéo "Civilization", a énoncé plusieurs règles fondamentales de game design, dont certaines peuvent aussi s'appliquer aux programmes informatiques en général à mon avis. L'une d'entre elles est "The Player Should Have the Fun, not the Designer or the Computer" et s'applique particulièrement bien à Google Go. On se fiche que le programme final ait mis 1 ou 10 minutes à compiler. Ce n'est pas ça qui fera que le programme final sera plus performant ou pas. L'utilisateur final se fiche de l'algorithme utilisé et du temps de compilation. Ce qu'il voit c'est si le programme est performant ou bien s'il ne l'est pas. Les quelques minutes de compilations gagnées lors de l'unique compilation de la version de prod ne sont rien face à toutes celles perdues par tous les utilisateurs à cause d'un programme qui rame. Or à ce petit jeu des performances ce sera très difficile de détrôner C/C++ et leurs dizaines d'années d'optimisation de compilateurs en tous genres.

    Après il y a également le volet commercial pour le langage, et là aussi Google a mal fait les choses pour Go. Mountain View aurait dû l'associer à Android. Ils auraient dû l'imposer dans le NDK du robot vert et/ou l'introduire en remplacement de Java dans le SDK, surtout avec leurs démêlés face à Oracle. Google a échoué là où Apple et Microsoft ont réussi. Si Objective-C est parmi les langages les plus utilisés en ce moment, c'est surtout parce que Cupertino l'a imposé pour les développements iPhone et iPad. Swift devrait aussi suivre cette voie dans les années à venir. Quant à Microsoft il s'agit bien sûr de C#/.NET dans les programmes WORA face au Java.
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2012
    Messages : 11
    Points : 28
    Points
    28
    Par défaut
    Actuellement Go est à sa version 1.4
    Plus précisément, à l'heure où l'article a été publié, Go est en version stable 1.3.3, et la branche 1.4 est en beta.

    Que pensez-vous de Go ? Avez-vous adopté le langage ?
    Après une phase d'apprentissage relativement courte, ce qui est une bonne chose pour un langage, je l'ai officiellement adopté pour développer des composants serveur (websockets avec Gorilla http://www.gorillatoolkit.org/pkg/websocket).

    J'ai remplacé une couche applicative développée en ruby/EventMachine avec succès, et je note que les performances sont à la hauteur des promesses.

    Voici les points forts que j'ai notés pour Go :
    • syntaxe relativement simple pour un langage orienté système, apprentissage aisé pour un développeur avec un background C/C++
    • l'absence des exceptions en faveur d'un système de retour multiple de valeurs, qui selon moi rend la gestion des erreurs plus claire, même si plus verbeuse qu'un simple pattern try/catch. De même ce système, couplé au mot-clé "defer" évite certains pièges de séquence d'exécution dans les fonctions (cf. les soucis de stack-unwinding dans C++...)
    • librairie standard complète et bien documentée
    • communauté active avec de nombreux projets open-source qui permettent de trouver facilement les librairies dont on a besoin, librairies étant la plupart du temps de bonne qualité
    • bonnes performances dans le domaine qui m'intéresse, à savoir développer des serveurs réseau avec I/O asynchrones, grâce aux goroutines
    • très peu de callbacks nécessaires (à l'opposé de node.js), ce qui permet de développer des programmes concurrents de manière plutôt "linéaire", encore une fois grâce aux goroutines et aux channels
    • bonne portabilité, peu de différences entre les plateformes pour la plupart des librairies
    • environnement de développement facile à mettre en place avec l'outil go et ses sous-commandes
    • support natif des tests unitaires, profilage, benchmarks, détection de "race conditions", etc
    • compilation statique des binaires, c'est à dire qu'il est rarement nécessaire de déployer des DLLs ou .so, ce qui est souvent un casse-tête par exemple pour déployer un exécutable C++ QT5 compilé sous Windows


    Quelques points négatifs :
    • la gestion des packages et librairies est puissante, mais la gestion du versioning des dépendances est un problème pas encore complètement résolu (malgré des projets intéressants comme gopkg.in et godep)
    • le manque de généricité, qui oblige à réimplémenter certains algorithmes de la librairie standard si l'on utilise des types non-standard
    • compilation statique des binaires, tout bêtement parce que malgré les avantages, cela crée des fichiers exécutables de taille importante, et rend plus compliquée la possibilité de créer des "plugins" chargeables à l'exécution


    Go a-t-il du potentiel pour concurrencer C/C++ ?
    Oui, très certainement, dans mon cas parce que développer des serveurs haute-performance en C/C++ revient à se frotter à des librairies telles que libevent pour C, qui reste assez complexe, ou Boost::Asio en C++ dont je trouve la syntaxe très barbare.

    De plus, transformer un programme Go en serveur HTTP qui expose des APIs, par exemple dans un but de monitoring temps-réel, est extraordinairement simple (voir https://golang.org/pkg/net/http/pprof/).

    Maintenant, il est clair que l'écosystème C/C++ est établi depuis des décénnies, donc je vois mal Go arriver à concurrencer ces mastodontes à court-terme.
    Au contraire, à mon avis, Go arrive avec son propre écosystème, une nouvelle génération de programmes et de nouvelles manières de déployer ces programmes et des services (dont le projet Docker est le porte-drapeau, de même que la philosophie twelve-factor app).

    Typiquement, si je devais aujourd'hui envisager de développer par exemple une plateforme de communication telle que Slack ou Hipchat, j'utiliserais Go côté serveur, pour gérer des sockets/websockets, de même qu'une couche HTTP REST. Côté client, je développerais un client lourd en C++/QT5 pour l'intérgration avec l'OS, avec si possible le coeur de l'interface graphique construite en HTML5/JS qui consommerait l'API REST du serveur, pour ainsi prévoir la compatibilité avec les plateformes mobiles.

    En ce qui concerne le mobile, justement, il paraît évident au vu de l'article original du blog Go que le support d'Android est un objectif majeur de la team Go pour 2015/2016, ce que j'attends avec impatience, surtout après la décision majeure d'Apple de créer son propre langage - Swift - pour le mobile. Je vois mal Google se débarrasser complétement de Java, mais avoir une solution entièrement interne va représenter un immense avantage stratégique pour s'affranchir des initiatives d'Oracle.

    Un dernier point concernant la popularité du langage : http://www.golangprojects.com/golang...ley-Apple.html

    Ceci n'est qu'un exemple parmi d'autres, mais il démontre clairement que les "gros players" considèrent sérieusement Go comme un langage viable pour développer des composants d'infrastructure, ce qui est à la base ce pourquoi Google a conçu le langage.

  15. #15
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 1
    Points : 3
    Points
    3
    Par défaut "Le langage de Google peine à convaincre les développeurs"
    Je ne sais pas comment on peut écrire ça.

    Go est au coeur de la révolution qui est en train de faire basculer tout l'hébergement et l'exploitation des applications et des services web dans la prochaine décennie.

    Tous les grands acteurs du cloud (Google, Microsoft, Paypal, Apple, Sengrid, etc...) ont adopté ce langage à part sans doute Facebook qui a choisi de recruter le concepteur de D.

    Docker qu'on ne présente plus (s'il y a des personnes qui lisent Developpez et qui ne connaissent pas Docker aujourd'hui alors je les encourage à changer de job) a pu voir le jour grâce à Go dixit ses concepteurs.

    Cet un langage qui est capable de "tout" (système et apps), il permet une exploitation simple de tous les coeurs fournis par nos CPUs (pour ceux qui suivent toujours, ça fait un moment que les fréquences de ces derniers n'évoluent plus), il compile beaucoup plus vite que tous les autres langages tout en produisant un code en moyenne inférieur en taille de 20%, il est simple à déployer car le binaire embarque les dépendances, etc...

    Go a été initié par Google pour réponse aux problématiques hors normes du géant conçu par Robert Griesemer, Rob Pike et Ken Thompson (je laisse à tout le monde le soin d'apprécier leur cv, c'est quand même plus impressionnant que pour certains autres langages plus populaires).

    Aujourd'hui c'est un langage qui peut être utilisé dans tous les projets, du simple site web jusqu'à Kubernetes capable de gérer des clusters de centaines de milliers de conteneurs Docker.

    Alors écrire "Le langage de Google peine à convaincre les développeurs" je ne comprends pas ? Mais quels développeurs ? Les développeurs qui s'enferment dans un langage comme PHP qui a 20 ans et qui reste un des langages les moins performant du web ? Et bien ces développeurs là on n'en a plus besoin, y en a plein les placards.

  16. #16
    Membre expérimenté Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Points : 1 587
    Points
    1 587
    Par défaut
    Merci pour ce résumé Gael, tu as parfaitement résumé mon fond de pensé
    It's not a bug, it's a feature

  17. #17
    Membre expérimenté Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Points : 1 587
    Points
    1 587
    Par défaut
    Néanmoins, le langage C ne me semble vraiment pas limité qu'à ça (Go c'est dev par Google donc plutôt orienté web.)... donc on peut dire que Go remplace le C dans certains cas de figure.
    Car tu connais beaucoup de gens qui font du C pour faire de la prog Web ? Effectivement... tu ne devrais pas parler de ce que tu ne connais pas...


    D'ailleurs, Ken Thompson n'aurait pas influencé le langage Go alors qu'il est lui-même le co-auteur du langage C
    Donc parce que l'auteur est le même, le langage est le même ? logique imparable.

    Golang ne visent pas ce que le C vise, encore et encore...
    Le comparer à ce language est stérile et sans interêt.


    Ton exemple de benchmark est typiquement le contre-exemple du cas d'école.
    Franchement, tu connais bcp de projets concrets qui calcule des fractales...
    Shoutout est un benchmark de reference pour le benchmarking de languages de programmation et de leur runtime.
    Les benchmarks vont bien plus loin qu'un simple calcul de fractal, si tu avais pris le temps de jouer un peu avec.


    Comme dis, je parle de ce que je connais et dans le web, il y a énormément de softs ou la performance n'est pas l'aspect prioritaire.
    Tout a fait.
    Et il y a aussi tout un ensemble de web services où les performances SONT importantes.
    Et pour ce genre de services, non-PHP ou python ne sont pas adapté.



    Pour Python, on parle souvent du GIL mais c'est finalement très rare que ça soit limitant.
    De plus, cette spécificité n'existe que pour CPython et non pour les autres implémentations : Pypy, IronPython, Jython.
    J'ai même pas envie de répondre à ça pour être honnète..... Il y a des centaines de posts partout sur internet qui débattent de ça.
    Et en résumé, oui le GIL dégrade dramatiquement les performances en multi threaded.
    It's not a bug, it's a feature

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Points : 22
    Points
    22
    Par défaut
    Le go c'est plutôt un concurrent du C++ ou du java. L'entreprise dans laquelle je travaille développe des applications en Go, pour des traitements côté serveur qui nécessitent de meilleures performances que le java (en temps de traitement/requête, occupation CPU et RAM, etc), sans le temps de dév et la lourdeur du C/C++. En fait, entre java et go, pour des périmètres fonctionnels comparables, nos applis en Go sont développées plus rapidement et sont plus performantes.
    Pour rectifier ce qui a été dit précédemment, il y a des exceptions en go (des panics qui ressemblent fortement aux exceptions en C++ mais qui sont certes peu utilisées), et même s'il n'y a pas de vraie couche objet, l'embedding de structures permet de couvrir une part non négligeable de la sémantique de l'héritage.

  19. #19
    Membre expert Avatar de air-dex
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 653
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 653
    Points : 3 773
    Points
    3 773
    Par défaut
    Citation Envoyé par SirDarius Voir le message
    Côté client, je développerais un client lourd en C++/QT5 pour l'intérgration avec l'OS, avec si possible le coeur de l'interface graphique construite en HTML5/JS qui consommerait l'API REST du serveur, pour ainsi prévoir la compatibilité avec les plateformes mobiles.
    Je ne doute pas de ta technicité mais la fin de cette phrase vire au "commercial qui balance des termes techniques car ça en jette". Ou alors c'est du (très) mauvais développement.

    Premièrement on ne mélange pas les torchons et les serviettes. La GUI fait du visuel et rien que du visuel. La connexion va se loger quelque part dans le backend, de préférence dans une partie qui ne fait que ça.

    Deuxièmement il y a la technologie pour ça. Parlant de Qt 5 (avec un 't' iminuscule à Qt) j'imagine que tu connais Qt Quick. Si ce n'est pas le cas alors pars vite te renseigner. Qt Quick est une partie du framework Qt permettant de réaliser simplement et rapidement des interfaces voire des programmes entiers avec les langages QML (créé pour l'occasion) et JavaScript. À noter que les parties Qt / C++ et Qt Quick / QML / JS peuvent cohabiter dans un même programme et même communiquer entre elles. Pour l'interaction avec les API REST tu as alors deux choix : soit tu mets la connexion "côté C++" en utilisant Qt Network (et les appels asynchrones du QNetworkAccessManager), soit tu la mets "côté QML" en utilisant les librairies qui vont bien (en JS j'imagine. Je ne fais mes connexions que du côté C++). Pour la GUI tu as le choix entre le vieux Qt Widget en C++ et QML. Tu peux donc faire au choix du full QML, du full C++ ou bien de l'hybride avec l'UI en QML et la connexion en C++. Dans aucun cas il n'est question d'HTML 5.

    Tu peux aussi faire un truc à base de Qt WebKit / Qt Web Engine avec une UI qui consiste en une simple WebView avec ton "HTML 5" dedans mais tu perds l'intégration avec l'OS. Dans ce cas là autant faire une bête appli web classique (et la qualité qui va avec). Ou alors tu utilises Cordova Qt mais dans ce cas autant aller plus loin que du mi-natif, mi-web avec Qt et du full-natif.

    Troisièmement Qt est déjà porté sur de nombreuses plateformes mobiles, à commencer par iOS et Android. Ta compatibilité mobile est là. Un minimum de choses à faire pour un maximum de compatibilité.

    Désolé du HS avec Go mais je ne pouvais pas ne pas réagir.
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2012
    Messages : 11
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par air-dex Voir le message
    ... Désolé du HS avec Go mais je ne pouvais pas ne pas réagir.
    Grosse réaction pour une bien petite phrase . Qt5 offre bien entendu plusieurs choix, entre widgets, QtQuick, et Webkit. J'ai parlé de Qt5/C++ (typo de la majuscule, my bad ) sans rentrer plus précisément dans les détails.
    J'imaginais ici plutôt une appli de type Webkit qui embarquerait le maximum de code HTML / CSS / JS, avec l'ajout de bridges JS/C++ (http://qt-project.org/doc/qt-5/qtwebkit-bridge.html) pour contrôler par exemple un QSystemTrayIcon, utile sur les plateformes Desktop. Cette manière de faire ne poserait probablement aucun problème de compatilibité mobile.
    Je pense typiquement à une application du type Wunderlist, qui existe pour le desktop, le mobile, et le web avec une interface à peu près similaire partout, mais avec une intégration native autant que possible.
    Sinon, pourquoi spécifiquement HTML5 plutôt que HTML ? Tout simplement parce que cette version est mieux pensée pour l'applicatif, et que dans le contexte d'une plateforme de communication, c'est quand même bien de disposer des tags <audio> et <video>, et des nouvelles APIs multimedia si on veut faire autre chose que du texte.

    Certes on est un peu HS ici, mais en ce qui concerne QtQuick, je vois que tu as un projet de client Twitter développé avec cette technologie. C'est vraiment bien ? Je m'y suis essayé un peu (je suis plutôt un habitué des widgets), mais je n'ai pas trop accroché. Y'a-t-il des exemples d'applications "connues" en QtQuick ?

    A part ça, pour parler un peu de Go, certains articles, tels que http://spectrum.ieee.org/computing/s...ming-languages semblent le placer parmi le top 20, ce qui n'est pas si mal, pour un langage jeune.
    Si seulement il avait un nom plus pratique pour les moteurs de recherche

Discussions similaires

  1. Windows 3.0 souffle sur sa vingt-cinquième bougie
    Par Stéphane le calme dans le forum Windows
    Réponses: 18
    Dernier message: 31/05/2015, 07h32
  2. JavaScript souffle sa 18e bougie
    Par Hinault Romaric dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 14/12/2013, 17h57
  3. Android souffle sur sa cinquième bougie
    Par Stéphane le calme dans le forum Actualités
    Réponses: 4
    Dernier message: 25/09/2013, 17h33
  4. WordPress souffle sa 10e bougie
    Par Stéphane le calme dans le forum Actualités
    Réponses: 11
    Dernier message: 08/06/2013, 15h04
  5. Ethernet souffle ses 40 bougies
    Par Cedric Chevalier dans le forum Actualités
    Réponses: 2
    Dernier message: 23/05/2013, 11h56

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