Béton brut

Windows 8: bebechy

2012-04-24

Prolog

Kilka dni temu obchodziliśmy rocznicę zatonięcia Titanica. Jego tragedia jest wypadkową przywar, które towarzyszą ludzkości od zarania dziejów: arogancja, buta, ignorancja i bezgraniczna pewność siebie. Jeżeli nadajesz sobie ksywkę „Niezatapialny”, to w karmicznym rachunku pozerstwa jesteś poślubiony dnu.

„Nikt nie został zwolniony za kupowanie od Microsoftu” to unowocześniona wersja starego powiedzenia o Wielkim Niebieskim. Powiedzenie to nie straciło na ważności, ale ostatnio stało się coś ciekawego: „nikt nie zostanie przyjęty za znajomość narzędzi Microsoftu”.

Piszę tu oczywiście o małym wycinku świata, który znam. Mimo to, pamiętając początek lat dziewięćdziesiątych, coś się zmieniło: Microsoft stracił hobbistów, do których kiedyś apelował sam Bill. Ostatnie piętnaście lat przyniosło rewolucję w sieci, na którą gigant z Redmond zaspał – a kiedy wreszcie obudził się z letargu zza rogu wypadła zgraja programistów pisząca mikro-programy i sprzedająca je za dziewięćdziesiąt dziewięć centów.

Dorosły i bezpiecznie osadzony w rynku Microsoft mógł odrzucić nóż i zdjąć kolczugę – nie było już potrzeby ścierać na proszek producentów edytorów tekstu, arkuszy kalkulacyjnych czy niszowych systemów operacyjnych. Wtem: barbarzyńcy u wrót.

Moja historia z Microsoftem jest niezbyt długa. W czasach Windows 3.1, 3.11, 95, 98 i Me śmiałem się z Microsoftu siedząc za klawiaturą Amigi. Puszczałem sobie nieustannie filmiki o cieście 1, które trafia Billa w twarz i o podłączaniu urządzeń pod PnP. W 2002 kupiłem pierwszego PC i zainstalowałem na nim Windows 2000; niestety przejście z systemu, który znałem wybitnie dobrze, na system totalnie mi obcy wywołało głęboką niechęć. Poza śmiesznymi filmikami z Internetu miałem też dowody anegdotyczne na to, jakim koszmarem jest Windows. Zimą tego samego roku zainstalowałem na swoim komputerze Debiana i tu możemy od razu przeskoczyć do 2008, ponieważ nic się nie zmieniło w moich nawykach. Wtedy też zacząłem niebezpieczną zabawę z podcastami. Nie wiedziałem, że tak szybko się uzależnię. Czym więcej słuchałem, tym więcej chciałem słuchać. W napadzie szaleństwa dodałem dwa podcasty, którymi nie byłem zupełnie zainteresowany: Windows Weekly i MacBreak Weekly.

Prowadzącym Windows Weekly jest Paul Thurrott – fan, który nie jest ścierwojadem. Zabawny, krytyczny dla swojej platformy, będący jednocześnie w środku wydarzeń związanych z Microsoftem i unikający polityki. Facet, z którym mogę iść na piwo gdy tylko zadzwoni. Windows Weekly stał się moim ulubionym podcastem. Sam Paul, dzięki sile swojej radiowej osobowości, zmiękczył moje serce. Zacząłem po raz pierwszy zaglądać do jaskini Ballmera.

Dlatego, kiedy dostałem (nie wiem, z jakiej okazji, ale) zaproszenie na briefing Windows 8 zorganizowany przez polski oddział MS postanowiłem wpaść i zobaczyć jak się mają sprawy. Mimo, że zaproszenie przyszło dla Emila-blogera (ktokolwiek widział, ktokolwiek wie), postanowiłem podejść do tego poważnie – przynajmniej tak poważnie jak potrafię. Przed wyjazdem przeczytałem z 60 stron dokumentacji i tekstów opublikowanych przez developerów Windows 8. Zamiast pisać recenzję imprezy, spróbuję skumulować tu rzeczy, których się dowiedziałem. Nie mam zamiaru pisać encyklopedii systemu, ale zaznaczyć rzeczy, które są w jakiś sposób wyjątkowe lub ciekawe.

