Nowy Xcode 9.3, nowe (stare) problemy – FeferCode

Nowy Xcode 9.3, nowe (stare) problemy

Przedwczoraj (29 marca 2018) miał premiere nowy MacOSX 10.13.4 i Xcode 9.3. Zachęcony nowymi funkcjami postanowiłem zaktualizować za jednym razem system i IDE. Wszystko przebiegało sprawnie, kilka GB danych pobrało się szybko, instalacja systemu przebiegła sprawnie i zajęła krócej niż to sugerowały komunikaty. Nadszedł czas na Xcode’a…

Wraz z nowym wydaniem Applowego IDE pojawiło się mniejsze wydanie Swifta oznaczone numerem 4.1 i będące kolejnym krokiem w stabilizowaniu ABI, które to ma nastąpić pod koniec tego roku. Postanowiłem skorzystać z chwili wolnego świątecznego czasu i przyjrzeć się zmianom i nowym funkcjon. Mamy tutaj nowe “condition conformance” pozwalające porównywać wartości opcjonalne czy tablice w tablicach. Mamy też “equatable” pozwalający na porównania, powiedzmy struktur, w bardzo prosty sposób i zwracanie wartości Bool zamiast pisania statycznej funkcji do każdej struktury. Pojawiła się “compactMap()” dla tablic.

Wszystkie te i inne nowości skusiły mnie by przysiąść i przetestować je. Xcode oczywiście oferuje programistom projekt typu Playground pozwalający np. sprawdzić podstawowe idee czy nowe funkcje i idealnie nadaje się do ćwiczeń. Po co tworzyć nowy projekt i uruchamiać program na symulatorze jak można wykorzystać playground.

Odpaliłem Xcode, utworzyłem projekt typu playground, wszedłem na stronę swift.org i odpaliłem kilka stron opisujących nowe funkcje w Swift 4.1. Zaczałem czytać i pisać kod… 2-3 minuty i mój MacBook wszedł na najwyższe obroty jakbym odpalił na nim ciągłą kompilację. Kolejne 2-3 minuty i crash. Xcode nie odpowiada… W playground raptem kilkanaście linii kodu, nie zdążyłem nawet dokończyć ostatniej linii… Monitor aktywności jedynym ratunkiem.

Po ubiciu IDE odpaliłem projekt ponownie, pisze dalej i zastanawiam się jak działa equatable i… znów to samo… parasolka się kręci, chłodzenie MacBook’a działa na maksymalnych obrotach a Xcode nie odpowiada… Monitor aktywności…

Spędziłem dobrą godzinę zanim napisałem trzy przykłady, każdorazowo odwieszając Xcode’a po paru czy parunastu linijkach kodu. O ile spodziewałem się, że playground będzie dość mocno wykorzystywał CPU o tyle nie spodziewałem się, że aż w takim stopniu. iStatus przy każdym kolejnym dodanym znaku w playground pokazuje prawie 100% wykorzystania procesora. Gdy przestaje pisać, mam niedokończoną linię i to jest czas na zwrócenie mi uwagi przez IDE ono zamiast wyświetlić mi wykrzyknik i poczekać na zmiany… po prostu się zawiesza zaraz po wyłapaniu błędu.

Wraz z premierą każdego kolejnego Xcode’a cały czas wierze w to, że Apple w końcu skupi się na poprawie działania i stabilności ich IDE. Gdzie się podziała ta mityczna jakośc o której tyle słyszałem jeszcze zanim sam siadłem do programowania na Mac’u? Czy to były tylko wymyśły fanbojów czy może faktycznie coś niedobrego dzieje się z tą firmą, która skupiła się na obsesyjnym odchudzaniu wszyskich sprzętów i nowych bajeranckich wyglądach zamiast na stabilności i bezawaryjności.

Walka z Xcodem mnie wykończyła, pozostawiłem te kilkadziesiąt lini takimi jakie były przy ostatnim crashu. Czas iść spać, może jutro spróbuje jeszcze raz…

Posts created 4

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top