Powtarzam to już niemal jak mantrę. Czekam na komputery z własnymi procesorami Apple. Dopiero wtedy Maki mogą znów stać się jak niegdyś naprawdę innowacyjnymi komputerami, wyprzedzającymi podobnie do obecnych iPhone’ów, konkurencję o lata.
Przecież tak już było
Pamiętacie mój artykuł o starych reklamach Apple? Na początku i w połowie lat 90 XX w. komputery Apple i PC dzieliła przepaść. Choć już pojawiały się symptomy, że MacOS klasyczny zaczyna pękać w szwach i „długo już nie pociągnie”, to za sprawą sprzętu i dobrego startu dekadę wcześniej Apple był wciąż przed konkurencją. Jednym z najważniejszych czynników tej przewagi były ultranowoczesne i pozbawione ogona zgodności z 4-bitową architekturą procesory PowerPC.
Apple nie był ich producentem, ale za sprawą ścisłej współpracy z IBM oraz Motorolą i sporego zaangażowania również finansowego miał istotny wpływ na ich konstrukcję. Dodatkowo były one niedostępne, a raczej nieprzydatne dla konkurencji wintelowej.
Wcześniej była Motorola
W Apple opracowano wyjątkowo wydajny i głęboko osadzony w systemie emulator M68020 dla PowerPC. PPC miało tak dużą przewagę nad Motorolą (i Intelem), że nawet pewne straty związane z tłumaczeniem kodu nie rujnowały tej przewagi. Photoshop w trybie emulacji na Power Mac 7100 działał szybciej niż na najlepszej Quadrze, a niebawem zaczęły powszechnie pojawiać się natywne wersje aplikacji.
Z PowerPC na Intela
To już nie było takie łatwe i gładkie przejście. Choć Rosetta stosowała wyrafinowane sposoby tłumaczenia kodu z buforowaniem i powtórnym użyciem, to ubytek wydajności był odczuwalny. Co gorsza, emulacja dotyczyła tylko aplikacji. Dodatki do systemu musiałby być już skompilowane dla Intela. Nie można było stosować ich wersji PowerPC. Jednak choć Xcode nie był jeszcze powszechnie stosowany przez deweloperów, to postawieni pod ścianą przez Apple szybko zaczęli dostosowywać swoje programy i dodatki dla „nowych” procesorów.
Intel się kończy
Nie należy spodziewać się spektakularnego crashu z fajerwerkami, ale firma ostatnio nie ma lekko. Błędy w architekturze (cześć z nich też występuje w ARM), na które Intel zareagował niepośpiesznie i w masowo krytykowany sposób. Utrata lukratywnego zamówienia od Apple na modemy 5G. Coraz większe kłopoty z rozwojem platformy x86-64 i problemy ogona wstecznej kompatybilności. Praktyczny brak oferty dla smartfonów oraz IoT, które to rynki rozwijają się najdynamiczniej. Nawet w dziedzinie superkomputerów Intel może być zagrożony. Pojawia się coraz więcej maszyn na liście 100 najszybszych komputerów świata opartych na architekturze ARM. Może nie są na jej szczycie, ale pod względem energetycznym zdecydowanie przodują.
Apple lubi mieć kontrolę
I wie jak się nią posłużyć. Widzimy to po iPhone’ach i iPadach. Choćby fani Androida i Samsunga nie wiem, jak się napinali, to nie zmienią faktów, że Apple i ich procesory mają nad konkurencją ARM niemal 2-letnią przewagę. To, że czasem najnowszym Samsungom udaje się dogonić roczne modele iPhone’ów wynika tylko z faktu, że Apple mierzy siły na zamiary. Potęgę, którą daje pełna kontrola nad sprzętem i systemem docenia nawet kierownictwo Google’a.
Te ARM, a czy to dość mocne będzie?
Jeżeli Adobe już nie ma wątpliwości co do Photoshopa na iPadzie to raczej tak. Jeżeli na ARM i to takim zwyczajnym, nie od Apple, daje się tworzyć ekonomiczne superkomputery, to już nie powinniśmy mieć wątpliwości.
Nawet ewentualne problemy z np. szybkością przełączania wątków, która na standardowych rdzeniach ARM ponoć jest wąskim gardłem, dla Apple nie powinna być przeszkodą. Przecież robią własne rdzenie i mają odpowiedni zespół ludzi do wprowadzenia wszelkich korekt. Nie muszą się też liczyć z pełną kompatybilnością. W końcu robią dla siebie. Mają pełną władzę nad systemem i co ważniejsze nad narzędziami do tworzenia aplikacji i dodatków do tego systemu.
Czysta droga
Apple rzucił na pożarcie zniecierpliwionym klientom mięsistą aktualizację MacBooków Pro. Jesienią doczekamy się pewnie kolejnych kąsków dla mniej zamożnych.
W nowych MacBookach zastosowano znany z iMac Pro „koprocesor” T2. Choć pełni on funkcje pomocnicze względem procesora intelowskiego to „jest szyją, która kręci głową”. To on zapewnia bezpieczeństwo i wydajność pamięci masowej oraz nadzoruje funkcjonowanie całości systemu. Jak na razie nie znalazłem nigdzie skarg na działanie takiego duetu w iMac Pro.
Koniec 32-bitów. Choć nie nastąpi wraz z macOS 10.14, to już jest bardzo bliski. Możliwe, że Apple nie będzie czekał aż rok, aby całkiem usunąć zgodność z 32-bitowym kodem. To w znaczny sposób upraszcza działanie systemu, który nie musi już mieć bibliotek w dwóch wersjach i przełączać się pomiędzy trybami.
Metal. Tak, lubię ten rodzaj muzyki, ale w tym przypadku chodzi o biblioteki graficzne. Metal jest obecnie obowiązującym standardem. OpenGL został przez Apple uznany za „przestarzały”. Metal jest w zasadzie identyczny dla macOS i iOS. Dodatkowo został zaadaptowany przez wydawców najpopularniejszych silników graficznych nie tylko do gier. Nawet bardzo popularny Vulkan w swojej implementacji na macOS i iOS opiera się wewnętrznie na bibliotekach Metal i jest z nim zgodny.
ARM radzi sobie do wielu lat z PCIe, poradzi sobie i z Thunderbolt. Nie sądzę, aby wsparcie dla eGPU było jakimś problemem.
Klocki sprzętowe. Apple ma już bardzo wydajne 64-bitowe rdzenie, ma też ich wersje ekonomiczne. Potrafi zmusić je do wydajnej wspólnej pracy. To nie koniec. W pudełku z klockami ma rdzenie „neuronowe”, procesory obrazu oraz własne rdzenie graficzne, których wydajność jak widać po iPhone’ach jest już całkiem spora. Nic tylko tworzyć nowe konstrukcje!
Xcode coraz lepszy
Zawsze jest na co ponarzekać, ale Xcode coraz mniej krwi psuje programistom. Zapewniam Was, że na inne platformy są zdecydowanie gorsze narzędzia. Być może lepsze też, ale jakoś nikt się nie chwali.
Z obecnym Xcode przekompilowanie aplikacji na nowy procesor będzie naprawdę proste. Apple od kilku lat stara się trzymać w ryzach zapędy programistów. Myślę, że zmiana architektury procesora nie sprawi więcej problemów niż przejście z 32- na 64-bity.
Co może pójść nie tak?
Zaznaczam, że opisuję tu tylko moje obawy związane ze zmianą architektury w komputerach Apple. Nie interesuje mnie zgodność z Intelem i wirtualizacja na Macach. Od tego mam QNAP. Zresztą Microsoft też flirtuje z Windowsem na ARM i to do jakiegoś czasu.
Najbardziej obawiam się o sterowniki do „kabelków”, a dokładnie drobnych urządzonek, jak konwertery USB-RS lub w moim przypadku częściej USB-TTL stosowanych podczas programowania mikrokontrolerów. Z tym też wiążą się obawy o narzędzia i środowiska używane do tego celu. Tu nie ma Xcode, jest terminal i różne wersje kompilatorów na różne platformy. Obawiam się, że adaptacja ich wszystkich do Ax może trochę potrwać.
Te obawy wynikają z przeświadczenia, że mając tak duży wpływ na narzędzia i programistów, Apple pójdzie na łatwiznę i nie stworzy „głębokiego” emulatora Intela na ARM, a jedynie odpowiednik Rosetty.
Może też całkiem zrezygnować z emulacji, wypuszczając na pierwszy ogień tani komputer, który stanie się hitem i wymusi na deweloperach szybsze dostosowanie aplikacji. To taki diabelski, ale w świecie Apple realny plan.
Tak czy siak, na zmiany przyjdzie nam jeszcze poczekać przynajmniej 2 lata. W najśmielszych marzeniach liczę na zapowiedź przejścia podczas przyszłorocznej WWDC.
Intel outside!
Chyba tytuł powinien brzmieć tak „APPLE OCZYŚCIŁO DROGĘ DLA WŁASNYCH PROCESORÓW W MACACH”
„Jeżeli Adobe już nie ma wątpliwości co do Photoshopa na iPadzie to raczej tak” – nie za bardzo rozumiem o co chodzi w tym zdaniu.
„ARM radzi sobie do wielu lat z PCIe, poradzi sobie i z Thunderbolt.” – … od wielu lat …
„Zresztą Microsoft też flirtuje z Windowsem na ARM i to do jakiegoś czasu.” – i znowu „(…) od jakiegoś czasu(…)”
Pan Jaro jasnowidz z krwi i kości 😉 , od dziś będę czytał uważnie twoje „marzenia” 🙂
Dziękuję! „A nie mówiłem [pisałem]?”