"– Dlaczego programista na umycie głowy zużywa całą butelkę szamponu?
– Bo w instrukcji jest napisane: nałożyć, spłukać, czynność powtórzyć."
Komentarz dla nie-informatyków:
Informatyk, jako stworzenie piszące instrukcje (dla komputera) z założenia instrukcjom się bezrefleksyjnie poddaje (jak komputer). Dlatego łatwo nim kierować - postępuje zawsze według instrukcji. Dlatego też trudno nim kierować - postępuje zawsze według instrukcji. Nieprecyzyjne instrukcje (choćby wspomniane niedawno polecenie obrania połowy ziemniaków) informatyk stara się zrealizować precyzyjnie, co czasem prowadzi do kupienia 6 butelek mleka zamiast butelki mleka i 6 jajek.
Powyższy suchar opiera się na konstrukcji zwanej pętlą nieskończoną. Dlaczego zatem wspomniany informatyk zużywa butelkę szamponu i kończy jednak mycie głowy? Otóż butelka szamponu ma ograniczoną pojemność. Pomimo najszczerszych chęci nie da się czynności powtórzyć, gdy szamponu brak. "Ale przecież pętla nieskończona być miała" - zauważycie słusznie. Ano miała. Jednak brak szamponu generuje wyjątek EMissingShampooException, a to powoduje przerwanie pętli i przywrócenie informatyka do normalnego życia. Można go znowu wysłać po mleko i jajka.
Dziękuję za uwagę.