Pecetowa nostalgia: czy kiedyś oprogramowanie było lepsze?

Strona główna Aktualności
Czy kiedyś oprogramowanie było lepsze (dobreprogramy)
Czy kiedyś oprogramowanie było lepsze (dobreprogramy)

O autorze

Wciąż szukamy odpowiedzi na pytanie, za czym tęsknimy w starych pecetach. Ponownie będziemy więc sięgać pamięcią kilkanaście lat wstecz. Poprzednio zajmowaliśmy się retro-sprzętem, tym razem zajmijmy się retro-oprogramowaniem. Dlaczego tak często uznajemy stare wersje naszych ulubionych programów za w jakiś sposób lepsze, pełniej pokrywające nasz zbiór wymagań? Wiele dziś używanych aplikacji to nowe wersje tych samych programów, które były w użyciu dziesięć czy piętnaście lat temu. Logika nakazywałaby, że przez ten czas dokonano w nich szeregu udoskonaleń, a mimo to tak często wzbraniamy się przed aktualizacją. Zupełnie tak, jakby przez owe lata dokonał się wręcz regres, a nie postęp.

Krótkie ćwiczenie dla tych przed pecetami: spójrzmy na nasz pasek zadań (lub dok). Zidentyfikujmy uruchomione lub przypięte do niego programy. Jeżeli mamy bardziej produktywny dzień, będzie się wśród nich znajdować więcej aplikacji, niż tylko przeglądarka internetowa. Jeżeli jednak trafimy tak, że „na pasku” znajduje się tylko np. Chrome, to przyjrzyjmy się stronom internetowym, które są w nim otwarte. Ze szczególnym uwzględnieniem tych otwartych przez cały czas.

W dowcipach informatycznych często pojawia się pojęcie „peak software”, czyli punktu w rozwoju oprogramowania, po którym nie powinno się tworzyć nowych jego wersji. Ludzka niechęć do zmian sprawia, że dużo ludzi identyfikuje takie punkty w cyklu życia używanych przez siebie programów. Zależność od wieku sprawia, że bardzo często chwali się wersje, z którymi na przykład przyszło dorastać lub zaczynać pierwszą, dobrze wspominaną pracę. Ma to mniej wspólnego z rzeczywistą jakością oprogramowania, w praktyce jest intuicyjną reakcją na konieczność zmiany przyzwyczajeń. Faktem jest jednak, że taki pakiet Microsoft Office 2000 zajmował 280 megabajtów, a najnowsza wersja wariantu 365 zajmuje dziś około pięciu gigabajtów. Podczas, gdy wiele osób wykorzystuje mniej więcej ten sam zbiór funkcji, co dwie dekady temu. Czy chodzi więc o to, że oprogramowanie spuchło? Po części tak, ale to subiektywna kwestia. Źródeł nostalgii jest więcej. Oto krótki przegląd tych najważniejszych.

Bloatware, czyli kiedyś programy były mniejsze

Istotnie, dwudziestokrotny wzrost rozmiarów pakietu Office każe zadać pytanie, czy ów zestaw stał się w efekcie dwudziestokrotnie lepszy. Można zaryzykować tezę, że nie – zresztą każdemu z nas łatwo będzie wymyślić na poczekaniu dziesięć rzeczy, których w nim brakuje. Nie jest również prawdą, że nowy Office pracuje wskutek przemian dwudziestokrotnie wolniej, ale to już nieco lepszy trop. Anegdotyczne Prawo Wirtha mówi nam, że programy zjadają przyrost mocy komputerów szybciej, nż ten przyrost następuje. Wspomniany Office 2000 uruchomi się na najnowszym komputerze w ułamek sekundy, nie zdążywszy nawet wyświetlić ekranu tytułowego. Sęk w tym, że na komputerze sprzed dwóch dekad, start Office'a 2000 trwał mniej więcej tyle samo, co dzisiejszy start np. Worda 365. Dawne oprogramowanie działa więc naturalnie szybciej, ale nie możemy tęsknić do tej jego cechy, ponieważ dawniej działało ono tak samo powoli, jak dzisiejsze, nowe wersje.

