mwiacek.comColorColor | Mobile  
Katedra czy bazar, korpo czy anarchia ? Czyli trochę o Windows, Linuxie, ale również Tizenie i Firefox OS.... (2013)
Submitted by marcin on Mon 13-May-2013

Windows
Windows 7
Tizen
jQuery
jQuery Mobile
Polski
Polski blog
Firefox OS
Vista
Linux
x86
Android
OS
GSM
Spider's Web



Historia znana od lat - jedni piszą oprogramowanie robiąc z tego swoje główne źródło utrzymania, inni robią z tego tzw. bazar lub wręcz religię... jedni wymagają (stałych lub jednorazowych) opłat, a inni rozdają to co napisali dosłownie za darmo... jedni wszystko patentują, inni się tym dzielą....

Od wielu lat trwa dyskusja o tym, która metoda jest lepsza i przynosi więcej korzyści. Dlaczego o tym wspominam ? Przez kilka ostatnich dni dało się zauważyć tu i tam informacje o poście w serwisie Hacker News dotyczącym jakości kodu tworzonego w firmie Microsoft (np. w dobrych programach czy na wykopie, ale nie tylko).

Bardzo ciekawy był np. jeden z komentarzy, który mniej więcej mówił to co sam myślę - mianowicie za ileś lat historycy IT mogą uważać okres do ok. 2003 za najlepszy w historii MS (później mamy już bowiem znacząco więcej różnych faili - np. restarty Longborna, delikatnie mówiąc chłodne przyjęcie Visty, ósemki, ale również WM7 i WM8, wstążek w Office, nawet Windows 7 nie zawsze cieszy się taką sympatią jak Windows XP). Zastanówmy się co czeka dalej x86 i czy rzeczywiście MS jest temu winny....

Wpierw wrócę do mojego krótkiego i niechlujnego tekstu "Light and small ? (2013)". Metodologia prosta, ale widać jak na dłoni, że rozwiązanie MS na starcie zapisuje ok. 6x więcej danych niż dystrybucje linuksowe. Ktoś może powiedzieć - a czy to takie ważne ? W sumie i tak dyski SSD mają wystarczającą żywotność dla przeciętnego użytkownika...ale z drugiej strony mniej zapisów to szybsze ładowanie się...i wydaje się, że nawet w tak podstawowym zakresie MS ma naprawdę dużo do zrobienia. Czy powinien więc zwracać głównie uwagę na interfejs ? Pozostawię to bez odpowiedzi, która narzuca się sama....

Dla mnie bardzo widoczne jest, jak zmieniało się podejście MS do pewnych spraw - i tak o ile np. w Windows XP po wyłączeniu karty sieciowej jej menu było automatycznie odświeżane (zamiast Wyłącz pojawiała się tam opcja Włącz), o tyle w Windows 7 po podobnej operacji trzeba wybrać ręcznie opcję Odśwież... Podobnych drobnych przykładów można wymieniać więcej...podobnie o ile w Windows XP w różnych oknach miejsce było dosyć dobrze zagospodarowane, o tyle w Windows 7 wystarczy spojrzeć na to co się dzieje w Panelu Sterowania.

A Windows 8 ? Skoro zawiera taki "prosty" interfejs i jest taki "lekki", to dlaczego jego instalka zajmuje ok. 2,5 GB ? (wersja 32-bit Enterprise). I proszę nie mówić, że tyle tam sterowników (te są, ale często w wersjach mocno okrojonych) i języków... Prosty, mały, szybki to był Windows NT 4, obecne NT są po prostu obrośnięte tłuszczem (widać to doskonale na podstawie bety ReactOS - obecnie jej instalka to 65 MB, ale ma już podstawowe aplikacje, obsługę sieci, itd.)

