poniedziałek, 10 września 2012

Win8: Krótkie spojrzenie z perspektywy developera

Ostatnio miałem przyjemność uczestniczyć w małym szkoleniu dotyczącym Windows 8. Na szczęście, w przeciwieństwie do typowej konferencyjnej prelekcji, nie był to marketingowy bełkot, ale całkiem niezła merytorycznie prezentacja skierowana do developerów, którzy może byliby chętni przygotować aplikacje na nadchodzący system od Microsoft. Postaram się w krótki sposób opisać tu najważniejsze elementy jakie były omówione na szkoleniu. Sądzę, że wiele osób może to zaciekawić, tak jak z resztą niektóre fakty zaciekawiły mnie. Od razu ostrzegam, że większość wiedzy będzie bardziej przydatna dla programistów .NET niż pozostałych. Tak po prostu było to szkolenie poprowadzone.

Na wstępie od razu ostrzegę, że post może być nieco długi. Podczas szkolenia udało mi się przygotować kilkanaście punktów notatek i będę się starał w mniejszym lub większym stopniu je wszystkie opisać. Samo szkolenie nie było specjalnie długie, bo zajęło 2.5h, ale było dość obszerne dziedzinowo. Postaram się przekazać możliwie najwięcej z tego co usłyszałem. Dodam jeszcze, że część z usłyszanych informacji sprawdzałem jeszcze w sieci czytając na MSDN i paru innych, aby jeszcze swoją wiedzę rozszerzyć. Części nie sprawdzałem w ogóle, ponieważ sama wiedza ze szkolenia wystarczająca.

Market od Microsoft

Zacznę od czegoś, co zdecydowanie może zainteresować zarówno użytkowników jak i developerów. Razem z Windows 8 wystartuje Sklep aplikacji od Microsoft. Jak napisałem sobie w notatkach ze szkolenia: "najgłupszy poza wyglądem metro jest MarketPlace". Już spieszę z wyjaśnieniami, czemu tak krytycznie do tego podchodzę. Poniżej pozwolę sobie wymienić wady jakie widzę w tym rozwiązaniu:
  • kontrola MS nad tworzonymi aplikacjami - moderacja aplikacji
  • kontrola MS nad aplikacjami na komputerze użytkownika,
  • instalacja aplikacji Metro tylko ze sklepu
  • instalacja aplikacji per user
O ile do pierwszego już się przyzwyczailiśmy, to 3 pozostałe aspekty nie są zbyt łatwe do zaakceptowania. Faktycznie, takie praktyki są już stosowane przez firmę spod znaku zgniłego jabłka, ale są przecież źródłem ciągłej krytyki powyższej. W jej przypadku ograniczenia te dotyczą głównie urządzeń mobilnych, co oznacza sporo mniejszą uciążliwość (niektórzy stwierdzają, że to ułatwienia). W przypadku komputerów biurkowych, wprowadzanie takich ograniczeń, to ubijanie konkurencji i ułatwianie drogi monopolistom. Widać rączka rączkę myję, niestety...

Przeprowadzka do chmury

Microsoft już dobre kilka lat temu wprowadził usługę Azure pozwalającą na tworzenie aplikacji w chmurze obliczeniowej. Tworząc ja pobudował kilka potężnych centrów obliczeniowych, które najwyraźniej stoją puste. Windows 8 ma wprowadzać nieco nowych rozwiązań w kontekście synchronizacji. Przykładowo folder Roaming ma być synchronizowany w chmurze. Ogólnie koncepcja nie jest zła, ale jeśli jako programista zechcesz w nim coś zapisać, będziesz mógł to też odczytać na innej maszynie. Zapisywanie tam licencji wszelkiego rodzaju całkowicie odpada.

Koncepcja zapisywania danych usera w chmurze niesie za sobą sporo konsekwencji. Nawet jeśli zapomni się o ciągłym transferze tych danych, to nie jest to zbyt dobre. Jak dla mnie zawsze jest to zagrożeniem dla bezpieczeństwa tych danych (ktoś może je podejrzeć zarówno na miejscu, jak i po drodze do i z chmury). Istnieje również zagrożenie łatwej utraty dostępu do nich. Aktualnie martwię się bardzo, o wszelkie włamania do mojego konta Google. Zbyt wiele różnych usług jest przy jego pomocy powiązanych. Myślę, że na konto Live jest się dostać łatwiej (to nie koniecznie stereotyp, że M$ nie umie dbać o bezpieczeństwo), więc istnieje możliwość łatwego przejęcia takich danych i odcięcia mnie od nich. Ta druga ewentualność jest bardziej prawdopodobna, jeśli dane będą zaszyfrowane i niemożliwe do odczytania poza moim systemem.

A komu potrzebna więcej niż jedna aplikacja

Microsoft z Windows 8, a przynajmniej ze swoim cudownym Metro Modern UI (?), postanowił zrobić krok w tył. Jest to jedno z szeregu działań, w celu unifikacji z systemu z urządzeniami mobilnymi. W Metro Modern UI (?) tylko jedna aplikacja będzie mogła pracować jako główna aplikacja, a reszta uruchomionych aplikacji będzie  w tym czasie pracować w tle. Niby to nie taki wielki problem, ale słowo: pracować jest tu co nieco przesadzone. Aplikacje w tle będą miały dostępne BackgroundTaski i to różne w zależności od swoich uprawnień. Będą ich mogły używać do ograniczonego zbioru działań (na przykład pobieranie pliku), a czas procesora dla nich jest mocno ograniczony, na przykład 2s co 15 minut. Czyli całkowicie odpada aplikacja do generowania hashy dla BitCoinów, pracująca w tle.

