Profesjonalny programista

Opublikowane zostało nowe tłumaczenie z cyklu 97 rzeczy, o których każdy programista wiedzieć powinien:

Zapraszamy do lektury!
Zespół devMedia.pl

Kiedy wielcy myśliciele analizują problemy

Oryginalny post: Don’t Let Architecture Astronauts Scare You

Autor: Joel Spolsky

Kiedy wielcy myśliciele analizują problemy, zaczynają dostrzegać wzory. Spoglądają na problem ludzi wysyłających sobie pliki edytora tekstów, potem patrzą na problem osób wysyłających do siebie arkusze kalkulacyjne i zdają sobie sprawę, że jest do tego przypisany ogólny wzór – wysyłanie plików. To już jest jeden poziom abstrakcji. Potem przenoszą się o jeden poziom wyżej: ludzie wysyłają pliki, ale przeglądarki internetowe również „wysyłają” zapotrzebowanie na strony www. I kiedy się nad tym zastanowisz, wywołanie metody na obiekcie jest niczym wysyłanie wiadomości do obiektu! To znowu jest to samo. Wszystko to są operacje wysyłania, więc nasz mądry myśliciel wynajduje nową, wyższą, szerszą abstrakcję zwaną wiadomościami, ale teraz zaczyna się to robić naprawdę niejasne i nikt tak naprawdę już nie wie o czym mowa. Eh.

Kiedy wzniesiesz się za wysoko, abstrakcyjnie myśląc, w końcu zabraknie ci tlenu. Czasem mądrzy myśliciele po prostu nie wiedzą kiedy przestać, i tworzą te absurdalne, w pełni wyczerpujące problem, wysokopoziomowe obrazy świata, które są wszystkie poprawne i trudno im coś zarzucić, ale tak naprawdę w rzeczywistości niczego nie zmieniają, nic nie znaczą.

Takich właśnie ludzi nazywam Astronautami Platform. Bardzo ciężko zmusić ich do napisania kodu lub projektowania programów, ponieważ nie potrafią przestać myśleć o systemie. Są astronautami, ponieważ unoszą się wysoko, powyżej poziomu tlenu, sam nie mam pojęcia czym oddychają. Mają zwyczaj pracować dla naprawdę dużych firm, które mogą sobie pozwolić na zatrudnianie całej masy bezproduktywnych ludzi mających naprawdę wysokie wykształcenie, którzy nie mają kontaktu z rzeczywistością.

Ilustruje to ostatni przykład. Typowy Astronauta Platform zaakceptuje fakt, że “Napster jest usługą peer-to-peer do pobierania muzyki” i zignoruje wszystko poza kwestią modelu komunikacji, myśląc, że jedyne co jest tu interesujące to model P2P. Kompletnie pominą przy tym samo sedno, czyli że jest to interesujący program, ponieważ umożliwia wpisanie nazwy utworu muzycznego i przesłuchanie go od zaraz.

Wszystko, o czym będą rozmawiać, to działanie metody P2P tu, tam i w innych rzeczach. Nagle mamy konferencje poświęcone peer-to-peer, przedsiębiorstwa peer-to-peer i nawet peer-to-peer z głupimi dziennikarzami biznesowymi skaczącymi z radości kiedy kopiują między sobą teksty: ”Peer to peer jest martwe!”.

Astronauci Platform będą powtarzali rzeczy w stylu: ”Czy możesz sobie wyobrazić taki program jak Napster, w którym możesz pobrać cokolwiek, a nie tylko muzykę?”. Potem stworzą aplikacje w stylu Groove, które według nich będą bardziej ogólne niż Napster, ale które wydają się zaniedbywać tę małą, lecz istotną funkcję, która pozwala wpisać nazwę piosenki i jej wysłuchać – funkcję, na której przecież zależy nam najbardziej. Chodzi o zatracenie sensu. Jeżeli Napster nie byłby programem peer-to-peer, ale umożliwiałby wpisanie nazwy utworu i odsłuchanie go, byłby równie popularny.

Inną powszechną rzeczą, którą Astronauci Platform lubią robić, jest tworzenie nowych platform i zarzekanie się, że coś rozwiązują. Java, XML, Soap, XmlRpc, Hailstorm, .NET, Jini, o Boże sam już za tym nie nadążam. I to tylko w ostatnim czasie.

