Depuis John Von Neumann et Alain Turing qui ont jeté les bases de l’informatique, des idées ont amené à la transformation numérique d’aujourd’hui. Mike Amundsen, responsable de l’API Academy de CA Technologies nous emmène dans ce voyage passionnant à travers des hommes de l’art qui selon la formule bien connue ont été « des nains sur les épaules de géants » et permis la progression de cette discipline.

5 Idées 3

Les premiers concepts


Vannebar Bush – Memex (1945)
« Simuler le comportement humain lorsqu’il utilise une machine »
Vannebar Bush est l’un des leaders du projet Manhattan qui visait à construire la première bombe atomique.
Le Memex est un ordinateur analogique fictif décrit par le scientifique Vannevar Bush dans l’article As We May Think publié en 1945 dans la revue The Atlantic Monthly. Le nom est la contraction de memory extender (gonfleur de mémoire).
Dans son article, Bush décrit un appareil électronique relié à une bibliothèque capable d’afficher des livres et de projeter des films. Cet outil est aussi capable de créer automatiquement des références entre les différents médias.
Parmi les prothèses qui augmentent les capacités humaines, les Google Glass, qui constituent une des plus récentes réalisations, ne font que pousser un peu plus loin le concept de Memex.

 

Ted Nelson – l’hypertexte (1963)
Ted Nelson est un sociologue américain, pionnier de l’histoire des technologies de l’information. Il est considéré comme l’inventeur du terme et du concept hypertexte
Cette vision a directement influencé des pionniers de l’informatique moderne tels que Douglas Engelbart (ci-dessous) et a posé les fondations de l’hypertexte à l’origine du World Wide Web. L’idée était de décrire comment les liens fonctionnent dans un réseau.
« Si les ordinateurs sont les vagues du futur, les écrans en sont les planches de surf » : D’où l’expression surfer sur le Web.

Doug Engelbart – La souris (1965)
Avec la souris (le « mulot » pour certains), l’interaction a connu une évolution significative dont nous mesurons tous les jours les effets même si les matériels tactiles se développement de plus en plus. Doug Engelbart travaillait au Stanford Research Institute (SRI) lorsqu’il a confectionné le premier prototype de la souris. Equipement qui fut utilisé pour la première fois par Xerox avec son système Star et fut largement popularisé par Apple avec Lisa d’abord et le Mac ensuite.
Les dernières générations de souris offrent 6 degrés de liberté (avec une coque pivotante) afin de naviguer plus intuitivement dans les environnements logiciels 3D (conception, médical…).
De nombreux systèmes ont été imaginés pour déterminer les actions qui seront effectuées à l’écran : crayon optique, écran tactile, boule, joystick, tablette tactile, molettes diverses, tablette graphique, trackpoint.

 

La conception des systèmes


Christopher Alexander – les patterns (1979)
« La complexité est le plus grand problème au niveau de la conception » – The Timeless Way of Building
Christopher Alexander est un des premiers à se poser la question des « patterns » (un modèle, une structure, un motif, un type…)
« Il y a une façon intemporelle de concevoir et de construire. C’est un problème vieux de mille ans et qui se pose toujours de la même manière ».
Christopher Alexander est un anthropologue et un architecte anglais d’origine autrichienne qui a retrouvé et perfectionné la théorie des Pattern languages. Ce concept de patternpermet des applications dans tous les processus de conception de formes dans les arts aussi bien qu’en ingénierie. Il a d’abord été utilisé dans le domaine de l’anthropologie et de l’histoire de l’art, puis dans celui du design, et en informatique.

 