Oczywiście, są programy zjadające zasoby o wiele mocniej, niż Office. Doskonałym przykładem ze stajni Microsoftu, wyjąwszy rzecz jasna z rozważań sam system Windows, jest środowisko Visual Studio. Co kilka lat dokonuje ono dławiącego skoku w ociężałości. Wydawanie sądów na temat VS jest trudne, ponieważ na przestrzeni ostatnich kilku lat pakiet ten stał się zintegrowanym środowiskiem programistycznym dla wielu platform, nie tylko tych z Redmond. Instalator zaopatruje nas w emulatory Androida, Javę, kilka dystrybucji języka Python oraz biblioteki programowania gier 3D. Najnowsza wersja umie o wiele więcej, niż np. Visual Studio 2010 (swoją drogą wydane kwartał później z powodu... problemów z wydajnością!). Jednakże pakiet rośnie również w miejscach, gdzie nie powinien. Zestawienie prostego projektu Hello World w języku C♯ to konieczność czekania kilkunastu sekund na przygotowanie środowiska. Spędza się je na patrzeniu w paski postępu ładowania kolejnych toolboksów. Problem stał się na tyle zauważalny, że zniechęcił zupełnie ludzi przywykłych do innego stylu programowania, np. „webowców” czy kogokolwiek z doświadczeniem czysto linuksowym. Dlatego biblioteki .NET Core działają już w pełni konsolowo i możliwe jest pisanie programów w czystym edytorze tekstu. Ale to tylko dygresja...

Design, czyli kiedyś programy były... ładniejsze?

Nie da się uciec od poczucia estetyki, a siła przyzwyczajeń potrafi wpłynąć nawet na najbardziej wyrobiony gust. Każde nowe wzornictwo wywołuje dezaprobatę u rzesz odbiorców, rozmiłowanych w poprzednim. Co ciekawe, dzieje się tak niezależnie od tego, jaka akurat nowa moda wypiera poprzednią. Podnoszono oburzenie, gdy Windows XP wprowadził bardziej kolorowy interfejs. Wybuchły internetowe zamieszki, gdy okazało się, jak wygląda Vista. I zarzucano kompletny brak kreatywności, gdy nadeszła era płaskich interfejsów i prostych kształtów. Użytkownicy Maków również niekoniecznie przychylnie patrzyli początkowo na całkowicie dosłowne wzornictwo jabłkowego systemu w wersji X. Jakkolwiek można dyskutować, czy każdy z owych trendów był drogą we właściwym kierunku, to wątpliwości nie ulega fakt ucieczki od czegoś uznanego za szkodliwe i anachroniczne.

Ciepło wspominany Windows 2000 i jego poprzednicy oferowali interfejsy użytkownika bez wygładzanych czcionek. Ma to w sobie oczywiście pewne brutalistyczne piękno, ale w opinii powszechnego odbiorcy, kanciaste literki były symbolem marności. To komputer nie dawał sobie wszak rady z ładnymi glifami, a przecież wszystko wokół (np. książki) zawierało bardzo ładne czcionki. Stąd w systemie pojawił się ClearType. Z kolei estetyka systemu OS X oraz Longhorna to zachłyśnięcie się potęgą mocy nowoczesnych komputerów. Pamiętajmy bowiem, że skromne ikony z lat dziewięćdziesiątych (i starsze) od początku aspirowały do bycia dosłownymi. Przeszkadzały im w tym niska rozdzielczość, zredukowana paleta dostępnych kolorów i ograniczenia pamięci operacyjnej. Gdy owe ograniczenia zniknęły, literalne wzornictwo, pełne skomplikowanych kształtów i błyszczących powierzchni, było naturalnym krokiem. Bezsprzecznie, jest to obciążenie dla zasobów komputera. Retro-użytkownicy, przyzwyczajeni do tego, że komputery szybko się starzeją, uznawali to za marnotrawstwo. Ten pogląd, zestawiony z siłą przyzwyczajeń, dodawał staremu designowi estymy, przez co wiele osób kojarzy go jako ładniejszy, niż „vistowa pstrokacizna”. Musimy jednak pamiętać, że dawne ikony nie były jasno wyartykułowanym stylem, a jedynie efektem funkcjonalnego kompromisu.

