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 langage de programmation Go gagne-t-il en popularité ? Il se hisse à la huitième place sur Tiobe


Sujet :

Go

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 599
    Points : 200 545
    Points
    200 545
    Par défaut Le langage de programmation Go gagne-t-il en popularité ? Il se hisse à la huitième place sur Tiobe
    Le langage de programmation Go gagne-t-il en popularité ? Il se hisse à la huitième place sur Tiobe
    sa position la plus élevée jamais atteinte sur l'indice

    Le langage Go de Google, ou golang, a atteint sa plus haute position dans l'indice de popularité des langues Tiobe. Ce langage, qui occupe désormais la huitième place dans l'indice de popularité des langages, est en progression depuis plusieurs années. Go, qui est probablement mieux connu comme le langage utilisé pour développer Docker et Kubernetes, s'est hissé dans le top 10 de l'indice Tiobe il y a un an, mais sa position actuelle est la plus élevée jamais atteinte.

    C'est en mars 2023 que Go a réintégré le top 10 de l'indice Tiobe. Paul Jansen, PDG de Tiobe, a alors faut ce commentaire :

    Go est entré dans le top 10 de l'indice TIOBE ce mois-ci. Les ingénieurs semblent aimer le langage de programmation Go. Qu'est-ce qui le distingue ? Go n'est pas révolutionnaire, mais sa force réside dans la combinaison des bonnes fonctionnalités. Il a une simultanéité et une récupération de place intégrées, est typé statiquement et a de bonnes performances. Le fait que Go soit soutenu par la société Google aide également. Cela améliore la confiance à long terme dans le langage. Des applications populaires telles que Docker et Kubernetes ont été développées à l'aide de Go. Go restera-t-il dans le top 10 ? C'est une question intéressante, car la position numéro 10 de l'indice TIOBE semble changer presque tous les mois.
    Ce mois-ci, Go a gagné des places dans le classement. Paul Jansen a rappelé comment Go a grimpé dans l'indice Tiobe après avoir été annoncé par Google en novembre 2009, en remportant le prix du langage de l'année décerné par Tiobe. Ce prix est décerné au langage qui a gagné le plus de popularité au cours d'une année donnée, mais dans le cas de Go, la popularité a été de courte durée. « De manière inattendue, l'engouement s'est rapidement estompé. En 2015, Go a atteint la position 122 dans l'index TIOBE et tout semblait perdu », a déclaré Jansen.

    Ce mois-ci, Go est entré dans le top 10 de l'indice TIOBE à la position 8. Il s'agit de la position la plus élevée jamais atteinte par Go. Lorsqu'il a été lancé par Google en novembre 2009, Go a connu un succès immédiat. C'était l'époque où tout ce que faisait Google était magique. Quelques années avant l'apparition de Go, Google avait lancé GMail, Google Maps et Google Docs. Aussi, lorsque Google a annoncé son premier langage, Go, la communauté des développeurs a été ravie. C'était le sujet de conversation de la ville. Après seulement deux mois d'existence, Go a remporté le prix TIOBE du langage de l'année. De manière inattendue, le battage médiatique s'est vite estompé. En 2015, Go a atteint la position 122 dans l'index TIOBE et tout semblait perdu. Un an plus tard, Go a adopté un cycle de publication très strict de "six mois" (soutenu par Google). À chaque nouvelle version, Go s'est amélioré. En parallèle, Docker et Kubernetes (tous deux écrits en Go) ont commencé à devenir très populaires à partir de 2016. Cela a permis de regagner la confiance dans Go. Aujourd'hui, Go est utilisé dans de nombreux domaines logiciels tels que la programmation back-end, les services web et les API. Grâce à son adoption croissante dans l'industrie, Go semble être un langage qui a les capacités de rester dans le top 10 de l'indice TIOBE pendant longtemps. Remarque secondaire intéressante : le tout dernier nouveau langage de Google, Carbon, est entré dans le top 100 pour la première fois ce mois-ci.
    Ci-dessous le top 10 des langages de programmation de Tiobe :

    Nom : top.png
