Quel est le futur des logiciels ? Une explosion encore croissante ?
Où va la technologie ? Bien futé celui qui le prédira. Cependant, depuis 1965, la loi de Moore se vérifie année après année. La Loi de Moore est simple : « Quelque chose » (le nombre de processeurs, la performance, la vitesse…) double tous les 18 mois. Cette loi a été critiquée, reprise, interprétée et modifiée, mais toujours vérifiée.
Depuis plusieurs années, les limites de cette loi semblent être atteintes. Mais chaque barrière technologique a été dépassée. Il y a dix ans on annonçait la fin de la croissance linéaire de la puissance des microprocessurs, mais les technologies multi-cœurs ont permis de continuer cette folle croissance.
L’objet de cet article n’est pas de discuter de la véracité et du futur de la loi de Moore. Les 163 articles dans Google Actualité le mois dernier montrent la constante réflexion autour de cette tendance. La question importante, c’est : pourquoi cette loi stimule-t-elle de façon si importante le monde des technologies depuis les 30 dernières années ?
Surement parce qu’avant d’être une loi technologique, c’est une loi économique. C’est ce que Gordon Moore appelle lui-même une prophétie auto réalisatrice. La Loi de Moore est un leitmotiv pour l’industrie électronique… qui met les moyens marketing et techniques pour atteindre les objectifs de la loi.
Quel est alors l’impact de cette loi sur l’environnement ? Y-a-t-il un corollaire “vert” ou “durable” à la loi de Moore ? Une réponse a été donnée par Jonathan Koomey du Stanford and Lawrence Berkeley National Laboratory. Selon Koomey, le nombre de calcul par kWh doublerait tous les 18 mois. Dans un précédent article, nous citions une étude d’Intel sur laquel Koomey avait travaillé. La loi de Koomey est plutôt satisfaisante car l’amélioration de l’efficience des processeurs est bien une réalité. Peut-on en déduire que tout va dans le bon sens ? Non, répond kooney : les besoins des logiciels en ressources matérielles (processeur, mémoire, etc.) explosent. Besoins qui mènent à une obsolescence programmée du matériel. Ce phénomène se retrouve dans tous les logiciels : OS, logiciels open source, logiciels commerciaux… Les besoins en mémoire, en espace disque et en CPU explosent, mais, en même temps, les logiciels sont de plus en plus lents.
Quelle est la raison de ce phénomène de bloatware (obésité du logiciel) ? Le logiciel subit-il la loi de Moore ? Peu probable. Même si on peut corréler certaines données à une croissance similaire à la loi de Moore. De plus le logiciel dépend de nombreux paramètres : langage de programmation, qualité de programmation, processus et structure de l’équipe, projet open source… Alors existe-t-il une loi qui caractérise l’évolution du logiciel comme la loi de Moore ? Cela permettrait de dégager des axes d’amélioration. Car même si des bonnes pratiques de développement sont à mettre en place (Domaine dont nous parlons régulièrement), une remise en question plus profonde est, peut être, nécessaire. Peut-être qu’avec la meilleur des volontés les développeurs n’y pourront rien ?
Pour comprendre la complexité du bloatware, on peut se poser la question suivante sur le cas particulier de la parallèlisation : Même si le matériel nous offre des capacités de parallèliser les calculs avec des processeurs multi-cœurs ultra efficaces, pourrons-nous utiliser toute la capacité de ces technologies ?
Appuyons-nous sur une loi qui essaye de décrire le comportement de l’informatique. Une loi moins connue que celle de Moore, mais toute aussi discutée est la loi de Amdahl (1967) : elle essaie de caractériser la capacité de l’informatique à traiter le parallélisme.
La loi d’Amdah énonce que lorsque l’on parallélise un calcul, une partie ne peut être réalisée qu’en série. Je ne rentre pas dans les détails, d’autres le font très bien (Intel). Pour vulgariser : ce n’est pas en mettant 9 femmes enceintes que l’on va accoucher un bébé en un mois ! Dave Probert, architecte du noyau Windows, cite la loi d’Amdahl comme une nouvelle force à dépasser dans l’innovation logicielle. Barrière technique renforcée par la multiplicité et l’hétérogénéité des processeurs multi-cœur. Encore une excuse de développeur pour ne pas se fouler me direz vous ? Peut-être pas… surtout si l’on tient compte d’une autre loi (promis, c’est la dernière) : celle de Lehman.
Que dit cette loi ? Lehman estime que l’évolution d’un logiciel est une inévitable, pour différentes raisons. Il a énoncé 8 lois entre 1964 et 1996, voici 3 lois qui nous concernent :
1 – Modifications perpétuelles : Un logiciel doit constamment être adapté sinon il devient de moins en moins utile
2 – Complexité croissante : Au fur et à mesure que le logiciel évolue, sa structure a tendance à se complexifier.
6 – Continuelle augmentation : le contenu du logiciel doit continuellement augmenter pour satisfaire le besoin utilisateur
Une étude sur le projet Firefox confirme en partie ces lois.
Est-ce encore une fois une prophétie auto-réalisatrice ? Ce qui est clair c’est que pour l’instant aucun projet (Windows, Linux, Firefox …) n’a cassé ces lois. Structure trop complexe et trop importante, contraintes économiques, intérêt à réutiliser du code déjà développé, volonté … Ou peut être que la loi de Moore n’est pas prête a être abandonnée car elle est une excuse pour continuer dans cette voie.
Les constats comme celui de Koomey renforcent cette idée et permettent aux éditeurs de logiciel de s’affranchir de toute contrainte matérielle. D’autant plus que le nuage est la pour nous sauver… Un corollaire “vert” ou “durable” à la loi de Moore et pour le domaine logiciel n’est pas encore pour demain.