Loi de Wirth

Un article de Wikipédia, l'encyclopédie libre.

La loi de Wirth est une loi empirique formulée par Niklaus Wirth en 1995, selon laquelle « les programmes ralentissent plus vite que le matériel n'accélère »[1].

Niklaus Wirth attribuait quant à lui cette loi à Martin Reiser.

Explication[modifier | modifier le code]

En informatique, alors que le matériel devient de plus en plus rapide, en vertu de la loi de Moore, la loi de Wirth montre que les programmes n'accélèrent pas pour autant. Au contraire, ils deviennent de plus en plus gros et lents, les développeurs justifiant cette lenteur excessive comme compensée par la loi de Moore.

La loi de Moore devient ainsi une excuse à la production d'obésiciels. En effet, les programmeurs prennent principalement en compte le ressenti de l'utilisateur plutôt que l'efficacité réelle[réf. nécessaire]. Les logiciels ont donc une lenteur ressentie constante bien que la puissance processeur de leur matériel augmente. D'un point de vue financier, une société développant un logiciel n'a que peu d'intérêt à faire travailler des codeurs sur de l'optimisation car le retour sur investissement est faible (comme les utilisateurs sont habitués à ces lenteurs, bien peu refusent d'acheter un logiciel pour cette cause de lenteur).

De fait, avoir accès à du matériel de plus en plus rapide permet aux développeurs de se concentrer sur la maintenabilité du logiciel, aux dépens de l'optimisation. Cette approche permet de réduire le temps de développement de mises à jour et de nouvelles fonctionnalités, ce qui permet d'avoir des logiciels beaucoup plus stables dans le temps. In fine, elle évite de devoir effectuer un remplacement coûteux de logiciels devenus cruciaux mais mal maintenus, par exemple dans les banques. Aux débuts de l'informatique, les programmeurs disposant d'une mémoire et d'une vitesse de calcul limitées, la programmation était axée sur l'optimisation au détriment de la maintenabilité, ce qui engendrait un coût supplémentaire[2].

Si la puissance de calcul a été surmultipliée, la vitesse de communication vers l'extérieur n'a que très peu augmenté. Les temps d'accès aux disques durs, sur des disques durs « classiques » à plateaux et têtes de lectures magnétiques, peuvent représenter une grosse partie des latences en bureautique. L'arrivée des mémoires de stockage à mémoire flash (SSD) change cet état de fait[réf. nécessaire].

Exemples[modifier | modifier le code]

La suite Microsoft Office a vu ses exigences matérielles se multiplier en huit ans, passant d'un processeur Pentium (ou équivalent) à 75 MHz pour Office 2000[3] à un processeur Pentium à 500 MHz pour Office 2007[4]. Cette évolution est plus prononcée encore en ce qui concerne la mémoire. Cette « infobésité » ne s’est pas accompagnée d’une multiplication des fonctionnalités d'une même ampleur pour autant. Au contraire, de l’aveu de l’éditeur, la suite est devenue de plus en plus lente et confuse avec le temps, amoindrissant d’autant sa productivité et son efficacité[5].

Les mêmes observations peuvent être faites avec le système d’exploitation phare du même éditeur, Microsoft Windows. Ainsi, Windows Vista demande au moins trois fois plus de puissance processeur que Windows XP pour fonctionner[6],[7].

D’autres programmes, tels que Nero Burning Rom[8] ou Adobe Reader, ont également été décriés comme souffrant d’infobésité et devenant de plus en plus lents à chaque version sans que cela se justifie.

On rencontre cependant des exemples contraires. Ainsi, alors que les moteurs JavaScript des navigateurs apparaissaient de plus en plus lents du fait d'applications de plus en plus gourmandes, les années 2010 ont été marquées par une véritable course à l'efficacité[9]. Ainsi les navigateurs tendent à être de plus en plus légers et rapides[10]. Ces progrès sont le fruit d'une concurrence très rude sur ce secteur depuis quelques années, bien que ces navigateurs soient pour la plupart gratuits[réf. souhaitée].

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Références[modifier | modifier le code]

  1. (en) Niklaus Wirth, « A Plea For Lean Software » [« Plaidoyer pour des programmes légers »], Computer,  : « Software is getting slower more rapidly than hardware becomes faster. »
  2. (en) Reuters, « Banks scramble to fix old systems as IT 'cowboys' ride into sunset », (consulté le ).
  3. Description de la configuration système pour toutes éditions d'Office 2000 requise.
  4. « Configuration requise pour la version 2007 de Microsoft Office System », sur Support Microsoft (version du sur Internet Archive).
  5. « Microsoft: humble pie over Office bloat » (version du sur Internet Archive).
  6. Configuration minimale requise pour les systèmes d'exploitation Windows XP.
  7. System requirements for Windows Vista.
  8. (en) Nero 7 Ultra Edition review, 9 octobre 2005.
  9. JavaScript engine#The JavaScript engine race: 2008 and 2009 (en).
  10. Jérôme Cartegini, « Comparatif navigateur Internet : quel est le meilleur en 2020 ? », sur Clubic, (consulté le ).