Affichages : 49168
Taille : 28,6 Ko

    Jansen a déclaré qu'il s'attendait à ce que Go reste dans le top 10 de l'index pendant encore longtemps. La version 1.22 de Go, qui apporte des modifications aux boucles for, a été publiée le 7 février. Par ailleurs, dans la version de février de l'index Tiobe, le langage Carbon de Google, présenté comme le successeur de C++, a atteint le top 100 pour la première fois.


    Ce que préfèrent les développeurs Go

    L’équipe de Go a publié les résultats de son enquête semestrielle auprès des développeurs, fournissant des informations précieuses sur l’utilisation du langage de programmation Go et les défis auxquels sont confrontés les développeurs.

    Environnements de développement

    Comme les années précédentes, la majorité des personnes interrogées ont déclaré travailler avec Go sur les systèmes Linux (63 %) et macOS (58 %). De petites variations de ces chiffres d'une année à l'autre dépendent très probablement de qui trouve et répond à cette enquête (en particulier sur le blog Go), car l'équipe n'a pas observé de tendances cohérentes d'une année sur l'autre dans l'échantillon aléatoire provenant de VS Code.

    Pile technologique

    Les chiffres indiquent que Go est un langage destiné au développement moderne basé sur le cloud. En effet, 75 % des personnes interrogées travaillent sur un logiciel Go qui s'intègre aux services cloud. Pour près de la moitié des personnes interrogées, cela impliquait AWS (48 %) et près d'un tiers utilisaient GCP (29 %) pour leur développement et leurs déploiements Go. Pour AWS et GCP, l'utilisation est également équilibrée entre les grandes entreprises et les petites organisations. Microsoft Azure est le seul fournisseur de cloud qui est nettement plus susceptible d'être utilisé dans les grandes organisations (entreprises de plus de 1 000 employés) que dans les petites entreprises ; les autres fournisseurs ne présentent aucune différence significative d'utilisation en fonction de la taille de l'organisation.

    Les cas d'utilisation du ML/AI

    L'équipe a vu quelques cas d'utilisation de l'IA qui, selon environ la moitié des personnes interrogées, pourraient être utiles : générer des tests (49 %), suggérer les meilleures pratiques in situ (47 %) et détecter les erreurs probables au début du processus de développement (46 %). Un thème fédérateur de ces principaux cas d’utilisation est que chacun pourrait contribuer à améliorer la qualité et la fiabilité du code qu’un ingénieur écrit. Un quatrième cas d'utilisation (aide à la rédaction de documentation) a suscité l'intérêt d'environ 36% des personnes interrogées. Les cas restants constituent une longue liste d’idées potentiellement fructueuses, mais celles-ci présentent nettement moins d’intérêt général que les quatre premières.

    Nom : sept.png
