Услуги Портфолио О компании Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Статьи

Разработка под iOS: Swift vs Objective-C

1 декабря 2023·3 мин чтения
Разработка под iOS: Swift vs Objective-C

Сегодня в мобильной разработке для платформ на iOS используют два языка: Objective-C и Swift. Первый старше, второй — более современное решение. Расскажем о плюсах и минусах каждого из них.

Оба языка сейчас активно применяются на рынке, а при выборе конкретного решения нужно исходить из их возможностей.

Objective-C

Этот язык написали на базе С и забытого сейчас Smalltalk, одного из первых языков для ООП. Первое время он не пользовался особой популярностью, но все изменилось, когда Objective-C лицензировала Apple. Компания, тогда называвшаяся NeXT, стала активно развивать его и скоро язык занял свою нишу.

Основные характеристики Objective-C:

  • Это язык с динамической типизацией, этим он схож с JavaScript и PHP. В нем при объявлении переменной не нужно объявлять ее тип, как, например, делают в Java. Это с одной стороны позволяет писать код быстрее, с другой стороны может стать причиной ошибок. В среде программистов неизменно популярны шутки про складывание строки и числа. Динамическая типизация серьезно снижает надежность кода и уменьшает производительность.
  • За свою более 30-летнюю историю Objective-C оброс огромным комьюнити, развитой документацией и большим количеством обучающих материалов. За счет этого язык удобнее учить, а решение многих распространенных проблем не нужно искать самостоятельно с нуля, а можно нагуглить.
  • На заре своего появление Objective-C выгодно отличался от других С-подобных языков простотой синтаксиса и гибкостью. Писать код на нем было банально легче.
  • У языка, появившегося так давно, есть проблемы с ограниченной функциональностью. Пусть он и развивался все это время, некоторые возможности оставляют желать лучшего.

Swift

Его создали в компании Apple в 2014 году. Он появился как ответ на моральное устаревание Objective-C. Его создатели обещали большую читабельность и надежность кода.

Основные характеристики Swift:

  • Одним из главных преимуществ языка стал упрощенный принцип работы с повторяющимися строками. Это позволяет оптимизировать количество написанного и делает код лаконичнее.
  • У Swift проще синтаксис и его, как и большинство молодых языков, проще читать. За счет этого процесс поддержки на нем значительно проще.
  • В плане безопасности Swift получил более сложный компилятор и возможность обработки указателей. Однако в процессе компиляции он нередко выдает не самые очевидные ошибки. Это слабое место, к которому программисту нужно привыкнуть.
  • Разработчики пообещали совместимость с кодом на Objective-C и с этим они справились.

Разработка мобильных приложений на заказ

Узнайте цену

Что лучше

Казалось бы, появился обновленный язык программирования под iOS, зачем использовать устаревшее решение. Но не все так просто, хотя бы из-за инерции: старые массивы кода невозможно переписать в одночасье и зачастую их нужно поддерживать.

А здесь возникает очевидная проблема: на многих проекта невозможно работать со знанием «голого» Swift. Программисту под iOS придется выучить хотя бы азы Objective-C, чтобы адекватно вносить изменения.

Отсюда вытекает логичное бизнес-решение: проще и дешевле найти разработчика на одном языке, чем на двух. Так что зачастую проекты продолжают писать на Objective-C просто потому, что когда-то начали.

Еще одна проблема заключается в стандартных библиотеках, многие из них, например, UIKit или Foundation, завязаны на динамическом взаимодействии со старым языком. А если использовать их со Swift, преимущество быстродействия пропадает.

Резюмируем

Objective-C морально устаревает и становится все менее привлекательным как для разработчиков, так и для бизнеса. Найти программиста, который на нем пишет, с каждым годом будет сложнее. Но и стоить они будут дороже.

Но пока что говорить о смерти Objective-C рано. Его до сих пор активно используют и даже разработчикам на Swift необходимо знать его основы.

Обсудим ваш проект?

Соберём команду под вашу задачу и оценим проект за 2 дня — бесплатно.

Обсудить проект