HongMeng szybszy od Androida? Być może, ale...

    HongMeng OS na milionie smartfonów. HongMeng testowany przez chińskich producentów telefonów. HongMeng szybszy od Androida o 60%. Perypetie Huawei z Androidem i połączone z nimi kolejne informacje o systemie operacyjnym Huawei, który przez chińskie źródła próbuje być wykreowany na pełnoprawną (a może nawet i lepszą!) alternatywę systemu Google, to bez wątpienia najgorętszy technologiczny temat ostatnich tygodni.

    Niestety, temat Huawei, Androida i HongMeng OS jest nie tylko tematem technologicznym, ale też politycznym, więc w zalewie informacji czasem trudno jest stwierdzić, co jest prawdą, a co tylko próbuje nią być. Dlatego wszelkim związanym z nim newsom warto przyjrzeć się z bliska. Na przykład – czy HongMeng OS faktycznie ma szansę być dużo szybszy od Androida?

    HongMeng szybszy od Androida?

    Ludziom jest łatwo uwierzyć we wszelkie zapewnienia, że jakiś system będzie szybszy od Androida, bo Android wielu osobom kojarzy się z „mułem”. Czy słusznie? W pewnej mierze tak. Nawet Google (choć nie bezpośrednio) przyznaje, że spora część pracy związanej z kolejnymi wersjami Androida dotyczy optymalizacji wydajności i płynności systemu, bo pewne decyzje podjęte w początkowych fazach projektowania go nie były najbardziej fortunne. Pamiętacie jeszcze Project Butter z Androida 4.1? Albo zmianę środowiska uruchomieniowego Dalvik na ART w Androidzie 5.0? Android miał naprawdę sporo (i pewnie nadal ma) za uszami, ale wiele problemów z szybkością działania smartfonów z Androidem nie jest winą tego, że to z systemem jest coś nie tak (który przecież jest oparty na jądrze Linuksa, na którym ma być oparty również HongMeng), ale tego, co robią z nim twórcy smartfonów.

    Jednocześnie największą zaletą i przekleństwem Androida jest to, że każdy może zrobić z tym systemem co chce. Dzięki temu może działać na bardzo różnych urządzeniach, zupełnie odmiennych pod względem specyfikacji i architektury. Ale przez to też nie jest idealnie zoptymalizowany pod konkretne rozwiązania, tak jak na przykład iOS. W tej sytuacji to na producencie sprzętu z Androidem ciąży odpowiedzialność wprowadzenia koniecznych poprawek, optymalizacji i zmian w konfiguracji (na przykład wybrania odpowiedniego zarządcy procesora, który ma ogromny wpływ na responsywność i płynność systemu). I, niestety, producenci często zupełnie się na tym zadaniu wykładają.

    Kolejna rzecz, na której się wykładają, to optymalizacja nakładki systemowej – czyli tego, z czym użytkownik ma najczęstszy kontakt. A traf chciał, że największy producent smartfonów z Androidem nie bryluje ani pod względem optymalizacji i konfiguracji systemu, ani pod względem optymalizacji nakładki systemowej. Z tego powodu większość osób kojarzy Androida nie z tym, jak on może i powinien działać, a z tym, jak on działa w jednym z najgorszych możliwych przypadków – tanie smartfony Samsunga czasem wypadają pod tym względem wręcz tragicznie, a stosunkowo mało osób (szczególnie w Polsce) miało kiedykolwiek do czynienia ze sprzętem OnePlus'a lub z Pixelami Google'a.

    Czyli czy HongMeng OS – na poziomie systemu, jego jądra i interfejsu – może być szybszy o kilkadziesiąt procent od Androida? Jeśli porównalibyśmy ze sobą idealnie zoptymalizowany system Huawei stworzony z myślą tylko i wyłącznie o smartfonach Huawei, z kiepsko zoptymalizowanym Androidem ze słabą nakładką – tak. Natomiast jeśli HongMeng ma trafić na różnorodne sprzętowo urządzenia większej liczby marek i porównalibyśmy go z dobrze zoptymalizowanym Androidem (na przykład z Pixelów Google'a lub z OnePlusa 7 Pro) – nie. Czyli faktyczna odpowiedź zapewne będzie leżała gdzieś po środku, ale na duże różnice byśmy nie liczyli.

    A może chodzi o szybkość działania aplikacji na HongMeng?

    Większej miary prawdy doszukiwalibyśmy się w stwierdzeniu, że aplikacje na HongMeng OS mogą działać szybciej od aplikacji na Androida. Zapewnienie i udowodnienie tego nie byłoby trudne – wystarczałoby, aby były one pisane w innym języku programowania. Programy na Androida są pisane w języku Java. Choć androidowa Java, szczególnie w sposobie uruchamiania kodu, mocno różni się od „normalnej” Javy i programiści Google wkładają mnóstwo pracy w optymalizację kompilatorów i środowiska uruchomieniowego Androida, to pewnych rzeczy się nie przeskoczy. Aplikacja w całości napisana w C lub C++ zawsze będzie szybsza od aplikacji napisanej w nawet najbardziej zoptymalizowanej i zmodyfikowanej Javie. Co prawda programiści mogą wstawiać w programy na Androida fragmenty kodu napisane w C/C++ (dzięki Android NDK), aby najważniejsze ich części były szybsze, ale jeśli aplikacja w jakikolwiek sposób korzysta z API Androida (czyli na przykład ma... graficzny interfejs), to przynajmniej w części musi być napisana w Javie.

    Jeśli więc podstawą aplikacji pisanych na HongMeng OS miałaby być na przykład wykorzystywana w Sailfish OS (w którym to Huawei widzi potencjalną alternatywę dla Androida) platforma programistyczna Qt, u której podstaw leży C/C++, to zapewnienie w pewnych sytuacjach 60-procentowego wzrostu wydajności nie byłoby abstrakcją. Nie należy tego jednak mylić z o 60% większą liczbą klatek na sekundę w Fortnite, bo wymagające gry 3D właściwie nie mają kodu Javy (a na pewno nie tam, gdzie ma to znaczenie), albo z o 60% szybszym uruchamianiem aplikacji. Po prostu niektóre funkcje aplikacji w pewnych sytuacjach mogłyby działać szybciej. Jakkolwiek nieprecyzyjnie to brzmi...

    HongMeng może być szybszy od Androida. Ale czy to ma znaczenie?

    Czyli, podsumowując, smartfon Huawei z systemem HongMeng może być szybszy od tego samego smartfona Huawei z Androidem. W najlepszej sytuacji – gdy system byłby „skrojony na miarę” pod dany sprzęt i aplikacje na niego byłyby pisane w mniej wysokopoziomowym języku programowania – różnica mogłaby być zauważalna. Ale czy ma to znaczenie?

    Praktyka pokazuje, że nie. WebOS, MeeGo, BlackBerry OS. Co łączy te systemy? Były dużo szybsze od Androida, który w tamtych czasach działał dużo gorzej niż teraz. Wielozadaniowość działała w nich genialnie (szczególnie w BlackBerry OS). Obsługiwało się je gestami, zanim stało się to modne (zobaczcie sobie kiedyś film pokazujący, jak się obsługiwało smartfony Palm Pre). Nie jest przesadą powiedzenie, że systemy te wyprzedzały swoje czasy o kilka lat. I (przynajmniej na smartfonach) umarły po pojawieniu się na kilku urządzeniach.

    Windows Phone/Mobile walczył trochę dłużej, ale Microsoft też musiał skapitulować, choć początkowo szybkość działania tego systemu i Androida na tańszych smartfonach (Lumia 520!) dzieliła przepaść. Wszystkie te historyczne przykłady pokazują, że bycie szybszym, bardziej funkcjonalnym (zachęcam Was do poczytania sobie recenzji pierwszego iPhone'a ;)) i innowacyjnym nie ma znaczenia, jeśli Twój sprzęt nie jest „sexy” i jeśli nie uda ci się przekonać deweloperów, żeby tworzyli oprogramowanie na Twój system. Więc jeśli HongMeng OS ma być realną alternatywą dla Androida, to mówienie o tym, że jest on szybszy zdecydowania nie wystarczy. Co nie zmienia faktu, że system Huawei ma sporą szansę na odniesienie pewnej miary sukcesu, ale to jest temat na oddzielny artykuł.