Pożytki z przeżytków

Pamiętam, gdy kilka lat temu prowadziliśmy w gronie programistów dyskusje na temat dochodów i wyposażenia w sprzęt. Wnioski były jednoznaczne i niezbyt budujące: doszliśmy do wspólnego stanowiska, że programiści zarabiają niewiele w porównaniu do wykonywanej pracy, czego bezpośrednim skutkiem miały być także niedostatki w posiadanym sprzęcie komputerowym.

Pamiętam, gdy kilka lat temu prowadziliśmy w gronie programistów dyskusje na temat dochodów i wyposażenia w sprzęt. Wnioski były jednoznaczne i niezbyt budujące: doszliśmy do wspólnego stanowiska, że programiści zarabiają niewiele w porównaniu do wykonywanej pracy, czego bezpośrednim skutkiem miały być także niedostatki w posiadanym sprzęcie komputerowym.

Z rozeznania sytuacji wynikało, że programiści dysponowali zazwyczaj komputerami co najmniej o klasę gorszymi niż aktualna przeciętna posiadania w populacji wszystkich właścicieli sprzętu. Okazywało się bowiem, że byle zasobniejszy hobbysta informatyczny dysponował sprzętem o niebo lepszym, niż ten, który służył profesjonalistom do wytwarzania oprogramowania. W tej sytuacji pozycja programisty sprowadzała się do roli ubogiego wyrobnika, wytwarzającego swoje produkty w przestarzałym warsztacie - oczekującego do znudzenia na wyniki kompilacji lub otwarcie następnego okienka.

Obecnie sytuacja uległa niewątpliwej poprawie. Komputery o przyzwoitych parametrach nie są już bardzo drogie w stosunku do zasobności portfela, a te nieco starsze można nabyć za wręcz śmieszne kwoty. W zasadzie programiści nie powinni mieć specjalnych powodów do narzekań, chociaż na zarobki narzeka się zawsze, a - jak zauważyłem - celują w tym osoby najlepiej zarabiające.

Jednak szybki komputer sprzyja pewnej nonszalancji przy tworzeniu oprogramowania. Dlaczego? Dlatego że nie dostrzega się opóźnień wynikających z braku optymalizacji czasowej programu. Czas reakcji wydaję się do nie przyjęcia, nawet przy dużej liczbie danych, co z natury rzeczy nie budzi wątpliwości na temat jakości zastosowanych algorytmów. Na własnej skórze przekonałem się, jak mylące bywają obserwacje, gdy zmuszony zostałem do testowania swojego oprogramowania na komputerze 486, w zwykłych warunkach eksploatowanego na procesorach Pentium i dużej pamięci. Niektóre procedury wykonywały się tak powoli, że zniecierpliwiony oczekiwaniem zacząłem dociekać przyczyn. Oczywiście, znalazłem je i uprościłem algorytmy, osiągając czas zupełnie przyzwoity, co z kolei na Pentium dawało wynik wprost oszałamiający. Można? Można - trzeba jednak samemu doświadczyć.

Wydaje się, że czas walki o milisekundy i każdy bajt pamięci przy tworzeniu aplikacji odszedł w zapomnienie. Małą wydajność oprogramowania rekompensuje obecnie wydajność sprzętu, przynajmniej częściowo. Niemniej warto raz po raz zweryfikować produkty intelektu na nieco już przeżytych modelach komputerów. Z całą bezwzględnością ujawnią się wówczas nieprzewidziane mankamenty niedoskonałych algorytmów. Program działający nieźle na sprzęcie mniej wydajnym będzie naprawdę zaskakująco sprawny technicznie na szybkich maszynach. Nowe technologie pozwalają czasami zamaskować niedoskonałości oprogramowania, ale mimo wszystko nie zwalniają od utrzymywania pewnego poziomu merytorycznego. Szybki komputer nie przemieni złego programisty w mistrza, tak samo jak szybki samochód nie uczyni z patałacha mistrza kierownicy.


TOP 200