Istnieją problemy i choroby, które same się ograniczają. Kolonia pasożytów nie może eksploatować swojego nosiciela w sposób nieograniczony, bo to nosiciela by zabiło, a razem z nosicielem zginąłby też i pasożyt. W związku z tym kolonia pasożytnicza sama się ogranicza. Może też być ograniczana siłą rzeczy. Głodny i osłabiony nosiciel może oznaczać że i pasożyt będzie głodny i osłabiony.
Dzisiejsze komputery wcale nie sprawiają wrażenia szybszych niż 10, 20, czy 30 lat temu. Siedzę przed komputerem napędzanym przez procesor Intela o zegarze 2.7GHz, ale kiedy naciskam klawisz, czekam na reakcję dłużej niż wtedy, kiedy siedziałem przy komputerze z procesorem Zilog Z80 z zegarem .0035 GHz. Pomijając fakt że pojedyncza operacja w procesorze Intela potrafi zrobić więcej niż operacja w Zilogu, to sam zegar procesora tyka 770 razy szybciej. Dlaczego więc muszę czekać po naciśnięciu klawisza dłużej niż kiedyś? A tak konkretniej, dlaczego czekam tyle, że mnie to czekanie trochę irytuje, ale nie na tyle żebym się zdenerwował i zaniechał używania mojego komputera?
Wprowadzanie zmian w kodzie jest upierdliwe, bo nie mogę zmienić tego tylko, co potrzebuję. Muszę dodatkowo wprowadzac zmiany w ośmiu miejscach naokoło, bo ktoś kto wprowadzał zmiany w kodzie przede mną, zrobił tylko to co niezbędne do funkcjonowania kodu, ale po sobie nie posprzątał, i warstwy abstrakcji przeciekają jedna w drugą. Klnę więc, i pieczołowicie wprowadzam moje zmiany, natykając się na kolejne niespodzianki. Jednak, trudności które mam, nie są na tyle duże żeby mnie całkowicie zniechęcić do wprowadzania zmiany, albo do wszczynania projektu mającego na celu uporządkowanie całego kodu.
Kierowcy stoją w korkach. Wciąż idzie budowa nowych dróg i poszerzanie istniejących, ale mimo to korków jest coraz więcej. Kiedyś podróżowanie z A do B trwało długo, bo trzeba było iść albo jechać furmanką. Potem pojawił się samochód, ale jeździł powoli. Potem pojawił się szybki samochód, ale raz że wprowadzono ograniczenia prędkości, dwa że po drodze dużo świateł i innych samochodów, a trzy że ciężko jest zaparkować, więc czas na parkowanie dodatkowo przedłuża naszą podróż.
Ekstrapolując… Dlaczego żyjemy w środowisku które jest prawie nie do wytrzymania?
Musi tak być, z definicji. Gdyby było nie do wytrzymania, to byśmy nie wytrzymali i zrobili coś (do cholery!), żeby to zmienić. Kiedy akceptujemy środowisko takim jakie jest, pozwalamy mu dryfować, a dryf ten ma tylko jeden kierunek: ku gorszemu.
Dlaczego tylko ku gorszemu?
Babka z piasku jest jedną z możliwych konfiguracji ziarenek piasku. Ale ze wszystkich możliwych konfiguracji ziarenek piasku, te które są uporządkowane, stanowią znikomy procent. Większość możliwych konfiguracji ziarenek piasku to zwykła, spłaszczona grawitają kupka piasku, bez kantów, krawędzi, kółek, ścian, brzegów, czy jakichkolwiek innych regularnych kształtów.
Ze wszystkich możliwych sytuacji w których może być nasze środowisko, większość jest kiepskich, zabałaganionych, nieefektywnych, niewdzięcznych i brzydkich. Możliwych sytuacji uporządkowanych jest o wiele, wiele mniej. Kiedy więc nasze środowisko dryfuje, przechodząc z aktualnego stanu w nowy, przypadkowy stan, jest prawie pewne że przejdzie w stan gorszy niż aktualny.
Nieefektywnych sposobów napisania programu jest dużo więcej niż efektywnych.
Jest więcej sposobów na zapchanie ulic samochodami niż na utrzymanie ich pustych.
Wszystko naokoło nas podlega czemuś w rodzaju ewolucji, tylko że bez doboru naturalnego. Wszechogarniające nieuporządkowanie świata kłębi się we wszystkich aspektach naszego życia.
Z doświadczenia wiemy jednak że nie wszędzie tak jest. Istnieją programy które szybko działają. Są miasta które nie są zaduszone samochodami. Istnieje kod, z którym można w miarę dobrze pracować. Zapytam więc jeszcze raz: Dlaczego żyjemy w środowisku które jest prawie nie do wytrzymania?
Czy nie jesteśmy sami temu winni? Dlaczego działamy jedynie reaktywnie? Dlaczego czekamy bezczynnie aż środowisko stanie się nie do zniesienia?
©2003-2024 Maciej Bliziński