Donald Norman – les interfaces homme-machine (1988)
« La simplification est autant dans l’esprit que dans l’objet » – The Design of Everyday Things, 1988
La théorie de l’action définie par Donald Norman décrit la psychologie d’une personne réalisant une tâche. Elle propose une modélisation de l’accomplissement d’une tâche en sept étapes allant de l’établissement du but à l’évaluation de l’état du système par rapport à ce but. L’introduction de cette notion de but met en avant des processus de haut niveau. Norman la décrit en anglais comme Seven stages of action, les 7 étapes de l’action :

  1. établissement du but
  2. formation d’une intention
  3. spécification d’une suite d’actions
  4. exécution des actions
  5. perception de l’état du système
  6. interprétation de l’état du système
  7. évaluation de l’état par rapport au but fixé

Roy Fielding – Les styles d’architecture (2000)
« Identifier une formule pour créer de nouveaux systèmes à l’échelle planétaire ». Architectural Styles for the Design of Networked-based Software, 2000
Roy T. Fielding a participé au développement des premiers serveurs Web, puis a fait des recherches sur le fonctionnement du Web. Il est l’un des principaux auteurs de la spécification HTTP. Son nom est associé au style d’architecture REST.
REST n’est pas un protocole (tel que HTTP) ou un format. Ce style d’architecture est particulièrement bien adapté au Web mais n’en est pas dépendant. Les contraintes, telles que définies par Roy Fielding, peuvent s’appliquer à d’autres protocoles d’application que HTTP.

L’avenir


Linus Torvald, Github (2008)
« Les mauvais programmeurs s’inquiètent du code. Les bons programmeurs s’intéressent à la structure des données et à leur relation »
Linus Torvalds est connu pour avoir créé en 1991 le noyau Linux dont il continue à diriger le développement. En s’inspirant du système Minix développé par Andrew S. Tanenbaum, il développa un noyau de système d’exploitation pour tirer pleinement parti des fonctionnalités de son nouvel ordinateur personnel. Linus Torvalds a également créé le logiciel de gestion de versions Git, initialement prévu pour le développement du noyau Linux.
GitHub est un service web d’hébergement et de gestion de développement de logiciels, utilisant le logiciel de gestion de versions Git. Ce site est développé en Ruby on Rails et Erlang. GitHub propose des comptes professionnels payants, ainsi que des comptes gratuits pour les projets de logiciels libres.
Le nom GitHub est composé du mot « git » faisant référence à un système de contrôle de version open-source et le mot « hub » faisant référence au réseau social bâti autour du système Git.

 

Ryan Dahl, Node.js (2009)
« Transformer la latence du réseau en une fonctionnalité »
Node.js est une plateforme logicielle libre et événementielle en JavaScript orientée vers les applications réseau qui doivent pouvoir monter en charge. Elle utilise la machine virtuelle V8 et implémente les spécifications CommonJS. Node.js contient une bibliothèque de serveur HTTP intégrée, ce qui rend possible de faire tourner un serveur web sans avoir besoin d’un logiciel externe comme Apache ou Lighttpd, et permettant de mieux contrôler la façon dont le serveur web fonctionne.
Node.js est utilisée par Groupon, SAP, LinkedIn, Microsoft, Yahoo!, Walmart, Rakuten et PayPal.

 

Rich Hickey, Clojure (2007), Datomic (2010)
« Le code est la donnée » ; « Le passé ne change pas »
La closure (fermeture ou clôture en français) est une technique de programmation qui permet de séparer une variable de son contenu. Une variable possède deux composantes : un nom et une valeur (source : openclassroom.com).
Rich Hickey a donné une présentation sur les bases de données fonctionnelles : Datomic. Cette approche fonctionnelle applique aux bases de données les idées centrales de la programmation fonctionnelle qui consiste à séparer les données de la logique (source : La Base de Données en tant que Valeur)

 

Eric Schweikart, Cubelets (2012)
Concevoir des systèmes qui autorisent de nouveaux comportements
Les cubelets sont un système de construction de robots conçus avec la nature dans principes de base. Il y a trois sortes de cubelets :
Action cubelets ;
Sense cubelets ;
Think cubelets.


What the last 50+ years of modern computing history tell us about future interfaces, Mike Amundsen