Wywiad z developerem Ubuntu na temat serwera wyświetlania Mir

Każdy z nas wie, jak wielkie zamieszanie wywołała informacja o serwerze wyświetlania Mir, nad którym pracuje Canonical. W całej tej wrzawie powstało wiele niejasności i mitów, które są powielane przez wielu użytkowników. Niektórzy czują obawę, że będą musieli pożegnać się ze swoją ulubioną dystrybucją.

Chciałbym Wam przedstawić Łukasza Zemczaka, z którym Morfiblog.pl przeprowadził wywiad na temat serwera wyświetlania Mir i dalszych planów firmy Canonical z nim związanych.

Pieczyrak PawełMorfeusz888
Łukasz Zemczaksil2100

Zapraszam do uważnego czytania.

Morfeusz888: Na sam początek przedstaw się czytelnikom Morfiblog.pl. Czym zajmujesz się w firmie Canonical LTD? Od dawna tam pracujesz?

    sil2100: Nazywam się Łukasz Zemczak (w sieci sil2100). Pracuję jako programista w firmie Canonical Ltd. już od ponad 1,5 roku. Aktualnie zajmuję się integracją i utrzymaniem wielu projektów naszej firmy, głównie związanych z środowiskiem graficznym Unity.

Morfeusz888: Wyjaśnij czym jest serwer wyświetlania, jakie zadania wykonuje oraz czy ciężko jest go stworzyć.

    sil2100: Serwer wyświetlania, w wielkim uproszczeniu, to program komputerowy, który jest bazą tworzenia i wyświetlania graficznych interfejsów użytkownika. Żeby programista mógł wyświetlić na ekranie okno bądź kilka okien, bez serwera wyświetlania musiałby bezpośrednio komunikować się ze sterownikami karty graficznej i rysować wszystko ręcznie. Musiałby ręcznie zająć się każdą rzeczą wysyłając bezpośrednie polecenia do karty graficznej.

      Normalne funkcjonowanie w takim wypadku nie byłoby możliwe – na każdy komputer musiałby być pisany osobny program, który wie jak skomunikować się z danym sterownikiem karty graficznej by wyświetlić nasz interfejs. Dzięki tej dodatkowej warstwie serwera wyświetlania, programista dostaje z góry określony zbiór funkcji i stałych (tzw. API) za pomocą którego komunikuje się z serwerem wyświetlania. Serwer wyświetlania zajmuje się rozmową ze sterownikami – właśnie z kartami graficznymi, by wyświetlać to co potrzebne.
      Czyli innymi słowy serwer wyświetlania to taki pośrednik ułatwiający działanie graficznych aplikacji ze sprzętem. Producenci kart graficznych dostarczają sterowniki, a użytkownicy aplikacje. Serwer wyświetlania łączy te dwie rzeczy i pozwala im współgrać. Dzięki takiej dodatkowej abstrakcji, aplikacja graficzna napisana pod dany serwer wyświetlania powinna działać na każdym systemie, który używa tego samego serwera, bez znaczenia co kryje się pod jego maską.
      Z uwagi, że interfejs graficzny w którym nie można nic zrobić, nic poruszyć – nie ma zbyt dużego sensu, serwery wyświetlania również zajmują się obsługą operacji ‚wejścia’ – np. obsługą ruchu myszki, klawiatury, ekranu dotykowego itp. Tutaj również służą jako pośrednik przekształcając bazowe operacje ze sterowników na zdarzenia, na które programista może reagować w ustalony sposób, bez obaw o to jakie to dokładnie urządzenie.
      Samo pojęcie serwera wyświetlania jest dość ogólne i może mieć dużo szczególnych definicji. Każdy serwer wyświetlania daje możliwość rysowania kształtów i obiektów, ale może też zajmować się pojęciem okienka – przydzielaniem okien do aplikacji, ich rysowaniem i poruszaniem. Nie powinno się jednak mylić serwerów wyświetlania z menadżerami okien. Sam serwer wyświetlania nie definiuje jak powinno wyglądać okno, albo jak powinny wyglądać elementy interfejsu – od tego są właśnie aplikacje które budowane są na bazie serwerów wyświetlania.

    Morfeusz888: Dlaczego firma Canonical LTD. postanowiła stworzyć własny serwer wyświetlania, w dodatku od zera?

      sil2100: Po przeanalizowaniu istniejących rozwiązań doszliśmy do wniosku, że żaden z istniejących projektów nie spełnia naszych wymagań w 100%. Wayland był jednym z głównych kandydatów, przeważnie z uwagi na duże zaangażowanie całej społeczności w jego rozwój. Główną przeszkodą był sposób w jaki obsługiwane są urządzenia wejścia, takie jak mysz, klawiatura, dotyk oraz inne. Nasi eksperci uznali, iż dużo szybciej i łatwiej będzie zaimplementować wszystko po naszemu, tak by wszystko pasowało idealnie do naszych zastosowań. W ten sposób serwer wyświetlania może ściślej i lepiej współpracować z Unity Next, pozwalając nam na stworzenie pięknego interfejsu. Bowiem wiadomo, że potrzeby Unity Next mogą być inne i unikalne.

    Morfeusz888: Mir podobno był tworzony już jakiś czas temu. Dlaczego nie opublikowaliście informacji o pracach wcześniej?

      sil2100: Cóż, Mir od zawsze był mocno związany z niedawno ogłoszonym Ubuntu Touch i naszymi produktami mobilnymi. Z uwagi, że był tworzony właśnie z myślą o mobilnym Ubuntu, nie chcieliśmy przedwcześnie zdradzać naszych planów wkroczenia w świat mobile.

    Morfeusz888: Użytkownicy obawiają się, że takie korporacje jak AMD oraz Nvidia nie będą chciały tworzyć swoim sterowników własnościowych pod serwer wyświetlania Mir. Czy trwają jakieś rozmowy? Dostaliście jakąś odpowiedź z ich strony?

      sil2100: Bez obaw! Przede wszystkim – Mir pisany jest w taki sposób by nie były potrzebne żadne specyficzne nowe sterowniki ‚tylko dla Mir’a’. Są stawiane pewne ścisłe, bardzo rygorystyczne założenia które muszą sterowniki spełniać – ale jesteśmy w stanie wykorzystać istniejącą infrastrukturę sterowników dla naszych potrzeb. Co do rozmów z producentami aktualnie mogę powiedzieć tyle, że takie rozmowy już trwają (między innymi z Nvidia) i myślę że ich szczegóły powinny zostać wkrótce wyjawione publicznie.

    Morfeusz888: Czy będzie można uruchamiać aplikacje napisane dla X.org oraz Waylanda?

      sil2100: Aplikacje rzadko kiedy pisane są bezpośrednio pod dany serwer wyświetlania. W naszych czasach aplikacje graficzne pisane są pod dany toolkit (bibliotekę), jak chociażby Qt czy GTK+ – a takie aplikacje w naszych zamierzeniach będą działały bez problemu również na Mir. Będziemy starać się o wsparcie dla naszego serwera u wszystkich najpopularniejszych bibliotek do interfejsów graficznych. Dla aplikacji bardziej wymagających, które są ściślej związane z serwerem X, są plany stworzenia pewnej warstwy kompatybilności między aplikacjami wymagającymi X a Mir’em.

    Morfeusz888: Planujecie wdrożyć serwer Mir w 2014 roku. Czy dacie radę napisać w pełni działający serwer w tak krótkim odstępie czasu? Wayland jest tworzony od 2008 roku i jeszcze zostało sporo w nim do zrobienia. Nie macie obaw, że nie zdążycie?

      sil2100: Osobiście myślę, że jest to możliwe. Do 2014 jest jeszcze cały rok, a nasza ekipa czerpie z doświadczenia wielu już istniejących projektów. Mają dobrze zdefiniowany cel, plan i realizują go z pełnym poświęceniem. Sam jestem ciekaw co z tego wyjdzie, ale wierzę, że uda się osiągnąć ten cel. Do odważnych świat należy!

    Morfeusz888: Canonical LTD. nie zachowało się "fer" wobec programistów Waylanda mówiąc, że ten serwer jest taki sam jak X.org. Takie zachowanie może tylko jej szkodzić, nieprawdaż?

      sil2100: Fakt, chociaż wydaje mi się, że to były jedynie nieporozumienia bądź szybkie, nieprzemyślane wcześniej wypowiedzi. Takie rzeczy się zdarzają. Wayland to bardzo duży krok na przód w stosunku do X, więc nieodpowiednie byłoby stwierdzenie że są takie same bądź, że cierpią z powodu tych samych problemów. Wydaje mi się, że te nieporozumienia zostały już jakoś wyjaśnione publicznie.
      Sam osobiście jestem wielkim zwolennikiem Wayland. To co programiści pracujący nad projektem dotychczas osiągnęli bardzo mnie cieszy, bo szczerze mówiąc X już trochę działa mi na nerwy.

    Morfeusz888: Mark Shuttleworth powiedział do społeczności takie słowa (tłumaczenie na polski):
    „Ubuntu jest grupą ludzi, których łączy jeden cel. To od nas zależy jak go osiągniemy i każdy może powiedzieć do czego może i chce się przyczynić. Wkład Canonical jest ogromny. To po prostu bez sensu mówić, że Canonical „ma co chce” bardziej niż ktokolwiek inny. Cholera, przez połowę czasu *JA* nie miałem dokładnie tego, co chcę. To w ten sposób nie działa: wiele osób pracuje najlepiej jak może, czego rezultatem jest Ubuntu.
    Połączenie Canonical i społeczności jest tym, co sprawia, że jest to niesamowite. Istnieje wiele dystrybucji tworzonych wyłącznie przez społeczność. I wow, są one pełne polityki, złości, frustracji, przekupstwa i rozczarowania. Dlaczego? Bo ludzie są ludźmi, praca jest trudna, a współpraca jeszcze trudniejsza. W rzeczywistości, w większości czysto społecznościowych projektów, które widziałem i do których przystąpiłem, najpopularniejszym zachowaniem jest: „gdybyśmy tylko mieli kogoś, kto mógłby wykonać ciężką pracę„. Ubuntu ma od tego Canonical i dzięki połączeniu naszych wspólnych wysiłków stało się najpopularniejszą dystrybucją dla fanów Linuksa.
    Jeśli zrobiłeś wszystko do Ubuntu co chciałeś, idź dalej.”

    Czy nie obawiacie się, że może zabraknąć Wam rąk do pracy ze strony społeczności? Czy całkowicie zamykacie się na pomysły, prośby społeczności?

      sil2100: Cóż, sam osobiście nie popieram wszystkich decyzji podejmowanych w stosunku do Ubuntu. Jednak trzeba pamiętać, że najlepiej jeśli jest jakiś ogólny plan według którego można podążać. Ten plan dla niektórych może być kontrowersyjny. Wszyscy wolimy by rzeczy były ‚po staremu’ – ja też lubiłem Ubuntu takie jakie było dawniej. Ale Ubuntu próbuje być teraz czymś więcej, czymś innym. Zobaczmy gdzie nas to zaprowadzi.

        Jeśli chodzi o prośby i pomysły społeczności, Ubuntu jest ciągle na nie otwarte. Wydaje mi się, że sytuacja wygląda trochę inaczej. Wiadomo, że nigdy nikt nie będzie w stanie zadowolić wszystkich. Każdy z nas ma inną wizję systemu, tego jak coś powinno wyglądać, co jest użyteczne, a co nie. My, jako pracownicy Canonical, pracujemy według wytycznych projektantów i realizacji pewnej ich wizji systemu. Wiadomo, że samo to zajmuje dużo czasu i pochłania dużo naszych zasobów – dodatkowo jeszcze utrzymywanie stabilnych wersji, naprawa błędów. Dlatego też my osobiście nie mamy już zasobów na to by realizować prośby całej społeczności.
        Gdy ktoś chce wprowadzić jakąś zmianę do systemu bo np. coś mu się nie podoba, robi tą zmianę i informuje nas o tym – my z miłą chęcią przyglądamy się każdej propozycji. Gdy kod jest sensowny i sama funkcjonalność ma sens, przyjmujemy takie oferty z otwartymi ramionami. Czasami brakuje nam rąk do pracy, dlatego też tak bardzo cenimy wkład społeczności. Nawet jeśli jakaś funkcjonalność nie pasuje do naszej wizji Ubuntu, ale ktoś ją opracował, udokumentował, przetestował i zaproponował, myślę że taka zmiana na pewno znajdzie się w systemie.
        Mówiąc tylko za siebie, to też czasami odnoszę wrażenie, że Canonical powinien troszkę więcej wsłuchiwać się w to, co mówią ‚dotychczasowi’, starzy użytkownicy a nie tylko skupiać się na tym, co dobre dla nowych, niezaznajomionych.

      Morfeusz888: Chodzą słuchy, że Canonical LTD z czasem może zamknąć swój projekt i całkowicie się skomercjalizować. Użytkownikom wcale nie podoba się taka wizja przyszłości. Wiesz coś na ten temat?

        sil2100: Nic mi o tym nie wiadomo. Bez społeczności nie bylibyśmy w stanie funkcjonować tak jak robimy to dotychczas, więc nie sądzę by było to nawet możliwe.

      Morfeusz888: Załóżmy, że ktoś chce pracować w Canonical LTD., nie jako członek społeczności, ale pełnoprawny pracownik firmy. Jakie wymagania należy spełnić, aby się dostać?

        sil2100: Trudne pytanie! Z tego co wiem, to bardzo ważne jest by mieć duże doświadczenie w danej dziedzinie, dobrze udokumentowane najlepiej w projektach open source. W ten sposób dużo łatwiej dostrzec wartościowego programistę i dużo łatwiej sprawdzić, jaki kod pisze. Z tego co wiem to nie ma żadnych dokładnych wymagań, bo wszystko zależy od stanowiska na które dana osoba aplikuje i aktualnego zapotrzebowania – często zdarza się tak, że sami zgłaszamy się do zdolnych i aktywnych członków społeczności oferując im współpracę.
        Może zabrzmi to banalnie, ale myślę że najłatwiej dołączyć do naszego firmowego grona poprzez aktywny współudział w rozwoju Ubuntu. Nie dość, że Ubuntu korzysta z dodatkowej pary rąk, to i Canonical raczej nie pozostaje bierny na takie widoki!

      Morfeusz888: Teraz takie pytanie na rozluźnienie. Czym zajmujesz się po pracy i jakiego systemu operacyjnego używasz?

        sil2100: Hah. Jestem człowiekiem z dość dużą liczbą zainteresowań, więc po pracy zdarza mi się robić wiele, wiele różnych rzeczy. Zazwyczaj jednak albo zajmuję się innymi, licznymi projektami informatycznymi (niczym jakiś pracoholik), rysuję, czytam, czasami w coś zagram. Prowadzę też treningi tradycyjnej szermierki japońskiej iaijutsu w Mikołowie i Gliwicach, więc dużą część swojego wolnego czasu poświęcam tej pasji. Prowadzę też małego technicznego bloga z ramienia Vexillium.
        Na co dzień używam Ubuntu – o dziwo również po pracy! Czasami korzystam też z Windows 7 – z uwagi, że chociażby jeszcze nie wszystkie gry na Steam są dostępne na Linux’a. Ale bardzo się cieszę, że gier na naszą platformę przybywa z każdą minutą. Czasami zdarza mi się również używać Haiku, z uwagi, że dawniej byłem wielkim entuzjastą BeOS’a.

      Morfeusz888: Czy jeżeli czytelnicy będą mieli do Ciebie pytania, odpowiesz na nie?

        sil2100: Jeśli nie będą zbyt krępujące, to oczywiście!

      Morfeusz888: Bardzo dziękuje za przeprowadzenie wywiadu :). Na pewno rozwieje on wiele wątpliwości. Życzę Ci w imieniu swoim i moich czytelników sukcesów w pracy i wszystkiego najlepszego :).

        sil2100: Wzajemnie ;) Mam nadzieję, że w jakiś sposób pomogłem rozwiać chociażby kilka wątpliwości.
      Uwaga!

      Jeżeli macie pytania do sil’a2100, piszcie je w komentarzach. Mam z nim kontakt, więc po zebraniu wszystkich pytań napiszę do niego i jeżeli się uda, to znów opublikuję wywiad. Jak sami widzicie, chłopak jest wygadany, więc nie powinno być problemów z odpowiedziami ;).

      Uwaga!

      Pytania możecie zadawać w dwóch źródłach: fanpage Facebook oraz konto Google+. Z innych miejsc pytania nie będą zbierane.

      Oczywiście zapraszam do komentowania i wyrażania swoich opinii. Mam nadzieję, że wiele niejasności ów artykuł rozwiał.

      [polldaddy poll=6986112]