Нужно ли вам учить Swift?
vk f t

Нужно ли вам учить Swift?

Что особенного в этом языке и чем он выгоден

Swift — это язык программирования, разработанный в компании Apple. На нем можно писать приложения для десктопа, мобильных приложений, серверов. У него есть среда Playground, в которой можно увидеть результат программирования на лету. Ну и вообще — язык Apple. Должен быть хорошим, разве нет?

Разберемся.

Немного матчасти

Во всех наших предыдущих статьях мы использовали JavaScript, называя его языком программирования. Технически это верно, но настало время немного прояснить, сравнив со Swift.

Когда вы пишете на JavaScript, ваш код исполняется построчно в браузере, как будто актер на сцене читает реплики по телесуфлеру. Поэтому JavaScript принято называть скриптовым языком.

Если вы откроете чужую программу на JavaScript, вы сможете залезть в код, поменять его, и программа заработает по-новому. Можно выдрать нужную функцию или данные прямо из кода, потому что программа для JavaScript хранится и исполняется в понятном человеку виде.

Swift — в чистом виде язык программирования: в его стандартном виде вы сначала пишете всю программу, потом компилируете ее и запускаете. Компиляция — это превращение программного кода в технический код для процессора: на входе было то, что могли прочитать вы, а на выходе — то, что может прочитать компьютер. Если скрипт — это сценарий для актера на сцене, то компиляция — это отснятый фильм на киноленте.

После компиляции вы уже не можете с легкостью заглянуть в программу и что-то в ней поменять, там всё зашифровано и сжато. Зато такую программу процессор исполняет гораздо быстрее, чем скрипты.

iOS, macOS и деньги

В Swift есть библиотеки для разработки приложений для Маков, Айфонов и Айпадов. Это большой и богатый рынок (все еще), а зарплаты программистов на Swift высоки.

Но важно понимать, что Swift пока что не язык мобильной разработки, а именно язык экосистемы Apple. Существуют решения, чтобы компилировать код Swift на Андроид, но они скорее костыльные.

Идеальный сценарий для Swift — программа для Мака, для Айфона и Айпада, написанные в одной и той же логике. Но не программа для Айфона, Андроида, Мака и Виндоуса — до такого Swift еще не дошел.

Производительность

Это именно то, чего хотели добиться разработчики Swift — скорость работы программ и выполнения кода. Как заявляет Apple, Swift в 2,5 раза быстрее Objective-C и в 8 раз быстрее, чем Python 2.7.

Цель, к которой стремятся разработчики языка — сделать его быстрее, чем С++, который часто признаётся самым быстрым языком программирования.

Надо ли вам, чтобы программа была молниеносной? В идеале — да, но не всегда ради этого нужно переходить на новый язык программирования. Если программой пользуется небольшое число людей, а задача некритичная, то повышение скорости может быть не так заметно. А вот переписывание программы на новом языке может быть болезненным. Так что скорость — не всегда самоцель.

Лаконичный синтаксис

Если брать за критерий количество строк кода, которые нужно написать для решения задачи, то Swift идёт в первой десятке по минимализму. Это легкочитаемый язык, так же как и Python, но с фигурными скобками вместо отступов.

Такой код легко читается даже теми, кто не знает Swift, но знает любой другой язык программирования. В нём всё логично, структурно и понятно.

Посмотрите на пример кода на Swift:

    
language: Swift
let myPeople = ["Аня": 67, "Паша": 8, "Коля": 33, "Женя": 25]

for (name, money) in myPeople {

   print("\(name) получает \(money) тысяч в месяц.")

}


Скопировать код

Код скопирован

Вот так можно выбирать одно из множества значений (пример из документации Swift):

    
language: Swift
let vegetable = "красный перец"

switch vegetable {

case "чеснок":

   let vegetableComment = "Подходит для любителей мескиканской кухни."

case "огурец", "салат":

   let vegetableComment = "Самое то для лёгкого перекуса."

case let x where x.hasSuffix("перец"):

   let vegetableComment = "А это острый \(x)?"

default:

   let vegetableComment = "Вкусное блюдо можно приготовить из любых продуктов."

}


Скопировать код

Код скопирован

Видимый результат

Для Swift есть специальный инструмент Playground — своего рода интерактивная песочница, где программист сразу видит результаты работы программы. Иногда это в несколько раз увеличивает скорость разработки и помогает быстро разобраться с проблемным участком кода.

Пример песочницы в действии

Безопасный код

Идеология языка такая: меньше уязвимостей и больше безопасности для самого кода и системы. Разработчики исходили из того, что программист не должен держать всё в голове и предусматривать каждую нештатную ситуацию. Пусть за него это делает компьютер. Например, не нужно специально следить за доступом и утечкой памяти, потому что Swift берёт это на себя.

Ещё он защищает от ошибок, связанных с неправильным управлением железом и от несанкционированного доступа к участкам памяти, которые не задействованы в программе. Штатные ошибки Swift тоже обрабатывает эффективнее того же С++, где каждое исключение нужно прописать вручную.

Что учить сейчас?

Если вы уже программируете на разных языках — определенно рассмотрите Swift. Ничего лучше для разработки под Apple сейчас нет.

Если Swift будет вашим первым языком, начните лучше с Python. Он более универсальный и разносторонний. Потом сможете перейти на Swift и другие языки.

Если вам нужен быстрый результат и сразу выкатывать программы на сайт или в интернет, лучше посмотрите на JavaScript. У этого языка самый короткий путь от идеи до реализованного продукта на любом устройстве.

Ещё по теме