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