Kafelki ze ściany na desktop

UI Metro Modern UI (?) podstawowo składa się z prostokątów o różnym rozmiarze, które ogólnie zwą się kafelkami. Wygląda to, jakby chłopaki z MS dorwali się do kartki w kratkę. Pewnie zatrudniono wszystkich nowych grafików, żaden z nich nie umiał rysować poprawnie krzywych, więc wprowadzono nowy standard. Jak w tym żarcie z żarówką.

Niestety od teraz tworząc aplikacje na Win8 trzeba będzie ciągle myśleć o kafelkach. Szczególnie tworząc aplikację, która będzie korzystała z jakiś danych w sieci. Choć może się to zdawać nieco dziwne, to każdy kafelek należący do naszej aplikacji jest jej obszarem użytkowym, więc możemy na nim prezentować jakieś dane. Na przykład aktualną pogodę, albo nowości w kategorii Serial. Trzeba na nie patrzeć jak na upośledzone Widgety na urządzeniach mobilnych. Nie da się ich raczej animować płynnie i raczej nie ma szans na jakąś bardziej zaawansowaną interakcję.

Microsoft ubija pluginy

W Metro UI Modern UI(?) zapowiedziany jest IE 10, który w dodatku będzie w pewnym sensie ograniczony. Przeglądarka zostaje pozbawiona wszelkich pluginów. Jest to zdecydowanie cios we Flash'a. Jest to też cios we wszystkie rozwiązania wytworzone w ich technologii - Silverlight. Nie specjalnie mi się to podoba jako człowieka, który regularnie tworzy aplikacje w tej technologii. Jedyne co Internet Explorer 10 oferuje developerom RIA jest HTML5. Pięknie i fajnie, ale co z Silverlight? Wygląda na to, że umiera śmiercią naturalną i od Win8, będzie wykorzystywany już tylko w trybie Desktop (o tym za chwilę) i Windows Phone 7.5.

Dla developerów Silverlight jest jednak pewna dobra informacja. Aplikacje tworzone na Metro Modern UI (?) można tworzyć w C# i z wykorzystaniem XAML, więc ich tworzenie jest bardzo zbliżone do tworzenia w Silverlight. Można więc powiedzieć, że M$ zrobił nam prawie prezent i przekwalifikował nas na developerów Metro UI Modern UI (?). W kwestii podobieństw, to takie klasy jak MediaElement i MediaStreamSource mają być identyczne w Windows 8 jak dotychczas w Silverlight. Dodatkowo tworzenie aplikacji z wykorzystaniem XAML pozwala na skorzystanie ze wszystkich możliwości jakie daje Blend.

Tryb Desktop czyli ostatnia deska ratunku

Microsoft znalazł gdzieś chwilę na opamiętanie w swoim szaleństwie i w systemie na Desktopy znalazło się miejsce na tryb Desktop. Niektórzy stwierdzają, że jest to coś w rodzaju XP Mode w Windows 7.

Windows 8 dostaje tryb, w którym będzie można odpalić dowolną aplikację, z dotychczasowych. Ponadto znikają wszelkie ograniczenia z Metro Modern UI (?) i praca będzie odbywała się normalnie. Jest to tryb, w którym przeglądarka nie będzie pozbawiona pluginów. Krótko mówiąc to normalny tryb działania OS jaki dotąd znamy. Osobiście uważam, że będzie to podstawowy tryb pracy dla użytkowników podyktowany przez dostawców oprogramowania. Na razie nie widziałem aby Adobe czy AutoDesk zapowiedzieli wydanie swoich narzędzi w Metro UI Modern UI.

Jest jeszcze jeden powód dlaczego uważam, że tryb Desktop będzie podstawowym dla użytkowników. Na razie słyszałem, że Win 8 ma startować podstawowo w Metro Modern UI (?). Jednak pewnych aplikacji w tym trybie szybko zmusi użytkownika do przełączenia w tryb Desktop i użytkownik w tym trybie już pozostanie. Nie będzie możliwości programowego przełączenia się do tego trybu (nawet za zgodą usera), więc spodziewam się, że powstaną aplikacje Metro Modern UI (?), które będą przekazywać tylko jakieś proste informacje i prosić o przełączenie w tryb Desktop.

Jak na razie przyszłość systemu Windows 8 nie zapowiada się zbyt kolorowo. Osobiście spodziewam się, że powtórzy on sukces systemu Windows Vista. Czas pokaże jak to będzie realnie wyglądało. Słyszałem już opinię, że wprowadzenie Metro Modern UI (?) na komputery stacjonarne ma na celu zwiększenie popularności tabletów i telefonów z systemami od M$. Jeśli w istocie taki jest cel, to firma z Redmont nie powinna oczekiwać zbyt wielkich sukcesów na żadnym z tych pól.

Zapewne osoba, która doczyta post do końca zauważy, że słowo Metro jest w tekście pokreślone. Zanim udało mi się wreszcie tego posta dokończyć, Microsoft miał problemy z tą nazwą. Pojawiły się jakieś roszczenia od niemieckiej firmy Metro AG. W związku z tym Metro UI znika, ale jak na razie nie znalazłem jeszcze czym zostanie zastąpione. Gdzieniegdzie znalazłem info, że marketingowcy mają je po prostu nazywać Windows 8, lub Windows 8 style, a dla programistów ma być nazywane właśnie jako Modern UI (?). Ta ostatnia nazwa brzmi dość ogólnikowo, więc pozwoliłem sobie ją stosować z pewnym dystansem w postaci znaku zapytania pod jakim stoi.

Czytaj też:

1 komentarz: