Excel wierzy w dzień, który nigdy nie istniał. Microsoft nie zamierza tego naprawić
Excel od 40 lat wierzy w dzień, który nigdy nie istniał. I Microsoft nie zamierza tego naprawić.

W świecie oprogramowania są błędy, które irytują, błędy, które śmieszą, i błędy, które… stają się fundamentem całego ekosystemu. Historia jednego z najstarszych i najbardziej absurdalnych bugów w Excelu należy do tej trzeciej kategorii. Chodzi o 29 lutego 1900 roku - datę, która nigdy nie istniała, ale w Excelu ma się świetnie i żyje od ponad 40 lat. I, co najlepsze, Microsoft otwarcie przyznaje, że nigdy tego nie naprawi. Bo nie może. Bo wszystko by się zawaliło.
Skąd wziął się ten absurd? Winny jest Lotus 1-2-3
W latach osiemdziesiątych ubiegłego wieku to nie Excel, a Lotus 1-2-3 rządził światem firmowych arkuszy kalkulacyjnych. I yo on jako pierwszy zawierał ten błąd uznając, że rok 1900 zawierał w sobie dzień 29 lutego. Dlaczego? Bo tak było łatwiej. Obsługa lat przestępnych stawała się prostsza, a nikt nie spodziewał się, że ktokolwiek będzie operował datami sprzed I wojny światowej. Microsoft, tworząc Excela, stanął przed wyborem: zrobić to poprawnie, czy zrobić to kompatybilnie. Wybrał kompatybilność. Excel celowo skopiował błąd, aby użytkownicy mogli bezproblemowo przenosić arkusze z Lotusa. I tak fałszywy 29 lutego 1900 roku trafił do kodu, gdzie tkwi do dziś.
Czytaj też:
Dlaczego Microsoft nie naprawi błędu? Bo świat rachunkowości globalnie by się zawalił… i to nie przesada. Microsoft sam przyznaje, że poprawienie błędu spowodowałoby lawinę problemów:
- wszystkie istniejące arkusze przesunęłyby się o jeden dzień,
- formuły oparte na datach zaczęłyby zwracać inne wyniki,
- funkcje takie jak WEEKDAY zaczęłyby działać inaczej,
- kompatybilność z innymi programami poszłaby w diabły.
Innymi słowy miliony arkuszy na całym świecie - w firmach, bankach, instytucjach, systemach raportowych - zaczęłyby zwracać błędne dane. A Excel jest jednym z tych narzędzi, które są fundamentem globalnej gospodarki.
Błąd dotyczy tylko dat sprzed 1 marca 1900 r. A ilu użytkowników Excela operuje na danych z XIX wieku? Niewielu. Dlatego Microsoft uznał, że jedynym realnym skutkiem ubocznym jest to, że funkcja WEEKDAY zwraca błędne wartości dla tych historycznych dat. Wszystkie inne lata przestępne Excel obsługuje poprawnie - nawet te „trudne”, jak 2100, które nie będzie rokiem przestępnym.
A więc Excel żyje z błędem. I my też z nim żyjemy
To jedna z tych historii, które świetnie pokazują, jak bardzo współczesna technologia jest zbudowana na warstwach kompromisów, decyzji sprzed dekad i kodu, którego nikt już nie rusza, bo boi się, że wszystko runie. Excel ma swój nieistniejący dzień. I będzie go miał na zawsze. A my możemy tylko uśmiechnąć się pod nosem - i docenić, że nawet w najbardziej poważnych narzędziach biurowych kryją się takie perełki.



















