mercredi 28 septembre 2011

Le monde méconnu et fascinant des outils de programmation à la portée de tous


Je souhaite revenir sur une excellente présentation de Bernard OURGHANLIAN, l'affable et pédagogue Directeur Technique de Microsoft France, qu'il présenta aux Microsoft TechDays 2010.

Lors de ce show, il a rappelé ce que fut l'histoire des outils de développement informatique, depuis le Cobol, le Pascal, le Basic, le C, le Lisp, le C++, jusqu'aux langages du Web (Html, Java, etc...).
Il a souligné qu'il y a 30 ans, dans les années 80, les enfants et ados se passionnaient pour le développement qui était également enseigné à l'école, comme l'anglais.
Mais alors qu'aujourd'hui, l'informatique est partout, cet engouement a mystérieusement disparu. Les jeunes « consomment » désormais de l'application sans connaître ou imaginer le code qui se cache derrière. La notion même de développement, de langage de développement a été oubliée pour le profane. Un peu comme si la population connaissait les bibliothèques et leur littérature... mais que l'écriture, l'imagination et la construction d'histoires écrites, avaient été oubliées.

Or l'histoire des outils de développement est pourtant jalonnée de fabuleux outils mettant à la portée de tous une programmation vraiment simplifiée.

Comme Bernard OURGHANLIAN, je pense que ces outils sont primordiaux car ils créent une passerelle entre les « penseurs », qui imaginent.... et les « implémenteurs », qui développent. Un enfant ou un ado peut facilement « construire » une application informatique (sinon un jeu) et le fait comme si il assemblait des briques de Légo. Il comprend alors qu'il peut employer l'outil informatique pour imaginer des concepts qui lui sont propres, comme un compositeur avec sa guitare.
Moins la construction est contraignante.... et plus l'imagination se trouve libérée.
Il est d'ailleurs paradoxale qu'à l'heure du zapping, du jetable, de la publication de toute sorte de création web (blogs, facebook, twitter, youtube, …), il n'existe guère de création et publication de petites applications conçues par des profanes.

Voici pour moi quelques outils qui ont permis ce réaliser ce rêve : la programmation à la portée de tous.

HyperCard, créé en 1987 par Bill Atkinson, un « Apple Fellow » de la première heure, l'homme qui fut à l'origine de l'interface du Macintosh et de MacPaint.

HyperCard fut un outil parfaitement génial, livré gratuitement avec tout Macintosh. Il permettait de construire de petites applications sous forme de piles de fiches composées d'objets textes, dessins (animés) et sons.
Son extraordinaire langage interprété HyperTalk, très proche de l'anglais, permettait de programmer intuitivement (avec alors 8Mo de Ram !). Pas de compilation, pas de typage déclaratif des variables, une syntaxe réduite (pas de parenthèses à placer), l'usage d'algorithmes simples, comme les conditions, les boucles, …HyperCard était extrêmement novateur et permettait réellement aux « non-développeurs » de développer. (ex : pomme = 9, poire = 4, sur bouton « résultat » lors d'un clic, mettre « pomme + poire » dans champ « total » et le total s'affichait).
Des enseignants, des chercheurs, des particuliers purent alors créer des programmes utilitaires ou éducatifs, et se les partager.
Malheureusement, l'application fut abandonnée au début des années 90. Il faut dire qu'avec le départ de Steve JOBS, Apple était alors passé au mains des businessmen, et que par ailleurs, le web et ses standards arrivaient et avec eux les nouveaux standard du multimedia et de l'hypertexte.
Néanmoins, un monument devrait aujourd'hui être érigé pour cette « merveille » oubliée que fut HyperCard.

Pour les entreprises et stations de travail, il y eut des outils de développement d'interface graphiques qui employèrent de forte notions de programmation simplifiées comme le splendide Interface Builder de NeXTSTEP (œuvre du Français Jean-Marie HULLOT, qui fut plus tard le génial précurseur de l'iPhone).
Notons qu'Interface-Builder, basé sur Objective-C, permit de créer le premier navigateur Web au CERN, sur NeXT., au début des années 90.
Avec le retour de Steve JOBS chez Apple qui revint avec les « cendres de NeXTSTEP », puis la fusion du code génétique de NeXTSTEP dans MacOS et iOS, les descendants d'Interface Builder devinrent ensuite la base des outils de développement employés sur Mac, puis sur iPhone.

En France, j'eus le privilège de participer à la conception ergonomique de l'outil XfaceMaker2 de Non Standard Logics, autre Interface Builder mais pour Unix X-Windows C/C++. Son ergonomie était inspirée de l'Interface Builder de NeXTSTEP, et son langage d'animation de l'interface (Face) était proche de HyperTalk. XFM2 pouvait alors parfaitement être employé par les ergonomes et designers SANS les développeurs dans le cadre des conceptions de tableaux de bords d'avions, de sous-marins, de navires, de centrales... (ex : sur modification de la propriété « valeur » d'un potentiomètre, que l'on bouge, faire aussi varier la propriété « degré de l'aiguille »de tel vu-mètre, et rendre de plus en plus rouge tel bouton blanc.... et appeler telle fonction C – la fonction C étant appelée une fois compilée, mais le reste pouvait être testé en préalable, indépendamment).

Notons enfin qu'un autre outil aussi extraordinaire qu'HyperCard, a été récemment conçu par Microsoft, il est passé un peu inaperçu alors qu'il représente une splendide innovation, que Bernard OURGHANLIAN a rappelé et présenté aux TechDays 2010.
Il s'agit de Kodu, développé pour console X-Box et depuis peu porté sur PC (et téléchargeable gratuitement par tous).
Là, ce n'est plus un développeur ou un ergonome qui peut développer un jeu, mais bien en enfant de 10 ans et en quelques minutes d'apprentissage. La complexité du développement est totalement masquée. Cette conception devient ludique et libère l'imagination. L'apprentissage des évènements, des actions, des interactions entre les personnages ou les objets (le tout en 3D) est superbement bien conçue.

Voir la splendide video sur :

N'hésitez pas à télécharger cet outil pour PC sur :

Et lire les tutoriaux pour créer un monde, ses personnages, ses interactions... sans une ligne de code.

Bref, espérons que ces outils seront toujours amenés à se développer car rendre l'informatique accessible à tous suscite vraiment des vocations, de la créativité, de l'innovation qui, au final, bénéficie rapidement au plus grand nombre.


Aucun commentaire:

Enregistrer un commentaire

Nombre total de pages vues