Mon fils aîné Noah avait sept ans il y a trois mois. S'il avait pu échanger toute sa famille contre deux heures de jeu Minecraft, il l'aurait fait sans hésiter. Un autre amour de sa vie est Super Mario Maker. J'ai eu la chair de poule quand je l'ai vu jouer les niveaux que j'ai traversés à son âge. Il y a environ cinq mois, j'ai quitté ma famille pour le pèlerinage annuel à ludum dare: un concours de développeurs de jeux, au cours duquel nous nous enfermons dans un appartement avec des amis, retournons à l'état d'homme des cavernes, restons éveillés pendant 48 heures et créons un jeu fini à partir de zéro. Lorsque j'ai fièrement présenté mon jeu AAA révolutionnaire à ma femme, Noah s'est naturellement intéressé. Je lui ai donc fait découvrir le monde du code, lui ai montré comment créer un vrai jeu à partir de mots simples (il vient d'apprendre à lire). Depuis ce jour, Noah ne cesse de me demander de m'apprendre à créer mes propres jeux vidéo. Et au cours des cinq mois suivants, j'ai cherché le Saint Graal du langage / IDE pour les enfants, dans l'espoir de transformer cette étincelle d'intérêt en une expérience mémorable ...
Mes recherches m'ont conduit sur des forums sans fin, à travers lesquels j'ai essayé d'innombrables langues et plateformes recommandées : SmallBasic, Pico-8, Smalltalk, Scratch, etc. J'ai même posé les bonnes questions sur les oracles StackOverflow, mais en vain. Cinq mois plus tard, je suis arrivé à une conclusion décevante : rien n'est proche de ce que j'avais dans mes années. 30 ans plus tard, QBasic est toujours le meilleur langage pour les débutants en programmation.
"Mon Dieu, s'il te plaît, ne lui apprends pas à utiliser GOTO !"
10 PRINT " , ?!”
20 GOTO 10
Oui, QBasic est un langage procédural terrible. Il introduit un concept considéré comme nuisible par la plupart, utilise une syntaxe peu pratique pour les déclarations implicites, il n'est pas sensible à la casse, les index qu'il contient ne partent pas de zéro, et ainsi de suite, la liste est interminable... Lors du développement d'une compétence , il vaut bien mieux développer les bons réflexes dès le début que de corriger des années de mauvaise pratique. En suivant ce conseil, je devrais probablement commencer par les bases du langage Ruby que j'adore. Néanmoins, bien que la plupart de ces concepts soient considérés par la plupart des « drapeaux rouges » de QBasic, ils avaient à l'époque leur objectif : garder le langage simple et accessible ; ce principe a été abandonné par tous les autres langages au profit de la flexibilité, de la complexité et de la logique.
Aujourd'hui, j'ai installé QBasic sur le HP Stream 11 pouces de mon fils, l'installation devait se faire manuellement via DOSBox. Il a double-cliqué sur l'icône du bureau et une fraction de seconde plus tard, nous avons vu l'IDE nous accueillir avec un écran d'introduction qui m'a rappelé un tas de souvenirs :
Puis j'ai dit à Noah qu'il y a un rituel sacré que tout le monde dans le cercle secret des programmeurs doit avoir : commencer à apprendre avec un programme qui accueille tous les programmeurs du monde. Pendant que je dictais la formule, il cherchait lentement chaque touche, tapant soigneusement les mots magiques avec sa main droite :
PRINT "hello world"
il appuya sur F5 et fut étonné de voir comment son code était copié en texte affiché sur un écran noir. Il a souri, m'en a donné cinq, puis a noté le code dans son petit carnet pour référence future.
Nous avons appris quelques commandes supplémentaires : CLS, COLOR, PLAY, INPUT et IF. Rien n'avait besoin d'être expliqué : aucune complexité, aucun opérateur gênant, aucun concept abstrait, aucune documentation à apprendre, aucun concept objet/classe/méthode, aucun framework requis pour l'installation, aucune tonne de menus et de boutons dans l'IDE, aucun mot-clé spécial ou supports. C'était du code dans toute sa simplicité et sa forme les plus pures.
Moins d'une heure plus tard, il a écrit son propre programme - une application interactive et incroyablement sophistiquée qui vous dit ce que l'ordinateur pense de vous :
... que Noah a fièrement lancé pour son cousin et meilleur ami Christian :
... puis il a expliqué facilement comment cela fonctionne et à quoi sert le code !
C'est-à-dire qu'en seulement une heure, mon fils de sept ans a non seulement été capable d'écrire son premier jeu de texte, mais a également ressenti le plaisir et l'excitation qui surgissent lors de la création, de la compilation et de l'exécution de son propre programme. Points supplémentaires pour l'ajustement sur une page de cahier :
J'étais tellement contente qu'il comprenne pourquoi je dis constamment que j'ai le meilleur travail au monde.
La seule chose que je regrette maintenant, c'est que depuis plus de trente ans, nous n'avons pas été en mesure de proposer quelque chose de mieux pour les enfants : Qbasic a un ensemble limité de mots-clés simples (toute l'aide tient sur un seul écran, appelé par F1, et complété par exemples simples !), ne distrait pas le codeur avec des artefacts visuels, dispose d'un environnement de développement très compact et confortable, indique immédiatement les erreurs, compile et exécute le code en une fraction de seconde en appuyant sur une touche, et est également extrêmement simple. Nous avons construit des langages / frameworks / IDE plus robustes et complexes (qui sont essentiels pour toute application pratique, bien sûr), mais nous n'avons jamais trouvé de moyen plus simple d'accéder directement au plaisir de la programmation que QBasic . Même le lancement de QBasic aujourd'hui est devenu une tâche ardue pour les débutants.fonctionnant sur une machine Mac / PC / Linux moderne, bien qu'auparavant, il suffisait simplement d'insérer une disquette de 3,5 pouces dans le A: \ ...
Mais, au fait, assez de sermons, aujourd'hui nous devons célébrer la rencontre d'une autre personne avec les joies et la beauté de la programmation !
Hourra !
Publicité
Notre société propose des serveurs modernes à louer pour tout projet. Créez votre propre plan tarifaire en quelques clics, la configuration maximale bat des records - 128 cœurs CPU, 512 Go de RAM, 4000 Go NVMe !
Rejoignez notre chat Telegram .