| CHAPITRE
|
APPRENDRE
À PROGRAMMER AVEC FUTUREBASIC
|
NOTES
|
| Introduction |
Leçon 1 : Introduction
aux leçons de programmation avec FB^3 Débuter des cours de programmation nest pas une mince affaire, peut-être faut-il commencer par dissiper quelques craintes. Il nest pas besoin dêtre un génie pour programmer, ni davoir de sérieuses connaissances en mathématiques. Bien sûr, si vous possédez ces deux qualités vous serez très certainement aidé, mais elles ne sont pas indispensables; toutefois, logique et méthode sont nécessaires parce que vous allez devoir vous adresser à une machine qui na aucun moyen de raisonner par elle-même et dont vous pourriez dire quelle est bête comme ses pieds. Il faut pourtant reconnaître que la programmation de nos jours est pour un débutant autrement plus compliquée qu'aux heures glorieuses des débuts de l'informatique. Il ne faut pas se décourager, des concepts peuvent mettre des mois, voire des années avant d'être assimilés sans que cela n'empêche de réaliser des programmes dignes d'intérêt. D'autres qualités ou traits de caractère peuvent rendre cette expérience très satisfaisante et pour tout dire vraiment plaisante malgré le long apprentissage qu'elle requiert. L'inventivité; le goût de la découverte; celui du travail bien fait; le sens de l'efficacité; l'assiduité; voilà des facteurs qui vous feront progresser très vite, mais il ne faut pas omettre non plus un esprit ludique et ouvert ainsi qu'une petite dose d'humilité. Programmer revient à demander avec précision à votre ordinateur dexécuter des tâches diverses et variées, selon vos besoins ou votre bon plaisir. En règle générale, un programme accepte des informations en entrée (on parlera souvent de données), les manipule et produit le résultat de ses traitements sur un périphérique de sortie (écran, disque dur, imprimante, etc.). Les données en entrée peuvent provenir de diffférentes sources comme d'un fichier externe, de l'utilisateur lui-même, du système d'exploitation, d'une autre application en train de faire ses propres traitements ou encore d'un périphérique d'entrée (par exemple un clavier, un scanner, un appareil photo numérique, un séquenceur MIDI, etc.) Votre rôle en tant que programmeur est de définir précisément les traitements à effectuer sur les données que vous devez intercepter en répondant le plus efficacement possible aux desiderata de l'utilisateur de votre application et finalement de produire le résultat correspondant à ses légitimes attentes. La plupart du temps, une application n'est en fait qu'une interface entre l'homme et la machine et vous devez l'envisager comme un outil suffisamment maléable pour s'adapter à toutes les mains. Cette considération d'ordre général pourrait vous sembler superflue, elle est toutefois si importante qu'il est bon de la rappeler, n'oubliez pas qu'une application si performante soit-elle sera vite délaissée par les utilisateurs au profit d'outils plus simples à mettre en uvre quand bien même auraient-ils moins de fonctionnalités. La performance et l'efficacité ne sont pas équivalentes en programmation, ce qui ne les empêche pas de se marrier au besoin, et vous devez d'abord penser à votre utilisateur final. Moralité, vous allez devoir apprendre rapidement à vous enrichir de l'expérience des autres programmeurs et aussi de celle des utilisateurs béotiens en informatique. Bon, vous voilà armé de quelques conseils pour affronter votre micro-ordinateur et ses principes de base. La machine contient une grande quantité de circuits électroniques qui ne comprennent que deux états : ouvert ou fermé, allumé ou éteint, blanc ou noir, oui ou non. Heureusement, notre compréhension va bien au-delà et notre langage, à nous humains, offre plus de nuances pour représenter la réalité qui nous environne. La machine quant à elle ne peut comprendre et ne peut sexprimer que dans ce mode appelé binaire, car il noffre que deux alternatives; donc la « langue » native dun ordinateur est ce langage binaire. Si nous devions employer ce langage pour communiquer avec lordinateur, nous deviendrions vite un peu fous ou très déprimés, cest la raison pour laquelle nous utilisons des langages de programmation dits évolués qui se chargent de rendre cette conversation plus humaine. Le cerveau de lordinateur, son processeur, attend des ordres, exécute des opérations, fait ce quon appelle des traitements. Cerveau est un bien grand mot, car le processeur ne pense pas, il nanalyse pas, il se contentera de faire ce que vous lui direz de faire et il le fera rapidement. Mais en réalité, il faut lui dire beaucoup de choses avant quil ne fasse quoi que ce soit. Le BASIC est un langage ancien dans l'histoire de linformatique qui permet aux êtres humains décrire et ainsi de donner des instructions en utilisant une petite quantité de mots courants de la langue anglaise, pour faire exécuter par la machine des tâches diverses. Les anciens BASIC disposaient dun « interprète » intégré qui analysait les phrases écrites par le programmeur et les traduisait en langage binaire compréhensible par la machine, doù le terme BASIC interprété que vous avez peut-être déjà rencontré ici ou là. Lanalyse seffectuait ligne à ligne, et lorsqu'un programme devait exécuter 100 fois la même ligne d'instruction, il devait l'analyser et la traduire autant de fois. Le processus prenait du temps et un reproche que lon a vite adressé au langage BASIC était justement sa lenteur. Aujourdhui, la traduction intégrale du programme en binaire est réalisée avant lexécution, et cest un programme appelé compilateur qui se charge du travail. Un compilateur ne se contente pas uniquement de faire une traduction mot à mot, il tente de rendre les ordres à exécuter plus efficaces, ce processus est appelé optimisation. On dit que le compilateur génère du code exécutable par opposition au code source qui est le texte des instructions que vous avez rédigé. La qualité du code exécutable généré et son optimisation dépendent à la fois des aptitudes du programmeur en grande partie mais aussi de celles du compilateur dans une moindre mesure. À lorigine, le BASIC se voulait un langage accessible et facilement assimilable. Son succès lui a conféré un caractère quasiment universel, et pendant longtemps aucun ordinateur digne de ce nom nétait livré sans son BASIC. La simplicité du langage et de ses mots-clés ne dépendait pas du type de machine sur laquelle le programme allait être exécuté. Eh oui, voilà autre chose, chaque processeur dispose de son propre jeu dinstructions, on pourrait dire son dialecte, si bien que deux machines avec des processeurs différents requièrent des interprètes spécialisés. Le BASIC, comme à peu près tous les langages de programmation évolués, dispense le programmeur dentrer dans ce genre de considération. Bien entendu, parler directement la langue du processeur permet de produire des applications beaucoup plus efficaces et rapides, mais il faut bien le dire, au prix d'un effort presque surhumain. Sachez cependant que FutureBASIC vous permet de communiquer dans le dialecte du processeur en vous permettant décrire dans votre code source des portions de code exécutable dans un langage appelé assembleur dont les instructions assez obscures sont directement comprises par le processeur. FutureBASIC dispose d'un jeu d'instructions pour les processeurs 68000 de Motorola et d'un jeu d'instructions pour les processeurs PowerPC. Nous nallons pas entrer dans ce domaine qui nous entraînerait beaucoup trop loin, mais gardez juste quelque part en mémoire que cette option est disponible à lintention des programmeurs de haut-niveau. Le BASIC se veut quant à lui un langage principalement destiné aux débutants. On se plaît d'ailleurs à voir dans son nom lacronyme de Beginners All-purpose Symbolic Instruction Code que lon pourrait traduire librement par code dinstructions symboliques pour tous usages à lintention des débutants. Ce langage du début de lère informatique a connu un énorme succès. Luniversalité du BASIC a été quelque peu malmenée avec lévolution inévitable des technologies et des systèmes dexploitation installés sur les machines. Par exemple, lorsque le BASIC est né, linterface utilisateur était rudimentaire, il ny avait ni fenêtres, ni boutons ou autres éléments graphiques qui sont venus faciliter la vie du commun des mortels dans lutilisation quotidienne des micro-ordinateurs. Par ailleurs, le BASIC était techniquement affublé de quelques faiblesses et beaucoup de programmeurs ont délaissé ce langage avec le temps pour aller voir dautres horizons. Sur la plate-forme Macintosh, FutureBASIC a su très tôt maintenir la vitalité du langage en le faisant évoluer de manière considérable, balayant les reproches qui étaient généralement adressés au BASIC (comme son manque de structuration par exemple, qui donnait lieu à ce quil était convenu dappeler la programmation spaghetti) tout en maintenant la tradition ancestrale (eh oui, on peut toujours écrire du code comme il y a 20 ans). Les techniques de programmation ont évolué également et aujourdhui, la programmation orientée objet semble avoir pris le pas sur la programmation procédurale. Mais en quelques mots quelle est la différence entre ces deux types de programmation ? Traditionnellement la programmation consiste à faire exécuter par lordinateur un ensemble dinstructions afin daccomplir des tâches précises. Les instructions sont exécutées dans un ordre logique (procédure) et elles manipulent des données pour fournir le plus souvent un résultat (fonction). Ces séquences dinstructions portent le nom de routines ou sous-routines ou même encore fonctions. Au moment où une ligne de code du programme invoque une routine, des valeurs peuvent lui être transmises (ce sont les paramètres de la fonction). Programmer se résume alors à appeler des fonctions en leur envoyant des paramètres ayant des valeurs dépendant de divers autres facteurs dans le programme. La programmation-objet a cassé ce modèle : un objet est défini par son appartenance à une famille dobjets (sa classe), par des attributs qui peuvent varier (par exemple une dimension, une couleur) et des méthodes (les fonctions quil sait exécuter, comme safficher à lécran par exemple). Programmer dans ce cas-là revient plus à créer des objets, à converser avec eux ainsi que, parfois, les laisser converser entre eux... eh oui ! Il y a des partisans pour chaque méthode et nous n'allons pas entrer dans un débat stérile pour le moment, car FutureBASIC^3, malgré une première tentative avortée d'introduire la programmation objet dans sa panoplie, n'offre pour le moment qu'une seule possibilité; à savoir : la programmation procédurale dont nous parlerons exclusivement ici. [Precédent] [Table des Matières] [Suivant] |
B.A.S.I.C |
|
FutureBASIC est une marque déposée appartenant à Staz Software, Inc et utilisée avec permission. |
||