# Loi de Wirth

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 ».
Niklaus Wirth attribuait quant à lui cette loi à Martin Reiser.

## Explication

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. 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.
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.

## Exemples

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 à un processeur Pentium à 500 MHz pour Office 2007. 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é.
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$^,$.
D’autres programmes, tels que Nero Burning Rom 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é. Ainsi les navigateurs tendent à être de plus en plus légers et rapides. 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.