Новый язык программирования Swift, разработанный Apple для iOS и OS X, способен существенно изменить способы разработки хорошо знакомых пользователям этих систем приложений, а также заметно понизить планку уровня подготовки, достаточного для создания таких программ.
Язык Swift был официально представлен на очередной Международной конференции разработчиков Apple WWDC 2014 и был встречен чрезвычайно тепло. Профессионалы с самого начала оценили большой потенциал новичка, но что же может дать Swift другим категориям пользователей? Давайте разберёмся.
Начать придётся всё-таки с преимуществ Swift для разработчиков, поскольку без их описания не получится понять, что же новый язык даст всем остальным.
Почему специалисты на WWDC 2014 были сразу так воодушевлены появлением Swift? Всё дело в первой же фразе, в которой старший вице-президент Apple по разработке ПО Крейг Федериги упомянул новый язык: «Что, если у нас был бы Objective-C без рудиментов C? И мы не просто так подумали об этом, мы сделали больше. У нас есть новый язык программирования. Он называется Swift и он совершенно крут».
До последнего времени для разработки приложений для платформы Apple можно было использовать языки C, С++ или Objective-C. Последний был создан известным программистом Брэдом Коксом в начале 1980-х, и с 1983 года он используется в Apple для создания разнообразных приложений. Objective-C многое позаимствовал из C и С++, принципиальным отличием было введение объектно-ориентированной модели программирования, реализованной в стиле Smalltalk, в которой объектам посылаются сообщения. Эта модель была удобнее, чем реализованная в многопарадигменном С++ и, тем более, чем в классическом процедурном C.
Тем не менее, базирование на языке C родом из начала семидесятых делало программирование на Objective-C гораздо более трудоёмкой задачей, чем на таких современных языках, как Python или Ruby. Однако, при всей его громоздкости для программиста, среди ключевых достоинств Objective-C можно было назвать чрезвычайно быстрое выполнение целого ряда функций.
Очевидно, что в Apple поставили задачу сохранить в Swift всё хорошее, что было в Objective-C, в частности, упомянутую производительность кода, соединив её с привычными сегодня удобствами интерпретируемых языков. В Swift избавились от множества рудиментарного мусора, доставшегося Objective-C от предшественников. Кроме того, Swift позволяет программисту решать поставленные задачи в нескольких различных моделях, среди которых функциональное программирование, при котором все действия представлены в виде математических вычислений; процедурное, где действия выполняются последовательно и линейно, и объектно-ориентированное, где все данные представлены в качестве объектов.
Swift даёт на выходе высокооптимизированный LLVM-совместимый байткод (т.е. низкоуровневые инструкции, выполняемые непосредственно устройством) и работает с теми же API. что и Objective-C или C. Благодаря такой совместимости можно интегрировать код Swift в уже существующие проекты, библиотеки и приложения. А если вам потребуется опуститься на уровень ниже и вручную задать, к примеру, тип переменных или параметры управление памятью, вы всегда сможете вернуться к Objective-C.
Помните скандальную игрушку FlappyBird? Так вот, всего через несколько дней после анонса нового языка, её полный клон FlappySwift переписали на Swift. Посмотрите по ссылке, насколько компактен и чист исходный код и насколько он напоминает современные интерпретируемые языки.
С профессиональными разработчиками разобрались. А что может дать Swift студентам, только делающим первые шаги в программировании? Вполне может ожидать того, что классическая фраза «Hello World» совсем скоро будет выводиться на экран преимущественно с помощью Swift. Почему? Потому что Swift прост в освоении, нагляден и интуитивно понятен, может использовать разные модели программирования и при этом обеспечивает высокие скорости Objective-C.
Но мы ещё не упомянули о Playgrounds, то есть, буквально, об «игровых площадках», одной из полезнейших новых функций в Xcode 6, в которой, собственно, и реализован новый язык Swift. Напомним, что существует такая аббревиатура REPL, описывающая простую интерактивную среду программирования, позволяющую быстро ознакомиться с особенностями какого-то нового языка. REPL расшифровывается как read-eval-print loop, то есть «прочитать, принять, напечатать, повторить», и происходит от названий элементарных функций языка Lisp. Такая последовательность позволяет писать и интерпретировать код строчка за стройкой, не влезая в основной проект — это полезно, например, при отладке или при проверке какой-то пришедшей вам в голову идеи.
Playgrounds в Xcode 6 — это именно такие REPL, дающие возможность строчка за строчкой прогонять приложение и пошагово оценивать его работу. И для студентов нет ничего лучше, чем сразу видеть наглядный результат, как работает каждая новая строчка. Тем самым, программисту уже не нужно быть высококлассным профессионалом, способным обнаружить мелкую ошибку в море строчек кода, а это означает возможность существенно понизить планку для входа в число разработчиков для iOS и OS X. Разумеется, речь не идёт о больших проектах — хотя, студентов многие опрометчиво недооценивают.
Наконец, что появление Swift даст обычным пользователям, большинство из которых не является программистами и мало что знает о каких-то там языках? Для потребителя важно, чтобы приложение чётко исполняло заявленные функции и было удобным и стабильным.
Очевидно, что внедрение Swift заметно скажется на всей программной экосистеме Apple. Поскольку разработка приложений для iOS и OS X становится всё проще и легче, многим профессионалам в других языках и платформах захочется попробовать свои силы на новом поле деятельности. Но что это может значить?
Прежде всего, это означает, что к мобильным и компьютерным платформам Apple будет привлечено большее число разработчиков. Больше разработчиков — это больше приложений и больше выбора для потребителя. А вот вопрос о качественном уровне такого софта придётся оставить открытым. Пока что Swift слишком новая технология и она ещё не освоена даже профессиональными программистами для устройств Apple. К тому же она более доступна в понимании для студентов и прочих людей, делающих первые шаги в программировании. К чему всё это может привести, пока сказать трудно.
Если вы уже сейчас хотите оценить возможности Swift, то для скачивания бета-версии XCode 6 вам потребуется платный аккаунт разработчика. Всем остальным придётся подождать до осени, а тем временем можно ознакомиться с подробнейшим 500-страничным пособием по этом новому языку, которое, как мне кажется, будет интересно не только профессиональным программистам.