Cebulowy postęp

2010-09-15 17:48

Co pewien czas można natknąć się na porównania odnośnie mocy obliczeniowej komputerów bardzo dawnych i tych dzisiejszych. Takim dość typowym, często powtarzanym stwierdzeniem jest na przykład to, iż komputer sterujący misją Apollo 11 miał moc porównywalną z dzisiejszym kalkulatorem. Podobne ciekawostki służą czasami ukazaniu gigantycznego postępu, jaki dokonał się w ciągu ostatnich kilku dekad jeśli chodzi o sprawność jednostek obliczeniowych.

Jednak nierzadko służą one także kwestionowaniu kierunku zmian w szeroko pojętej technologii komputerowej, które były możliwe właśnie dzięki tak wielkiemu wzrostowi mocy obliczeniowej procesorów. Bez zbędnych słów można te argumenty streścić w postaci następującego pytania: Skoro 40 lat temu “kalkulator” o częstotliwości 1 Mhz mógł dowieźć ludzi na Księżyc, to dlaczego obecnie potrzebujemy tysiąc razy większej mocy obliczeniowej, aby napisać prosty dokument tekstowy?… Aż chciałoby się dodać: co poszło nie tak? :) Ale spokojnie, wszystko jest w jak najlepszym porządku. Takie postawienie sprawy to bowiem nic innego, jak chwytliwy slogan, który przedstawia ją w sposób zdecydowanie zbyt uproszczony. Krótko mówiąc, zionie on przerażającą ignorancją.

Nie chodzi tu już nawet o wyraźne przecenienie stopnia skomplikowania zadań, przed jakimi ów sławetny komputer pokładowy stawał i jakości rozwiązań, które dla nich znajdował (ich częścią był chociażby “interfejs użytkownika”, składający się z komunikatów-liczb, których odcyfrowanie wymagało sporej książki). Bardziej irytuje mnie sugestia, że w dzisiejszych aplikacjach cała ta olbrzymia moc obliczeniowa jest marnowana na parę w gwizdek. No, czyli właściwie na co?… Odpowiedź brzmi: na mnóstwo “oczywistych” rzeczy, na które normalnie nie zwracamy uwagi albo o których nie musimy nawet myśleć. Jest ich dużo, bardzo dużo – i ich lista cały czas się powiększa.

Przykłady? Ależ proszę; nie trzeba ich wcale daleko szukać. Czy ktoś może chociażby uczciwie powiedzieć, że dokładnie wie, jak działa Internet? Jak to się dzieje, że dane mogą zostać przesłane z jednego końca świata na drugi, mijając po drodze kilometry kabli, setki routerów, dziesiątki różnie skonfigurowanych podsieci, a pewnie i kilka satelitów, i być odczytane na komputerze nie tylko działającym pod kontrolą całkiem innego systemu operacyjnego, ale składającym się być może z zupełnie różnych podzespołów?… Totalna magia :)
Ale to jest właśnie ów gwizdek. Taka karkołomna operacja jest możliwa tylko dlatego, że występujące po drodze ogniwa dysponują wystarczającą mocą obliczeniową i przepustowością łączy, by w rozsądnym czasie dokonać wielokrotnego rozpakowywania i ponownego pakowania danych w poszczególne warstwy komunikacji. Każda z nich: Ethernet, IP, TCP, HTTP (a na tym pewnie Unicode, XML/JSON/itp., RPC i w końcu protokół własny aplikacji) służą temu, aby – paradoksalnie – coś uprościć i… przyspieszyć. Tym czymś jest oczywiście tworzenie aplikacji – to, co trwa najdłużej, jest najkosztowniejsze i nie poddaje się prostemu skalowaniu tak, jak możliwości elektroniki.

Rozwój IT polega więc (w dużym stopniu) na dodawaniu kolejnych warstw abstrakcji do coraz większej cebuli. Nie jest to jednak przyczyna, a skutek coraz lepszych możliwości technicznych sprzętu. Możemy sobie po prostu na to pozwolić. I bardzo dobrze.
Nie zapominajmy bowiem, że komputer Apollo 11 programowany był w archaicznym asemblerze przez ładnych kilka lat przez sztab wybitnych fachowców z NASA. Czy nie powinniśmy doceniać faktu, że program wykonujące równoważnie skomplikowane zadania może dzisiaj stworzyć niemal każdy w znacznie krótszym czasie i o wiele przyjemniejszy sposób? Jeśli ktoś twierdzi, że to nie jest postęp, to doprawdy nie wiem, co mu odpowiedzieć :P