Proszę zauważyć, że staram się w tym momencie nie pisać zbyt dużo o tym, jak MS spróbował wcisnąć siłowo interfejs tabletowy na desktopa (i być może to zrobi jeszcze raz w Windows Blue) - o tym pisali wielokrotnie już inni, ja tylko dodam, że naprawdę nie czuję, że ekran dotykowy z szybą odbijającą moje szanowne oblicze jest mi potrzebny do czegokolwiek (choćby dlatego, że szanuję swoje oczy), a pozostawianie odcisków palców na czymś takim również mi szczęścia nie zapewni. Moim zdaniem - jeśli MS chce forsować na siłę prymitywizm graficzny (ups, przepraszam - prostotę), to ma do tego prawo. Tylko czy wielokrotne powtarzanie takich rozwiązań siłowych ma sens ? Zresztą tu i ówdzie można przeczytać, że nawet programiści mają dosyć tej sytuacji (akurat link jest o platformie mobilnej, ale...).

Jeśli jednak wziąć pod uwagę takie zewnętrznie widoczne rzeczy, to skłonny byłbym uznać również prawdziwość słów ze wspomnianego postu w serwisie Hacker New. A to może oznaczać również pewnego rodzaju stagnację rozwiązań na platformie x86 i pewne nieprzyjazne działania producentów wobec użytkowników (skoro bowiem producenci będą mieli mniej zysków, to raczej nie będą promować trwałych urządzeń czy jednorazowego zakupu software, a raczej będą się skupiać na DRMie czy podobnych rzeczach).

MS próbuje wejść mocno na rynek sprzętu i to jest może pozytywne, niemniej jednak popełnia ten błąd co Apple z mapami w iOS6 - po prostu wprowadzanie produktów niedopracowanych z uwagi na deadline bywa strzałem w stopę.

Wracając do oprogramowania - czy wobec tego oprogramowanie Open Source jest idealne ? Ano tu też jest pełno wątpliwości... Ot takie Ubuntu - na starcie zużywa 400 MB RAM (podczas gdy analogiczny Debian 7 tylko ok. 114 MB RAM). Oczywiście - RAM jest tani, itd. itd. Tylko czy takie uzasadnianie nie służy przypadkiem po prostu do przykrycia pewnych problemów ?

Zainstalowałem sobie Ubuntu 13.04 w VirtualBox. I co ? Ano automatycznie użyło (jeśli dobrze pamiętam) sterownika gallium i w tym momencie Firefox po prostu regularnie się zawieszał po kilku sekundach....musiałem wrócić do wydania 12.10, które w stosunku do Debiana 7 jest wolniejsze, ale przynajmniej ładnie renderuje czcionki.

Canonical (twórca Ubuntu) nie jest zbyt mocno lubiany przez wielu "entuzjastów" Open Source. I się temu częściowo nie dziwię - a to wciskają coraz więcej reklam, a to ich Unity miewa właśnie spore problemy z logiką, podczas gdy w systemie nie można uświadczyć domyślnie tak prostego narzędzia jak Manager Urządzeń czy aplikacja do zarządzania dyskami (wiem, wiem, że można sobie doinstalować, ale...). Z drugiej strony - próbują zamieniać komponenty uznawane za filary "wolnego" oprogramowania (np. Wayland zamiast X-Org) i to może być klucz do poprawy i w konsekwencji popularyzacji Linuxa (nie napiszę, że 2013 to rok Linuxa na desktopach, ale na ISS Debian 6 już teraz "wygryzł" Windows).

W jaką pułapkę może wpaść Canonical ? Dokładnie w to co widać z Androidem - Google wziął dobrą podstawę, zrobił wszystko po swojemu i dostał wprawdzie system zdolny do wyświetlania reklam i śledzący użytkowników na wszystkie sposoby, ale też dziurawy, wolny, itd.

Czy należy jednak odrzucać ich próby ? Ostatnio developerzy Ubuntu myślą o prostym formacie plików instalacyjnych aplikacji o nazwie Click...który to ma szansę poprawić to co jest niezbyt wygodne w przypadku DEBów... Takie świeże spojrzenie jest potrzebne - w obecnych OSach można spotkać wiele rzeczy, które niestety są zrobione niewygodnie (wskazywałem na to np. w tekście Why you should not touch Windows 6.x and Linux (2009), ale nie tylko...) - nowoczesny system powinien być odporny na awarie sterowników i niewłaściwe zachowania aplikacji, aplikacje powinny być kontrolowane, itd. itd. (pisałem o tym niedawno).