Na początku zastanówmy się nad sytuacją, w jakiej znajduje się producent nowych Okienek. Ponad miliard instalacji, dominacja w firmach i długa tradycja wstecznej kompatybilności. Sukces smakuje słodko-kwaśnie; to, co może zrobić konkurencja jest niemożliwe dla kogoś, kto swój sukces zawdzięcza technologicznemu konserwatyzmowi.

Kiedy student wpada nagi na wykłady, to pewnie się ochlał i może stać się internetową sensacją; kiedy zajęcia poprowadzi nagi profesor nagle robi się z tego zwolnienie dyscyplinarne.

Domyślne zachowanie jest zakodowane kulturowo: profesorowi nie wypada świecić jajkami, Microsoft nie może ubić Win16, IE6 i FAT16. Pewnie, tylko promil użytkowników jest przywiązany do tych technologii, ale przy miliardzie użytkowników promile to o wiele za dużo.

Windows 8: w środku

Ile cukru w cukrze?

Zacznijmy od wymagań. Microsoft wraz z wydaniem Windows 7 po raz pierwszy podjął kroki mające na celu zmniejszenie wymagań sprzętowych stawianych przez system. Pomysł ten kontynuowano także w Windows 8; system ze względu na swoje przeznaczenie odpali się nie tylko na komputerach, na których bez problemu startowała poprzednia wersja, ale „zmieści się” także na tabletach (i, w przyszłości, na telefonach).

Aby zredukować obciążenie pamięci, prócz standardowych zabiegów programistycznych podjęto też kilka działań na poziomie kernela i samego systemu. Pierwszą zmianą jest współdzielenie zasobów takich jak biblioteki; nie jest to nic nowego, inne systemy operacyjne od dawna posiadały współdzielone zasoby (czyli takie, w których kawałek kodu wczytuje się raz do pamięci i następne odwołania do niego są kierowane „do pamięci” z pierwszą kopią). Implementacja w Windows 8 różni się jednak od tej znanej choćby z AmigaOS: tu program jest izolowany od innych i musi prosić o zgodę systemowego brokera.

Drugą zmianą jest wprowadzenie pamięci o niskim priorytecie. Pamięć tak zadeklarowana przy alokacji będzie pierwszą, która zostanie zwolniona w przypadku osiągnięcia limitu pamięci. Jest to, moim zdaniem, lepsze rozwiązanie niż „pamięć nieaktywna” w OS X. Wszystko siedzi jednak w implementacji: pozostawianie decyzji developerom nie zawsze wychodziło na zdrowie Windowsowi; nie dowiedziałem się, czy są jakieś twarde zasady co do konkretnych elementów, które powinny być tak zadeklarowane (na przykład dane aplikacji, nie sam kod aplikacji). Oba skrajne przypadki: deklarowania wszystkiego jako pamięć wysokiego priorytetu, czy też deklarowanie każdej zajętej pamięci jako tej z niskim priorytetem może doprowadzić do zwolnienia systemu lub aplikacji (czy nawet jej kompletnego zejścia).

Ostatnią wartą odnotowania zmianą są modyfikacje w usługach systemowych. Ograniczono nie tylko listę usług, które odpalają się domyślnie przy starcie, zamieniając część z nich na uruchomiane „na żądanie”; doszedł też nowy typ windowsowych „daemonów w przestrzeni użytkownika” – usług, które po uruchomieniu odczekują pewien czas i jeżeli nie będzie więcej żądań, przejdą w stan spoczynku zwalniając pamięć.

Zawsze świeży

Tyle o pamięci. To nie są zmiany, które powodują palpitację serca nerda, ale jak pokazuje Windows 7 programiści pracujący nad nimi wiedzą, co robią.

Wydajność komputera jest nie tylko wypadkową oprogramowania przygotowanego przez producenta – minie rok czy dwa i stajemy się świadkiem binarnej biodegradacji. Nawet najlepszy producent nie powstrzyma użytkownika przed sypaniem piachu w tryby maszyny. Współczesny trend mający na celu minimalizowania zniszczeń, których może dokonać mityczny zwykły użytkownik, nie spowodował znaczącego spadku niewytłumaczalnych sytuacji w których pozostaje tylko „spróbować wyłączyć i włączyć z powrotem” – co w tej sytuacji oznacza zwykle reinstalację systemu.