Tags: ,
Author: Xion, posted under Computer Science & IT, Internet, Thoughts »


6 comments for post “Cebulowy postęp”.
  1. lukaszw:
    September 15th, 2010 o 20:37

    Zauważ również, że przeciętny zjadacz chleba nie ma pojęcia np. co robi Google po kliknięciu przycisku “szukaj”. Dla niego to jest banalne – klika i już, wyświetla się wiele wyników. Nie zdaje sobie sprawy, że aby on mógł otrzymać wyniki w ułamku sekundy komputery w serwerowni Google musiały przeszukać cache internetu. Nie zdaje sobie sprawy jak potężnej mocy obliczeniowej to wymagało. Tak samo z programami – co on może wiedzieć o wszystkich błędach występujących w programach pisanych bardziej niskopoziomowo. Liczy się tylko to, że nowsza wersja programu uruchamia się dużo dłużej na starszym kompie niż wersja poprzednia. On nie wie, że dzięki takiemu spowolnieniu aplikacji (które na nowych komputerach się prawdopodobnie nie ujawnia), program ten będzie rzadziej wywalał się na jakimś błędzie i zmniejszy się ryzyko utraty danych, gdyż autorzy zdecydowali używać np. wysokopoziomowego, ale tym samym wolniejszego alokatora pamięci.
    Takie jest moje osobiste zdanie :)

  2. MSM:
    September 15th, 2010 o 21:12

    Ba, ta “para w gwizdek” idzie również w takie dla przykładu okna, bez których pani Jadzia sobie nie poradzi. Podczas edycji pliku tekstowego setki przycisków migają, komputer przetwarza tysiące komunikatów z i do aplikacji, ale tego “nie widać” więc najprościej nazwać to “parą w gwizdek”.
    Jeśli komuś tak bardzo potrzeba tych mHz procesora to niech pracuje w jakimś DOSowym edytorze tekstowym. Najlepiej wspierając się dokumentacją formatu rtf/doc żeby pliki ładnie wyglądały.

  3. Kacper Kołodziej:
    September 18th, 2010 o 15:28

    Zupełnie się zgadzam. Ludzie bardzo często dają za przykład postępu porównanie, które przedstawiłeś – z rakietą. Warto dodać, że mówią o tym ci, którzy usłyszeli to w TV i nie mieli pojęcia o tym, ile pracy wymagało napisanie programu, który tą rakietę w kosmos wyśle.
    Bardzo dobrze, że o tym piszesz. Może niektórzy uświadomią sobie ile pracy musi włożyć grupa ludzi, żeby oni mogli później zapisać plik jednym kliknięciem…

  4. Maciekp:
    September 20th, 2010 o 22:05

    Wszystko idzie ku kierunkowi, by użytkownik nie musiał myśleć :P

  5. Maciekp:
    September 20th, 2010 o 22:11

    i właśnie to boli- narobisz się,nie przesypiasz nocek i najczęściej nie widać wszystkich tych pierdół, o które walczyłeś, żeby wszystko ładnie działało i tylko Ty wiesz, że zrobienie głupich guzików, suwaczków, notatnika, pola do pisania, kontrolek- wcale nie jest takie proste i banalne jak się wydaje…

  6. agent_J:
    September 21st, 2010 o 7:46

    Jak ktoś zacznie porównywać komputery sterujące statkiem kosmicznym z biurkowym PC powinien dostać tylko kopa w łeb. Komputery PC mają do przetwarzania masę informacji dla grafiki, aplikacji, sieci, etc. Komputer na statku kosmicznym ma być maksymalnie prosty oraz ma działać bezbłędnie. Do tego wchodzi wymaganie odporności na promieniowanie kosmiczne – dlatego stosuje się stare procesory, które mają wszystkie błędy znane na wylot.

Comments are disabled.
 


© 2017 Karol Kuczmarski "Xion". Layout by Urszulka. Powered by WordPress with QuickLaTeX.com.