GUI na Linuksie – dokąd zmierza?

Odważnych decyzji odnośnie Graficznego Interfejsu Użytkownika w środowisku linuksowym ostatnio nie brakuje. Dochodzi do zmiany spojrzenia na sposób używania komputera. Fanaberie twórców, czy ważne zmiany na drodze do tak długo wyczekiwanego sukcesu Linuksa na biurkach?

Nie dla nerdów!

Linux od zawsze był znany z możliwości personalizacyjnych interfejsu. Mnogość dostępnych środowisk graficznych, stylów i opcji konfiguracyjnych wzbudzała zazdrość w użytkownikach innych systemów. Pulpit mógł wyglądać dokładnie tak jak tego chcemy, ograniczała nas tylko wyobraźnia, wystarczyła odrobina wysiłku i grzebania. Linuksowe desktopy niejednokrotnie biły na głowę wysiłki designerów Microsoftu i Apple (szczerze powiedziawszy nadal tak się zdarza). Jednak ZU (Zwykły Użytkownik) często miał z tym nadmiarem funkcji problem, przez co Linux był dla niego nieużywalny. Google, skrypty, archiwa, konsola w ciągłym ruchu, a UI choć wyglądało ładnie, sprawiało problemy, co wymagało dalszego grzebania. Efekt: ładne, lecz bezużyteczne i sypiące się UI. Ktoś powie w komentarzach, że mu wszystko działa dobrze i sprawnie. Zgodzę się, sam tak robiłem – co tydzień „zmienianie koloru włosów”. Dobieranie stylów, ikon, tapet, czcionek, kursorów – i tak traciłem czas na coś tak trywialnego, jak wygląd systemu. Nie po to jest komputer, aby go picować co chwila. On ma działać w sposób prosty, szybki i przyjemny, zmniejszając wymagania interakcji z mojej strony do minimum przy osiąganiu pożądanego przeze mnie celu. A wygląd? Ma być ładny out of the box i podatny na modyfikacje w granicach rozsądku. Nie cierpię na manię ustawiania szerokości panelu co do piksela, bo tak chcę i już! Mało ludzi sobie zdaje sprawę, jak najmniejsza opcja w ustawieniach może ingerować w kod programu. Głupia możliwość zmiany szerokości paska narzędzi wymaga, aby wszystkie aplikacje z niego korzystające respektowały jej zmianę. Wszystkie bzdurne opcje to utrudnienia i często blokady funkcjonalności dla developerów aplikacji, które odwracają uwagę od osiągania pożądanej funkcjonalności i skupiają ją na obsłudze bzdur, żeby aplikacja działała i wyglądała poprawnie. Utrudnienia dla developerów są utrudnieniami dla użytkowników – opóźnianie rozwoju aplikacji iutrudnianie jej tworzenia są pośrednią szkodą użytkownika końcowego.

Nadeszło wydanie Ubuntu 11.04 z Unity, a wcześniej GNOME 3.0. Niektórzy są czerwoni z nienawiści i oburzenia. Nie dość, że nowe interfejsy zrywają ze starymi nawykami, to jeszcze są „ograniczone” w kwestii personalizacji. Szczerze? Bardzo dobrze! Ktoś w końcu stuknął się w łeb i stwierdził, że zaspokajanie zachcianek nerdów to ślepa uliczka, prowadząca donikąd. Skoro społeczność ma tylu ludzi ze świetnymi pomysłami wśród developerów i designerów, grzech tego nie wykorzystać we właściwy sposób. Efekt: od momentu instalacji Ubuntu 11.04 nie szukam co chwila nowych stylów. Jedyne co zrobiłem to zmieniłem motyw ikon na Faenza i tapetę. Styl pozostawiłem domyślny (właściwie to zainstalowałem lekko zmodyfikowaną wersję), ponieważ w połączeniu z Unity wygląda najlepiej. Wygląda to mniej więcej tak:

Unity

Unity

Uważam, ze ten wygląd spokojnie może konkurować z Aero Glass (które mi się w ogóle nie podoba – bleeeee!) czy Mac OS X (ujdzie). Oczywiście nie wykluczam drobnych poprawek, które z pewnością się przydadzą. Ideały nie istnieją (tak, tak, makówkarze – wasz system powtarza te same błędy od lat, wyglądając identycznie niemalże od początku serii X), aczkolwiek można się doskonalić. Jednak najgorsze co można robić w procesie doskonalenia, to słuchać się nerdów. Oni zawsze sprowadzą wszystko do zawiłości i skomplikowania, czyniąc użytkowanie komputera Wiedzą Tajemną dla Wybrańców. A gdzie zasada KISS (Keep It Simple, Stupid!), panowie?

Ktoś mi zarzuci, że jestem przeciw personalizacji – nic bardziej mylnego. Chodzi mi tylko o racjonalizację zakresu dostępnych opcji, zmniejszając ich ilość tak, aby oprogramowanie było jak najbardziej efektywne. Przykład? A choćby GNOME Shell, który wprowadził style pisane w CSS, a rozszerzenia w JavaScript – świetna decyzja, oby takich więcej – mam nadzieję, że w Unity też pojawią się takie możliwości.

Dizajn i problemy

