Quelques plans sur le Comex de France Télécom
par Guy Hervier

2010… l’odyssée de l’informatique ?
Par Sabine Bohnké, fondatrice du cabinet Sapientis

La Haute Autorité de l'Algorithme par Jean-Marie Chauvet

Principe de Pareto et théorie de la simplexité
appliqués à la gouvernance informatique
Par Sabine Bohnké, fondatrice du cabinet Sapientis

Là où il y a du gène, y a-t-il du business ?
Par Jean-Marie Chauvet

Toute les tribunes

Siemens supprime 4 200 emplois dans les services informatiques

par jack
le 19/03/2010 à 12:29

L'habileté managériale

par NASRAOUI Olfa
le 16/03/2010 à 01:07

Self-service et téléphonie : le duo gagnant de la relation client
Pierre-Olivier Geffroy – Consultant Avant-Vente chez App-line

par fastviewer
le 12/03/2010 à 11:28

Bing Maps

par Germain Leutwyler
le 07/03/2010 à 02:38

Vagues de phishing à la CAF

par phil
le 06/03/2010 à 09:39

Rechercher
Services
Logo_abonn Nerim Job Les derniers communiqués de presse Proposer un communiqué de presse
Fils RSS : Top 10 quotidien

2010… l’odyssée de l’informatique ?
Par Sabine Bohnké, fondatrice du cabinet Sapientis

lundi 25 janvier 2010