#retroquiz Czy pamiętasz ten program?
Sprawdź, jak dobrze pamiętasz niegdyś popularny software

Płaskie wzornictwo również zebrało szerokie grono przeciwników, aczkolwiek (nie zawsze świadomie) argumenty przeciwko flat design są argumentami wymierzonymi w całą, ogólną koncepcję zadaniowej interakcji z urządzeniem. Innymi słowy – nie chodzi o ikonki, a o to, że zamiast zestawu opcji ostały się trzy przyciski i reklama. Zajmujące osiemset czterdzieści trzy megabajty pamięci. A więc chodzi tu niekoniecznie o stylistykę, a również o ergonomię. Windows 8 i jego WinRT, używane również w aplikacjach UWP systemu Windows 10, oferują zbiór widgetów bardzo dobrze skalujących się na ekranach o różnych wielkościach. I nie mowa tu o telefonach i tabletach, a o monitorach czysto pecetowych. Poza tym, ustrój UI wymusza już na etapie kodowania o wiele większą konsekwencję, niż w przypadku aplikacji Win32 lub .NET Windows Forms. Ponadto, instancja aplikacji jest rysowana z pominięciem przeklętego, pełnego dziur i rozrośniętego mechanizmu GDI, co czyni je bezpieczniejszymi z definicji.

Niestety, koszt takiego przedsięwzięcia jest olbrzymi. Wszystkie niniejsze zalety stają się obiektem powszechnej pogardy, czy wręcz jawnej negacji, gdy okazuje się, jakie jest zapotrzebowanie aplikacji UWP na pamięć operacyjną. Nowoczesne interfejsy potrafią też, mimo pięknego narysowania się na 27-calowym monitorze 4K, mocno przycinać, gdy komputer jest zajęty. Marna aplikacja z UI stworzonym w C++ MFC będzie na takim ekranie albo rozmyta, albo mikroskopijna, ale na wszystkie kliknięcia będzie reagować natychmiast. Zupełnie tak, jak reagowała dziesięć lat wcześniej. Aktualizacja aplikacji UWP potrafi w dodatku mocno wytłuc dysk i baterię urządzeń przenośnych, co jest niezmiennie zdumiewające w świetle ich rzekomej energooszczędności. Dzięki takim właśnie cechom tak łatwo nam zatęsknić za starszymi wersjami oprogramowania.

Zbyt dużo lub zbyt łatwo, czyli ergonomia

Ergonomia potrafi zresztą być kulą u nogi dla osób, których nawyki ukształtowały się w czasach... mniej ergonomicznych. Aplikacja pocztowa GMail, dostępna na telefonach, wygląda jakby nie oferowała żadnych funkcji i nadawała się jedynie do wysyłania prostych wiadomości, i to zresztą nie bez wysiłku. Kafelek „Poczta” systemu Windows 10 jest tak spartański, że sprawia wrażenie niekompletnie załadowanego interfejsu. Nawet archaiczny Outlook Express, będący przecież programem do podstawowych zastosowań, w wizualnym porównaniu zdaje się ociekać funkcjonalnością. Wskutek owego kontrastu, nowe interfejsy uznaje się za obrazę i próbę uproszczenia czegoś, co nie powinno być aż tak proste.

