Wszyscy szoferami?

Anegdota mówi, że Lord Nelson, potomek słynnego pogromcy Wielkiej Armady spod Trafalgaru, chętnie słuchał młodych wynalazców. Na długo przed tym, jak Henry Ford zaproponował legendarny model T, pewien wizjoner sugerował, że w przyszłości każda rodzina będzie mieć automobil do osobistego użytku. Lord Nelson pokiwał sceptycznie głową i rzekł: Chcesz mi powiedzieć młody człowieku, że wszyscy skończymy jako szoferzy?

Anegdota mówi, że Lord Nelson, potomek słynnego pogromcy Wielkiej Armady spod Trafalgaru, chętnie słuchał młodych wynalazców. Na długo przed tym, jak Henry Ford zaproponował legendarny model T, pewien wizjoner sugerował, że w przyszłości każda rodzina będzie mieć automobil do osobistego użytku. Lord Nelson pokiwał sceptycznie głową i rzekł: Chcesz mi powiedzieć młody człowieku, że wszyscy skończymy jako szoferzy?

Pomysł, że szanowani obywatele będą wykonywać tak niewiele znaczącą profesję jak szofer wydawał się lordowi kompletnie szalony. Nie przyszło mu jednocześnie do głowy, że prowadzenie samochodu stanie się umiejętnością powszechną i straci swoje dotychczasowe konotacje.

I choć zapewne profesja programisty cieszy się większym prestiżem od szofera, absurdalny wydaje się pomysł, że wszyscy będą programistami. A jednak staje się nimi coraz większa liczba osób - nie zawsze świadomie.

Kimże bowiem jest programista? Przywróćmy temu słowu jego pierwotne znaczenie: programista to ktoś, kto opisuje reguły i zasady rządzące pewnym zjawiskiem w sposób pozwalający maszynie cyfrowej wykonać to samo szybciej, taniej i sprawniej. Hermetyczność tej profesji wynika nieomal tylko z niedojrzałości narzędzi oraz przepaści między językiem a przedmiotem opisu. To dlatego zamiast pisać "zarejestruj pacjenta do odpowiedniego specjalisty na pierwszą wolną i akceptowaną przez niego godzinę" piszemy tysiące linii kodu w systemach informatycznych.

Napisałem "nieomal", bo w programowaniu istotny jest jeszcze kontekst i środowisko - sposób programowania zależy np. od tego, czy pacjentów będzie 10 czy 10 000, czy przychodnia będzie jedna czy będzie ich więcej, czy jednocześnie do systemu podłączy się 1 czy 200 użytkowników, jakie zachowania są naturalne dla lekarzy i pacjentów oraz do jakiego sposobu komunikacji przywykli... wszystkie te czynniki dobry analityk bierze pod uwagę określając architekturę i funkcjonalność rozwiązania - biorąc za to zresztą niemałe pieniądze.

Charles Simonyi, były główny architekt Microsoftu, ujmuje rzecz tak: jest jak kopanie diamentów, tylko na odwrót. W kopalni diamentów wydobywa się mnóstwo ziemi, żeby znaleźć jeden lśniący kryształ; w programowaniu lśniący kryształ - intencję programisty - zakopuje się w masie brudu, czyli strukturach i algorytmach opisanych językiem. Simonyi jako antidotum proponuje intencjonalne, które ma same zalety i tylko jedną wadę - jest Świętym Graalem informatyki, bo nikt nie widział go na oczy.

A jednak programistami stopniowo, po trochu stajemy się wszyscy. Można podać przykład arkusza kalkulacyjnego - narzędzia w znakomity sposób ułatwiającego nie tylko złożone obliczenia, ale np. pozwalającego zaprogramować proste algorytmy wyboru, kontrole kompletności i poprawności danych, przy jednoczesnej elastyczności i intuicyjnej obsłudze. Kiedyś pisałem programy wyłącznie w C, potem w C++, potem w VB, a teraz - ilekroć mam stworzyć prosty algorytm - moje myśli kierują się ku Excelowi. Ciekawa ewolucja jak na informatyka, prawda? Zapewne za parę lat zacznę tworzyć oprogramowanie w czymś co zwie się domain-specific languages (polecamhttp://martinfowler.com/articles/languageWorkbench.html ).

Zakładam, że za 10 lat większość wykwalifikowanych knowledge workers będzie potrafiła skłonić maszynę cyfrową, by ta robiła coś zgodnego z ich potrzebami. Ale nie znaczy to, że wszyscy będziemy programistami - tak jak nie wszyscy kierujący samochodem stali się szoferami. Wystarczy, by każdy znalazł język właściwy dla opisu problemów ze swojej dziedziny i potrafił go efektywnie stosować.


TOP 200