Bitcode е нова технология на Apple, за която никой не говори
WWDC 2015 имаше толкова много вълнуващи нови версии, че много разработчици пропуснаха една от най-големите иновации на Apple, Bitcode.
Приложенията ще бъдат преобразувани в Bitcode, след като бъдат публикувани в App Store.На практика това означава следното... Ако Apple внезапно промени архитектурата на процесора в дадено устройство, разработчиците вече няма да трябва да актуализират приложенията си, за да го поддържат. С App Store автоматично прекомпилиране на приложения, те ще могат да работят с нови процесори от първия ден, независимо дали разработчиците изобщо са чували за тях или не.
Какво е биткод
Това е труден въпрос. За да отговорите на него, трябва да имате разбиране за виртуалната машина на ниско ниво (LLVM), система за трансформация с общо предназначение, която се използва за трансформиране на съществуващ код в машинен код за различни архитектури.
LLVM се състои от две части: фронтенд и бекенд. Първият е езикът за програмиране, с който създавате вашето приложение, като Objective-C, Swift, Python или Ruby. Второто е за компилиране на това приложение в машинен код, тоест набор от инструкции, разбираеми за един процесор.
Bitcode е вид слой, междинен език, който може да прекомпилира приложения в набор от инструкции. Bitcode използва LLVM, за да получи кода на приложението и да го преведе в Bitcode. Технологията също знае как да превърне този код в изпълнимо приложение въз основа на необходимия набор от инструкции.
Просто казано, това ще позволи на Apple да добави поддръжка за нови архитектури към бекенда на App Store, което ще покаже на Bitcode как да компилира приложението за новата архитектура.
Apple не се страхува от промяна на архитектурата на процесорите
Както показва историята, Apple е една от малкото компании, които успешно са оцелели след промяна в архитектурата на ключовите си продукти. Линията Mac го е преживяла два пъти.
Най-значимата промяна беше преходът от архитектурата PowerPC към Intel през 2005 г. Apple изостави остарялата хардуерна платформа, като предостави на разработчиците нови функции и ги предупреди предварително.
От последните промени можем да си припомним прехода към 64-битова архитектура в iPhone преди две години. Тогава разработчиците трябваше да прекомпилират своите приложения, за да добавят поддръжка за 64-битовия процесор на iPhone 5s. С Bitcode разработчиците вече няма да трябва да преработват приложенията си дори след значителни промени в изчислителната архитектура.
Ако Apple внезапно премине към нова архитектура, да речем, в iPad Pro, благодарение на Bitcode, приложенията на трети страни ще поддържат новото устройство веднага след пускането му.
Тази нова технология е от голямо значение, тя ще позволи на разработчиците да са в крак с времето, когато пускат нови устройства или променят архитектурата на съществуващите.
Разработчикът на iOS Caleb Davenport казва, че Bitcode има както плюсове, така и минуси. Apple вече не трябва да чака разработчиците да предоставят актуализирани инструменти за поддръжка на нови устройства.
Единственото нещо, което ме плаши е, че приложението ми може да е компилирано в конфигурации, които не мога да тествам, което от своя страна ще доведе до грешки, които не мога да възпроизведа.
Кейлъб Дейвънпорт чакаше 64-битовите устройства да се появят на пазара, за да тества приложението си на "истински" хардуер и едва тогава да добави подходяща поддръжка към него. В случай наBitcode, който автоматично компилира приложения за нови устройства без участието на разработчици, може да отнеме седмици, преди програмистът да закупи ново устройство за тестване, докато потребителите използват приложението си и срещат потенциални грешки.
Други разработчици смятат друго. И така, Sjord Jenssen е положителен за иновациите на Apple, тъй като те ще намалят количеството работа, която трябва да свърши, за да поддържа нови устройства. Той вярва, че ако внезапно Apple премине към процесори Intel в новите iPhone, няма да са необходими действия от негова страна, за да се осигури поддръжка за устройствата в деня на пускането.
Други разработчици възприемат Bitcode със смесени чувства. Технологията изглежда невероятна, но все още не е разбрана.
Биткодът беше в описанието 404 на WWDC сесията, но след това изчезна.Проблемът е, че Apple не предоставя достатъчно информация на разработчиците. Въпреки огромното си значение, Bitcode беше много дискретно споменат на WWDC и дори изключен от някои сесии. В приложения, които използват библиотеки със затворен код като CocoaPods, Bitcode изобщо не е желателен, тъй като може да причини грешки, докато самите разработчици на библиотеката не добавят поддръжка за новата архитектура.
Повече подробности вероятно ще се доближат до пускането на iOS 9 и watchOS 2, но все пак е странно, че Apple не предостави пълна документация за Bitcode на WWDC, събитие, което беше създадено, за да подчертае подобни промени.
Независимост от архитектурата в бъдещето
Средният потребител Inertial Lemon вярва, че тези промени сигнализират за нещо повече. Bitcode се изисква в приложенията на Apple Watch, но само се препоръчваза iOS и както знаем, текущите препоръки често стават задължителни изисквания в бъдеще.
За Apple Watch това означава, че следващото поколение часовници може да използват напълно различни процесори, но за разработчиците това няма да има значение - App Store автоматично ще адаптира съществуващите приложения за нови устройства.
Освен това Bitcode може да сигнализира за възможна промяна в архитектурата на Mac. Боб Мансфийлд, който беше отстранен от висшето ръководство, за да ръководи „специални проекти“, е един от кандидатите да работят по това. Apple вече произвежда процесори за iOS устройства, така че преминаването към собствени чипове в Mac не изглежда чак толкова налудничаво.
Има само един препъни камък - Bitcode все още не се поддържа в приложения за OS X. Може би ключовата дума тук е "все още", защото човекът, който представи тази технология на WWDC, работи в екипа на OS X.
Подобни промени биха означавали за Apple да премести Mac от архитектурата на Intel към ARM, без да се налага да адаптира базата на съществуващите приложения на трети страни. В този случай компанията ще се отърве от зависимостта от Intel, която изпитва затруднения с навременната доставка на чипове, поради което пускането на нови продукти на Apple се забави.
Трябва да се разбере, че това е дълъг процес и Bitcode не означава непременно такива промени в близко бъдеще. Но, по един или друг начин, Bitcode ще направи Apple по-гъвкави за радикална промяна на хардуера в техните устройства. Също така в бъдеще компанията няма да трябва да уведомява разработчиците за промени, което ще й позволи да пази информацията за новите устройства в тайна до самото представяне.
Разработчиците ще имат по-малко работаадаптации на приложението за следващите големи актуализации. Всъщност те няма да трябва да правят нищо, въпреки че мнозина подозират, че процесът няма да е толкова прост.
Bitcode трябва да достигне критична маса, преди преструктурирането да се превърне в лесен процес. Но Apple играе дълга игра и дава шанс на страстните разработчици да се подготвят за това, което неизбежно ще се случи в бъдеще.