Mon premier langage de programmation et mes premières aventures

Il y a quelques jours, les contributeurs d’Opensource.com ont été invités à partager nos histoires personnelles sur la façon dont nous nous sommes lancés dans la programmation. De nombreuses réponses divertissantes et fascinantes ont été soumises. Il serait intéressant de quantifier ces données dans le temps. Des modèles intrigants ont émergé. La génération des années 70 était nostalgique du Fortran, des cartes perforées et de l’accès commuté aux mainframes partagés. Les enfants des années 80 (parmi lesquels je qualifie) ont partagé des histoires de C, BASIC ou Pascal et de leurs ordinateurs Atari et Commodore bien-aimés. Étonnamment, peu d’histoires des années 90 sont arrivées. Presque comme s’il y avait un fossé entre les générations. Peut-être que les adolescents fuyaient avec horreur C++, MFC et la redoutable notation hongroise, qui était à l’ordre du jour. Puis il y a un étrange silence de la plus jeune génération. Peut-être que nos jeunes passionnés de Raspberry Pi sont trop occupés à faire des choses.
Voici plus sur mon chemin vers la programmation.
Mon premier langage de programmation
Mon premier langage de programmation était Microsoft BASIC. Je l’ai appris sur le puissant PC domestique MSX SpectraVideo 738. La norme MSX était une architecture d’ordinateur domestique basée sur le processeur Z80. Développé dans les années 80 par Microsoft, il a été produit par Sony, Philips, Pioneer, Sharp, Yamaha et de nombreux autres fournisseurs. Mon pays d’origine est la Pologne, et nous étions encore sous le régime communiste et coupés de la technologie informatique moderne en raison des sanctions économiques à notre encontre. Mais le vent du changement est arrivé à la fin des années 80, et le MSX Spectravideo est arrivé dans mon école.
J’étais étudiant à l’époque, donc je n’étais pas payé. J’étais tellement fasciné par la programmation que je serais prêt à me payer pour le plaisir. Heureusement, toutes les écoles et universités étaient gratuites à cette époque. Imaginez que vous commenciez votre carrière informatique sans aucune dette ! J’ai commencé pendant mes premières années de lycée, en 1988 en Pologne. J’avais les cheveux longs, je jouais de la guitare, j’écoutais Black Sabbath et j’espérais avoir un groupe de rock un jour, tout en manquant d’ordinateurs. Et j’avais un ami, que j’appellerai M. Briefcase. Il était un autre étudiant, et aussi un intello informatique avec une réputation. Il entra un jour dans la pièce et demanda Comment ça va? Il a dû m’écouter un moment, parce que le polonais sera vous dire comment ils sont, si vous le demandez. Il a ensuite dit: « Hé, je vais au labo informatique. Tu peux me rejoindre. Il n’y a personne aujourd’hui à part moi. J’ai sauté avec enthousiasme : « Toute la soirée ? Il a répondu: “Bien sûr. Je serai occupé, mais tu peux jouer à des jeux et tout ça.”
Lorsque nous sommes entrés dans le laboratoire pour la première fois, cela ressemblait à un centre de commande Star Destroyer de Star Wars. Le matériel suivant était disponible :
- Un magnifique clone d’IBM PC, Spectravideo SVI-838 xPress-16 avec un excellent clavier clickety – aucun clavier mécanique moderne n’a encore été capable de reproduire cette expérience. Malheureusement, c’était interdit aux nouveaux arrivants comme moi.
- ZX Spectrums—Je n’aimais pas trop ceux-ci, car ils ressemblaient à des jouets avec leurs claviers caoutchouteux.
- Ordinateurs futuristes MSX SVI-738 avec écrans couleur et imprimantes matricielles Seikosha.
Le choix était fait. J’ai joué un moment mais je me suis vite lassée. J’ai demandé à M. Briefcase :
Moi: Alors qu’est-ce que tu fais ?
Mallette: Programmation.
Moi: Comment tu fais ça?
Mallette: Ici.
Et il m’a jeté un manuel.
Bonjour le monde
J’ai couru à travers le “bonjour le monde!” exemples, puis je suis tombé sur un chapitre sur l’infographie. Il s’est avéré que notre MSX avait des capacités graphiques impressionnantes. Après une heure de lutte avec l’anglais, qui m’était encore étranger, le voilà : mon premier programme informatique fonctionnel, écrit en BASIC. J’étais ravie, abasourdie et complètement accro. Je pourrais commander à cet appareil informatique de faire des choses. Belles choses. Des choses complètement stupides. Des choses ennuyeuses. Et il les ferait tous, sans hésiter, ligne après ligne, ne répondant que parfois avec Syntax error!
C’était de la pure magie ! Dès le lendemain, je me suis inscrit au laboratoire informatique.
Infographie
Dans les mois qui ont suivi, je me suis beaucoup amusé avec l’infographie. Ces machines étaient étonnamment efficaces pour éduquer les jeunes à l’informatique. La programmation d’un interpréteur de langage était le seul moyen d’interagir avec lui. Il a démarré et vous deviez entrer des commandes pour faire quoi que ce soit d’utile. Si vous étiez assez curieux, vous vous demanderiez inévitablement : y a-t-il d’autres commandes ? Au final, vous vous êtes laissé entraîner dans la programmation sans même le savoir. Le seuil d’entrée était si bas.
Par exemple, pour dessiner un cercle à l’écran, il me suffisait de :
- Démarrez l’ordinateur et attendez quelques secondes. Oui, cela n’a pris que quelques secondes pour démarrer !
- Écrivez
10 CIRCLE 100
,100
,50
et appuyez sur ENTRER. Oui, nous avons dû numéroter les lignes nous-mêmes. - Écrivez
run
et appuyez sur ENTRER.
Il y avait une simplicité de programmation à cette époque. Aujourd’hui, vous avez des choix à faire avant d’écrire une seule ligne de code. Vous devez choisir votre plateforme de développement (web, desktop, les deux), votre langage de programmation, votre framework, etc.
Bien sûr, il y a toujours des choix à faire, mais cela semble plus simple lorsque vous n’avez besoin que de quelques ressources et lorsque votre ordinateur n’a que 64 Ko de mémoire, comme d’habitude sur les machines 8 bits. Pour vous donner une idée de l’échelle, une seule icône de bureau haute résolution sur ma boîte Linux Pop_OS peut être plus grande que cela. Pourtant, dans cette minuscule mémoire, il pourrait exécuter un système d’exploitation et un compilateur de niveau universitaire. Il pourrait exécuter des programmes graphiques avec une animation de sprite et une détection de collision sans faille. Il jouerait des pistes de percussions via un générateur de bruit programmable. Je dois admettre que je sais que c’est possible mais je sais à peine par où commencer avec ce genre d’activités aujourd’hui.
Pascal et au-delà
Mon MSX avait un lecteur de disquettes 3,5″—une chose incroyable de nos jours. Un jour, nous avons reçu des disquettes avec le système d’exploitation CPM 2.2 et un Compilateur TurboPascal 3.0. C’est ainsi que j’ai goûté à mon premier vrai langage de programmation, tout en évitant de m’exposer davantage au BASIC. Turbo Pascal était magnifique : expressif, concis, sûr et structuré. Il existe une théorie anecdotique expliquant pourquoi les programmeurs d’Europe centrale et orientale ont des compétences si précieuses. Dans les pays occidentaux, C et C++ étaient à l’ordre du jour, pleins de bizarreries et d’idiosyncrasies amusantes. Ici, nous avons commencé avec Pascal. C’était un langage de programmation de choix dans les écoles et les universités. Les différences entre ces deux sont substantielles, et la théorie est qu’elles ont câblé nos jeunes esprits d’une manière sensiblement différente.
Pascal était beaucoup plus discipliné que C, et c’était aussi “près du métal” que possible. Pascal avait des pointeurs, des opérations de mémoire directe et même asm ... end
bloc pour l’injection de code assembleur. Pourtant, les pointeurs n’étaient pas lancés partout comme ils le sont en C, et les attaques par débordement de tampon via des chaînes terminées par null étaient inexistantes. Les chaînes en Pascal ne sont qu’un tableau de caractères et seule la première entrée contient la longueur de chaîne explicite. Simple! Il avait également un système de modules approprié, des bibliothèques précompilées, un contrôle de type strict et un compilateur ultra-rapide en plus de cela.
Turbo Pascal a eu un impact énorme sur ma façon de penser lors de la programmation. Finalement, il a implémenté la programmation orientée objet et m’a préparé en douceur aux architectures logicielles complexes et à la programmation sous Windows avec Borland Delphi. J’ai touché au C et au C++ seulement quand je n’avais pas d’autre choix.
Des décennies plus tard, j’ai réalisé que toute ma carrière, j’ai inconsciemment suivi les traces de Anders Hejlsberg. Lui et son équipe ont été les créateurs d’une gamme très réussie de compilateurs Turbo chez Borland. Ensuite, ils ont créé Delphi, qui était un soulagement pour les programmeurs Windows aux prises avec les livres Visual Basic, WFC, MFC, Charles Petzold et la notation hongroise. Après Borland, il a continué chez Microsoft et a créé .NET, dans lequel j’ai sauté avec plaisir. Enfin, il a créé TypeScript, qui est devenu l’épine dorsale du développement Web d’entreprise moderne.
Aujourd’hui, je suis occupé à concevoir et à développer de grandes applications Web pour les entreprises. JavaScript et TypeScript sont à l’ordre du jour, avec des back-ends fonctionnant sur NodeJS, .NET ou Python et écrivant de petits utilitaires et scripts avec Python et Bash, et se débattant avec les complexités du cloud computing et YAML. Après toutes ces années, j’aime toujours le frisson. Je ne peux pas imaginer un travail plus satisfaisant qui continue de me mettre au défi et qui ne devient jamais ennuyeux et ennuyeux.