Cela fait un certain temps que vous êtes fasciné par le monde de l'informatique et vous pensez sérieusement à faire un pas décisif pour ce qui est de vos connaissances : apprendre à programmer. L'idée de créer vous-même une application fonctionnelle, juste pour la satisfaction de le faire ou pour entreprendre un projet plus important, vous fascine maintenant : le dé est jeté et la décision est prise, mais vous êtes encore un peu hésitant car vous n'avez pas la moindre idée de la façon de créer un programme. Vous ne le croirez peut-être pas, mais vous êtes au bon endroit à un moment qui ne pourrait pas être meilleur : ci-dessous, en effet, vous découvrirez toutes les informations dont vous avez besoin pour aborder le monde de la programmation, comprendre comment naît un programme et, pourquoi pas, créer votre première application à partir de rien. Avant de poursuivre, il faut d’abord noter que : le monde de la programmation est pour le moins illimité, il existe des milliers de scénarios et d'approches différents et les traiter tous serait presque impossible. Mais ne vous découragez pas, car vous trouverez dans ce guide tout ce qu'il faut savoir pour faire vos premiers pas : une fois que vous aurez fini de lire et assimilé les bases, l'imagination et l'expérience vous accompagneront dans cette aventure !

Qu'est-ce qu'un programme informatique ?

Avant d'entrer dans le vif du sujet, ci-dessous quelques informations théoriques qui vous aideront à mieux comprendre les étapes futures de ce guide : en pratique, un programme est une entité informatique capable de traiter des données et d'automatiser des opérations. Par exemple, il existe des programmes capables d'élaborer des textes (comme Word), d'effectuer des calculs (comme la Calculatrice Windows), de permettre la navigation sur Internet (comme les navigateurs) et ainsi de suite. Un programme, selon la tâche pour laquelle il est conçu, peut-être plus ou moins simple : pour vous donner un exemple, même les systèmes d'exploitation, conçus pour permettre à l'utilisateur d'interagir avec la "partie physique" d'un ordinateur par le biais de logiciels dédiés, sont eux-mêmes des programmes. Le fonctionnement d'un programme est presque toujours basé sur un mécanisme très précis, que l'on appelle un algorithme : avec cette dernière définition, on entend les étapes nécessaires pour transformer une donnée ou une série de données "d'entrée" en une donnée ou une série de données "de sortie". Dans le cadre de la programmation, les étapes ci-dessus sont exprimées sous la forme d'instructions, ou d'instructions, données par le biais d'un langage de programmation : l'ensemble des instructions d'un programme est appelé flux d'exécution, et c'est ce qui permet de traiter les données d'entrée pour les transformer en ce que vous voulez réaliser.

Les étapes de la création d'un programme informatique

Maintenant que vous avez compris la définition d'un programme, il est temps de vous mettre au courant de la manière dont un programme est développé au fil du temps. Cela peut vous sembler étrange, mais même un programme a un véritable cycle de vie, structuré en au moins quatre phases : conception, mise en œuvre, test, diffusion et mise à jour. Vous trouverez ci-dessous les détails de chaque phase de ce cycle de vie.

Design

La conception d'un programme est la première phase de son cycle de vie, et la plus importante : c'est là que sont définis les objectifs du programme, le type de données qu'il doit traiter, et la manière dont il doit le faire. Si vous devez imaginer un programme comme s'il s'agissait d'une maison, la phase de conception est celle où l'architecte (ou l'équipe d'architectes) dessine son projet sur papier, définissant sa forme, sa structure et son emplacement. La phase de conception, généralement, est celle gérée par les ingénieurs de l'équipe de développement : pour vous donner quelques exemples, il y a ceux qui s'occupent de définir le type de données à traiter, ceux qui s'occupent de développer l'algorithme avec lequel gérer les données elles-mêmes, ceux qui s'occupent d'étudier les conditions critiques (c'est-à-dire les événements qui ne devraient pas se produire, mais qui pourraient le faire) et, pourquoi pas, aussi ceux qui s'occupent de concevoir l'apparence graphique idéale du programme. Toutes ces "idées", pour l'instant purement abstraites, sont généralement reportées sur des diagrammes ou des graphiques développés selon des normes conventionnelles (par exemple en utilisant le langage UML) et doivent être approuvées par l'ingénieur en chef. À ce stade, on choisit également le langage de programmation qui sera utilisé pour développer le logiciel. Une fois l'approbation reçue, tout le matériel est transmis aux programmeurs, qui se chargent de la phase de mise en œuvre.

Mise en œuvre

