Programska gniloba je počasna degradacija računalniške programske opreme, ki je posledica neuspeha pri ohranjanju aktualnega programiranja s preostalim računalniškim sistemom. Izraz “programska gniloba” je napačen, ker programska oprema dejansko ne propada; preprosto se ne posodablja pravilno, zaradi česar deluje počasneje in se zdi, kot da omahuje. To običajno ni nepreklicna sprememba in ponovna namestitev programske opreme ali izvajanje učinkovitih posodobitev lahko pogosto odpravi težavo. V širšem smislu je ta vrsta gnilobe razvrščena kot aktivna ali neaktivna, odvisno od uporabe programske opreme.
Ko se programska oprema stara, se lahko pojavijo fizične težave z njenimi deli in kodiranjem. V večini primerov se to ne dogaja pri gnitju programske opreme. Hkrati so lahko spremembe, ki jih opazimo pri obeh težavah, podobne, saj se programska oprema upočasni in postane manj učinkovita. Eden od manjših vzrokov za to je neuporabljeno programiranje, ki ima večjo nagnjenost k gnitju v primerjavi z bolj aktivnim kodiranjem.
Glavni vzrok za gnitje programske opreme je, da programska oprema ne obravnava več trenutnega računalniškega okolja. To je lahko posledica slabih posodobitev, ki ne odpravijo takšnih težav, ali pa posodobitev sploh ni. Na primer, če obstaja program, ki je za delovanje popolnoma odvisen od določene taktne hitrosti, bo ta program postal manj učinkovit, ko se hitrosti povečujejo z boljšo strojno opremo. Program ne bi znal ravnati z višjimi hitrostmi in začelo bi se gnitje.
Gnilobo na ta način je običajno mogoče popraviti na enega od dveh načinov. Če programska oprema še vedno ali delno odraža trenutno računalniško okolje, mora uporabnik znova namestiti program. To ima možnost odstraniti artefakte in pospešiti program na to, kakšen je bil, ko ga je uporabnik prvič dobil. Drugi način za odpravo gnilobe programske opreme je posodobitev programa, vendar to običajno lahko stori samo programer, posodobitve pa bi morale obravnavati vse težave s funkcionalnostjo.
Obstajata dve glavni vrsti gnilobe programske opreme: neaktivna in aktivna. Neaktivna gniloba se nanaša na težave s programsko opremo, ki se redko odpira ali posodablja, zaradi česar se lahko pojavijo artefakti ali program ne odraža več tega, kar uporabniki in računalniki potrebujejo. Aktivna gniloba se zgodi, ko se program uporablja in posodablja, vendar posodobitve bodisi ne odražajo sprememb, potrebnih za pravilno prilagajanje računalniškemu okolju, ali pa je bila izvirna izvorna koda tako spremenjena, da se pojavijo težave.