Poprzednie wersje Windows miały możliwość uruchomienia się z ostatniej konfiguracji, którą wewnętrzni audytorzy uznali za poprawną. Ósemka dodała coś, co jest zdecydowanie lepszym rozwiązaniem.

Dwie nowe opcje: „odśwież” i „odtwórz” powodują, odpowiednio, reinstalację systemu z zachowaniem danych użytkownika oraz kompletną reinstalację systemu. Przy wybraniu trybu odświeżania nie zostaną zainstalowane aplikacje (bo przecież to one mogą być powodem spadku wydajności, czy też kompletnej katastrofy). Moim zdaniem to idealne rozwiązania dla potencjalnych użytkowników tabletów.

I like Metro. Metro-like

Jeszcze chwilę o tym, co widać: język wizualny, w którym komunikuje się Windows 8, to jest to zdecydowana zmiana jakości. Zdania co do kierunku tej zmiany są podzielone, ale nauczony latami obserwowania ludzi buntującym się przeciwko zmianom interfejsu użytkownika robiłbym odczyty nastrojów panujących wśród użytkowników rok po wydaniu. Kto dziś pamięta o każdym z dramatów użytkowników Facebooka spowodowanych dodaniem tego, czy ujęciem tamtego?

Trzeba oddać Microsoftowi jedno: krytykowany przez wielu za brak innowacyjności, odtwórczość i brak pomysłów pokazał wiodącym platformom mobilnym, że pozbycie się „problemu” miliarda użytkowników zdecydowanie uwalnia kreatywne soki płynące w autorach najpopularniejszego systemu operacyjnego.

Android i iOS są jak stare kapcie. Wygodne, znane i zupełnie nudne. Elementy UI, siatka z ikonami, przyciski. Ostatnie zmiany w iOS (i OS X) przyniosły jeszcze większe rozczarowanie pod postacią skeumorfizmu promowanego w niektórych aplikacjach systemowych.

Windows Phone 7 – i dziedziczący jego język graficzny Windows 8 – wypadają tu doskonale. Interfejs nie tylko prezentuje się nowocześnie, ale zdaje się rozumieć środowisko w którym jest używany. Anglosasi mają takie ładne powiedzenie na to, co prezentuje sobą Metro: glanceable information; po naszemu napisałbym „informacje podatne na zerknięcia”.

Zmiana warstwy prezentacyjnej pociąga za sobą pewne skutki. Pierwszym z nich jest niedostępność nowego produktu na – całkiem niedawno jeszcze bardzo popularnych – netbookach z dziesięciocalowym ekranem i rozdzielczością 1024×600. Minimalne wymagania co do rozdzielczości to 1024×768 dla aplikacji w trybie pełnoekranowym i 1366×767 dla widoku w którym jedna aplikacja jest „zwinięta” do swojej zminimalizowanej postaci, a druga zajmuje większość ekranu.

Po raz pierwszy autorzy systemu stają przed problemem, który do niedawna można było w miarę bezpiecznie zignorować: niezależność prezentacji od rozdzielczości (ang. resolution independence). Nowe tablety, idąc za marketingowym sukcesem iPada, będą posiadały wyświetlacze o gęstości pikseli dotychczas niespotykanej na ekranach komputerów.

Zacznijmy od tego, czym jest ta gęstość czy też DPI. DPI (ang. dots per inch) to liczba, która mówi nam ile punktów możemy zaświecić na calu wyświetlacza (2.54 centymetra). Jeżeli narysujemy kwadrat o boku ośmiu pikseli na wyświetlaczu z 90 DPI, to jego obraz zajmie 1/10 cala – problem w tym, że ten sam obraz na „gęściejszym” wyświetlaczu tabletu może być dużo mniejszym (mimo zachowania swoich wymiarów w pikselach). Powoduje to, że współczesne systemy muszą używać jednostek, które nie są powiązane z liczbą punktów dostępnych na ekranie.

