• Go/Golang, la renaissance de ce blog...(?)

    French Go, la renaissance de ce blog

     

    Ce blog est en sommeil depuis presque plus d'un an déjà.... Pas trop de temps à y consacrer, pas de motivation particulière jusqu'à...

    ..jusqu'à ce jour où je viens de (re)-décourvrir Go (Golang), le langage créé (chez Google!) par Robert Griesemer, Rob Pike et Ken Thompson.

    Je suis depuis plusieurs années à la recherche du "langage idéal", multiplateforme, rapide, efficace, et permettant facilement de programmer des IHM pour applications Desktop.

    Je viens plutôt du C++/Qt, intéressant, pour ne pas dire une référence, mais le C++ reste une approche assez lourde et complexe.

    Je suis aussi passé par Python, qui présente beaucoup d'avantages (bibliothèque impressionnante couvrant beaucoup de domaines, grammaire plutôt simple) mais qui peut pêcher par son "manque d'efficacité" parfois.

    Go me permettra-t'il de me rapprocher du Graal ? Des éléments de réponses à cette question ne manqueront pas d'apparaître dans de prochains articles. :-)

    En attendant, voilà ci-dessous un extrait de l'article sur Go sur Wikipédia :

    Go veut faciliter et accélérer la programmation à grande échelle : en raison de sa simplicité, il est donc concevable de l’utiliser aussi bien pour écrire des applications, des scripts ou de grands systèmes. Cette simplicité est nécessaire aussi pour assurer la maintenance et l’évolution des programmes sur plusieurs générations de développeurs.

    S’il vise aussi la rapidité d’exécution, indispensable à la programmation système, il considère le multithreading comme le moyen le plus robuste d’assurer sur les processeurs actuels cette rapidité9 tout en rendant la maintenance facile par séparation de tâches simples exécutées indépendamment afin d’éviter de créer des « usines à gaz ». Cette conception permet également le fonctionnement sans réécriture sur des architectures multi-cœurs en exploitant immédiatement l’augmentation de puissance correspondante.

    Un des sites principaux de référence du langage go est https://go.dev/ .

    Un autre site relatif à Fyne, un ensemble de packages permettant la création d'IHM se trouve à l'adresse https://developer.fyne.io/index.html

    Pour plus de détails sur l'utilisation de Fyne, c'est ici

    Certes, ce langage a été créé chez Google, mais autant je suis en désaccord avec un certaine partie de leur politique, autant je ne peux que reconnaitre la qualité technique de ce qu'ils sont capable de créer ! Y'a que les c*ns qui ne changent pas d'avis...:-)

    Pour finir cet article de présentation et pour aborder les bibliothèques, je reprendrai ci-après une partie de la page Wikipedia que je vous invite à aller visiter...

    Bibliothèques

    Comme le C, Go exige d'indiquer quelles bibliothèques on utilisera. À la différence du C, il considère la compilation en erreur si cette bibliothèque n'est pas utilisée. Le compilateur Go ne contient en effet pas de messages d'avertissements par choix des concepteurs : « Il n'est pas indispensable de signaler ce qu'il ne serait pas indispensable de corriger ».

    Principales bibliothèques :

    • fmt fournit 19 fonctions de mise en forme des entrées-sorties dont Println, Print et Printf ;
    • fyne fournit une pléthore de widgets d'interface graphique utilisateur19, et est bien entendu multiplateforme : Windows, Mac, Linux, Android...
    • io fournit des procédures d'entrées-sorties elles-mêmes, dont ReadFull, Seek, WriteString...
    • math fournit un ensemble de fonctions mathématiques, telles que Min, Max, Sqrt, Log...
    • os interface le système, par exemple pour ouvrir et fermer des fichiers, dont OpenFile, ReadAt...
    • strings fournit une cinquantaine de fonctions traitant des chaînes de caractères ;
    • time fournit des outils de mesure des temps d'exécution, dont time.Now et time.Since().

    Les bibliothèques sont tantôt indépendantes, tantôt dépendantes. Il existe par ailleurs plusieurs façons de faire des choses similaires. Par exemple pour lire un fichier, on pourra utiliser ioutil.ReadAll, file.Read() ou bufio.NewScanner().

    On obtient la liste des bibliothèques depuis la ligne de commande par go list all.

     

    Pour jeter un coup d'oeil à la bibliothèque standard, c'est ici

    Suite de cette aventure dans les prochains articles...

    « pyFC V0.4 : Mise à jour de pyFC-GUI pour python 3.8Go - Un exemple basique »

  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :