GNU/Linux Magazine Hors-série N°
Numéro
63

Apprenez à programmer en Go !

Temporalité
Novembre/Décembre 2012
Image v3
Apprenez à programmer en Go !
Article mis en avant

Résumé

La première version stable du langage Go a été publiée en mars de cette année. Il s'agit donc du langage le plus récent disponible pour une utilisation en production et comme avec tout nouveau langage, de nombreuses questions se posent. À quoi sert-il ? Pourquoi encore un langage différent ? Le projet est-il pérenne ? Comment l'utiliser ? Ce premier article tente de répondre à ces questions.

Dans ce numéro...


Après avoir installé le compilateur, voici venu le temps des premiers tests et du classique « Hello world ». Pour ces premiers tests, nous allons focaliser notre attention sur la syntaxe de base, la manière d'écrire du code et la compilation. Notre point d'entrée pour ces tests sera un petit programme « Hello world » que nous ferons évoluer et qui nous permettra d'introduire, de manière basique, quelques notions qui seront approfondies plus tard, dans d'autres articles. Le compilateur est installé et fonctionnel : en avant pour le grand saut.
Les structures de contrôle sont essentielles pour pouvoir programmer : sans la possibilité d'effectuer des branchements logiques à l'aide de structures de test ou la possibilité de répéter des instructions, impossible de développer quoi que ce soit...
L'une des activités principales de la programmation consiste à manipuler des données stockées en mémoire et accessibles sous forme de variables. Encore faut-il savoir ce que peuvent contenir ces variables...
Nous utilisons constamment des chaînes de caractères, que ce soit pour afficher des messages ou rechercher des informations dans un fichier texte. Il est donc important de maîtriser parfaitement la manipulation de ces objets.
Qui dit manipulation de données en mémoire, dit adresse mémoire. Et qui dit adresse mémoire, dit pointeur, la bête noire de nombreux développeurs amateurs ou étudiants. Démystifions la croyance populaire qui veut que le pointeur soit le mal personnifié...
La variété et la simplicité (ou non) d'utilisation des structures dites complexes font qu'un langage sera plus ou moins apprécié des développeurs. Go propose trois structures... Il reste à voir si l'on peut les utiliser sans difficulté.
Les fonctions permettent d'écrire un code réutilisable et paramétrable. Ça, tout le monde le sait. Mais chaque langage propose sa vision des fonctions, offrant de petites subtilités qui peuvent paraître anodines, mais qui le sont en fait rarement... Go ne déroge pas à la règle.
Inutile d'encombrer la mémoire des machines avec du code qui ne sera jamais utilisé. Pour « étendre » Go, on utilise les paquetages qui vont permettre d'effectuer des actions de plus haut niveau, sans avoir à réinventer la roue (éventuellement carrée...). Si le domaine sur lequel on souhaite intervenir n'a pas encore été traité par un paquetage, nous aurons la possibilité de créer le nôtre.
La majorité des langages modernes sont des langages orientés objet. Nous n'avons jusqu'à présent utilisé que de la programmation impérative en Go. Peut-on développer en utilisant une architecture orientée objet ? Si un article entier est présent dans ce hors-série, vous devez vous douter de la réponse. Mais peut-être serez-vous surpris par la mise en œuvre et la conclusion...
Un code ne s'exécute pas toujours correctement. Cela est d'autant plus vrai lorsque l'utilisateur peut saisir des données ou que des données sont lues dans des sources externes. Il faut alors indiquer proprement qu'une erreur est apparue.
Que l'on souhaite conserver des données après l'exécution d'un programme ou obtenir des informations issues d'un autre programme ou d'un quelconque dispositif électronique, la manière la plus simple de faire sera de passer par des fichiers.
Les décennies passent et ne se ressemblent vraiment pas. Il n'y a pas si longtemps, un code qui fonctionnait était un code qui donnait un résultat. Heureusement pour nous, depuis, le monde a bien changé et les tests sont devenus importants. Dans cet article, nous allons voir ce que le Go propose à ce niveau-là.
La plupart des langages vous proposent leur mécanisme de mise en place des traitements concurrents. Thread, fork, coroutines sont des moyens possibles pour faire cela. Dans ce domaine, le Go innove et vous propose une nouvelle façon de mettre en place la concurrence : les goroutines.
GTK+, nom issu de GIMP Toolkit, est une bibliothèque permettant de réaliser des interfaces graphiques (elle est utilisée dans GIMP, GNOME, etc.).
Pour accéder à un SGBD (Système de Gestion de Bases de Données), il faut forcément un driver capable d'établir un dialogue entre le code et la base.
Nous allons voir un exemple de développement web en Go pur. Il est toutefois assez fastidieux de développer un projet web sans framework. Python dispose de l'excellent Django, en PHP on peut utiliser Symfony, avec Ruby il y a Rails, ... et en Go ? Go propose notamment go-start. Bien sûr, chaque langage ne dispose pas d'un unique framework et il faut faire un choix à un moment donné. go-start me paraît être le meilleur choix actuellement, sachant qu'aucun framework Go n'est disponible en version stable. Il s'agit d'un framework MVC (Modèle-Vue-Contrôleur), disposant d'un système de paquetages additionnels, dont les modèles sont définis à l'aide de simples structures et qui utilise une base de données « NoSQL » MongoDB comme base par défaut. Comme avec toute version instable, attendez-vous à rencontrer quelques problèmes si vous l'utilisez, notamment au niveau de la documentation que l'on ne peut même pas qualifier d'incomplète, car ça signifierait qu'il en existe une... Vous aurez tout juste accès à la godoc des paquetages. Voilà pourquoi nous allons rester sur un exemple de développement sans framework.
Go fournit un paquetage standard permettant de récupérer et de traiter des arguments passés depuis la ligne de commandes (on parle souvent de mode CLI pour Command Line Interface).

