AppleInsider.ru
X
О проекте Реклама
Чат
с читателями
Присоединяйтесь
в Телеграме

WWDC 2014: история появления Swift

Главное событие пресс-конференции по случаю открытия WWDC 2014 года случилось в самом её конце. Ему уделили совсем немного времени. Крис Латнер, умеющий захватить внимание аудитории и делать с ней все что захочет, был скован и непохож на себя. И тем не менее, WWDC 2014 вошла в историю как “WWDC на которой был представлен Swift”. Новый язык программирования, название которого переводится просто и без затей как “Стриж”, пришел на смену Objective-C.

26 лет этот язык использовался в NeXTSTEP и во всех наследниках этой системы (Mac OS X, iOS, GnuStep, tvOS), стал одним из самых популярных языков в мире, а по моему мнению он был (есть?) лучшим из лучших. Я не могу быть объективным, с 2001 по 2016 Objective-C был моим основным языком программирования. До него были ObjectPascal и C++.

Все остальное, объявленное и представленное на той пресс-конференции (новые версии OS X, iOS и Xcode, и даже Metal) произвело значительно более слабый эффект.

Это продолжение серии про WWDC 2014, предыдущие части здесь:

Первая часть: WWDC 2014: по версии Apple, 25-я WWDC;
Вторая часть: WWDC 2014: Вспоминая QuickDraw 3D;
Третья часть: WWDC 2014: Metal – это очень серьезно.

Раскол

Восторг, охвативший самых разных людей, искренний и неподдельный, я не разделял. Мне было больно и неприятно читать и слышать восхваления в адрес нового языка, который нес в сплоченные ряды пишущих для “яблочных” систем раскол и неразбериху.

В исходных кодах библиотек iOS и OS X десятки (если не сотни) миллионов строк кода на Objective-C. Переписать их на Swift в ближайшие лет десять-двадцать было нереально, тем более переписать по-умному, чтобы не утратить что-то важное и приобрести что-то очень важное и нужное.

Даже если бы Apple удалось идеально надстроить существенно другой по своей природе язык над всеми этими миллионами строк, проблемы были бы неизбежны. А сложное никто и никогда не делает идеально.

Что до самого языка, то сначала он мне очень не понравился. Скачав книгу про Swift (это шедевр технической документации, без капли иронии), и открыв её в первый раз, я увидел что-то вроде let aNumber = 42. Как в самых древних вариантах Basic’а! Отсталых уже тогда, когда я их изучал, лет за 20 до конца предыдущего тысячелетия. Оператор присваивания в них выглядел именно так, почти в точности (примерно так: LET ANUMBER = 42).

Я плюнул и закрыл эту электронную книгу. Возвратившись с работы и преодолев себя, я приступил к чтению. Оказалось что “let” в Swift имеет вполне достойное предназначение, но язык мне активно не нравился.

Строгий контроль за типами данных, сплошные “нельзя” и “обязательно” – это же кошмар, правда? Идея с optionals интересна, но как-то все непривычно. Не по-людски! А мне с ним жить.

Язык мне не нравился очень долго. Целую эпоху. Неделю или две. Через месяц меня охватил восторг.

Смелые обещания

Публике Swift представили как Objective-C без C. Будто бы из-за этого освоить его будет легче. Молодёжь к нему потянется, и напишет шедевры невероятной мощи. Стоп…

Человек, который не способен освоить C, может быть гением в любой области, но шедевр программистского искусства он не напишет никогда. Это не его.

К счастью, это всего лишь маркетинговый лозунг. C в Swift’е присутствует на каждом шагу, это C-подобный язык. Хотя собственно C, как отдельной сущности, в нем действительно нет.

Swift сконструирован по-умному, в нем предусмотрено многое из того о чем раньше никто не заботился. Язык очень предсказуем, безопасен, многие из самых типичных ошибок в нем физически невозможны – но вообще-то он сложнее чем C. В нем очень много правил о которых надо откуда-то узнать.

Современный, быстрый, компактный, продуманный, безопасный – пожалуй, эти обещания в новом языке были выполнены, с самого начала.

Но в то что Swift, с первого его дня, станет “гражданином первого сорта” в iOS и OS X я не поверил. В этом направлении Apple им команда Латнера сделали очень многое, возможное и невозможное, и даже (забегая вперед, в 2014 году об этом еще никто не знал) несколько раз все это переделали, улучшив и углУбив.

Некоторые из этих улучшений понравились мне даже больше чем сам Swift. Вы видели CoreGraphics в варианте для Swift, и другие библиотеки в оригинале написанные на C?

Когда системы хотя бы наполовину будут написаны на Swift, тогда это обещание будет исполнено.

Порадовало что никто не пообещал что даже самые-самые альтернативно одаренные товарищи смогут без труда писать в Swift отличный “софт”. Увы. Ни один язык в мире не гарантирует от ужасных программ.

Обещания (их было дюжины полторы) были “придуманы” в маркетинговой службе, со слов инженеров и менеджеров знавших про Swift и языки программирования не понаслышке. Их общение, скорее всего, было нервным – но продуктивным.

Маркетологи почти не солгали. Так, чуть-чуть, в рамках приличий. И только так, чтобы их невозможно было поймать на обмане и убедительно доказать это.

Swift 1.0

При всех его удивительных качествах, первый Swift был очень сырым, многое в нем вело себя не так как обещала Книга (бесплатная, отлично написанная, книга про Swift).

Согласно теории Жана-Поля Гассé, любое сложное техническое изделие (компьютер, программа, операционная система, графический или центральный процессор) не может “состояться” раньше чем в третьей его версии.

Теория работает не всегда: процессоры от Apple “состоялись” уже в первой их версии, в той которая называлась Swift (это Apple A6 и Apple A6X), а Cyclone (центральный процессор в Apple A7) уже просто громил конкурентов. Были и обратные примеры (но о грустном не буду).

Swift-который-язык состоялся именно в третьей версии.

Когда Крис ушел из Apple, самым главным в проекте Swift стал Тед Кременек, один из тех кто придумал, продумал и сделал реальностью это язык. Мне показалось что чуду пришел конец – но, судя по нынешней версии языка, я ошибался.

А какой язык лучше – Swift или Kotlin или современный C++?

Джеф Раскин говорил что сравнивать сложные сущности на лучше/хуже также нелепо как сравнивать точки на плоскости на больше/меньше. Джеф говорил много разных вещей. С очень многими его утверждениями я не согласен – но не с этим.

Про сам язык не пишу – о нем столько всего уже написано.

Продолжение следует

Предлагаем подписаться на наш канал в «Яндекс.Дзен». Там вы сможете найти эксклюзивные материалы, которых нет на сайте.

Новости по теме
Adobe Premiere выходит на iPhone. Теперь монтировать ролики можно будет как на компьютерах Mac
WhatsApp для iOS получил поддержку Live Photos. Как отправлять и получать живые фото
Новости партнеров
Раскрываем секреты новых беспроводных колонок Tronsmart, которые вот-вот начнут продавать в России
Раскрываем секреты новых беспроводных колонок Tronsmart, которые вот-вот начнут продавать в России
Может ли солнечная буря вызвать сердечный приступ?
Может ли солнечная буря вызвать сердечный приступ?
Почему брокеры бегут из России: отзывы NPBFX о форексе и офшорах
Почему брокеры бегут из России: отзывы NPBFX о форексе и офшорах