A czy aplikacje powinny być offline czy online, webowe czy natywne ? Temat też stary jak świat, pewien podziw inżynierski budzi ORBX.js czy Unreal wykorzystujący asm.js, równocześnie jednak mamy do czynienia z sytuacją, gdy wkrótce tak krytykowana Java czy Flash zostaną zastąpione podobnie dziurawymi "pseudostandardami", nad którymi nikt nie zapanuje i które będą użyte do wymuszania na użytkownikach większej opłaty (skoro aplikacje zostaną przeniesione na serwery, płacić bedzie trzeba opłaty za korzystanie i za transfer danych).

A że technologie webowe bywają niestety dalej zawodne pisałem rok temu przy okazji testowania SDK Tizena 1.0 (wziąłem sobie Przepisy drogowe i próbowałem skorzystać z "nowoczesnych" standardów). Tizena jak nie było tak nie ma (jest tylko SDK 2.0), ale pojawił się Firefox OS i telefony developerskie (nie "załapałem się"....) - z uwagi na to podjąłem ponownie swoją skromną próbę. Rezultat:

Na pierwszy rzut oka wygląda to ładnie, ale jQuery i jQuery Mobile dalej mają swoje problemy...które wynikają w dużej mierze z tego jak zdefiniowany jest HTML i JavaScript i jak działają przeglądarki. Przykłady:

Tu widać, że headery i footery potrafią znikać mimo że teoretycznie nie powinny (wystarczyło kliknąć na polu do wpisywania danych, data-position="fixed" czy data-tap-toggle="false" zostały oczywiście użyte):

Powrót do poprzedniej strony czasem polega na tym, że po jej wyświetleniu trzeba jeszcze ją "przewinąć" i z uwagi na taką i nie inną obsługę zdarzeń DOM mamy do czynienia z efektem migania.

A przewijanie tylko części strony ? Frameset został usunięty z HTML 5, pozostał IFRAME i właśnie rozwiązania takie jak w jQuery Mobile czy obszary z odpowiednimi CSS (i wynikającymi z tego wadami).

Co z tego wszystkiego wynika ? Zrobienie takiej ładnej aplikacji jak z użyciem klasycznych natywnych kontrolek bywa jeszcze pewnym wyzwaniem, aplikacje takie w praktyce zapewne będą miały włączone wszystkie biblioteki typu jQuery wewnątrz siebie co będzie skutkowało ich "puchnięciem", brak tutaj będzie standardyzacji (jeśli byśmy chcieli pisać z użyciem bibliotek Tizena, to pod Firefox OS to już nie zadziała) i najważniejsze - te wszystkie "nowoczesne" rozwiązania mają dużą szansę przykryć to co jest siłą obecnych rozwiązań (chcecie się dostać do modemu GSM ? nie ma; chcecie wykorzystać sprzęt do granic ? nie ma).

Jest to trochę ślepa uliczka i wymagana jest tu masa pracy (ale już teraz w przypadku Firefox OS plugin developerski działa szybko i sprawnie, czego nie widać po SDK Androida i Tizena), powiedziałbym natomiast na podstawie moich doświadczeń, że zarówno pełne zamknięcie oprogramowania czy hegemonia nie jest wskazane (często bowiem trudno reagować na pewne usterki), ale pełen bazar także nie (przy zbyt dużej ilości idei trudno bowiem o przyjęcie jakiegokolwiek standardu). Najlepsze jest chyba rozwiązanie "pośrodku"....

Szkoda też, że wielu ludzi się skupia na tym, czy nowa wspaniała wersja tego czy innego oprogramowania będzie mieć okienka w kolorze czerwonym czy blue...podczas gdy realne problemy bywają zwyczajnie przemilczane.

Podam linki do niektórych moich wcześniejszych wpisów, w których dosyć dobrze przewidywałem pewne opisane tu problemy: