Swift — это язык программирования от компании Apple с открытым исходным кодом. Предназначен для разработки приложений для iOS и macOS, реже используется в других проектах.
Язык появился всего в 2014 году как альтернатива Objective-C. Сначала Swift был закрытым, потом Apple открыла его исходный код. Идея заключалась в том, чтобы ускорить разработку, сделать ее удобнее, а код — понятнее.
Swift — компилируемый язык. Это значит, что программа запускается не построчно. Перед запуском она полностью переводится в машинные коды с помощью специального ПО — компилятора. Благодаря этому приложения работают быстрее. Компилятор для Swift входит в среду программирования XCode, предназначенную для macOS.
Язык высокоуровневый: это значит, что код на нем ближе к человеческим понятиям, чем к машинным кодам.
Название читается как «Свифт».
Кто пользуется языком Swift
- Мобильные разработчики, которые программируют под iOS.
- Разработчики приложений под операционную систему macOS.
- Геймдев-разработчики, которые создают игры под системы Apple.
- Бэкенд-разработчики сайтов, работающие с веб-библиотеками Swift.
Для чего нужен язык
- Для создания приложений для систем macOS или iOS. Этот язык преимущественно используется в разработке под устройства Apple.
- Для совместного использования с C и Objective-C — Swift работает вместе с этими языками. На Objective-C написан старый код приложений.
- Для поддержки серверной части сайтов и веб-приложений. Это редкий вариант использования Swift, но возможный благодаря специальным библиотекам — они расширяют возможности языка и адаптируют его под веб.
Характеристики Swift
Мультипарадигменность. Это значит, что язык подходит для разных принципов программирования: функционального, объектно-ориентированного, императивного.
Статическая типизация. Переменной присваивается тип на все время ее существования. Если она содержит число, то в нее не получится записать строку или массив.
Необязательное объявление типов. Можно объявить переменную и не указывать ее тип напрямую. Компилятор поймет его по данным, которые в нее запишут. Если создать переменную A и сразу присвоить ей значение 10, она автоматически считается как целое число.
Преимущества
Высокая скорость. Swift назван в честь стрижа, одной из самых быстрых птиц. Его основное преимущество — скорость и производительность. Apple утверждает, что язык в 2,6 раза быстрее Objective-C и в 8,4 раза быстрее Python 2.7. Для некоторых алгоритмов он превосходит C++. Благодаря высокой скорости исполнения кода приложения на Swift работают быстро. При этом они производительны и не перегружают вычислительные мощности.
Автоматическое управление памятью. Система Automatic Reference Counting (ARC) сама выделяет, расходует и очищает память. Программисту не нужно за ней следить.
Явная обработка null. Значение null обрабатывается так, чтобы код был безопаснее.
Понятный код. Swift — язык с простым и неперегруженным синтаксисом. Благодаря этому в коде проще разобраться. Создатели языка постоянно стараются сделать его понятнее. В нем нет громоздких конструкций, обилия скобок и запятых. Swift похож на естественный язык, остается чистым и выразительным даже при написании сложного кода. Неочевидные ошибки встречаются реже, чем в классических C-подобных языках.
Безопасность. Благодаря продвинутой работе с памятью Swift безопаснее Objective-C и исключает несанкционированный доступ к данным. Он точнее отслеживает ошибки программиста, поэтому снижается риск незаметных, но критичных багов. Swift предсказуем — это важно при отладке или тестировании.
Открытый исходный код. Swift могут бесплатно использовать разработчики, преподаватели и студенты по лицензии на распространение ПО с открытым исходным кодом Apache 2.0. Двоичные файлы для OS X и Linux позволяют компилировать код для iOS, OS X, watchOS, tvOS и Linux. Это необычное решение для Apple, которая известна закрытостью своего софта. Чтобы ускорить развитие и превращение Swift в более мощный язык, существует сообщество, где пользователи могут напрямую вносить вклад в исходный код Swift.
Благодаря открытости Swift можно портировать на сторонние системы, создавать библиотеки и фреймворки, которые расширяют язык. Но большинство возможностей Swift все равно доступно только на устройствах Apple.
Дополнительные возможности от Apple. Корпорация постоянно поддерживает язык: держит в открытом доступе понятные обучающие материалы, обновляет версии. Встроенная в macOS среда разработки XCode поддерживает Swift «из коробки», а для визуальных приложений есть удобный инструмент Apple Swift Playgrounds. Это «песочница», в которой можно тренироваться создавать приложения. Она доступна для macOS и для iOS версий 10 и выше.
На сайте компании можно просмотреть документацию, а в магазине книг Apple Books доступен официальный учебник по языку Swift.
Недостатки
Узкая специализация. Swift используется преимущественно для разработки под устройства Apple. Других применений у языка нет, за очень редкими исключениями. Это ограничивает его применение.
Необходимость использования техники Apple. Swift под Windows или Linux — технически возможное, но неудобное и неполноценное решение. Разработка на этом языке обычно происходит в экосистеме Apple в среде программирования XCode. Для macOS и iOS есть библиотеки и другие компоненты для разработки на Swift, которых нет в прочих ОС. Поэтому для комфортной работы потребуется устройство Apple. Оно должно быть мощным: запуск и сборка написанных приложений — ресурсоемкие процессы.
Небольшое ру-комьюнити. Swift — нишевый язык, которым пользуются только при разработке под устройства Apple. Поэтому у него не настолько широкое комьюнити, как у универсальных языков программирования. Но этот минус компенсируют открытые обучающие материалы от Apple, доступные на официальном сайте. Также вместе со Swift можно быстрее выучить английский язык — на нем очень много лекций и туториалов.
Плохая поддержка старых версий. Старые версии систем iOS и macOS, которые существовали до выхода Swift, не поддерживаются. Могут возникнуть проблемы и с обратной совместимостью, то есть с совместной работой с более старыми версиями языка.
Сильная связь с Objective-C. Это одновременно и плюс, и минус. Код на Swift легко встраивается в программы, написанные на Objective-C, и это дает большую гибкость при разработке. Но новичкам потребуется освоить не один, а два языка. Без этого писать на Swift будет сложнее.
Пример кода на языке Swift
Традиционная «первая программа» выводит в консоль фразу «Hello, world», или же «Привет, мир». В Swift она пишется так:print ("Hello, World")
В конце строки не ставится точка с запятой, а подключать библиотеки или создавать функции для вывода строки не нужно. Этим Swift выгодно отличается от C и языков на его основе.
Вместо print можно использовать команду println — она автоматически подставляет в конец фразы перенос на новую строку.
С чего начать изучение
Swift по умолчанию есть в IDE XCode, ее можно скачать бесплатно в App Store. Для Windows и Linux потребуется либо эмулировать macOS, либо использовать портированные версии от энтузиастов.
Чтобы писать простые учебные программы, достаточно знать базовый синтаксис. Для серьезной разработки под macOS или iOS понадобится изучить основы работы этих систем, а желательно еще и ознакомиться с Objective-C: на нем по-прежнему работает много старых приложений.
0 комментариев