Dyżurnym chłopcem do bicia jest oczywiście wstążka Microsoft Office. Zadebiutowała ponad 12 lat temu, a wersja pakietu, w której miała swoją premierę nie otrzymuje już nawet aktualizacji, ale nadal istnieją osoby, które uznają interfejs Office 2007 za fanaberię i głupotę. Wiele funkcji w aplikacjach składowych pakietu wydaje się ukrytych lub usuniętych, jeżeli zestawimy dzisiejszy interfejs z tym dostępnym na przełomie wieków. Eksperci, którzy zapamiętali mięśniowo wędrówki po wielopoziomowych paskach menu faktycznie mieli problemy z odnalezieniem poszukiwanych funkcji na wstążce.

Różnica jest jednak bardzo często dość... psychologiczna. Nie chodzi tylko o pójście w poprzek przyzwyczajeniom lub nadmierne uproszczenie interfejsów, do poziomu na którym z powrotem stały się trudne. Łatwe aplikacje odzierają zadania z tajemniczości i aury skomplikowania. Gdy Excel wygląda złowrogo i pełen jest nieopisanych, dziwnych przycisków, praca z nim musi być niesamowicie trudna – w opinii obserwatora. Natomiast gdy jest przyjemnym, kolorowym programem pełnym gładkich przycisków i przystępnych kreatorów, wygląda na coś, z czym każdy mógłby sobie poradzić bez trudności (co znaczy: za mniejsze pieniądze). Gdy oprogramowanie staje się do bólu proste, cały ten branżowy „sekretny klub na drzewie” okazuje się być na wyciągnięcie ręki.

Z jednej strony to bezczelny elityzm i mitomania. Acz nie zawsze. Uczynienie pewnych zadań pozornie banalnymi przyciąga nie tylko ludzi, którzy niskim wysiłkiem posiedli niegdyś tajemną wiedzę, ale również takich, którzy błędnie uwierzyli w to, że są kompetentni. Dotyczy to nie tylko osób głęboko wierzących w swoje rzekome umiejętności obsługi Excela, ale również początkujących programistów, którzy padli ofiarą obietnic kursów Pythona.

Cały system na dyskietce, a więc prostota

Przeważnie jednak nie tęsknimy za czymś bo było trudne, a raczej dlatego, że było łatwe. Ogólnie mniejsze i prostsze – nie w obsłudze, a w konstrukcji. System operacyjny MS-DOS był zupełnie nieprzystępny dla laika. Posadzenie losowej osoby przed monitorem poskutkowałoby całkowitą bezradnością. Sam system był jednak bardzo prosty w swej budowie. Do pracy wymagał tylko kilku plików i był jednozadaniowy. Uruchamianie zadań w tle było niezwykle skomplikowane: wymagało ładowania programów w charakterze sterownika z poziomu specjalnego pliku CONFIG.SYS lub wykorzystanie wywołania INT 27h, by po zakończeniu pracy pozostać w pamięci. Aby móc działać w ten sposób, program musiał być specjalnie zaprojektowany, a niniejsze zachowanie było na tyle nietypowe, że tego typu programy stanowiły oddzielną klasę zwaną TSR, czyli programami rezydentnymi. Program taki należało oczywiście ręcznie uruchomić, samodzielnie. Oznacza to, że bez świadomego załadowania programów typu MOUSE, BLASTER lub DOSKEY, komputer z systemem MS-DOS nic nie robił za naszymi plecami.

Pojęcie programów TSR traci sens w przypadku wielozadaniowych systemów operacyjnych, jak Windows 95, ale i ten system był stosunkowo mało skomplikowany. Pierwsze 32-bitowe Windowsy pracowały z bardzo skromną listą procesów, czy też zadań (jedynym procesem był wszak VMM32). W przestrzeni użytkownika były to EXPLORER oraz opcjonalnie INTERNAT i SYSTRAY. Po stronie systemu pracowały KERNEL, MSGSRV i opcjonalnie MMTASK. Niniejszy zbiór zadań dostarczał całe działające środowisko. Co ciekawe, zadań tych nigdy nie rozszerzono o nowe funkcje. Każda nowa funkcjonalność, np. obsługa myszy USB, była realizowana za pomocą nowych zadań. Na wielu komputerach z Windows 98 (a takich w Polsce były setki tysięcy) faktycznie pracowało tylko 5 procesów.