Narzekań na współpracę Unity czy GNOME Shell z aplikacjami jest niemało. Najczęściej kończy się deprecjonowaniem obu środowisk za zły sposób użytkowania w połączeniu z nimi aplikacji. Cóż, gwarantuję wam, że w Węża z Nokii 3310 nie grałoby się wygodnie na iPhone, gdyby miał interfejs identyczny jak Nokia – ba, w ogóle nie dałoby się zagrać, ponieważ iPhone nie ma klawiszy sprzętowych. Zgodnie z retoryką przestawioną w drugim zdaniu iPhone jest do d***, ponieważ nie umiałby współpracować z aplikacjami zaprojektowanymi na Nokię 3310. Do czego dążę? – ktoś mógłby się zapytać. Sprawa jest prosta: aplikacje w znacznej części nie są przystosowane do współpracy z nowoczesnymi środowiskami i siedzą swoją filozofią głęboko w latach ’90 XX w. Przykład idealny – Open/LibreOffice. Interfejs Worda XP.

Libreoffice i jego przedpotopowy interfejs

Libreoffice i jego przedpotopowy interfejs

Linux, póki jest systemem niszowym, powinien eksperymentować z GUI tak, aby zafundować użytkownikom jak najlepsze User Experience (UX). Niewygodnie używa się w Unity Paska menu (Plik, Edytuj, itp.)? Może nadszedł czas aby zastąpić go wydajniejszym rozwiązaniem. Niewygodnie używa się wielu okien tego samego programu? Może czas przeprojektować aplikację tak aby sprawnie działała w jednym oknie – przeglądarki i inne programy nie an darmo mają obsługę kart. Brak zasobnika systemowego? Lepsze rozwiązanie zostało wdrożone, a twórcy aplikacji winni się do niego przystosować. Mówiąc o nowych interfejsach musimy mieć świadomość, ze działają one inaczej i aplikacje mające działać pod nimi powinny być projektowane inaczej niż 10 lat temu.

Integracja

Kolejna znienawidzona przez nerdów właściwość dobrego GUI to integracja. Integracja, czyli ścisła współpraca systemu operacyjnego i aplikacji tak, aby użytkownik miał szybki i łatwy dostęp do najważniejszych funkcji. Wzorowym przykładem jest Spotlight z Mac OS X – wyszukiwarka szukająca nie tylko plików, ale też funkcjonalności w uruchomionych programach. Takie rozwiązanie wymaga uzależnienia aplikacji od pewnych bibliotek. Jest to często krytykowane, ponieważ wymusza posiadanie dużej liczby syfu, czyli zależności od bibliotek KDE/GNOME i nie jest KISS. Ja nie mam nic przeciw takim rozwiązaniom jak MeMenu (menu pozwalające na zmianę statusu we wszystkich zintegrowanych z systemem komunikatorach czy tweetowanie), Lenses (spersonalizowane wyszukiwarki w Unity), Launcher API (API do obsługi skrótów w docku Unity) czy SoundMenu (zajmuje się obsługą dźwięku i sterowaniem podstawowymi funkcjami odtwarzaczy multimedialnych, screen

poniżej.

SoundMenu - namiastka integracji w Unity

SoundMenu – namiastka integracji w Unity

Mówiąc o integracji, nie możemy zapomnieć o Zeitgeist, czyli usłudze logującej czynności użytkownika. W skrócie: co, kiedy, w jaki sposób i jakim programem zrobił z danym obiektem użytkownik. Unity aktywnie korzysta z tego jako wyszukiwarki plików. Funkcjonalność ciekawa, ale zdecydowanie wymaga ulepszenia. I oczywiście lepszej integracji z

aplikacjami. 😉

Ograniczenia

Pomimo tylu innowacji, GUI linuksowe nadal nie wygląda i nie działa w 100% tak jak powinno. Przyczyny są typowo techniczne. Biblioteki GTK+ w wersji 2 są z poprzedniej epoki, i choć ten problem jest rozwiązany razem z nadejściem wersji trzeciej, będziemy jeszcze długo pokutowaćza tak długie trzymanie starej na siłę. Na jakość bibliotek Qt nie ma co narzekać, nadchodzące innowacje (QtQuick) dają duże nadzieje.Używając Linuksa mam pewien niedosyt płynności działania, niezależnie od konfiguracji sprzętowej. Często też zdarzają się błędy renderowania. Za taki stan rzeczy odpowiada X Window System, który przez swoją zawiłość utrudnia pisanie czegokolwiek co się z nim bezpośrednio styka – biblioteki graficzne i sterowniki. Z zazdrością patrze na płynność działania Mac OS X czy Windows. Jednak jest to do zrobienia, a właściwie już się robi. Wayland, bardzo prawdopodobny nowy standard linuksowego desktopa jest w przygotowaniach. Ma prostszą budowę, jednocześnie jest nowocześniejszy, ponieważ do renderowania czegokolwiek używa OpenGL ES. Jeżeli linuksowy desktop przeniesie się na to rozwiązanie, osiągniemy nieporównywalną z innymi bezawaryjność i płynność działania. Oczywiście nerdostwo będzie płakać za X serverem, jednak już wcześniej wspomniałem, nie warto się tej grupy ludzi słuchać, gdy mówimy o interfejsach graficznych i wszystkim co jest z

nimi związane.

Poniżej przypominam moje krótkie prezentacje GNOME Shell i unity:

Close

Choć staramy się je ograniczać, wykorzystujemy mechanizmy takie jak ciasteczka, które pozwalają naszym partnerom na śledzenie Twojego zachowania w sieci. Dowiedz się więcej.