Сегодня в мобильной разработке для платформ на 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 необходимо знать его основы.