La phase d'implémentation est celle où, en fait, le programme réel prend vie : un ou plusieurs programmeurs y participent (dans ce dernier cas, l'équipe est coordonnée par un programmeur en chef), chargés d'écrire dans un ou plusieurs fichiers l'ensemble des instructions qui forment le flux d'exécution du programme. Les instructions sont écrites à l'intérieur d'un ou plusieurs fichiers de texte brut, éventuellement enfermés dans un éditeur spécifique ou dans un environnement de développement intégré (en jargon IDE) complet : ces éléments fournissent au programmeur des outils utiles pour simplifier le travail, par exemple la possibilité de compléter automatiquement les instructions, de suggérer des variables ou, encore, de définir des morceaux de code à rappeler avec des combinaisons précises de clavier. L'ensemble des fichiers contenant les instructions écrites en langage de programmation est appelé code source du programme. Au cours de l'exécution, les parties "intermédiaires" du code source sont compilées pour être "traduites" en langage machine et exécutées : de cette façon, le programmeur est en mesure de tester la qualité de son travail et de vérifier que le programme se comporte correctement. Une fois la rédaction de l'ensemble du code source terminée, celui-ci est compilé pour être exécuté par le système d'exploitation, devenant ainsi un véritable programme (comme ceux que vous avez l'habitude d'utiliser sur votre ordinateur) : une fois la phase de mise en œuvre terminée, le résultat peut subir une nouvelle phase de test ou être directement diffusé au public.

Essais

La phase de test, à certains égards, peut être considérée comme la phase la plus "amusante" du cycle de vie d'un programme : en effet, dans cette phase, les figures spéciales de l'équipe (les soi-disant testeurs) ont pour tâche de provoquer volontairement des dysfonctionnements ou des conditions critiques non gérées dans le programme, afin de révéler les bugs (c'est-à-dire les erreurs de programmation) et de permettre aux développeurs d'y remédier. Les catégories de tests auxquels un programme peut être soumis sont vraiment nombreuses et peuvent tester différents aspects de celui-ci : même si cela peut vous sembler étrange, la phase de test est extrêmement importante pour la qualité d'un programme, car c'est dans cette phase que les erreurs éventuelles résultant des phases précédentes sont mises en évidence. Si vous souhaitez en savoir plus, revoyez-vous à l'entrée exhaustive de Wikipédia qui traite de ce sujet en détail. Dans certains cas, la société de logiciels peut décider de demander de l'"aide" aux utilisateurs finaux auxquels le programme est destiné, en publiant une version incomplète à des fins de test : on parle alors de version alpha ou bêta du logiciel. L'utilisateur final est invité à tester le programme et à signaler tout problème au fabricant : dans le jargon, cette procédure s'appelle le retour d'information. À la fin de la phase de test, deux choses peuvent se produire : si le programme présente des problèmes, ceux-ci sont signalés à l'équipe de développement, qui les résout en modifiant et en mettant à jour le code source. Si, au contraire, le programme ne présente aucun problème, il obtient le feu vert pour la phase de lancement.

Libération/mise à niveau

La phase de lancement d'un programme est celle où le programme est soit distribué au public, gratuitement, soit mis à disposition pour l'achat, si le logiciel est conçu pour fonctionner après l'achat d'une licence. Pour les besoins du marché, ou pour la simple évolution des temps, l'éditeur de logiciels peut décider d'ajouter de nouvelles fonctionnalités au programme, de modifier son aspect graphique ou de changer sa dynamique en tout ou en partie : dans ce cas, une nouvelle version du programme est projetée et passe par tout le cycle de vie. Lorsque le code source mis à jour passe la phase de test, il est soit rendu public, soit publié en tant que mise à jour du logiciel original. Un programme termine son cycle de vie lorsque l'entreprise qui l'a créé cesse de le mettre à jour, l'abandonnant à lui-même : une fois le développement interrompu, on dit que le programme n'est plus soutenu (discontinué).

Langages de programmation informatique

Comme mentionné précédemment, le langage de programmation est l'ensemble des règles syntaxiques et logiques utilisées pour structurer les instructions dans le code source d'un programme. L'utilisateur final du logiciel, c'est-à-dire la personne qui l'utilise tous les jours pour la production, peut n'avoir aucune idée du langage de programmation utilisé pour développer le logiciel lui-même, mais vous devez savoir que tous les langages ne sont pas identiques : certains sont mieux adaptés à la construction de programmes qui fonctionnent à partir de la ligne de commande, d'autres sont mieux adaptés à la gestion d'interfaces graphiques, d'autres encore sont exclusivement dédiés au traitement des calculs, à la conception de jeux, etc. Ci-dessous, une liste (très limitée, étant donné qu'il en existe des centaines) des langages de programmation les plus populaires et les plus connus disponibles aujourd'hui.
  • Java : est un langage de programmation orienté objet extrêmement connu qui se prête à un très grand nombre d'utilisations. Sa force réside dans sa flexibilité : les programmes en Java peuvent être exécutés, simplement en installant un logiciel supplémentaire (appelé environnement d'exécution Java ou JRE), à partir de n'importe quel système d'exploitation de bureau. Une chose peut vous surprendre : la majeure partie du système d'exploitation Android est écrite en Java.
  • C : un autre langage extrêmement connu. C est un langage de programmation qui date de 1972, il est de nature procédurale et s'applique à pratiquement tout type de scénario. Ce n'est pas un langage orienté objet (bien que son successeur, le C, le soit) et cela le rend légèrement plus difficile que Java, mais cela le rend adaptable à un immense nombre d'applications pratiques. Il suffit de dire que le noyau Linux, ainsi que le noyau Android, sont entièrement écrits en C.
  • C# : malgré ses similitudes syntaxiques avec le C, il est plutôt spécifique à l'interface graphique Windows, aux programmes connexes et aux applications basées sur le cadre .NET. Bien qu'il soit la propriété de Microsoft, C# est devenu open source en 2014.
  • Visual Basic : est un autre langage de programmation appartenant à Microsoft, utilisé pour créer des logiciels avec une interface graphique et dédié aux systèmes d'exploitation Windows. À ce jour, Visual Basic a été intégré au cadre .NET.
  • Delphi : successeur de Pascal, ce langage de programmation est principalement utilisé pour le développement de logiciels de gestion dédiés à la gestion de grands volumes de données, mais qui ne nécessitent pas d'interfaces graphiques complexes.
  • Objective C/Swift : ce sont les langages de programmation avec lesquels les applications sont créées pour les systèmes d'exploitation macOS, iOS, watchOS et tvOS d'Apple.
  • R : est un langage de programmation utilisé pour traiter des données complexes, principalement pour des calculs statistiques ou des opérations de calcul graphique.
  • MATLAB : un autre langage de programmation dédié au calcul mathématique, il est largement utilisé pour traiter les opérations basées sur les matrices.
  • Assemblage : est un langage de programmation de bas niveau qui est proche du véritable code machine (ce que le processeur peut "comprendre"). Il est généralement utilisé pour la conception de contrôleurs et de pilotes de périphériques.