20100121_0350 ans et plus ... déjà ? L'acronyme NTIC a perdu depuis un moment sa première lettre, n'en déplaise à certains hommes politiques qui placent, par exemple, les débuts d'Internet en l'an 2000 (l'explosion de la bulle coïncidant dès lors au big bang de la création). Où placer les débuts de l'informatique en entreprise ? A la naissance du terme en France au début des années soixante avec la contraction d'Information et Automatique, aux calculateurs et simulateurs des projets Manhattan et Enigma, au concept de la machine de Turing, à l'architecture du calculateur universel de Van Neumann,  à la naissance du premier langage « compréhensible » hors du cercle scientifique, et, spécialisé pour la gestion et le domaine bancaire, destiné à un usage « métier »  le Cobol (Common Business Oriented Language) ? En tous cas, il y a cinquante ans ... voire plus.

 

Certes, Van Neumann, Turing et E.G Hopper peuvent être mis au rang des « pères et mères fondateurs » dans la mythologie de l'informatique. Pour l'anecdote, la mort de Turing en croquant une pomme empoisonnée aurait inspiré le logo d'une célèbre marque. Dans le registre des mythes, c'est à l'inverse une autre marque très connue dont les trois lettres (à un décalage de lettre près) aurait inspiré le fameux ordinateur de la saga l'odyssée de l'espace d'Arthur C. Clark, ordinateur « incarné » dans le film réalisé avec Stanley Kubrick « 2001 , l'odyssée de l'espace ».

 

Aussi bien l'écrivain que le cinéaste ont démenti l'apparente filiation, mais la légende demeure. Hal, une IA qui revient sous une autre forme de vie en 2010, perd peu à peu la « conscience » à la fin du film quand Dave lui retire ses « blocs mémoire holographiques » à l'occasion d'une scène mémorable, où, flottant en apesanteur dans une lumière orangée, l'astronaute retire d'un mur des plaquettes encastrées en tiroirs.

 

HAL sur PDA

 

Il est frappant de constater que la projection d'alors (1968) voit l'ordinateur du futur comme un immense mainframe. A contrario les technologies de miniaturisation nous ont fait passer du macroscopique au nanoscopique. Que de chemin parcouru depuis le premier transistor MOS en 1962. En 1971 est apparu (après le film « 2001.. ») le premier circuit intégré de 10µm (taille d'un cheveux)  et les circuits n'ont cessé de se réduite jusqu'à atteindre en 2003 0,1 µm avec l'Itanium d'Intel (taille d'un virus dans le corps).

 

En 2015 nous devrions être à 22nm (nanomètres) et ensuite atteindre certaines limites technologiques de la microélectronique (dissipation thermique, champs électriques, ..) et physiques (bruits thermiques, effets tunnels, ..) que les nanotechnologies pourraient repousser (en matière de science fictions nous sommes plus près de la cité des robots d'Isaac Asimov).

 

Ce qui nous conduit à un paradoxe. HAL finalement pourrait tenir sur un ordinateur personnel, voire, en poussant le bouchon un peu loin, sur un PDA, pourvu que son langage de programmation soit le bon et que sa programmation soit optimisée. Car si les tailles « physiques » des ordinateurs n'ont cessé de diminuer, à l'inverse le volume d'information à stocker et les tailles des programmes  en nombre de lignes de codes se sont démultipliés. La taille de l'ordinateur de bord d'Apollo 11 était de 14Ko et le programme de quelques dizaines de milliers de lignes de codes (pour les curieux le code source est désormais téléchargeable à http://code.google.com/p/virtualagc/source/browse/trunk/Comanche055/CM_BODY_ATTITUDE.s?r=258).

 

La taille et la complexité des logiciels n'ont cessé d'augmenter, des 10 000 lignes de code en moyenne pour un logiciel important en 1970, nous sommes passés à 50 000 dans les années 80 (pour gérer les interfaces graphiques clavier souris, écran) ; puis 100 000 lignes de codes dans les années 90s. Il est intéressant de regarder l'évolution du système d'exploitation Windows à ce sujet, lequel est passé de 4 à 5 millions de lignes de code en 93, pour atteindre 10 fois plus de lignes en 2003 (50 Mloc).

 

Une démonstration de David A. Wheeler en 2001 montre également comment l'apparition du modèle « libre/open source » a permis d'arriver à des développements encore plus exponentiels. Il a ainsi mesuré que les sources de la distribution linux de Red Hat (version 7.1 d'Avril 2001) contenaient plus de 30 million de lignes de codes (SLOC : Source LInes Of Codes) puis extrapolé que des moyens classiques de développement "propriétaires" auraient exigé 8000 an/h de développement et aurait coûté plus d'un milliard de dollars (Ceci est extrait d'une démonstrations sur les avantages des logiciels dont on peut trouver des chiffres actualisés en 2007 à cette url : http://www.dwheeler.com/oss_fs_why.html).

 

L'après tour de Babel des langages

 

Compte tenu de la formidable manne en ressources et compétences que représente le modèle open source et la plate-forme d'échanges Internet, la distribution Linux a pu évoluer de 10 000 lignes de code en 1991 à 204 millions en 2008 (le noyau pour sa part comptant pour plus de 11,5 millions de lignes).

 

Cela montre également la nécessité impérieuse de contrôler la qualité, la gestion des versions, les évolutions, dans un modèle impliquant de collaborer de façon rigoureuse avec une communauté étendue sans contrôle direct. Si les choses ne cessent de s'améliorer dans ce qui est produit (le nombre de défauts en moyenne dans le code des logiciels Open Source n'a rien à envier aux applications d'entreprises ou aux progiciels propriétaires, bien au contraire), la question demeure pour « ce qui a été produit ». C'est la cohabitation à la fois nécessaire et imposée entre langages et modes de programmation, héritages du passé et développements futurs que l'on doit interroger.

 

Car le mythe le plus pertinent pour l'informatique serait la « tour de Babel ». Il n'y a pas de langage unique pour « les contrôler tous ». Ainsi comptait-on 700 langages en 1969 à la NASA pour la mission Apollo, 2000 langages de l'an 2000, plus de 2500 aujourd'hui. Et encore, tout dépend du mode de décompte, car si on prend en compte variantes et versions, les chiffres peuvent devenir faramineux (quelques listes en référence, cf celle de Bill Kinnersley, http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm ou celle d'Eric Lévénez : http://www.levenez.com/lang/).

 

En réalité cette diversité s'explique non seulement par les évolutions techniques mais également par des objectifs différents, car tous les langages ne se valent pas au regard de l'application recherchée. Il existe des langages dédiés pour concevoir du matériel, des langages adaptés pour système embarqués, des langages orientés «  système », des langages à balises pour gérer l'hétérogénéité., des langages plutôt utilisés en mathématiques appliquées, en simulation et gros calculs, etc.

 

Une intéressante taxonomie a été établie ici (http://hopl.murdoch.edu.au/taxonomy.html). Ce qui fait qu'en toute logique, de nombreux langages cohabitent en entreprise (selon une étude de T. Welsh, Cutter, 2004-59% des services informatiques utilisent plus de deux langages, 15% en utilisent plus de 4)  ou dans la constitution de logiciels Open Source (cf. la composition du noyau linux). Cela dit, bon nombre de langages ont disparu au fil des ans et peu de langages sont réellement industriellement utilisés.

 

Retour vers le futur

 

Là où les choses se compliquent c'est quand cette cohabitation n'est plus due à une nécessité d'utiliser le langage adéquat mais quand elle vient de couches hétérogènes de qualité inégales « héritées » de développements antérieurs. Qu'il s'agisse d'applications qui datent de 1969, en Fortran ou Cobol (encore utilisés plus de quarante ans après leur apparition), ou d'applications développées en Java, il y a dix ans, qui ne présentent pas forcément une meilleure qualité que les précédentes. Dans les deux cas, les symptômes d'obsolescences sont les mêmes, les développeurs initiaux sont partis ailleurs, ceux qui maintiennent le code sont peu au fait de ses fonctionnalités métiers et objectifs, et préfèrent faire des correctifs rapides type « dupliquer et remplacer » plutôt que re-structurer intelligemment le code. D'où une complexité et des coûts croissants de maintenance.

 

Cette perte de connaissance et de qualité est un cercle vicieux qui ne peut être rompu qu'à condition de vouloir appliquer à toute évolution de l'existant les mêmes exigences qui germent pour les développements futurs : approche du développement de plus en plus guidée par une conception « métier » (ce qui peut conduire à des « business language »), ateliers et « méta- langage » qui permettent de générer un code pour tous types de plates-formes ou.... d'applications ayant déjà un langage et un environnement spécifique.

 

Ainsi on pourrait faire un « retour vers le futur » dans la conception de la fameuse IA Hal, en envisageant une évolution qui aurait pris en compte la miniaturisation et le développement orienté « objectif ». Ainsi, quand le Dr. Chandra recréerait HAL en 2010 (ainsi que dans le film éponyme), il le programmerait simplement en expliquant ses intentions, la version résultante tiendrait dans un PDA (librement chargeable, par ex, sous Windows CE, Androïd ou iPhone, sans besoin de réécriture...), et le « sacrifice » de HAL serait dès lors tout relatif, du fait de ses possibilités d'évolution et régénération rapide.

 

Reste qu'avant d'envisager un futur de la programmation avec une interface orale qui permettrait de traduire toute demande métier en du code optimisé et exécutable quelque soit la plate-forme, il serait temps de faire évoluer l'inertie qui conduit au maintien « en l'état de dégradation » d'applications existantes de ... 40 ans et plus.

 

Imprimer l'article
ITRtv
Interview : Ping-Ki Houang, PIXmania
envoyé par ITRnews.

Les commentaires

La taille de l'ordinateur de bord d'Apollo 11 se comptait probablement en kilogrammes, et non en kilo-octets ;->

Par brio le 26/02/2010 à 11:14

Les 10 derniers articles mis en ligne