Je réfléchissais dernièrement à une chose un peu particulière : le fait que plusieurs plate-formes informatiques ont eu des environnements de développement privilégiés, qui en sont devenus plus ou moins indissociables.
Psion – OPL
C’est en fait le couple auquel je pensais initialement, et qui m’a amené à écrire cet article. Le langage OPL (Open Programming Language) est un dérivé du Basic que la société anglaise Psion a intégré à ses ordinateurs de poche. Au milieu des années 80, ces machines n’étaient pas très sexy, et ressemblaient plutôt à des calculatrices améliorées, mais elle n’en étaient pas moins de vrais ordinateurs programmables.
Mais c’est avec les Psion série 3 que les choses prirent une dimension différente. Cette machine a été lancée en 1991 puis a été améliorée durant toute la décennie, avec des améliorations concernant la taille de l’écran, la puissance du processeur ou la mémoire embarquée (voir des copies d’écran du système).
J’ai personnellement possédé un Psion 3a pendant la seconde moitié des années 90. J’avais été marqué par la sortie du premier modèle quelques années auparavant. C’était le premier véritable ordinateur de poche.
Plusieurs applications étaient embarquées : base de données, traitement de texte, tableau, agenda, … Mais surtout, ce qui a fait le succès de cet ordinateur à mes yeux, était la facilité avec laquelle n’importe qui pouvait créer de nouveaux programmes et les diffuser. Et cela était possible grâce à l’intégration du langage OPL et d’un environnement de développement sommaire mais fonctionnel dans le système.
Psion avait même eu l’intelligence de proposer des émulateurs de ses machines, qui tournaient sous MS-DOS. Ils permettaient de développer en utilisant un clavier plus pratique que celui des machines de poche. Ces émulateurs restent un bon moyen de faire revivre ces systèmes, grâce à DOSBox (voir ce lien).
Néanmoins, une énorme quantité de programmes ont été créés directement sur des Psion Série 3, et distribués par les différents moyens de l’époque (disquettes ou CD dans les magazines, puis internet).
Pourquoi l’OPL était-il si intéressant ? Parce qu’il était simple à apprendre − c’était un dérivé du Basic, en plus puissant pour l’époque − et qu’il proposait des routines graphiques faciles à mettre en œuvre, permettant de créer des interfaces graphiques sans trop de difficultés.
Pour la petite histoire, Psion a proposé par la suite un ordinateur plus performant, le Série 5, là encore avec l’OPL intégré. Puis le système du Psion Série 5 a servi de base au système Symbian, qui a longtemps été au cœur des téléphones Nokia et Ericsson.
Macintosh – HyperCard
L’exemple le plus marquant est sûrement le couple formé par HyperCard et le système d’exploitation des Macintosh à partir de 1987 et durant les années 90.
L’ordinateur qui innovait le plus à l’époque (en dehors de l’Amiga, bien sûr − petit troll gratuit), notamment par la simplicité d’utilisation de son interface graphique, aurait pu rester une machine difficile à programmer, que seule une élite aurait pu enrichir de leur logiciels. Mais le génie de Bill Atkinson a créé un outil qui mélange à la fois le logiciel de dessin, la base de données, le langage de programmation et l’hypertexte.
Pour comprendre comment fonctionnait HyperCard, vous pouvez regarder la vidéo proposée sur le site hypercard.org :
Je ne sais pas s’il existait déjà des outils de programmation WYSIWYG, mais HyperCard a clairement démocratisé cela.
Windows – Visual Basic
Autre cas emblématique, le Visual Basic qui est devenu l’un des environnements de développement les plus utilisés au monde, dont la première version a été lancée sous Windows 3 au début des années 90 (1991 pour être exact).
Lancé 4 ans après HyperCard, il en reprenait les principes de programmation événementielle sur la base d’une interface graphique créée à la souris, en y ajoutant des concepts provenant du couple Project Builder / Interface Builder présenté en 1988 sous NeXTSTEP.
Le succès a commencé avec la version 3, qui s’appuyait elle-même sur le succès de Windows 3.1.
Pour avoir programmé en VB au milieu des années 90, je peux affirmer qu’un tel langage fait prendre plein de mauvaises habitudes quand on ne sait pas encore vraiment développer. Par contre, il permet de créer facilement et rapidement des applications relativement complexes, et son succès n’est absolument pas volé.
Mac OS X – XCode
Héritier spirituel du Project Builder déjà cité, XCode est l’environnement de développement offert gratuitement par Apple aux possesseurs de Mac. L’un de ses grands intérêts est de servir à la fois pour développer des applications pour Mac OS X, mais aussi pour iOS.
Sa gratuité et sa qualité générale en ont fait l’outil incontournable pour tous les développeurs Mac et iOS.
Et alors ?
Tout ça, c’est bien beau, mais à part l’aspect historique des choses, ça sert à quoi ?
En fait, j’ai deux réflexions qui me viennent à l’esprit.
La première, c’est que toute plate-forme informatique devrait fournir des outils de création gratuits et facile à prendre en main (on peut argumenter que le Visual Basic n’est pas gratuit, mais on connait aussi le taux de piratage des logiciels sous Windows, hein). Je ne parle pas d’outils ultra-pointus ; même quelque chose de limité permet toujours à des gens d’exprimer leur créativité. Je pense évidemment à des outils de développement ; mais c’est aussi valable pour de la création graphique (dessin bitmap, vectoriel, 3D), musicale, …
Il y a toutefois une légère différence : offrez un logiciel de dessin, et vous aurez des dessins ; offrez un outil de programmation et vous aurez des logiciels de dessins (et des dessins), des logiciels de musique (et des chansons), des éditeurs web (et des sites web), …
La seconde réflexion que je me suis faite, c’est qu’il faut toujours permettre aux gens de créer directement sur la plate-forme à laquelle est destinée les programmes qui sont développés. D’un côté l’exemple du langage OPL sur les Psion montre que cela a permis à tous les utilisateurs de ces machines de créer des programmes, sans attendre que des logiciels commerciaux remplissent tous les besoins.
De l’autre côté, je pense à GeoWorks Ensemble, une surcouche graphique de MS-DOS concurrente de Windows 3.x (apparue en 1990, soit 1 an avant Windows 3.0). Cette plate-forme était d’une qualité incroyable (multitâche, polices vectorielles, rapidité incroyable, …), mais nécessitait une station de travail Sun Sparc hors de prix pour développer des logiciels dessus. Échec commercial.
Je pense réellement que les terminaux de consommation passifs sont une chose qui ne devrait pas exister. Évidemment, la plupart des utilisateurs veulent pouvoir lire, regarder, écouter des média diffusés sur leurs appareils ; mais cela ne doit pas empêcher les autres utilisateurs de créer facilement et rapidement de nouveaux produits et services pour ces appareils.
Le futur ?
Ce qui m’embête un peu, c’est que j’ai donné des exemples plutôt anciens (à part XCode). L’informatique a évolué ces dernières années. Netbooks, ultraportables, tablettes et téléphone portables nous ont fait entrer dans une ère où l’ultra-mobilité règne.
Je trouve dommage que les éditeurs de systèmes pour tablettes imposent tous des SDK officiels qui s’utilisent uniquement sur ordinateur. Même si le SDK Android fourni par Google a l’avantage d’être multi-plateformes, il ne permet pas de coder directement sur une tablette Android.
Mais est-ce qu’un appareil mobile ne peut pas servir au développement ? L’exemple du Psion montre que si. D’ailleurs, il existe des solutions comme Codea (iOS) ou Droid Develop (Android) qui l’autorisent, et quand on regarde la vidéo de présentation de Codea, on se dit qu’il y a moyen de faire de très belles choses directement sur une tablette :
Pourtant, je reproche à ces solutions d’être encore trop proche du code. Il faut apporter des outils permettant de créer. Facilement. Directement sur l’appareil.
Est-ce que vous avez en tête d’autres exemples de plate-forme liée à une solution de développement privilégiée ?
Je viens de tomber, sur mon 1er ordinateur de poche ça me rappelle, tellement de souvenirs. Ca et le traducteur agenda c’était la bonne époque.
je me voie mal programmer sur mon iphone. Il est vrai, par contre qu’il devrait venir avec des outil pour pouvoir le faire. Même si pour le faire il faut passer par un ordinateur. Ce qui me fait ****** c’est que pour envoyer une application sur l’Apple Store, c’est qu’on soit obliger de passer par un MAC, même si le développement peut-être fait sur Windows ou Linux.
On est d’accord, le fait de devoir compiler sur Mac est pénible. Mais ça peut être contourner en utilisant des outils multi-plateformes comme Phonegap.
Par contre, je pense que ça pourrait être sympa de développer directement sur un téléphone à grand écran ou sur une tablette 7 pouces, en y ajoutant un clavier bluetooth.
Et j’ajoute autre chose : développer sur téléphone pourrait très bien se faire si on réussissait à inventer des moyens de programmation qui n’impliquent pas forcément de taper du code…
J’adorais Hypercard qui était d’une simplicité enfantine, mais en même temps très puissant. A coté XCode est une véritable usine à gaz. Il manque aujourd’hui coté Mac une alternative plus simple pour développer.
@Nicolas : Assez d’accord. Plusieurs outils se positionne comme les descendants spirituels d’Hypercard, comme SuperCard ou LiveCode. Personnellement, je considère même que Visual Basic et MS Access en sont les héritiers direct.