MacBook na procesorze Apple Silicon M1 – nie ma się czego bać.

W dniu 10 listopada podczas kolejnej (covidowej) konferencji, Apple przedstawiło nowe komputery oparte na własnym, procesorze Apple Silicon M1. Nie ukrywam, że była to dla mnie konferencja długo wyczekiwana. Od wielu lat czekałem na ten krok ze strony Apple, wiedząc jak bardzo ciężka była współpraca z Intelem. Jednak poza radością, czułem także nieco rosnące obawy. Jak Apple poradzi sobie z tą przesiadką. W końcu niemal do ostatniej chwili wiele elementów było ... jedną wielką niewiadomą. Wiele niewiadomych jest do dzisiaj.

Dla przypomnienia

Apple w swojej historii może pochwalić się kilkoma tego typu rewolucjami i każda z nich przebiegała w miarę bezboleśnie, oczywiście na miarę ówczesnych możliwości.

  • W 1984 roku Apple zastępuje procesor MOS6502 procesorem Motorola m68K. Tu przesiadka była dość brutalna. Po prostu starsze aplikacje tworzone dla klasycznych komputerów Apple musiały zostać przepisane na m68K. Z racji różnic w budowie systemu operacyjnego, programiści woleli je pisać od nowa, wykorzystując całe "dobrodziejstwo" procesorów m68K oraz systemu Mac OS.
  • W 1994 roku Apple rezygnuje z procesorów Motorola 68K i postanawia zastąpić je dużo wydajniejszymi i nowocześniejszymi procesorami współtworzonymi przez Apple, Motorolę i IBM — PowerPC. Procesory PowerPC potrafiły emulować Motorolę M68K, choć odbywało się to kosztem wydajności. Pierwsze komputery — PowerMac z rodziny x100 mogły nieco rozczarowywać na początku. Z jednej strony wszyscy obiecywali przyrost mocy na poziomie kilkudziesięciu procent, z drugiej... pierwsze Macintoshe z PPC "chadzały" wolniej, niż ich starsi bracia na Motoroli 68040. Tak, Apple się trochę pospieszyło. Sam system Mac OS nie był w pełni przygotowany do tej przesiadki i konsekwencją tego była konieczność emulowania m68K przy wielu funkcjach systemowych Mac OS. Wraz z kolejnymi edycjami Mac OS, procedury napisane dla m68K były zastępowane nowymi, zoptymalizowanymi dla PowerPC. Choć Mac OS 8.0 zachowywał się na PowerPC już bardzo znośnie, czysty system dla PowerPC pojawił się dopiero w 1998 roku, wraz z Mac OS 8.6. Hm... nie jestem pewien, czy był już on w 100% czysty. Nawet jeśli pozostało coś z m68K, były to ilości śladowe. Jak poradzili sobie programiści? Programiści albo kompilowali swoje programy na nowo, albo tworzyli wersję hybrydowe, zawierające kod dla m68K i dla PPC. Tu warto zauważyć, że obecnie taka strategia jest także dostępna. Każde z tych rozwiązań nie było doskonałe. Programiści nie mieli wówczas jednej, uniwersalnej platformy do tworzenia oprogramowania tak jak dziś Xcode czy Swift. Konieczność zmiany kody wymagała dużo większego nakładu pracy. W przypadku wersji hybrydowych programy zawierały realnie więcej miejsca, co też nie wszystkim odpowiadało. Naleciałości m68K w świecie użytkownika ciągnęły się dość długo i nawet w 2005 roku pojawiały się takie hybrydowe aplikacje.
  • Kolejna zmiana, która zdaniem wielu nie mogła się już udać, była przesiadka z PPC na procesory Intela. Czemu nie miała się udać? Po pierwsze, brak oprogramowania na Intela i konieczność emulacji PPC. Fakt, Intel był wówczas dużo wydajniejszy, jednak konieczność emulacji PPC potrafiła pochłonąć znaczną część jego mocy obliczeniowej. Podkreślmy, że emulacja rozkazów PPC odbywała się na bieżąco, a Rosetta potrafiła przechowywać w pamięci tylko część kodu przetłumaczonego na język x86. Jednak ze względu na bogatą bazę oprogramowania na x86, transformacja przebiegała dość szybko i wbrew niektórym, czarnym wizjom, wcale nie skończyła się katastrofą.
  • Obecna zmiana na procesory Apple Silicon M1 wzbudza nie mniejsze emocje, choć... obiektywnie rzecz biorąc, nie musi. Zauważmy, że Apple w obecnej rewolucji zdołało połączyć wiele korzystnych elementów z poprzednich zmian, równocześnie wyeliminować niedoskonałości jakie pojawiły się już wcześniej. Zauważmy na wstępie, że Apple posiada całą rzeszę programistów tworzących na iOS, a samo Apple zadbało, żeby programy łatwo dało się przenosić na komputery z AppleSilicon M1. Choć od prezentacji komputerów z procesorem M1 minęło zaledwie 9 dni, lista programów natywnych dla tego procesora jest już naprawdę olbrzymia. Choćby wczoraj pojawił się Pixelmator Pro (alternatywa dla Photoshopa), Microsoft Office w wersji Beta, aplikacje Adobe w wersji Beta, oraz cała masa drobnych programów, które często pojawiają się na komputerach z Mac OS. Drugą ścieżką, jest możliwość uruchamiania niektórych aplikacji stworzonych na iOS w środowisku macOS i działa to świetnie. No i oczywiście Rosetta 2, która jest dużo lepszą wersją Rosetty z czasów przesiadki z PPC na Intela. Tamta tłumaczyła kod na bieżąco, przechowując tylko jego fragmenty w pamięci. Rosetta 2 potrafi przetłumaczyć sobie kod programu już w trakcie instalacji programu, a jeśli nie zdoła tego zrobić, potrafi zachowywać tłumaczony kod na pamięci masowej komputera. A że pamięć masowa jest ... diabelnie szybka, przebiega to nadzwyczaj sprawnie. No i jeszcze pozostają aplikacje hybrydowe...

