Błąd Arystotelesa w IT

Kolejna wpadka IT: obiektowość

Języki programowania przechowują niektóre dane na tzw. stosie (ang. stack). Z punktu widzenia programisty oznacza to, że dane i funkcje, zadeklarowane wewnątrz jednej funkcji, przestają istnieć, gdy się tę funkcję opuści.

Trudno to zrozumieć? To znakomicie, ponieważ to właśnie chcę pokazać, że słynne w latach 80. i 90. podejście obiektowe tak naprawdę powstało jako technologia o wiele wcześniej i jako najzupełniej hackerskie rozwiązanie: pewien typ danych (obiekty) kompilator języka umieszczał na stercie (ang. heap) zamiast na stosie, dzięki czemu stały się możliwe pewne ciekawe i praktyczne rozwiązania: klasy, dziedziczenie. Takie podejście jego twórcy (Nygaard, Dahl) nazwali obiektowym.

Rozwiązanie było dobre, ale przecież totalnie niezrozumiałe dla biznesu, i nastąpiło kolejne szaleństwo: słowo „obiektowe” zaczęło znaczyć „dobre i nowoczesne”, tworzono absurdalne i fantastyczne teorie o rzekomej zgodności obiektowego modelowania świata z poznawczymi mechanizmami psychiki człowieka. Pojawiła się plejada „obiektowych” metod: analizy i projektowania, dobrych lub złych, ale niemających nic wspólnego z przenoszeniem danych ze stosu na stertę ani z mechanizmem dziedziczenia w obiektowych językach programowania.

Dzisiaj ta histeria minęła i pozostało po niej wiele dobrego: obiektowe języki programowania, diagramy przypadków użycia w UML, ale rzekome cudowne rozwiązania wszystkiego przez obiektowość okazało się marketingową fikcją, kolejnym błędem Arystotelesa.

Moda na agile

Zmądrzeliśmy? Ani trochę. W 1999 r. pojawił się nowatorski, kontrowersyjny pomysł, nazwany przez autorów (Beck, Cunningham) programowaniem ekstremalnym. Ten paradygmat sprawdzał się znakomicie w projektach, w których nie dało się precyzyjnych wymagań sformułować zawczasu, pod warunkiem że realizowali je programiści wysokiej klasy.

Już dwa lata później, w roku 2001, ten dobry pomysł podzielił losy swoich wcześniejszych pobratymców i poszybował w górę, w stratosferę. „Manifest agile”, zawierający skądinąd wiele mądrych pomysłów, jednocześnie pełen jest gołosłownych ogólników głoszących, że podejście zwinne jest totalnie nowym, wszechstronnie lepszym sposobem tworzenia systemów IT, nową, humanitarną filozofią informatyki. I tak jest do dzisiaj.


TOP 200