Din dator kan vara snabbare, men mjukvaruföretag bryr sig inte

Den enklaste logiken säger oss att när datorer blir kraftfullare bör applikationer öka sin genomsnittliga hastighet. Det finns dock många uppgifter som tydligen inte har ökat sin prestation. Det vill säga, det ger oss en känsla av att när de gör dem fungerar de inte bättre än med vår tidigare PC. Detta fenomen kallas i folkmun Wirths lag. Varför händer det?

Inom datorer finns den så kallade Moores lag, som hänvisar till chipsens komplexitet och inte till deras hastighet. Amdahls lag fanns också länge, fram till mitten av 2000-talet då hoppet till flerkärniga chips måste göras. Alla är lagar, de är baserade på hårdvaran, dock är uppgiften för detta att exekvera mjukvara och prestandamässigt kan dålig praxis när det kommer till program förstöra prestandaökningar.

Din dator kan vara snabbare

Vad är Wirths lag och hur påverkar det min dators prestanda?

Eftersom hårdvaruresurserna har blivit nästan oändliga har behovet av att skriva bra kod gått förlorat. Det viktiga är inte att ett program fungerar, utan snarare att det gör det med minsta möjliga hårdvaruresurser. Antingen minnesstorlek eller processorkraft. Problemet kommer av att i takt med att hårdvarans prestanda ökar så ignoreras problem som tidigare lösts med god programmeringsdisciplin alltmer och det är ett problem som inte bara drabbar PC eller mobiltelefoner.

Således befinner vi oss med problemet att applikationer som borde förbruka en del av de resurser de spenderar slutar bli som kakor för det berömda blå monstret från Sesame Street. Nu , namnet på lagen vi är skyldiga Niklaus Wirth , som i februari 1995 skrev en artikel med titeln En vädjan om Lean Software som skulle kunna översättas som "en begäran om renare programvara".

Låt oss säga att med varje ny iteration innebär dålig praxis att programmen skapas när processorkapaciteten för de tyngre och mindre effektiva processorerna ökar. Ta Microsoft Word till exempel, 99% av människor använder det fortfarande som för 20 år sedan. Applikationens storlek har dock vuxit enormt och datorer då kunde inte köra den nya versionen bra.

Persona Escribiendo Código

Är det något oundvikligt?

Inte riktigt, du behöver bara köra äldre versioner av programmen för att få prestanda. Hur fånigt det än kan verka, ibland är det mycket bättre att dra gamla versioner genom Abandonware för att utföra vissa uppgifter än att inte använda de nyare versionerna. Och Wirths lag ges inte bara i vanliga tillämpningar. Vi har kunnat se hur vissa återutgivningar av spel som är remastrade versioner av spel från förr slutar prestera dåligt för den nya hårdvaran.

Så felet att vissa saker inte verkar gå snabbare är inte det faktum att datorer inte plötsligt har saktat ner eller ger oss en tur i prestanda. Felet ligger hos mjukvaran, som har slutat optimera sig själv och därmed blivit mindre effektiv. Många företag har slutat ha kvalitetsavdelningar, som är personer som kontrollerar att koden är välskriven och optimerad. En bra applikation fungerar inte bara, utan den gör det med så få resurser som möjligt.

Och varför händer detta? På grund av att deadlines och releaser åläggs som beror på säljavdelningarna. När allt kommer omkring kan programvaran uppdateras och lappas. Problemet är att många applikationer som vi tycker fungerar bra faktiskt går sämre än de borde.