Яблочное сравнение: Swift vs Objective-C
Язык Swift по замыслу его создателей призван не только заменить Objective-C в качестве базового для разработки приложений для iOS, но и заменить C во всех остальных сферах, в том числе IoT. Но если бы Swift был так хорош, как о нём говорят, то давно бы восседал на вершинах рейтингов. Но пока это не так. Поэтому не будем забегать вперёд и пока что постараемся ответить на основной вопрос: действительно ли Swift лучше Objective-C? Для этого рассмотрим основные плюсы и минусы.
Objective-C
Краткое описание. Язык, созданный в начале 80-х годов прошлого века, путём скрещивания С с популярным в то время Smalltalk. Изначально воспринимался, как простая надстройка, модифицирующая некоторые синтаксические конструкции, но после того, как за лицензирование взялась сначала компания NeXT, а потом на правах преемника и Apple, Objective-C стал одним из наиболее популярных языков для разработки приложений.
Плюсы:
-
Динамическая типизация. В некоторых случаях, это действительно может стать ключевым преимуществом. Например, упрощает создание несложных программ.
-
Документация и сообщества. Более 20 лет успешного применения языка поспособствовали появлению большого количества качественных ресурсов и книг. Сегодня любой, кто желает изучить Objective-C, без труда найдёт ответ на интересующий вопрос на просторах интернета.
-
В сравнении с С++, да и многими другими языками того времени, Objective-C предоставляет разработчику куда больше гибкости.
-
Относительная простота синтаксиса. Простота заключается в первую очередь в понимании алгоритмов и того, как работает исполняемая машина.
Минусы:
-
Низкая читаемость кода, что затрудняет изучение языка новичкам.
-
Динамическая типизация предполагает возможность появления (пропуска) ошибок даже во время компиляции. В частности, банальные опечатки могут серьёзно затянуть процесс.
-
Ограниченная функциональность. Вполне логично, что язык, созданный в прошлом столетии, не может покрыть ту функциональность, что присуща современным конкурентам.
-
Не самая высокая производительность, опять-таки вызванная динамической типизацией.
Swift
Краткое описание. В 2014 году специалисты Apple представили миру замену привычному Objective-C. Среди преследуемых целей были заявлены повышенная читаемость кода и устойчивость к ошибкам разработчика. Что получилось по факту, давайте посмотрим.
Плюсы:
-
Для написания приложения требуется меньше кода, хотя бы просто потому, что здесь реализован упрощенный принцип работы с повторяющимися строками и заявлениями.
-
Удобен для чтения. Стандартное достоинство любого современного языка.
-
Больше возможностей по сравнению с Objective-C, в частности возможность управлять памятью.
-
Полноценное взаимодействие с кодом, написанным на Objective-C.
-
Повышенная безопасность. Это выражается и в обработке указателей, и в дотошности компилятора, и в том, что в саму компиляцию можно встроить опциональную переменную nil для обеспечения обратной связи.
Минусы:
-
Из-за молодости языка и не переведённых на Swift кодов OS X и iOS требуется хотя бы минимальное знание Objective-C;
-
Компилятор выдаёт излишние и просто сбивающие с толку ошибки, которые разработчику, пришедшему с других языков покажутся как минимум необычными.
Взглянув на все плюсы и минусы, превосходство Swift сомнений не вызывает. Но что говорит статистика?
Обзор мнений и статистики
GitHub, периодически публикующий статистику по созданным исходникам кода, утверждает, что на сегодня Swift уже на самой вершине.
Покопавшись на портале Quora, ярые сторонники Objective-C смогут поднять себе настроение, прочитав сколько Swift уступает по производительности другим языкам.
Большинство профессиональных разработчиков, отвечая на вопрос “какой язык учить: Swift или Objective-C?”, уверенно отвечает - оба.
Что касается мнения крупных порталов, то здесь мнение единодушно: вряд ли вы найдете хоть одну статью, где победу в сравнении одерживает Objective-C. Исключительно Swift. Именно поэтому мы приглашаем вас на интенсив по основам Swift.
Итог
Некоторые преимущества есть у языка Objective-C, да и опытные разработчики склонны идеализировать его. Но от тотального яблочного господства Swift отделяет время и кропотливая работа создателей над недостатками. Ведь, довольно логично, что язык, явившийся миру всего пару лет назад должен пройти непростую стадию народной критики и доработки, прежде чем взойти на престол. А Objective-C постепенно уйдёт в историю, оставив о себе лишь добрую память.