Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] Wyjebka Windows, wtf?

To: winnt@man.lodz.pl
Subject: Re: [WINNT] Wyjebka Windows, wtf?
From: "Grzegorz Niemirowski" <grzegorz@grzegorz.net>
Date: Sat, 20 Jul 2024 23:55:50 +0200
szopen <szop@en.szop> napisał(a):
Thx, i mam jasność. Tak czy owak nie powinno być tak, że błąd jakiegoś
dewelopera uwala ćwierć zachodniego świata, coś  jest nie tak w tej
układance.

Racja, ale nie ma na to rady. Co prawda można narzucić bardziej rygorystyczne testowanie*, ale nie zmienia to faktu, że główną przyczyną jest centralizacja, monopolizacja i reużycie kodu (https://en.wikipedia.org/wiki/Code_reuse). Centralizacji i monopolizacji chyba nie trzeba szerzej omawiać. Dodam tylko, że te zjawiska mają swoje plusy i konkretne powody, przez co nie można ich zwyczajnie zakazać. Wystarczy spróbować wyobrazić sobie sytuację, w której czy na desktopach czy w smartfonach konkuruje 20 systemów operacyjnych i mają one mniej więcej równy udział w rynku. Wtedy dopiero tworzenie aplikacji na 20 systemów byłoby koszmarem, niemówiąc o testowaniu. Natomiast co do reużycia kodu, to naturalne jest, że programista nie wynajduje koła na nowo i korzysta z tego, co już napisano. Np. z językiem programowania dostajemy zestaw bibliotek lub też cały framework. Mamy też różne biblioteki dostępne w Internecie. Są także repozytoria pakietów z bibliotekami. Powoduje to, że z jakiegoś kawałka kodu korzystają tysiące czy miliony programów. To jeszcze nie jest takie złe, jest to mega oszczędność czasu i pieniędzy. Natomiast robi się poważniej gdy te biblioteki są aktualizowane automatycznie przez Internet. Kilka lat temu jeden facet na skutek pewnej kłótni strzelił focha i skasował z repozytorium swój pakiet dla aplikacji pisanych w Nodej.js. Pakiet używany przez mnóstwo aplikacji, które na skutek tego się wysypały. Była z tego niezła afera https://qz.com/646467/how-one-programmer-broke-the-internet-by-deleting-a-tiny-piece-of-code Inny przykład to strefy czasowe. Państw na świecie jest dużo i co jakiś czas któreś z nich coś majstruje przy swojej strefie czasowej. A to sobie dodadzą czas letni, a to skasują, a to wprowadzą nową strefę w jakiejś prowincji, lub też np. zostanie zawarte porozumienie kilku państw, co do ujednolicenia dat przechodzenia na czas letni/zimowy. Trzeba to wszystko jakoś śledzić żeby aplikacje miały aktualne dane o strefach i odpowiednio przeliczały czas. Można by pomyśleć, że twórcy każdego systemu operacyjnego, każdego języka programowania itd robią to na własną rękę. Okazuje się, że nie. Jest baza tz database (https://en.wikipedia.org/wiki/Tz_database), którą utrzymuje od lat jeden facet, a korzystają z niej praktycznie wszyscy. Tutaj co prawda nie było żadnej wpadki, ale widać skupienie odpowiedzialności na pojedynczej osobie.
Dlatego jest jak jest, i prędko się to nie zmieni.

*można wymagać od dostawcy oprogramowania nie tylko określonej metody testowania, ale ogólnie wytwarzania oprogramowania według konkretnych zasad. Takim przykładem zasad jest norma ISO 9001:2015. Czasem można spotkać, np. w przetargach, wymóg posiadania przez firmę certyfikatu potwierdzającego, że ta norma została wprowadzona do procesu wytwarzania oprogramowania.

--
Grzegorz Niemirowski
https://www.grzegorz.net/

<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>