Rzeczywistość

Dziś dotarł do mnie MacBook Pro z procesorem Apple Silicon M1. Decyzję o zakupie pierwszego komputera Apple z procesorem Apple, podjąłem na długo przed konferencją z 10 listopada, godząc się z tym że będę swoistym królikiem doświadczalnym. Miałem w pamięci przesiadkę z m68K na PPC i przesiadkę z PPC na Intela. Nie przeżyłem wówczas żadnego dramatu, choć nie powiem, bywały różne dziwne sytuacje.

Nie będę się rozpisywał na temat wyglądu, bo tu Apple niczym nie zaskoczyło. Komputer wygląda dokładnie tak samo, jak ostatni MacBook Pro 13" z procesorem Intela. Jedyną różnicą jest... cisza. Już na wstępie łatwo zauważyć, że wentylator jakoś nie ma ochoty się rozpędzać podczas normalnego użytkowania czy podczas wykonywania aktualizacji systemu. Nie można powiedzieć tego o MacBooku Pro z Intelem na pokładzie. Różnica druga... choć cały dzień spędziłem na komputerze, jego bateria wytrzymuje zauważalnie dłużej. No dobra, nic nowego. Wszyscy o tym mówią.

Nie... nie będzie testów prędkości. Wiem, że jest szybko. Potwierdzają to kolejne testy, jakie wypływają w sieci. Jednak... czy widać to podczas normalnej pracy? Otóż... nie, ale nie chodzi o to, że komputer jakoś porywająco szybciej zachowuje się podczas przeciętnego użytkowania. On pokazuje swój pazur wówczas, gdy wykonuje coś bardziej złożonego. Nie tylko wymagające zadanie realizuje szybciej, ale pozwala nie zauważyć tego, że to zadanie jest bardziej wymagające. A to już duży plus.

Jak wspomniałem, pewne zaniepokojenie może wzbudzić to, jak zachowuje się oprogramowanie nieprzeznaczone dla Apple Silicon M1? Jak komputer zachowuje się podczas użytkowania, choć ma tylko 8 GB pamięci RAM? Jak uruchamia aplikacje przeznaczone dla iOS. Czy przesiadając się z Maca opartego na procesorze Intela, odczuję jakąś "stratę"?

Instalując jakiekolwiek oprogramowanie przeznaczone dla Mac OS, nie musimy się zastanawiać nad tym, czy jest ono dla M1, czy dla Intela. No, chyba że mamy opcję wybrania jaką wersję chcemy instalować. Instalacja wersji dla Intela przebiega minimalnie dłużej, podobnie jak pierwsze jej uruchomienie, może zabrać nieco więcej czasu, niż się spodziewamy. Jednak każde kolejne uruchomienie tej samej aplikacji sprawia, że uruchamia się ona niemal tak szybko, jak ta przeznaczona dla M1. Znikają także różnice w prędkości jej działania.

Aplikacje stworzone z myślą o M1... po prostu uruchamiają się. Działają tak, jak użytkownik by sobie tego życzył. 

A co z ową skromną i często wyszydzaną ilością pamięci RAM - 8GB? Wiadomo, im więcej pamięci tym lepiej, ale ciężko uznać, że owe 8GB to za mało. O ile podczas normalnego użytkowania iMaca z procesorem Intela czasem pojawia się komunikat w Safari, że FB zabiera zbyt wiele pamięci (swoją drogą... co FB robi z 8 GB pamięci RAM?), o tyle na MacBooku taki komunikat w ciągu dnia nie pojawił się ani razu, choć obydwa komputery miały uruchomione te same aplikacje i taką samą ilość zakładek w Safari.

Na koniec to, co bardzo mnie od początku interesowało, czyli uruchamianie bezpośrednio aplikacji z iOS. Oczywiście, nie wszystkie aplikacje z iOS da się uruchomić. Nawet jeśli jakaś aplikacja może się uruchomić, jej deweloper ma prawo zablokować taką funkcję. Na szczęście... niewielu chyba się na to zdecydowało.

W App Store podczas wyszukiwania aplikacji po nazwie mamy możliwość zaznaczenia, czy aplikacja ma być szukana w dziale dla Maca, czy dla iOS. Jeśli po przełączeniu na iOS pojawi nam się ona na liście... będzie można ją uruchomić. W tym celu... zwyczajnie ją instalujemy i uruchamiamy, tak samo, jak na iPadzie czy na iPhone.

Aplikacje zachowują swoje pierwotne proporcje ekranu, co oznacza, że te przeznaczone dla iPhone otworzą się nam jako okno rozwinięte w pionie. Zdecydowanie lepszym rozwiązaniem jest wybieranie wersji przeznaczonych dla iPada.

Choć kilka godzin użytkowania komputera to zdecydowanie za mało by odtrąbić sukces, jednak to wystarczająco dużo by stwierdzić, że nie ma się czego bać. Gotowych dla M1 aplikacji jest całkiem sporo, tych z iOS jest cała masa, a te przeznaczone dla Intela działają tak samo jak na Intelu.

Ciągle zagadką dla mnie jest zachowanie gier na platformie M1. Ciągle rozumem, że osoby, które z różnych względów muszą mieć Windowsa, mają dużo powodu do niepokoju. Jestem jednak pewien, że rozwiązanie tych wątpliwości to kwestia najbliższych tygodni, bo co chwila pojawiają się nowe aplikacje i nowe rozwiązania.