A jak jest dzisiaj? Na komputerze, na którym powstaje niniejszy tekst jest obecnie uruchomionych 146 procesów. Gdy zamknę wszystkie widoczne aplikację i dobrnę do gołego pulpitu, uda mi się zmniejszyć tę liczbę do 96. A więc do niemal setki procesów! Większość z nich wcale nie jest uśpiona i wciąż coś robi. Gdy komputer pozostanie nietknięty przez jakieś pół godziny, rozpocznie się defragmentacja dysków twardych (tych talerzowych), pobranie aktualizacji systemu, aplikacji Sklepu i kilku pozostałych, Oczyszczanie Dysku, odświeżenie Rejestru Telemetrycznego Kompatybilności, przebudowanie obrazów natywnych .NET no i oczywiście skanowanie antywirusowe programu Windows Defender. Pomijamy tu oczywiście kolejne setki zadań zdefiniowanych w systemowym Harmonogramie Zadań (polecam tam zajrzeć!): aktualizacja map, inwentaryzacja telewizorów z funkcją DLNA i Miracast w sieci LAN, synchronizacja stref czasowych, kopia zapasowa Rejestru, pokaz slajdów tapety Spotlight...

Prędko okaże się, że dzisiejszy Windows 10 jest niezwykle zajęty utrzymywaniem samego siebie. Wyłączenie owego zbioru dodatków pozwoli przekonać się o rzeczywistej prędkości Windowsa, wcale niemałej. Aczkolwiek domyślnie skonfigurowany system to przeciwieństwo dawnych zestawów. Składa się z wielu ruchomych elementów, nad którymi nie mamy szczególnej kontroli. Komputer wykonuje tysiące czynności, na które nie mamy żadnego wpływu, w przeciwieństwie do tych dawnych, które pracowały tylko wtedy, gdy tego od nich oczekiwano.

Należy pamiętać, że pośród tych wszystkich ciężkich nowości znajdują się też elementy, które wcale nie są takie zbędne. Antyczny MS-DOS pozwalał na pełną kontrolę nad sobą, bo nie potrafił ładować sterowników, a sam dostarczał tak mało funkcji, że twórcy trudniejszych aplikacji decydowali się odwoływać bezpośrednio do sprzętu, z pominięciem systemu. Z kolei Windows 95 i 98 były małe i łatwe w utrzymaniu, ale ze swej natury były szalenie niestabilne. Zwiększona stabilność przyszła po latach wraz z istotnym wzrostem złożoności. Acz niewątpliwie, dawne awarie było diagnozować o wiele łatwiej, niż dzisiejsze fochy Dziesiątki, mówiącej na przykład „coś poszło nie tak”...

Czy naprawdę potrzebujemy powodu?

Zresztą, nie zawsze koniecznie trzeba szukać uzasadnień w kwestii tego, za czym tak naprawdę tęsknimy. Być może dawna estetyka po prostu budzi skojarzenia z prostszymi czasami? Prostszymi biograficznie, nie komputerowo. Dzięki temu tak chętnie niektórzy zaglądają do swoich kolekcji Multimedialnych Encyklopedii na CD-ROMach, uruchamiają stare wersje programów o spartańskim interfejsie i niewygładzonych czcionkach i tak dalej. Nie ma w tym przecież nic złego. Istnieją całe społeczności zgromadzone właśnie wokół tego. To i tak znacznie mniej szkodliwe hobby, niż retro sprzęt, pełen rakotwórczych substancji, hałaśliwych dysków, ostrych krawędzi i migoczących monitorów! 💾💖

© dobreprogramy