[EN] [IT]
[INFO] [ACQUÉRIR] [PLAN] [RESSOURCES]
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 nʼest pas une mince affaire, peut-être faut-il commencer par dissiper quelques craintes. Il nʼest pas besoin dʼêtre un génie pour programmer, ni dʼavoir 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 nʼa aucun moyen de raisonner par elle-même et dont vous pourriez dire quʼelle 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 dʼexé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 sʼexprimer que dans ce mode appelé binaire, car il nʼoffre que deux alternatives; donc la « langue » native dʼun ordinateur est ce langage binaire. Si nous devions employer ce langage pour communiquer avec lʼordinateur, nous deviendrions vite un peu fous ou très déprimés, cʼest 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 lʼordinateur, son processeur, attend des ordres, exécute des opérations, fait ce quʼon appelle des traitements. Cerveau est un bien grand mot, car le processeur ne pense pas, il nʼanalyse 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 quʼil ne fasse quoi que ce soit.

Le BASIC est un langage ancien - dans l'histoire de lʼinformatique - 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 dʼun « interprète » intégré qui analysait les phrases écrites par le programmeur et les traduisait en langage binaire compréhensible par la machine, dʼoù le terme BASIC interprété que vous avez peut-être déjà rencontré ici ou là. Lʼanalyse sʼeffectuait 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 lʼon a vite adressé au langage BASIC était justement sa lenteur. Aujourdʼhui, la traduction intégrale du programme en binaire est réalisée avant lʼexécution, et cʼest 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.

À lʼorigine, 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 dʼinstructions, 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 dʼentrer 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 nʼallons 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 à lʼintention 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 lʼacronyme de Beginners All-purpose Symbolic Instruction Code que lʼon pourrait traduire librement par code dʼinstructions symboliques pour tous usages à lʼintention des débutants. Ce langage du début de lʼère informatique a connu un énorme succès.

Lʼuniversalité du BASIC a été quelque peu malmenée avec lʼévolution inévitable des technologies et des systèmes dʼexploitation installés sur les machines. Par exemple, lorsque le BASIC est né, lʼinterface utilisateur était rudimentaire, il nʼy avait ni fenêtres, ni boutons ou autres éléments graphiques qui sont venus faciliter la vie du commun des mortels dans lʼutilisation 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 dʼautres 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 quʼil était convenu dʼappeler ‘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 aujourdʼhui, 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 lʼordinateur un ensemble dʼinstructions afin dʼaccomplir 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 dʼinstructions 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 dʼobjets (sa classe), par des attributs qui peuvent varier (par exemple une dimension, une couleur) et des méthodes (les fonctions quʼil sait exécuter, comme sʼafficher à 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
Le nom BASIC est en fait un ‘Backronymʼ comme disent les Anglais ; le nom existait déjà et on a cherché a donné un sens aux lettres ! Source : Eric S. Raymond, ‘The Hackerʼs Dictionaryʼ aka ‘The Jargon Fileʼ]

© 2000 Pix&Mix
Tous droits réservés

FutureBASIC est une marque déposée appartenant à Staz Software, Inc et utilisée avec permission.