Ob obletnici Lotusa 1-2-3 o združljivosti in prestopnih letih
Matej Huš
26. jan 2024 ob 21:15:15
Pred dva tisoč leti so bili prepričani, da bo leto 1900 prestopno leto. Leta 46 pred našim štetjem izumljeni julijanski koledar je vsako četrto leto določil kot prestopno leto, s čimer je povprečno trajanje leta v koledarju 365,25 dni. To je precej blizu dejanski dolžini tropskega leta (365,242 dni), a še vedno vsakih 400 let pridela približno tri dni napake. Zato je leta 1582 predstavljeni gregorijanski koledar dodal izjeme, da so stoletna leta neprestopna, razen če so deljiva s 400. Leta 1200, 1600 in 2000 so tako prestopna, 1700, 1800 in 1900 pa niso.
Vpišite v Excel datum 29. 2. 1900 in Excel se ne bo pritožil, temveč se bo strinjal, da je to normalni dan. Sreda, če smo bolj natančni. V resnici je torku, 28. 2. 1900, sledila sreda 1. 3. 1900. Excel začne šteti leta 1900, zato ni velike katastrofe, da so vsi dnevi v januarju in februarju 1900 premaknjeni za en dan v tednu. Obstaja tudi drug način, kjer Excel kot dan 1 obravnava 1. 1. 1904, s čimer ta težava odpade. A v Microsoftu so seveda že ob izidu Excela vedeli, da leto 1900 ni bilo prestopno, pa napaka vztraja še v najnovejših verzijah.
Razlog se skriva točno 41 let v preteklosti. Na današnji dan, 26. januarja 1983, je izšla prva verzija programa za delo s preglednicami Lotus 1-2-3. Da bodo programi za delo s številkami uspeh, je bilo jasno že leta 1979, ko je VisiCorp izdal VisiCalc za Apple II. Štiri leta pozneja je Lotus izdal program, ki je imel tri osnovne funkcionalnosti: izračune v preglednicah, delo z bazami in risanje grafov. Rodil se je Lotus 1-2-3, ki je kmalu postal najbolj priljubljen program za delo s preglednicami. V 80. letih in začetku 90. let je bil standard, ki je skupaj z WordPerfectom in dBaseom (drugih založnikov) tvoril ogrodje pisarniških programov. Zanimivo je, da se Lotusov Manuscript kot konkurent WordPerfectu ni nikoli zares uveljavil. Šele sredi 90. let je Excel presegle popularnost Lotus 1-2-3, po čemer si slednji ni nikoli opomogel. IBM je nato leta 1995 Lotus kupil, a obdržal znamko in vztrajal do leta 2013. Lotus 1-2-3 pa se je prenehal razvijati leta 2002.
Lotus 1-2-3 je razlog, da je v Excelu 29. februar 1900 resničen datum. Prve verzije Lotusa 1-2-3 so dejansko imele tega hrošča, ki je nato ostal tudi v naslednjih verzijah. Microsoft je žele, da je tudi njegov Excel združljiv z Lotusom 1-2-3, zato so namenoma uvedli tega hrošča. Združljivost za nazaj (backward compatibility), s katero je Microsoft prav obseden - še danes najdete v Windows 11 prastara okna iz Windows 3.1 (!) - je huda reč.
Izkaže se, da tudi pri Lotusu niso bili nevedni. Da bo leto 1900 zanje prestopno, je bila namerna odločitev. S tem niso le poenostavili obravnave prestopnih let v kodi, temveč so zagotovili združljivost z VisiCalcom iz leta 1979, ki je takisto bolehal za isto tegobo. Zakaj so se tako odločili, je izgubljeno v zgodovini, a posledice čutimo še danes, 45 let pozneje.