Ze względu na elementy użyte w interfejsie użytkownika samo uzyskanie resolution independence jest dużo łatwiejsze niż w przypadku „tradycyjnych” interfejsów; do tego dochodzi możliwość wykorzystywania grafiki wektorowej (SVG) i możliwość utworzenia bitmapowych elementów graficznych w różnych rozdzielczościach, co w efekcie pozwala otrzymać lepsze efekty podczas skalowania.

Największą niespodzianką dla mnie było jednak miejsce jakie zajmują HTML, CSS i JS w przyborniku projektanta. Różne systemy próbowały zaprząc te webowe technologie do pracy na rzecz powiększania bazy aplikacji, nigdy jednak nie skończyło się to czymś więcej niż garścią bezużytecznych widżetów lub – jak w przypadku Chrome OS – zupełnie niczym konkretnym.

W Windows 8 UI zaprojektowane w HTML-u jest równoprawne z wyklikanym dla „binarnej aplikacji”. Kod w JS ma dostęp do API systemu na tych samych prawach, na jakich dostęp uzyskuje aplikacja napisana w .NET/C#. Nie chcę tu niczego wieszczyć, ale znam kilku łebskich ludzi, którzy są świetnymi projektantami, ale nigdy nie będą chcieli brnąć przez VisualStudio; po raz pierwszy widzę dla nich realną opcję pisania pełnoprawnych aplikacji bez pomocy „prawdziwego programisty”.

Windows 8 Briefing

Jak wspominałem na początku tekstu, zostałem zaproszony na promocyjne spotkanie dotyczące Windows 8 i to dzięki temu udało mi się dowiedzieć kilku rzeczy z pierwszej ręki. Ponieważ takie spotkania mają charakter marketingowy, zdecydowałem się nie zanudzać Was szczegółowym raportem; na szczęście wystąpienia marketerów nie były irytujące (standardowe zagrania, które każdy z odrobiną krytycznego myślenia potrafi przełożyć na rzeczywistość), a prezentacje technologiczne zdecydowanie przebiły moje oczekiwania. Warto wspomnieć o dwóch rzeczach, które nie leżą bezpośrednio w technologicznym zagonie.

MetroOne

Microsoft odpalił platformę dla obecnych i przyszłych developerów aplikacji dla Windows 8. Muszę przyznać, że jest to pomysł trafny i powinien przełożyć się na zainteresowanie wszelkiej maści klikaczy. Mamy tu giełdę pomysłów (można uzyskać dowód społeczny, choć w świecie starup-ów nie jest to może dowód ostateczny i przekonywający), możemy zbierać się w grupy i próbować zamieniać pomysły w produkty.

Całość zamyka się między portalem randkowym dla technicznie obdarzonych (zdolny grafik poszukuje programisty domatora, cel apptrymonialny) i społecznościówką.

Sklep

Sklep z aplikacjami, jak na debiutującą platformę, ma pełen zestaw modeli biznesowych dla autorów. Można wydawać aplikacje darmowe, płatne, aplikacje z modelem subskrypcji, reklamy (własne lub z sieci MS) oraz freemium.

Pieniędzmi dzielimy się z operatorem sklepu w „standardowej” skali 30% do 70%, a w przypadku aplikacji, które zarobiły ponad \$25K – 20% do 80% dla sprzedawcy.

Konto developerskie kosztuje około 140 PLN i jest płatne jednokrotnie.

Obsług sklepu wbudowana jest wprost w VisualStudio 11.1, można z niego nie tylko dokonać rejestracji, ale także zarezerwować nazwę aplikacji. Nie wiem jeszcze jak MS poradzi sobie ze squatersami, ale z pewnością niedługo usłyszymy o jakiejś spektakularnej bójce pomiędzy producentami przycisków do wydawania odgłosów pierdów.

Podziękowania

Szczególne podziękowania dla Daniela Biesiady i Tomasza Kopacza, za niemal stoickie podejście do gościa, który atakuje ich z notatnikiem. („O boże, masz cały notatnik pytań?” i „O rany, papier”). Korektę wykonał niezastąpiony Piotr Wojciech Szotkowski.

Jeżeli jesteś posiadaczem Kindla możesz zapisać się na listę dystrybucyjną i otrzymywać te same teksty! Czyż to nie wspaniałe? ;-)

  1. komentarz telewizyjny jest zabójczy, siriusbiznes