Programy na starość

Starość nie kojarzy się z niczym przyjemnym: zwykle oznacza postępujący brak sił, wyczerpanie, obniżoną sprawność, a często także choroby i ogólne pogorszenie jakości życia. Ale starzeć mogą się także urządzenia mechaniczne. A co z programami komputerowymi?

Starzejemy się wszyscy, niezależnie od tego, jak intensywne życie prowadziliśmy i wciąż prowadzimy. Zużywamy nasze ciało, po prostu żyjąc, a starość jest naturalną konsekwencją tego procesu. Objawy starzenia można powstrzymywać i ograniczać, dbając o sprawność fizyczną i stosując różne, często kosztowne zabiegi kosmetyczne i chirurgiczne, ale samej starości pokonać się nie da – czeka ona każdego z nas. Jednak starość, choć obserwujemy ją w całym otaczającym nas świecie, ma zaskakująco zróżnicowane oblicza. Starzeją się przecież nie tylko organizmy żywe, ale także np. przedmioty wytworzone przez człowieka. Na przykład samochody, drogi, po których jeździmy, a nawet ulubione spodnie zużywają się, psują i niszczeją. Decydującymi czynnikami starzenia większości przedmiotów, a także organizmów żywych są czas oraz stopień eksploatacji. Ale istotniejszy jest czas. Asfalt na drodze ulegnie zniszczeniu, nawet jeżeli nie przejedzie po nim żaden samochód – deszcz, słońce i mróz zrobią swoje. Samochód będzie rdzewiał, a jego opony stracą sprężystość, nawet jeżeli nikt nie przejedzie nim nawet kilometra.

Eliksir dla komputerów

Istnieją jednak takie produkty ludzkiej pomysłowości, które nie powinny wykazywać objawów starzenia. Na przykład z doświadczenia wiemy, że programy komputerowe, będące w gruncie rzeczy przepisem na wykonanie jakichś obliczeń, uruchomione choćby i miliony razy, za każdym razem działają dokładnie w ten sam sposób, nie psują się ani nie zużywają, tak jakby upływ czasu im nie szkodził. W moim komputerze przechowuję program, który napisałem podczas studiów ponad 20 lat temu, i nadal ma on te same funkcje oraz te same błędy. Czyżby zatem istniał eliksir wiecznej młodości, choć na razie tylko w wersji dla komputerów?

Tak naprawdę programy też się starzeją, ale w nieco inny sposób. Mój program sprzed wielu lat wprawdzie nadal działa, jednak dzisiaj nie odważyłbym się, by zacząć go zmieniać, ulepszać czy dodawać do niego nowych funkcji. Ba, mam kłopot nawet z jego przeczytaniem. Gdy go pisałem, dopiero uczyłem się programowania. Po latach trudno mi już zrozumieć jego wewnętrzną konstrukcję, bo pełna jest przypadkowych i mało czytelnych rozwiązań. Wiele poprawek i zmian wprowadzałem w pośpiechu i bez głębszego zastanowienia, co z nich zrozumiem za wiele lat. Dzisiejsza próba ulepszenia programu wiązałaby się z nadmiernym ryzykiem, bo dodając nowe funkcje, mógłbym zepsuć już istniejące, a znalezienie przyczyny błędu w programie trwałoby stanowczo za długo. Pewnie wolałbym teraz napisać go od nowa, a nie poprawiać. Dlatego programy żyją i są w pełni sprawne, dopóki można w nich bezpiecznie i niewielkim kosztem wprowadzać zmiany, natomiast starzeją się, gdy stają się tak skomplikowane, że na każdą zmianę wprowadzoną przez programistów reagują nieoczekiwanymi błędami wymagającymi natychmiastowej naprawy. W końcu, gdy nie można w nich już nic zmienić, umierają. Wtedy jedynym wyjściem jest napisanie programu od początku.

Gdybyśmy zajrzeli do wnętrza takiego podstarzałego programu, zobaczylibyśmy przede wszystkim nieczytelny bałagan, narosły w wyniku bardzo wielu niezbyt udanych poprawek – dowód bardzo aktywnego, ale niezbyt rozsądnego kierunku rozwoju. Podobnie wygląda sytuacja np. dziurawej jezdni: można ją łatać tak długo, dopóki kolejne poprawki nie zaczną odpadać. Jeżeli chaotycznie nałożone kolejne warstwy asfaltu groziłyby użytkownikom katastrofą lub wypadkiem, drogę należałoby rozebrać i zbudować od nowa.

Winni użytkownicy

Różnica między ewolucją programów komputerowych a ewolucją pozostałych przedmiotów i bytów, jak drogi czy organizmy, polega także na szybkości i gwałtowności tego procesu. Żaden gatunek zwierząt ani roślin nie zmienia się tak szybko jak programy: nie zdarza się przecież tak, że nowe pokolenie ptasich piskląt nieoczekiwanie przychodzi na świat przystosowane do życia w wodzie. Raczej niemożliwe jest też przebudowanie domku jednorodzinnego tak, by powstał z niego wieżowiec, przez proste dobudowanie dodatkowych 20 pięter. W porównaniu z tymi przykładami zmiany w programach komputerowych zachodzą błyskawicznie: nie w perspektywie lat czy pokoleń, lecz pojedynczych tygodni, a nawet dni. Co ciekawe, w świecie oprogramowania zmiany są jednocześnie błogosławieństwem i przekleństwem, czynnikiem utrzymującym programy przy życiu i powodującym szybsze starzenie.

