Največkrat uporabljeni kos kode s StackOverflowa je desetletje imel hrošča

Matej Huš

6. dec 2019 ob 23:30:27

Na spletni strani StackOverflow najdemo kopico programerskih vprašanj in boljših ali slabših odgovorov, ki jih bralci ocenijo. Najviše ocenjeni odgovori so po navadi tudi pravilni, čeprav to ni nujno. Zanimivo zgodbo o tem je pripravil Andreas Lundblad, ki je avtor največkrat uporabljenega koščka kode s StackOverflowa. Predvsem je ironično dejstvo, da je njegov najpriljubljenejši kos kode vseboval hrošča, ki ga desetletje nihče ni opazil.

Da je njegov kos kode res popularen, sta lani pokazala Sebastian Baltes in Stephan Diehl z Univerze v Trierju. Njun projekt je bil sicer preveriti, kako pogosto, kod in pod katero licenco se v praksi pojavljajo kosi kode, ki so dostopni na strani StackOverflow. Stran namreč izrecno zapoveduje licenco CC BY-SA 3.0, a se vsi uporabniki tega ne držijo in kodo kopirajo vse naokoli. Večina ponovno uporabljene kode je nepravilno označena, sta ugotovila.

Vrnimo pa se k najpopularnejšemu kosu kode, ki je bil objavljen leta 2010. Šlo je za funkcijo, ki velikost datoteke v bajtih zapiše v človeku razumljivi obliki, torej z ustrezno desetiško ali binarno predpono (k,M,G,T,P,E). V resnici Lundblad ni bil prvi, ki je odgovoril na vprašanje, a je prvi odgovor vseboval zanko. Na StackOverflowu se pogosto zgodi, da ima prvi odgovor, ki deluje, največ glasov in da ga je tudi z boljšo kodo nemogoče prehiteti. Lundbladu je to uspelo, saj je uporabil logaritme namesto rekurzije.

Ironično pa je, da je koda vsebovala hrošča. Resda ni bil hud, saj se je pojavil le v nekaj izjemnih pogojih in je vplival le na zaokroževanje. A to ne spremeni dejstva, da je koda imela skoraj desetletje hrošča, saj ga je odpravil šele sedaj. Nihče v tem času tega ni javno izpostavil. To je pomembno sporočilo - kodo je treba razumeti in preizkusiti. Tudi če je koda odprta, vsem dostopna in ima ogromno glasov, to ni zagotovilo, da nima hroščev.