Affichages : 11063
Taille : 70,2 Ko

    Quelques polémiques

    Go a eu son lot de polémiques. Parmi les sujets à controverse, Russ Cox, l'ingénieur de Google à la tête du développement de Go, a présenté une proposition qui a divisé les développeurs : activer la télémétrie dans Go par défaut. Cox a révélé la proposition sur GitHub. La télémétrie, comme le décrit Cox, implique qu'un logiciel envoie des données du logiciel Go à un serveur pour fournir des informations sur les fonctions utilisées et sur les performances du logiciel. Il soutient qu'il est avantageux pour les projets open source de disposer de ces informations pour guider le développement.

    Citation Envoyé par Russ Cox
    Comment les développeurs de logiciels comprennent-ils quelles parties de leur logiciel sont utilisées et s'ils fonctionnent comme prévu*? La réponse moderne est la télémétrie, ce qui signifie qu'un logiciel envoie des données pour répondre à ces questions à un serveur de collecte.

    Je pense que les projets de logiciels open source doivent explorer de nouvelles conceptions de télémétrie qui aident les développeurs à obtenir les informations dont ils ont besoin pour travailler de manière efficace et efficiente, sans collecter de traces invasives de l'activité détaillée des utilisateurs.

    J'ai écrit une courte série d'articles de blog sur une telle conception, que j'appelle la télémétrie transparente, car elle collecte le moins possible (kilooctets par an à partir de chaque installation) et publie ensuite chaque élément qu'elle collecte, pour inspection et analyse publiques.

    J'aimerais explorer l'utilisation de la télémétrie transparente, ou d'un système similaire, dans la chaîne d'outils Go, qui, je l'espère, aidera les développeurs de projets Go et les utilisateurs. Pour être clair, je suggère seulement que l'instrumentation soit ajoutée aux outils de ligne de commande Go écrits et distribués par l'équipe Go, tels que la commande go, le compilateur Go, gopls et govulncheck. Je ne suggère pas que l'instrumentation soit ajoutée par le compilateur Go à tous les programmes Go dans le monde : c'est clairement inapproprié.
    Bien que l'idée derrière la proposition ne soit peut-être pas mauvaise, l'idée actuelle prévue peut effrayer les développeurs, actuels ou potentiels, du langage de programmation Go dans tout projet futur. Il faut rappeler que la plupart des développeurs et utilisateurs open source sont notoirement opposés à la plupart des formes de télémétrie.

    Russ vise à introduire un concept de « télémétrie transparente » pour aider les projets open source à mieux comprendre le logiciel, en gardant à l'esprit la confidentialité. Dans ses billets de blog (une série de 3 articles), il mentionne que les sondages et les rapports de bogues sont insuffisants. Il est donc nécessaire d'introduire le moyen le plus simple de collecter des données sur l'utilisation d'une application (c'est-à-dire la télémétrie) tout en gardant les choses ouvertes à tous.

    Cela signifie que l'ensemble du processus de collecte des données, de la manière dont elles sont traitées et de ce qui en résulte, est ouvert à tous.

    La proposition actuelle prévoit d'ajouter la télémétrie avec une option de désactivation. En d'autres termes, la télémétrie est activée par défaut à moins que quelqu'un ne la désactive explicitement.

    D'où certaines réactions.

    « Cela devrait être désactivé par défaut », a écrit l'utilisateur Stolas. « Il n'y a aucune raison pour qu'une chaîne de développement ait un type de télémétrie activé par défaut. Ou, comme je comprends la nécessité qu'il soit activé par défaut, il devrait vérifier ce que l'utilisateur veut au premier démarrage ».

    « Je pense que proposer un opt-in est une meilleure solution que d'aller sur un opt-out », a ajouté l'utilisateur w3bb. « Les personnes qui refuseraient la télémétrie à une invite sont des personnes qui ne veulent pas de la télémétrie, rendre la vie de ces personnes plus difficile est vraiment mauvais, que ce soit intentionnel ou non ».

    Si de nombreux développeurs s'y sont opposés, quelques-uns l'ont soutenu.

    Nom : fili.png
Affichages : 10952
Taille : 37,5 Ko

    Pas représentatif du paysage TIC français

    L'indice TIOBE Programming Community est un indicateur de la popularité des langages de programmation. L'index est mis à jour une fois par mois. Les notes sont basées sur le nombre d'ingénieurs qualifiés dans le monde, les cours et les fournisseurs tiers. Les moteurs de recherche populaires tels que Google, Bing, Yahoo!, Wikipédia, Amazon, YouTube et Baidu sont utilisés pour calculer les notes. Il est important de noter que l'index TIOBE ne concerne pas le meilleur langage de programmation ou le langage dans lequel la plupart des lignes de code ont été écrites. L'index peut être utilisé pour vérifier si vos compétences en programmation sont toujours à jour ou pour prendre une décision stratégique sur le langage de programmation à adopter lors du démarrage de la construction d'un nouveau système logiciel.

    Il n'est donc pas indicateur de la réalité dans le monde de l'IT Pro francophone. Parmi les langages les plus demandés dans les offres d'emploi postées sur Developpez.com, Go occupait la onzième place.

    Nom : popularite.png
Affichages : 10950
Taille : 80,4 Ko

    Emploi informatique 2022 : les langages les plus demandés et les mieux payés
    Portail Emploi de Developpez.com
    Portail Go de Developpez.com

    Source : Tiobe

    Et vous ?

    Quel(s) est/sont votre/vos langage(s) de programmation préférez ? Pour quels types de projets l'utilisez/les utilisez-vous ?
    Que pensez-vous de Go ?
    Comment pouvez-vous expliquer son évolution dans le top 10 de l'index TIOBE ?
    D'ailleurs, que pensez-vous des méthodes d'évaluation de popularité de TIOBE ou des index concurrents ? Lesquelles trouvez-vous pertinentes et lesquelles le sont moins selon vous ? Pourquoi ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 63
    Points : 91
    Points
    91
    Par défaut Go est sous exploité et mal compris en France
    Je développe depuis des années avec le langage go. Actuellement c'est l'un des meilleurs langages que j'ai pu utiliser. Mais le fait est qu'en France il n'est pas assez reconnu. En France on aime le verbeux, le lourd, les gros IDE et rayonner en disant qu'on utilise un langage "d'entreprise" (ça n'a pas de sens, mais on aime ce terme).
    Je bataille depuis des années pour que les entreprises avec qui je travaille comprennent les tenants de travailler avec des langages actuels. Je sais que vous adorez Java mais les raisons qu'on me donne sont généralement biaisées ou absolument pas inhérent au langage.
    Il serait temps qu'on se penche sur Go et Python. Et même si je n'en suis pas fan, Rust.

    Ces langages permettent aujourd'hui une maintenance plus claire et augmente le "time to market". Ils ne sont pas non plus "jeunes" (go a plus de 15 ans, python a 30 ans) et sont donc ce qu'on appelle "éprouvés". Mais ils ont évolué avec le temps et se sont adaptés plus vite aux besoins actuels. Java est dans les choux en ce qui concerne le ML, il est trop lourd pour les micro services, et il est lent en compilation.

    Personnellement j'ai abandonné Java depuis plus de 15 ans.

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 302
    Points : 4 193
    Points
    4 193
    Par défaut
    Idem j'ai abandonné JAVA il y a une dizaine d'année quand Spring 3 & 4 étaient très pénibles à configurer. Pour moi ça a toujours été lent en compilation et lourd en mémoire (même s'il y a possibilité d'optimiser la JVM).

    Je n'ai pas essayé Go car je suis allé sur Rust même si je continue à faire du Python.
    Mais quand j'ai le choix pour installer des applications c'est : Natif (Rust, C, C++) > Go > Python, JS > PHP

    C'est dommage que le marché français soit dominé par JAVA et j'ai l'impression que Python recule un peu vu le mal que j'ai à retrouver du travail.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 806
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 806
    Points : 19 017
    Points
    19 017
    Par défaut
    Citation Envoyé par smarties Voir le message
    j'ai l'impression que Python recule un peu vu le mal que j'ai à retrouver du travail.
    Personne ose le dire clairement en France mais la France est aussi impactée sur le gel des recrutements de développeurs sauf pour les ingénieurs IA.
    Pas mal de directions sont en train d'essayer de remplacer les employés par l'IA, y compris les informaticiens.
    Certains informaticiens sont devenus beaucoup plus productifs grâce à l'IA, du coup inutile de faire grossir les équipes existantes.
    Donc résultat : gel des recrutements, sauf pour l'IA ou ça recrute en masse.
    Ne prenez pas la vie au sérieux, vous n'en sortirez pas vivant ...

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 828
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 828
    Points : 985
    Points
    985
    Par défaut
    Pour développer une application réseau cross-plateforme, ce langage est vraiment top. Dès que je peux, je l'utilise.
    Le gros soucis, c'est pour les application de bureau : à ma connaissance, il n'y a pas de bibliothèque native étoffée pour gérer la GUI... si ça existait, peut-être que le langage gagnerait en popularité.

    A comparer, je n'arrive toujours pas à comprendre comment Python a pu être aussi répandu : pour ma part, ce langage est imbuvable.

  6. #6
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 857
    Points : 7 176
    Points
    7 176
    Par défaut
    Bonjour,

    @boboss123,

    En ce qui concerne les applications de bureau et la gestion de l'interface utilisateur graphique (GUI) avec Go, avez-vous exploré les bibliothèques tierces disponibles, telles que Fyne, Gio, ou même l'utilisation de bindings pour des bibliothèques GUI C++ comme Qt avec therecipe/qt ? Bien que ces solutions ne soient pas "natives" au sens strict, elles peuvent offrir des chemins viables pour le développement de GUI avec Go.

    Concernant votre opinion sur Python, pourriez-vous préciser quels aspects du langage vous trouvez difficiles à digérer ? Est-ce la syntaxe, la gestion de la mémoire, la vitesse d'exécution, ou quelque chose d'autre ? Python est souvent loué pour sa simplicité et sa lisibilité, ainsi que pour sa vaste bibliothèque standard et son écosystème de packages tiers.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 828
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 828
    Points : 985
    Points
    985
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    En ce qui concerne les applications de bureau et la gestion de l'interface utilisateur graphique (GUI) avec Go, avez-vous exploré les bibliothèques tierces disponibles, telles que Fyne, Gio, ou même l'utilisation de bindings pour des bibliothèques GUI C++ comme Qt avec therecipe/qt ? Bien que ces solutions ne soient pas "natives" au sens strict, elles peuvent offrir des chemins viables pour le développement de GUI avec Go.
    Fyne, je le trouve trop limité (pas testé Gio mais il a l'air encore plus limité) : je voulais faire un tableau triable, contenant divers types d'éléments (boutons, liens hypertexte, liste déroulante, ...) et ce n'est pas gérable simplement (version testée il y a un peu plus d'un an). Pour le moment, je suis passé sur Electron via un binder mais j'aurai préféré un GUI natif (le temps de compilation d'Electron n'est pas négligeable et je n'aime pas devoir installer cinquante mille trucs pour que mon programme compile).

    Citation Envoyé par fred1599 Voir le message
    Concernant votre opinion sur Python, pourriez-vous préciser quels aspects du langage vous trouvez difficiles à digérer ? Est-ce la syntaxe, la gestion de la mémoire, la vitesse d'exécution, ou quelque chose d'autre ? Python est souvent loué pour sa simplicité et sa lisibilité, ainsi que pour sa vaste bibliothèque standard et son écosystème de packages tiers.
    Je déteste le système d'indentation à base de tabulation : qui peut vite engendrer des erreurs à cause de la possibilité de confondre avec des espaces.

    De plus Python permet d'écrire certains bouts de code d'une manière non intuitive sur une seule ligne (l'ordre des commandes à interpréter n'est pas le même que le sens de lecture) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    min = a if a < b else b
     
    fib = lambda x: x if x <= 1 else fib(x - 1) + fib(x - 2)
    ... certains trouvent ça élégant mais personnellement je trouve ça abominable, surtout quand tu dois faire de la relecture/analyse de code. Pourquoi vouloir ajouter ce genre de possibilité dans un langage ?... je trouve que ça complexifie inutilement le langage.

    Et 1 fois sur deux, quand j'ai essayé de mettre à jour une bibliothèque, ça ne voulait plus compiler à cause des dépendance : jamais eu ce problème en go... après je n'ai peut-être pas eu de chance.

    Je tiens à préciser que je ne n'ai fais que quelques petits programmes en Python, j'ai vite laissé tomber. J'ai l'habitude de coder en C et Javascript : l'apprentissage de Go a été assez simple (bien que j'ai encore surement pleins de choses à apprendre sur ce langage).

  8. #8
    Membre expert
    Profil pro
    programmeur du dimanche
    Inscrit en
    Novembre 2003
    Messages
    809
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : programmeur du dimanche
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 809
    Points : 3 460
    Points
    3 460
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    Je déteste le système d'indentation à base de tabulation : qui peut vite engendrer des erreurs à cause de la possibilité de confondre avec des espaces.

    De plus Python permet d'écrire certains bouts de code d'une manière non intuitive sur une seule ligne (l'ordre des commandes à interpréter n'est pas le même que le sens de lecture) :
    [...] Pourquoi vouloir ajouter ce genre de possibilité dans un langage ?... je trouve que ça complexifie inutilement le langage.
    [...].
    La 1ère ligne de code c'est pas bien pire qu'un opérateur ternaire. Faut pas en abuser mais c'est indispensable à la syntaxe des compréhensions de listes qui sont un atout du langage je trouve.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int a=1,b=2;
    int min= (a<b ? a:b);
    Les lambda c'est juste une fonction anonyme inline très limitée et c'est pas trop un point fort de python. ça peut servir pour des choses très simples si on a la flemme d'écrire une fonction...

    L'écriture par tabulation/espace, c'est des goûts. Je trouve que ça a crée un formatage du texte universel clair et les IDE gèrent ça très bien. Les accolades quand je déplace du code ça m'arrive d'en déplacer le mauvais nombre, alors qu'un bloc python j'ai pas besoin de guetter le changement de couleur des accolades.

    Python c'est bien pour l’écosystème riche, moins pour les dépendances et leur duck typing (autant on peut typer son code, autant le code de quelqu'un d'autre parfois le type d'objet attendu en argument est implicite et si on se trompe, l'analyseur statique ne voit pas d'erreur...

  9. #9
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 857
    Points : 7 176
    Points
    7 176
    Par défaut
    Citation Envoyé par boboss123
    Fyne, je le trouve trop limité (pas testé Gio mais il a l'air encore plus limité) : je voulais faire un tableau triable, contenant divers types d'éléments (boutons, liens hypertexte, liste déroulante, ...) et ce n'est pas gérable simplement (version testée il y a un peu plus d'un an). Pour le moment, je suis passé sur Electron via un binder mais j'aurai préféré un GUI natif (le temps de compilation d'Electron n'est pas négligeable et je n'aime pas devoir installer cinquante mille trucs pour que mon programme compile).
    Je comprends, effectivement ce cas de figure (tableau triable) n'est pas fait aisément...

    Citation Envoyé par boboss123
    Je déteste le système d'indentation à base de tabulation : qui peut vite engendrer des erreurs à cause de la possibilité de confondre avec des espaces.
    À l'aide d'un IDE et ses outils (linters), il est rare de se tromper, en tout cas, on a moins de chance que ça arrive que lors de l'utilisation d'un éditeur de textes "simple".

    Citation Envoyé par boboss123
    De plus Python permet d'écrire certains bouts de code d'une manière non intuitive sur une seule ligne (l'ordre des commandes à interpréter n'est pas le même que le sens de lecture)
    Il y a plein de manières d'écrire, celle-ci convient à des développeurs, mais vous développeur, écrivez ce qui vous semble plus intuitif, et c'est ça qui est je trouve sympa... Le fait que ça le permette, n'inclut pas l'obligation de l'écrire de cette manière.

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    minimum = min(a, b)

    et même des plus alembiqués

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    minimum = sorted([a, b])[0]

    pour fib
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def fibonacci(x):
        if x <= 1:
            return x
        else:
            return fibonacci(x - 1) + fibonacci(x - 2)

    Ce code est assez proche d'un code passe partout (C, C++, Ruby, ...).
    Bref, ce n'est pas le langage qui détermine la manière dont vous développez, c'est vous.

    Citation Envoyé par boboss123
    ... certains trouvent ça élégant mais personnellement je trouve ça abominable, surtout quand tu dois faire de la relecture/analyse de code. Pourquoi vouloir ajouter ce genre de possibilité dans un langage ?... je trouve que ça complexifie inutilement le langage.
    Comme vous dîtes, c'est personnel, en ce qui me concerne la lecture de codes fait parti de mon métier dans ce langage, ça ne me gêne pas, mais si c'était le cas, il est possible d'utiliser l'interpréteur pour se rendre compte de l'objectif de la ligne de code.
    Se sont les développeurs qui complexifient la lecture, mais comme vous dîtes, certains trouvent cela intuitif et lisible.
    Certaines fois les one-liners sont justifiés car ils permettent d'ajouter un peu de perf à l'exécution, mais rarement, car la différence n'est pas très significative.

    Citation Envoyé par boboss123
    Et 1 fois sur deux, quand j'ai essayé de mettre à jour une bibliothèque, ça ne voulait plus compiler à cause des dépendance : jamais eu ce problème en go... après je n'ai peut-être pas eu de chance.
    Peut-être un manque de chance, ce que j'aime dans ce langage, c'est que les messages d'erreur sont explicites et clairs, et que la communauté importante aide souvent à résoudre...

    Citation Envoyé par boboss123
    Je tiens à préciser que je ne n'ai fais que quelques petits programmes en Python, j'ai vite laissé tomber. J'ai l'habitude de coder en C et Javascript : l'apprentissage de Go a été assez simple (bien que j'ai encore surement pleins de choses à apprendre sur ce langage).
    Le C et JavaScript ne prennent pas en compte l'indentation (ce qui n'empêche pas d'indenter), ça peut jouer sur votre avis concernant l'indentation mais c'est pas incompatible... Imaginez vouloir un code propre en C, vous souhaiterez sans doute indenter pour le rendre lisible... Python oblige à l'indentation pour démarquer chaque bloc (suite à la terminaison d'une ligne par le caractère :). Par habitude, on sépare de cette manière :

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class FileText:
        def __init__(self, path: str | None = None) -> None:
            self.path = path
     
        def read_content(self) -> str:
            if not self.path or not os.path.isfile(self.path):
                raise FileNotFoundException(path=self.path)
     
            with open(self.path, "r") as f:
                content = f.read()
     
            return content

    On voit qu'une fois le bloc terminé, souvent on laisse une ligne vide pour séparer chaque bloc avec la suite du code.
    C'est dommage d'avoir laissé tomber Python, car en ce qui concerne la syntaxe, beaucoup de choses se rapprochent du Go

    En conclusion c'est une affaire de goût, pour avoir fait du Python, C, C++ et Java, je pense que j'ai à peu près la même idée que vous sur une syntaxe comme Rust, je peux donc très bien comprendre votre point de vue. Nos cerveaux fonctionnent tous de manière différentes ce qui fait que l'on en a pour tous les goûts .
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 828
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 828
    Points : 985
    Points
    985
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    que la communauté importante aide souvent à résoudre...
    C'est un peu le point noir de go, la communauté n'est pas aussi grande que celle de Python... j'espère qu'avec le temps, ce défaut se gommera.

    Peut-être qu'avec le temps, j'aimerai un jour Python

  11. #11
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2020
    Messages : 2
    Points : 3
    Points
    3
    Par défaut wails.io
    Citation Envoyé par boboss123 Voir le message
    Pour développer une application réseau cross-plateforme, ce langage est vraiment top. Dès que je peux, je l'utilise.
    Le gros soucis, c'est pour les application de bureau : à ma connaissance, il n'y a pas de bibliothèque native étoffée pour gérer la GUI... si ça existait, peut-être que le langage gagnerait en popularité.

    A comparer, je n'arrive toujours pas à comprendre comment Python a pu être aussi répandu : pour ma part, ce langage est imbuvable.
    Salut boboss ! pour le bureau tu peux regarder du côté de https://wails.io c'est le même principe que electron mais en beaucoup plus léger et rapide. Ca génère un binaire autonome qui embarque webkit2gtk sous Linux.
    Sinon il y a un moment il y avait flutter/go (https://github.com/go-flutter-desktop/go-flutter) mais ca a l'air aussi mort que therecipe/qt ...

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 828
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 828
    Points : 985
    Points
    985
    Par défaut
    Citation Envoyé par fredix69 Voir le message
    Salut boboss ! pour le bureau tu peux regarder du côté de https://wails.io c'est le même principe que electron mais en beaucoup plus léger et rapide. Ca génère un binaire autonome qui embarque webkit2gtk sous Linux.
    Sinon il y a un moment il y avait flutter/go (https://github.com/go-flutter-desktop/go-flutter) mais ca a l'air aussi mort que therecipe/qt ...
    Je suis passé justement sur Wails cette semaine car je me suis aperçu que le binder Electron (go-astilectron) n'est plus maintenu. C'est pas mal, les outils de debug sont plus évolués, juste dommage que la cross-compilation Windows vers Linux ne fonctionne pas.

  13. #13
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    607
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 607
    Points : 671
    Points
    671
    Par défaut
    Go est un langage qui peut remplacer le C, mais pas un autre.

    Les entreprises essayent un projet en Go, aujourd'hui. Mais je doute qu'elles en fassent deux.

    C'est un langage qui n'est pas fini : dès qu'on a besoin de quelque-chose, il n'est pas là : les collections Set, Tree, Vector, etc. par exemple.
    Il y a très très peu de choses proposées par Go nativement. Il faut aller chercher sur Internet ce qui manque, dans des projets open source ayant peu de contributeurs souvent, peu actifs, ou en version 0.x, dont on ne sait rien de la fiabilité, de la pérénité et à la fin ou se retrouve avec un go.mod plein de v0.0 qui ne donne pas confiance. À moins d'écrire soi-même à la main ce que les développeurs de Go n'ont pas fourni. Et dans un projet professionnel, eh bien, on a pas le temps pour écrire le Tree[T] from scratch.

    Il est plein d'incohérences, plein de lourdeurs. Sa gestion des erreurs est d'une nullité à en mordre les murs, en particulier.
    Les temps de développements par rapport à un projet Java en Go sont multipliés au moins par deux, de mon expérience.

    Sa communauté est un de ses plus gros obstacles.
    Elle est de très loin la pire que j'ai côtoyée : vaniteuse et intolérante.

    Pour ma part, Go est un langage de programmation que je ne recommanderai pas.

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/10/2022, 12h30
  2. TIOBE : le langage de programmation Go de Google gagne en popularité
    Par Coriolan dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 15/10/2016, 17h39
  3. [Questions]Le langage de programmation Binaire existe t-il ?
    Par Nasky dans le forum Langages de programmation
    Réponses: 30
    Dernier message: 16/11/2012, 09h09
  4. Création d'un langage de programmation
    Par liquid_stone dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 09/11/2003, 16h44
  5. Nombre de langage de programmation total
    Par Adrael dans le forum Langages de programmation
    Réponses: 16
    Dernier message: 22/07/2003, 00h06

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