Яблочное сравнение: Swift vs Objective-C

Новое значит лучшее?
3 минуты28187

Язык Swift по замыслу его создателей призван не только заменить Objective-C в качестве базового для разработки приложений для iOS, но и заменить C во всех остальных сферах, в том числе IoT. Но если бы Swift был так хорош, как о нём говорят, то давно бы восседал на вершинах рейтингов. Но пока это не так. Поэтому не будем забегать вперёд и пока что постараемся ответить на основной вопрос: действительно ли Swift лучше Objective-C? Для этого рассмотрим основные плюсы и минусы.

Objective-C

Краткое описание. Язык, созданный в начале 80-х годов прошлого века, путём скрещивания С с популярным в то время Smalltalk. Изначально воспринимался, как простая надстройка, модифицирующая некоторые синтаксические конструкции, но после того, как за лицензирование взялась сначала компания NeXT, а потом на правах преемника и Apple, Objective-C стал одним из наиболее популярных языков для разработки приложений.

Плюсы:

  1. Динамическая типизация. В некоторых случаях, это действительно может стать ключевым преимуществом. Например, упрощает создание несложных программ.

  2. Документация и сообщества. Более 20 лет успешного применения языка поспособствовали появлению большого количества качественных ресурсов и книг. Сегодня любой, кто желает изучить Objective-C, без труда найдёт ответ на интересующий вопрос на просторах интернета.

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

  4. Относительная простота синтаксиса. Простота заключается в первую очередь в понимании алгоритмов и того, как работает исполняемая машина.

Минусы:

  1. Низкая читаемость кода, что затрудняет изучение языка новичкам.

  2. Динамическая типизация предполагает возможность появления (пропуска) ошибок даже во время компиляции. В частности, банальные опечатки могут серьёзно затянуть процесс.

  3. Ограниченная функциональность. Вполне логично, что язык, созданный в прошлом столетии, не может покрыть ту функциональность, что присуща современным конкурентам.

  4. Не самая высокая производительность, опять-таки вызванная динамической типизацией.

Swift

Краткое описание. В 2014 году специалисты Apple представили миру замену привычному Objective-C. Среди преследуемых целей были заявлены повышенная читаемость кода и устойчивость к ошибкам разработчика. Что получилось по факту, давайте посмотрим.

Плюсы:

  1. Для написания приложения требуется меньше кода, хотя бы просто потому, что здесь реализован упрощенный принцип работы с повторяющимися строками и заявлениями.

  2. Удобен для чтения. Стандартное достоинство любого современного языка.

  3. Больше возможностей по сравнению с Objective-C, в частности возможность управлять памятью.

  4. Полноценное взаимодействие с кодом, написанным на Objective-C.

  5. Повышенная безопасность. Это выражается и в обработке указателей, и в дотошности компилятора, и в том, что в саму компиляцию можно встроить опциональную переменную nil для обеспечения обратной связи.

Минусы:

  1. Из-за молодости языка и не переведённых на Swift кодов OS X и iOS требуется хотя бы минимальное знание Objective-C;

  2. Компилятор выдаёт излишние и просто сбивающие с толку ошибки, которые разработчику, пришедшему с других языков покажутся как минимум необычными.  

Взглянув на все плюсы и минусы, превосходство Swift сомнений не вызывает. Но что говорит статистика?

Обзор мнений и статистики

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

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

Большинство профессиональных разработчиков, отвечая на вопрос “какой язык учить: Swift или Objective-C?”, уверенно отвечает - оба.

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

Итог

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

ios developmentobjective cswiftразработкаязыки
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!