Le royaume de Eric Buist >> Mon visage révélé | ||
Me contacter | Plan du site | |
Ma passion | Ma déficience visuelle >> |
J'ai eu ma première machine à l'âge de neuf ans environ. C'était un vieil ordinateur en noir et blanc, sans véritable système d'exploitation, exception faite d'un interpréteur de commandes stocké dans une mémoire immuable de la machine. Cette antiquité m'a toutefois poussé à commencer la programmation. Mon premier programme ne faisait que répéter un mot un nombre infini de fois! Après, j'ai appris à faire en sorte que le programme réagisse en fonction des entrées de l'utilisateur.
La deuxième machine, arrivée peu de temps après, était un antique Coco 2! Ce dinosaure, qui se branchait à un téléviseur, ne pouvait afficher que quatre couleurs et fonctionnait avec un lecteur de cassettes: un magnétophone tout à fait ordinaire devait être branché à un port de l'ordinateur. Pour charger un programme dans la mémoire de la vieillerie, il fallait insérer une cassette contenant le programme, la rembobiner manuellement à l'endroit voulu, utilisant pour cela les sons caractéristiques aux données binaires et une liste des programmes contenus sur la cassette. Puis on appuyait sur le bouton de lecture et le magnétophone se mettait en attente. Il fallait ensuite taper une commande sur le clavier de l'ordinateur. Le magnétophone se mettait alors en marche et avec un peu de chance, l'écran affichait OK après un temps fou! Avec un peu de malchance, le message IO Error apparaissait et il fallait recommencer le chargement! Ce système primitif permettait aussi l'enregistrement sur cassettes de programmes Basic ou machine.
J'ai continué à programmer en Basic avec cet ordinateur qui avait ses avantages. Premièrement, le démarrage était instantané, le langage de programmation était intégré dans la mémoire morte, donc pas besoin d'acheter un logiciel à part et il était possible, sans carte d'extension, d'enregistrer sur vidéo-cassette l'action d'un jeu. C'est sur cette machine que j'appris les commandes permettant d'afficher des objets comme des lignes, des cercles, etc., et les animer. J'appris aussi à ordonner à la machine de produire du son et un peu de musique. J'examinai pour cela plusieurs programmes que j'avais à ma disposition sur cassettes.
Sans ce Coco 2, ma passion ne serait peut-être pas née, car les 386 auraient vite pu me repousser. J'oubliais que le Coco 2 ne possédait pas de souris; l'interface fonctionnait par ligne de commande, sous un interpréteur Basic.
À la fin de 1992, j'ai eu en main mon premier PC: un 486 DX33. Bien entendu, le nombre de couleurs, la mémoire, le disque dur et les possibilités ont augmenté de beaucoup. La machine était pourvue du système d'exploitation Windows 3.1, mais les jeux fonctionnant sous DOS dans ce temps-là, j'ai vite appris les commandes DOS plutôt que l'utilisation de Windows. C'est seulement quelques temps plus tard que j'ai commencé à découvrir Windows, mais pendant longtemps, je préférai rester sous DOS puisque c'était le système qui se présentait à moi au démarrage et je le trouvais plus rapide et facile à utiliser que Windows 3.1, après en avoir appris les commandes bien entendu.
J'ai expérimenté QBasic (pauvre de moi!), mais je me suis vite heurté à ses sévères limitations dont la principale est de ne pas pouvoir générer de fichiers exécutables indépendants du logiciel. Mon premier vrai langage de programmation fut le Pascal, avec le compilateur Turbo Pascal 6 de Borland. J'ai aussi vu la version 7 de ce même logiciel, puis plus tard j'ai appris le langage C/C++. J'ai utilisé Turbo C++ de Borland comme premier compilateur pour C/C++. Dans ce temps-là, je voulais créer des jeux vidéos, mais jamais je ne suis parvenu à un résultat concluant. Tous mes programmes se sont écroulés, étant construits sans grande méthodologie.
Finalement, de plus en plus, je voulais programmer pour l'interface graphique Windows puisque de plus en plus de programmes étaient conçus pour cet environnement. Mon premier logiciel de programmation pour Windows fut une version incomplète de Borland Pascal 7. Le logiciel fonctionnait, mais il manquait l'éditeur de ressources, la clé pour créer des boîtes de dialogue. Il a fallu que je fasse l'acquisition de Turbo C++ pour Windows pour pouvoir programmer en Windows un peu plus sérieusement.
Plus tard, je mis la main sur Microsoft Visual C++ 4, puis la version 5 de ce même logiciel, et un peu plus tard la 6, ce qui me permit de passer dans le monde 32 bits. La programmation Windows a au moins l'intérêt de nous libérer des contraintes de l'ordinateur, telles la diversité du matériel, la structure en segments de la mémoire gérée par le processeur et bien entendu elle évite d'avoir à programmer une interface graphique manuellement, avec ses boutons, ses menus, etc., depuis le début.
Mon intérêt a commencé à vaciller avec l'arrivée de Windows 95. Ce système d'exploitation, installé sur mon 80486, rendit la machine si lente qu'il fallut finalement la changer pour un Pentium 150. La création de programmes devenait de plus en plus complexe avec le temps et peu de logiciels s'avéraient d'un grand intérêt. Certains offraient des possibilités ahurissantes, mais je tombais vite sur un bobo qui ôtait tout le charme. Par exemple, le logiciel CorelDraw! est certes un outil puissant, mais il n'est pas gratuit si bien que suivre son évolution est coûteux.
L'informatique semblait de plus en plus évoluer vers une direction qui s'éloignait de mes intérêts. Tout bon logiciel ne semblait fonctionner qu'à la souris ou bien ne pas fonctionner du tout! L'accès à Internet fit émerger bon nombre de ces logiciels! Souvent des versions de démonstration très limitées, elles cessaient de fonctionner après un certain temps ou s'avéraient trop limitées.
Le «plaisir» dura jusqu'à l'été 1999 durant lequel je m'étais mérité un stage chez VisuAide, une compagnie fabriquant des produits adaptés pour les aveugles et déficients visuels. Après six semaines de bogues, à la fin de mon stage, je connus le système d'exploitation Linux, parvins à mettre la main dessus et l'installai sur mon portable. Linux ne faisait pas partie de mon stage lui-même. C'est plutôt en manifestant une curiosité à l'égard de ce système, utilisé par quelques employés, que j'ai réussi à en obtenir une copie.
Un tout nouvel éventail de possibilités s'ouvrit alors à moi. Le monde du logiciel libre m'ouvrait toutes grandes ses portes: que ce soient LaTeX, GCC, Gimp, Emacs, des merveilles se cachaient là. Des bogues, il y en eut, encore plus qu'autrefois, mais aussi des découvertes. Certains logiciels qui, autrefois, me déçurent amèrement évoluèrent vers des produits tout à fait fantastiques. Par exemple, StarOffice passa d'un suite bureautique aux fonctionnalités très partielles, sans possibilité d'imprimer de façon fiable, à OpenOffice.org, un excellent produit capable de rivaliser avec la suite Office de Microsoft. De même, Netscape pour Linux, un produit bourré d'anomalies avec des menus difficiles à utiliser devint Firefox, le navigateur Web le plus populaire. De plus, beaucoup de ces logiciels développés sous Linux sont aussi, de nos jours, disponibles en version pour Windows. Ils sont ainsi disponibles pour tous.
Aujourd'hui encore, Linux et le logiciel libre m'en font découvrir davantage. Certains logiciels se révèlent d'une inestimable puissance, d'autres s'avèrent inutiles. Malgré les problèmes divers qui la menacent, ma passion pour l'informatique subsiste, envers et contre tous!
Durant l'été 2003, je suis parvenu à conquérir, du moins partiellement, la dimension matérielle de l'informatique. Grâce à quelques sites Web, le bon livre Upgrading and Repairing PCs de Scott Mueller et un peu de courage, je suis parvenu durant cet été à effectuer moi-même des mises à jour matérielles à l'intérieur de mon ordinateur. Une bonne connaissance théorique de la structure de la machine m'a permis, malgré ma déficience visuelle qui pourrait m'empêcher de remarquer un élément clé, de mener la mise à jour avec succès; la machine fonctionnait toujours bien après l'opération! C'était le jour où j'avais installé de la mémoire et un nouveau disque dur! En début 2006, j'ai même tenté de monter une machine au complet, le Salvator, et y suis parvenu.
Grâce à mes études universitaires, j'ai également exploré des facettes plus théoriques de l'informatique. En particulier, j'ai appris les éléments fondamentaux de l'architecture d'un ordinateur. Les cours de structures de données et d'algorithmique m'ont fourni des outils pour résoudre des problèmes de programmation qui, dans ma jeunesse, faisaient obstacle à la réussite de projets personnels. Un cours sur les systèmes d'exploitation me permit d'aborder Linux sous un tout nouvel angle, de mieux comprendre ce qui se passe sous le capot.
Pendant mes études supérieures, j'ai encore affiné cette vision théorie. J'ai aussi développé un esprit d'analyse qui est nécessaire pour réussir à concevoir des logiciels plus costauds que de simples programmes affichant quelques boîtes de dialogue pour demander quelques choses simples à l'utilisateur et réagir de façon simpliste. J'ai aussi affiné mes connaissances mathématiques, notamment en statistique, en modèles stochastiques et en simulation. Les mathématiques sont fondamentales en informatique pour développer de nouveaux algorithmes ou ne serait-ce que pour analyser et comparer les algorithmes existants afin de choisir le bon ou de décider de façon éclairée s'il faut en inventer un nouveau.