Nie mówię, że jest coś nie tak z tymi platformami, oczywiście, że nie. Są całkiem niezłe. Co mnie męczy to zadziwiająca ilość hałasu, który im towarzyszy. Pamiętacie reklamę Microsoft Dot Net?

Następna generacja desktopowej platformy Windows, Windows.NET wspiera produktywność, kreatywność, zarządzanie, rozrywkę i wiele innych oraz jest tak zaprojektowana, by dać użytkownikom kontrolę nad ich cyfrowym życiem.

Dziewięć miesięcy później otrzymaliśmy platformę Microsoft Hailstorm. Reklama oznajmiała:

Ludzie nie mają kontroli nad technologią, która ich otacza. HailStorm sprawia, że technologia w twoim życiu pracuje dla Ciebie i jest pod twoją kontrolą.

No dobrze, więc teraz nowoczesna lampa halogenowa w moim mieszkaniu przestanie mrugać co jakiś czas.

Microsoft nie jest sam. Oto cytat z reklamy Sun Jini:

Te trzy fakty (jesteś nowym administratorem systemu, komputerów nie ma nigdzie, jest jeden komputer wszędzie) powinny się łączyć, by ulepszać świat przez korzystanie z komputerów jako komputerów, przez sprawianie, by granice dla komputerów zniknęły, by komputery były wszędzie i poprzez uczynienie szczegółów pracy z komputerami tak prostymi, jak wkładanie DVD do kieszeni kina domowego.

I nawet nie przypominaj mi tekstu, który George Gilder rozprzestrzenił o Javie:

Fundamentalny przełom w historii informatyki…

To jeden pewny sposób by poznać, że jesteś atakowany przez Astronautę Systemowego: niesamowita pompatyczność, heroiczna, utopijna chełpliwość w połączeniu z oderwaniem od rzeczywistości. A ludzie to kupują. Prasa biznesowa szaleje! Wyobraźcie sobie, jak w ten sposób reklamowałaby się - , Warszawa, Kraków są nareszcie w twoim zasięgu, nawet bez własnego samochodu. Nie ważne, że istnieje coś takiego, jak transport publiczny, autobusy, pociągi czy samoloty, a praktycznie każdy z nas posiada własny pojazd. Na ludzi to działa.

Czemu do licha tyle osób jest pod takim wrażeniem nowych nudnych platform, które często wnoszą niewiele więcej niż zmieniony format plików lub nową wirtualną maszynę? To mogą być dobre platformy, z pewnością przyniosą korzyści programistom, którzy będą z nich korzystali, ale nie są, powtarzam, nie są żadnym substytutem do nadejścia mesjasza, czy nastania pokoju na świecie. Nie, Microsoft, komputery nie zaczną nagle czytać w naszych myślach, ani robić to, co chcemy automatycznie. Nie, Sun, analiza danych sprzedażowych wielkiej korporacji nie będzie równie prosta jak „włożenie DVD do stacji kina domowego”.

Pamiętajcie, że ludzie od platform rozwiązują problemy, które wydaje im się, że mogą rozwiązać, nie problemy, które przyniosą korzyści po ich rozwiązaniu. Soap + WSDL może być Gorącą Nowością, ale tak naprawdę nie pozwoli ci zrobić nic, czego nie mógłbyś zrobić za pomocą innych środków – jeżeli miałbyś ku temu powód. Cała ta Nirwana Usług Rozproszonych, o której paplają Astronauci Platform, była nam obiecana w przeszłości, jeżeli używaliśmy DCOM, JavaBeans, OSF DCE czy CORBA.

To miło, że XML ma zastosowanie w sieci. Super. Ale to jest dla mnie równie interesujące jak informacja, że mój supermarket używa ciężarówek, żeby przywieźć rzeczy z magazynu. Ziewać się chce. To dopiero interesujące. Powiedzcie mi o czymś nowym, co mogę zrobić teraz, a nie mogłem wcześniej, o Astronauci, lub zostańcie tam w kosmosie i nie marnujcie więcej mojego czasu.

Data publikacji oryginału: 21 kwietnia 2001

Related Posts with Thumbnails