Lehet, hogy ez korlát, de a gyakorlat azt mutatja, hogy sok szoftvernek hosszú távon karbantarthatónak kell lennie, vagy legalább képesnek arra, hogy alapvető módosítás nélkül hozzá merj nyúlni.
A másik ilyen dolog az, hogy a kódoptimalizálást, amire szabályok vannak, miért agyban akarjuk elvégezni, amikor elvégezheti gép is, ugyanazokat a szabályokat alkalmazva?
Hiszen ezért írunk magasszintű nyelveken, ahol már van olyan alapvető absztrakció, mint lebegőpontos szám, egész szám, karakter adattípus. Igen, maga az adattípus is egy absztrakció, hiszen a gép csak memóriacímet meg bitmintát lát, bármikor összead neked két memóriaelemet, akkor is, ha az egyik egy karaktert, a másik meg egy lebegőpontos számot tartalmaz.
Azért vezettünk be egyre magasabb szintű absztrakciókat, hogy egyre több minden dolgot írhassunk le úgy szoftverrel, hogy nem kell hozzá iszonyatos embertömeg és dokumentáció.
Egyszerűen szólva: a gépi kód írása nem skálázható.
Például nem dokumentálod le memóriacímek szerint a tárolt adatok típusát, mert nem kell - elvégzi helyetted a compiler.
A harmadik ilyen dolog a villamos-kompatibilitás: ha abban bízunk, hogy vna a cégben pár zseni, aki átlátja a kódbázist, és nélkülözhetetlenek a rendszer működtetéséhez, mert optimális kódot írnak, amit amúgy junior programozók képtelenek, akkor ha ez a pár zseni nyugdíjba megy, elüti a villamos, megveszi egy másik cég, vagy bármilyen más okból nem elérhető, akkor bukott a mutatvány.
Egyszerűen a gépileg optimális kód írása nem skálázható olyan mértékben, amit szeretnénk. Nem csak költségről van itt szó, hanem lehetőségekről is.