Dans la section suivante, vous allez voir comment concevoir une calculatrice simple en langage C, que vous pouvez utiliser à partir de l'invite de commande ou du terminal sur macOS/Linux.

Création d'un programme informatique

Si vous êtes arrivé jusqu'ici, cela signifie que vous avez appris toutes les notions théoriques sur la programmation et que vous êtes enfin prêt à vous mettre au travail. Bien entendu, dans cette section, vous allez apprendre à créer un programme très simple, non destiné à une distribution "globale", et qui n'a donc pas besoin de passer par toutes les étapes expliquées précédemment. Il se limitera à construire un petit fichier de code source et à le compiler en utilisant le compilateur le plus approprié. En quelques mots, dans cette phase, vous apprendrez à créer une simple calculatrice en C, que vous pourrez utiliser à votre guise via l'Invite de commande de Windows ou le Terminal de macOS/Linux. Ces derniers systèmes d'exploitation sont déjà configurés pour gérer les fichiers C ; en ce qui concerne Windows, en revanche, vous devez installer le composant Visual Studio Community. Pour procéder, connectez-vous au site web dédié, cliquez sur le bouton Free Download situé dans la boîte Visual Studio Community. Ensuite, ouvrez le fichier téléchargé (par exemple vs_Community.exe), cliquez sur le bouton Continuer, cochez la case Développement d'applications de bureau avec C dans la fenêtre qui apparaît, puis dans la case Support C /Cli située à droite et, enfin, cliquez sur le bouton Installer. Lorsque le processus est terminé, fermez la fenêtre du fichier d'installation. Maintenant que vous avez tous les outils nécessaires, il est temps de développer le code source de votre programme en utilisant les instructions les mieux adaptées à votre système d'exploitation. Pour commencer, créez le fichier qui contiendra le code source de l'une des manières suivantes. Une fois que vous avez ouvert l'éditeur de texte qui convient le mieux à votre système d'exploitation (par exemple Notepad pour Windows, XCode pour macOS ou Gedit pour Linux), tapez le code suivant (exactement comme indiqué ci-dessous). On a décidé d'inclure dans le source une courte description de chaque déclaration : les descriptions ne seront pas lues par le compilateur, puisqu'elles sont précédées de symboles // (en argot, ce sont des commentaires). Une fois que vous avez collé tout le texte, enregistrez le fichier que vous avez créé précédemment, puis fermez l'éditeur en toute sécurité. À ce stade, vous pouvez procéder à la compilation du programme en utilisant les instructions les mieux adaptées à votre système d'exploitation. Dans ce chapitre du tutoriel, vous avez déjà vu comment créer un programme très simple sans interface graphique, mais la puissance des différents langages de programmation est illimitée et il est possible de créer des logiciels avec une interface graphique : tout dépend de la compétence et de l'imagination des concepteurs et des programmeurs.