Szalone tempo i olbrzymią liczbę modyfikacji w programach możemy zaobserwować sami: codziennie na smartfonach widzimy dziesiątki powiadomień o nowych wersjach aplikacji, z których korzystamy. Każda wersja to nowe „pokolenie”, które zapewne jest lepsze i bardziej skomplikowane niż poprzednie. Z czego wynika taka zmienność? Można powiedzieć, że winni są… użytkownicy. W dużej mierze to właśnie ich potrzeby i wymagania wymuszają publikowanie nowych wersji programów. I to właśnie takie szybkie poprawki przypominają nawarstwione, trochę przypadkowe łaty na ulubionych spodniach: choć nadal chronią one przed zimnem i deszczem, powodują, że spodnie stają się niewygodne i mogą znów pęknąć.

Liposukcja komputera

Częste aktualizacje, częste łatanie dziur to – z punktu widzenia użytkownika – błogosławieństwo. W końcu chodzi o to, żeby programy i aplikacje były jak najlepsze. Z drugiej strony koszt tak szybkich zmian w oprogramowaniu jest gigantyczny. I nie chodzi tylko o same ulepszenia, ale przede wszystkim o usuwanie śladów poprzednich, przypadkowych łat oraz przeróbek. Programiści coraz więcej czasu spędzają właśnie na upraszczaniu, a nie naprawianiu czy ulepszaniu programów. Można powiedzieć, że w trakcie pracy grają na przemian dwie role: twórcy-wizjonera, który dokłada do programu nowe funkcje i czyni go lepszym, oraz dietetyka-chirurga, przywracającego pacjentowi kondycję, nieco zaniedbaną podczas rozwoju. Dla programów bowiem zabiegi upraszczające mają właśnie takie znaczenie, jak dla ludzi liposukcja, usuwanie zmarszczek i treningi na siłowni: przede wszystkim pozwalają pacjentowi lepiej się poczuć i odzyskać sprawność, nawet jeżeli wcześniej prowadził niezbyt zdrowy tryb życia. I bardzo dużo kosztują… Dlatego lepiej zapobiegać problemom niż leczyć. Przepis na powstrzymanie starzenia ludzi i programów jest podobny – ograniczanie stresów i gwałtownych zmian, regularne badania kontrolne oraz bieżące usuwanie problemów. Wiemy jednak dobrze, że nie zawsze łatwo stosować się do tych rad.

Czy wizja starych, niezgrabnych i nieskorych do zmian programów to istotny problem dla ludzkości? Nasze wygodne życie jest przecież coraz bardziej od nich uzależnione: nie tylko od aplikacji w telefonie, ale także od dużych systemów sterujących dostawami energii, obsługą ruchu lotniczego czy rynków finansowych. Ciągle wymagamy od nich więcej: nowych funkcji, szybkości, wygody. Zatem w niedalekiej przyszłości może się okazać, że będziemy musieli zaopiekować się posiwiałymi i zniedołężniałymi programami, które sami wcześniej stworzyliśmy.•

«« | « | 1 | » | »»

aktualna ocena |   |
głosujących |   |
Ocena | bardzo słabe | słabe | średnie | dobre | super |

  • 8080
    02.06.2018 22:17
    Nie będzie sentymentów. Program żyje dopóki jest porzebny i żyje technologia którą obsługuje. Wraz ze zmianą technologii, powstawać będą nowe programy. Często może się wydawać że jest to wyważanie otwartych drzwi i marnotrawstwo kiedyś poniesionych nakładów, ale faktem jest że i drzwi nie są już te same, i modernizacja programów, której nawet sam autor już nie chce się podejmować, przez kogoś "obcego" jest już zupełnie niewykonalna. Kiedyś mówiło się, że gdyby budowlańcy budowali domy tak jak programiści piszą programy, to świat już dawno leżałby pod gruzami. I nie winiłbym o tę bylejakość samych programistów, którzy jako twórcy zawsze pragnęli tworzyć dzieła prawie doskonałe :) co raczej ich menedżerów, często przekwalifikowanych ze sprzedawców ogórków na giełdzie warzywnej (autentyczne), pazernych na szybkie zyski i posuwających się do nieuczciwej konkurencji. Taką jest np. "konkurencja czasem", polegająca na wypuszczaniu na rynek zapluskwionych programów, na co dawniej żadna szanująca się firma by sobie nie pozwoliła. Ale że gorszy towar wypiera lepszy, tamtych firm już na rynku nie ma. Nawet żelbetowe budynki już nie stoją, jak zakładali budowniczy przez setki lat. W moim mieście bezceremonialnie burzy się nawet będące jego symbolem budowle z lat powojennych, do których byliśmy przyzwyczajeni i przywiązani. Jednak w czasie rozbiórki widać że konstrukcja licha i jej przeróbka nie miałaby sensu. To wszystko dzieje się za szybko, to prawda. Wolelibyśmy żyć w spokojniejszym, stabilnym świecie na ludzką miarę. Zbudowaliśmy nową większą wieżę Babel - piękny choć nieludzki ląd... I nie jest nam z tym dobrze.
Dodaj komentarz
Gość
    Nick (wymagany lub )

    Ze względów bezpieczeństwa, kiedy korzystasz z możliwości napisania komentarza lub dodania intencji, w logach systemowych zapisuje się Twoje IP. Mają do niego dostęp wyłącznie uprawnieni administratorzy systemu. Administratorem Twoich danych jest Instytut Gość Media, z siedzibą w Katowicach 40-042, ul. Wita Stwosza 11. Szanujemy Twoje dane i chronimy je. Szczegółowe informacje na ten temat oraz i prawa, jakie Ci przysługują, opisaliśmy w Polityce prywatności.