Economie de l'attention contre économies de mémoire : vers la fin de la gourmandise en programmation IT ?
Les fondements économiques qui ont fait le succès des nouvelles technologies sont remis en cause, de la fin de la loi de Moore à la question grandissante du coût complet énergétique des systèmes.
"Economie de la connaissance", "société du savoir". Dès 2006, l’adepte de rapports gouvernementaux peut retrouver, sous la plume de Jean-Pierre Jouyet et Maurice Lévy, une réflexion de 184 pages sur "l’économie de l’immatériel, la croissance de demain".
Après l’économie industrielle est advenue l’économie de service, la révolution numérique en constituant aujourd’hui l’étape la plus avancée. Une économie dont les fondamentaux semblent peu corrélés avec des éléments physiques.
Nous avons tous l’expérience d’installer un grand nombre d’applications sur nos téléphones. Sur console de jeux vidéos, sur ordinateurs, le nombre de produits que nous ajoutons semble sans limite, tout au plus l’ajout de cartes mémoires ou de disques durs externes dont la taille va sans cesse diminuant. La seule quantité finie semble être notre capacité d’attention et de choix entre les multiples solutions numériques qui nous sont proposées pour faciliter chaque pan de notre vie quotidienne.
L’anecdote a été tellement racontée qu’elle ne suscite plus d’émerveillement : vous et moi avons dans la poche la même quantité de puissance informatique que ce qui a permis d’envoyer une fusée sur la lune en 1969. Ce qui est une banalité de notre vie quotidienne appelle deux questions. Comment c’est possible ? Jusqu’où cela peut-il aller ?
Les origines : "it’s computing, stupid"
Un bouleversement économique comme celui de la révolution numérique est nécessairement multifactoriel.
On citera l’importance des systèmes éducatifs ayant permis de former les ingénieurs capables de produire les innovations de cette économie, les flux de capitaux publics comme privés tournés vers ces technologies, la création d’écosystèmes vertueux permettant la mise en circulation de ces ressources, et même les fondements culturels de cette économie ayant massivement favorisé la mise en réseau des innovations. La Silicon valley est encore aujourd’hui considérée comme le parangon de ce bouleversement, l’ensemble de ces facteurs y étant observés.
Mais l’un des facteurs clés de cette croissance, c’est l’augmentation exponentielle de la capacité de calcul. Celle-ci fut longtemps synthétisée par la loi de Moore, du nom du cofondateur d’Intel qui en 1965 affirmait que "le nombre de transistors dans un semiconducteur double tous les 2 ans".
Et sur une longue période, cette loi a été vérifiée avec deux compléments : la baisse unitaire de la consommation électrique de chaque transistor et la baisse du prix unitaire de chaque transistor.
L’ensemble de ces éléments amène à la ressource majeure de la révolution numérique : l’abondance et le faible coût de la puissance de calcul, celle-ci faisant figure de ressources quasi-illimitée et rendue encore plus accessible par le cloud computing, soit la capacité d’accéder à distance et via des réseaux de communications performants à cette puissance de calcul.
Elle permet donc tout à la fois l’augmentation du nombre de logiciels utilisables simultanément et la consommation de ces logiciels en calcul, leur permettant d’accomplir des tâches de plus en plus sophistiquées.
Cela a même amené à une autre loi, celle de Wirth, prédisant que "les logiciels ralentissent aussi vite que le matériel accélère". En effet, pour les développeurs informatiques et les éditeurs de logiciels, l’élément important est le ressenti de l’utilisateur davantage que l’analyse de la performance effective du logiciel produit. On a même pu parler "d’obésiciel", c’est-à-dire des logiciels peu performants mais fortement maintenable, l’absence de performance du logiciel étant compensée par l’augmentation de la performance matérielle.
Ralentissement, adaptation et perspective :
Si elle a été vérifiée en période longue, la loi de Moore s’est progressivement éteinte au début des années 2000. D’une augmentation des performances de 52% annuelle entre 1966 et 2003, on tombe à 23% de 2004 à 2011, pour une augmentation de 3,5% annuelle depuis 2015 : le matériel ne s’améliore plus, ou marginalement.
Dans un très bon article de Neil Thompson(1), celui-ci raconte comment Dreamworks a su s’adapter face à la fin de leur propre loi de Moore, la loi de Schreck, qui voulait que la puissance de calcul ait doublée à chaque sortie d’une nouvelle aventure du célèbre ogre.
Face au ralentissement des performances matérielles, ce sont les méthodes d’utilisation qui ont évolué, notamment via l’écriture de logiciels mobilisant l’informatique parallèle, soit la capacité à décomposer les tâches de calcul pour les répartir sur plusieurs processeurs. Cette solution permit de poursuivre de forts gains de productivités, les firmes généralisant le calcul parallèle dégageant un différentiel de de 2,5 pts face aux firmes ne pouvant ou ne voulant faire évoluer leurs méthodes.
De la progression du matériel à la progression des méthodes, la performance des logiciels ne constitue toujours pas l’enjeu central de leur conception. Si l’élargissement des applications mobiles, évoluant donc sur des matériels plus limités, a obligé une première réflexion sur ces sujets, la programmation reste centrée sur la maintenabilité du logiciel, le temps de développement demeurant une ressource limitée, il est davantage utilisé par les firmes à créer de nouveaux produits plutôt que d’optimiser l’existant.
Par ailleurs, le matériel n’a pas dit son dernier mot ! En développant des processeurs quantiques, aux performances de calcul incomparables à leurs petits frères binaires, de nombreux acteurs de la tech envisagent de dépasser une nouvelle frontière dans la puissance de calcul, plusieurs expérimentations ayant conduit à des succès. Les conditions d’utilisation de ces processeurs ne permettent néanmoins pas d’envisager leur commercialisation grand public dans les années à venir.
L’impact énergétique, vers une évolution du style de programmation ?
Si le couple processeur/architecture semble retarder l’interrogation sur l’efficience de la programmation, c’est peut-être un facteur plus englobant qui viendra ranimer cette réflexion, à savoir l’impact énergétique.
Outre les débats sur l’impact environnemental du secteur des technologies numériques, c’est surtout une approche en coût complet qui pourrait intervenir car si ni la loi de Moore ni ses corollaires en termes de baisse de la consommation électrique ne se vérifient plus, le coût de l’énergie notamment électrique semble à moyen-long terme poursuivre lui son augmentation constante. Et naturellement, si vous ne pouvez plus alimenter l’ensemble à coûts constants, des arbitrages doivent s’opérer dans les moyens de calculs.
Toute la chaine de valeur, du datacenter à la programmation est alors concernée et plusieurs initiatives ont déjà fleuri sur le sujet, des grands groupes comme des start-up développant des wattmètres destinés à évaluer la consommation énergétique d’un code source logiciel.
La performance logicielle se réfléchit alors autour de ce qui est essentiel à coder et ce qui est superflu, de notion de « travail utile » mais également de langages de programmation.
Ainsi, une expérience menée en 2022 par Bonamy, Bourgès et Lefèvre a notamment comparé les performances d’un même code traduit et optimisé dans plusieurs langages afin de mesurer les performances énergétiques de chacun d’eux.
Deux familles se détachent ainsi, les langages optimisés pour la performance et la faible consommation de ressource (C, Fortran, Java, Julian) et des langages moins performants et plus faciles d’accès (Python, Go, Rust).
Autant d’éléments et d’évolutions macro-économiques qui peuvent à moyen terme impacter la popularité des langages et des pratiques de programmations associées à la conception des logiciels de demain.
(1) The economic impact of Moore’s Law : Evidence from when it faltered – Neil Thompson (2017)