Magazines précédents

Ne quittez plus vos serveurs des yeux !
GNU/Linux-Magazine Hors-série N°62
Ne quittez plus vos serveurs des yeux !
Créez vos applications Android comme un pro !
GNU/Linux-Magazine Hors-série N°61
Créez vos applications Android comme un pro !
20 Recettes pour développer vos applications Android
GNU/Linux-Magazine Hors-série N°60
20 recettes pour développer vos applications Android
ZEND Framework 2
GNU/Linux-Magazine Hors-série N°58
ZEND Framework 2
Carnet de Root
GNU/Linux-Magazine Hors-série N°57
Carnet de Root

Les derniers articles Premiums

Les derniers articles Premium

La place de l’Intelligence Artificielle dans les entreprises

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

L’intelligence artificielle est en train de redéfinir le paysage professionnel. De l’automatisation des tâches répétitives à la cybersécurité, en passant par l’analyse des données, l’IA s’immisce dans tous les aspects de l’entreprise moderne. Toutefois, cette révolution technologique soulève des questions éthiques et sociétales, notamment sur l’avenir des emplois. Cet article se penche sur l’évolution de l’IA, ses applications variées, et les enjeux qu’elle engendre dans le monde du travail.

Petit guide d’outils open source pour le télétravail

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Ah le Covid ! Si en cette période de nombreux cas resurgissent, ce n’est rien comparé aux vagues que nous avons connues en 2020 et 2021. Ce fléau a contraint une large partie de la population à faire ce que tout le monde connaît sous le nom de télétravail. Nous avons dû changer nos habitudes et avons dû apprendre à utiliser de nombreux outils collaboratifs, de visioconférence, etc., dont tout le monde n’était pas habitué. Dans cet article, nous passons en revue quelques outils open source utiles pour le travail à la maison. En effet, pour les adeptes du costume en haut et du pyjama en bas, la communauté open source s’est démenée pour proposer des alternatives aux outils propriétaires et payants.

Sécurisez vos applications web : comment Symfony vous protège des menaces courantes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les frameworks tels que Symfony ont bouleversé le développement web en apportant une structure solide et des outils performants. Malgré ces qualités, nous pouvons découvrir d’innombrables vulnérabilités. Cet article met le doigt sur les failles de sécurité les plus fréquentes qui affectent même les environnements les plus robustes. De l’injection de requêtes à distance à l’exécution de scripts malveillants, découvrez comment ces failles peuvent mettre en péril vos applications et, surtout, comment vous en prémunir.

Bash des temps modernes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les scripts Shell, et Bash spécifiquement, demeurent un standard, de facto, de notre industrie. Ils forment un composant primordial de toute distribution Linux, mais c’est aussi un outil de prédilection pour implémenter de nombreuses tâches d’automatisation, en particulier dans le « Cloud », par eux-mêmes ou conjointement à des solutions telles que Ansible. Pour toutes ces raisons et bien d’autres encore, savoir les concevoir de manière robuste et idempotente est crucial.

Body