La loi de Wirth est une loi empirique formulée par Niklaus Wirth en 1995, selon laquelle . Niklaus Wirth attribuait quant à lui cette loi à Martin Reiser. 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é démultiplié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.