Программирование  •  14 апреля  2023  •  5 мин чтения

О чём «говорят» приложения: 5 популярных языков для мобильной разработки

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

1. Java

Java — это популярный язык программирования приложений, который применяют для многих задач, в том числе для мобильной разработки. Особенность Java в том, что написанный на нём код запускается в специальной среде — виртуальной машине Java, JVM. Эта среда либо уже установлена на устройстве, либо встраивается в приложение. Она позволяет запускать один и тот же код в разных операционных системах.

Плюсы

Универсальность. На Java можно написать код приложения для любой операционной системы.
Много библиотек и фреймворков. Язык существует давно, и для него есть множество инструментов, облегчающих разработку.
Простое развёртывание. Виртуальная машина позволяет быстрее делать приложение готовым к использованию.
Большое сообщество. На Java уже давно пишет множество людей, поэтому по этому языку много информации в открытом доступе.
Объектно-ориентированный подход. Это способ программирования, который позволяет создавать сложные разветвленные программы со множеством сущностей, эффективно связывая их друг с другом. Для большинства коммерческих мобильных приложений это необходимо

Минусы

Нет прямой поддержки iOS. Теоретически можно придумать сложную цепочку, позволяющую запустить код на Java на iOS, но на практике так никто не делает.
Сложность для старта. В Java много нюансов и тяжеловесных конструкций, которые делают его непростым для освоения с нуля.
Высокое потребление ресурсов. Из-за необходимости использовать виртуальную машину приложения на Java более тяжеловесные. Это критично для мобильных устройств, где ресурсы ограничены.
Устаревшие инструменты для GUI — графического интерфейса пользователей. Часто они неудобны для разработки под современные мобильные устройства.
Проблемы с безопасностью. По умолчанию в Java достаточно много лазеек, которые при разработке нужно тщательно закрывать, чтобы ими не воспользовались злоумышленники.

Сейчас существуют другие, более современные мобильные языки программирования. Но Java всё ещё пользуется популярностью, особенно в крупных коммерческих и сложных продуктах. Кроме того, написанные ранее приложения на Java нуждаются в поддержке, поэтому разработчику полезно будет знать этот язык, а не игнорировать его в пользу более современных.
Пример кода на Java
Так на Java выглядит код функции, суммирующей два значения и выводящей результат:
  

public String sum(int num1, int num2) {
    int result = num1 + num2;
    return "The sum is " + result;
}

Ниже будут примеры такого же кода на других языках.

2. Kotlin

В 2010 начали разрабатывать новый язык программирования на базе Java — Kotlin. В 2016 он увидел свет, и буквально спустя два года Google назвал его приоритетным языком программирования для разработки мобильных приложений. Kotlin взял многое от Java и остался с ним полностью совместим, но при этом стал гораздо легче, безопаснее, производительнее.

Плюсы

Лаконичный код. Для одних и тех же функций Kotlin требует намного меньше кода, чем Java.
Полная совместимость с Java. Существующий код и библиотеки Java можно использовать при написании приложений на Kotlin. Это позволяет эффективнее дорабатывать уже написанный код.
Поддержка функционального программирования. В дополнение к объектно-ориентированному Kotlin поддерживает функциональный подход, который позволяет эффективнее работать с потоками данных.
Наличие инструмента для мультиплатформенной разработки. Инструмент Kotlin Multiplatform позволяет разрабатывать как для iOS, так и для Android, совместим с языком Swift.
Простота освоения. У Kotlin простой синтаксис, который легко изучить после Java.

Минусы

Неполная поддержка iOS. Несмотря на наличие Kotlin Multiplatform, многие функции Kotlin не поддерживаются при разработке для iOS.
Медленная компиляция. В некоторых случаях приложения на Kotlin собираются гораздо медленнее, чем на Java.

Сейчас Kotlin считается стандартом для разработки под Android. Недостатков у него мало, однако некоторые разработчики считают их критичными, поэтому всё ещё предпочитают использовать Java.

Пример кода на Kotlin
  

fun sum(num1: Int, num2: Int) = "The sum is ${num1 + num2}"

3. Objective C

Objective-C — это язык, которые разработали в 1980-е годы специально для написания программ для устройств Apple. Когда появилась iOS, именно Objective-C стали использовать как язык программирования для создания приложений для неё. Благодаря такой тесной интеграции Objective-C сразу имел инструменты для тесного взаимодействия с операционной системой iOS и «железом» устройств от Apple.

Плюсы

Доступ к бесплатным инструментам и библиотекам iOS делает разработку максимальной удобной.
Много приложений, уже написанных на этом языке. Их нужно поддерживать, дорабатывать или переписывать на Swift, а для этого понадобятся знания Objective-C.
Обширное сообщество. Язык существует давно, на нём пишут сотни тысяч программистов, поэтому в сети есть ответы на большинство вопросов, связанных с этим языком.
Хорошая база. Objective-C как более низкоуровневый язык помогает разобраться, как именно код взаимодействует с операционной системой.

Минусы

Подходит только для iOS. Использовать его для разработки на Android нельзя.
Возраст. Язык создавали ещё в прошлом веке, и он уже не учитывает многие современные возможности мобильных устройств, а также проигрывает более новым языкам в производительности.
Сложность входа. Синтаксис языка и его конструкции достаточно сложные для освоения новичком, особенно если сравнивать с другими, более современными языками.

Сейчас основной язык программирования для iOS — не Objective-C, а более современный Swift, который признан Apple как стандарт разработки. Для поддержки старых приложений Objective-C иногда нужен. Его знание позволит лучше понимать общие принципы работы кода и потом применять их при разработке на других языках.
Пример кода на Objective-C
  

- (NSString *)sum:(int)num1 secondParameter:(int)num2 {
    int result = num1 + num2;
    return [NSString stringWithFormat:@"The sum is %d", result];
}

4. Swift

С развитием технологий в Apple поняли, что Objective-C уже не удовлетворяет все их требования, поэтому в 2014 году изобрели новый собственный язык программирования для мобильной разработки на базе Objective-C — Swift.

Плюсы

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

Минусы

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

Пример кода на Swift
  
func sum(num1: Int, num2: Int) -> String {
    let result = num1 + num2
    return "The sum is \(result)"

5. JavaScript

JavaScript — один из самых популярных языков программирования. Чаще всего его используют в веб-разработке, однако благодаря фреймворкам вроде React Native он применим и в мобильной — особенно в создании интерфейсов приложений.

Плюсы

Огромное сообщество. Язык очень популярен, поэтому начинающим легко найти ответы на любые вопросы. Кроме того, у языка открытый исходный код — разработчики сами создают инструменты и библиотеки для разных целей.
Широкое применение. JavaScript используют не только в мобильной разработке — при желании легче будет сменить сферу работы.
Кроссплатформенность. Фреймворки позволяют писать на JavaScript приложения как для iOS, так и для Android. Тот же код можно использования для написания веб-версий сервисов.

Минусы

Чуть меньшая совместимость. В отличие от Kotlin и Swift, JavaScript не создан специально для Android и iOS. Из-за этого ему иногда не хватает производительности и поддержки специфичных функций.
Проблемы с безопасностью. Код на JavaScript не безопасен по умолчанию. В проектах, где безопасность критична, например, банковских приложениях, его обычно не применяют.
Сложности с интерфейсами iOS. Swift позволяет разрабатывать интерфейсы для этой платформы гораздо быстрее, эффективнее и лучше, а с JavaScript придётся повозиться.

JavaScript часто применяют в не слишком больших и сложных проектах, чтобы удешевить разработку — создать приложение сразу и для Android, и для iOS. Однако если требования к разработке высокие, лучше подойдут другие языки. Бывают и исключения, например, Facebook* и Twitter написаны почти целиком на JavaScript — как их веб-версии, так и мобильные приложения.

Пример кода на JavaScript
  
function sum(num1, num2) {
    var result = num1 + num2;
    return "The sum is " + result;
}

Советы экспертов

Анастасия Кудашева

Если вы начинаете свой путь в iOS-разработке, то рекомендую изучать Swift, потому что сейчас это основной язык для iOS-разработки. Велика вероятность совсем не встретить код на Objective-C или встретить его в каком-то устаревшем функционале.

Второй важный выбор, с которым сталкиваются начинающие iOS-разработчики, — это выбор между библиотеками UIKit и SwiftUI. Я бы порекомендовала продолжить изучение UIKit после изучения синтаксиса Swift.

Сергей Сорокин
Врываясь в Android-разработку, наберитесь терпения и в первую очередь уделите больше внимания основам языка программирования. Да, сегодня все пишут приложения на Kotlin, но не забывайте, что выполнение написанного кода происходит в среде Java. Понимание того, как именно устроен этот процесс, поможет быстрее находить оптимальные решения задач.

* сервис предоставляется организацией, признанной экстремистской на территории РФ

Статью подготовили:
Анастасия Кудашева
Яндекс Практикум
Наставница на курсе
«iOS-разработчик», iOS‑разработчица,
Сергей Сорокин
Яндекс Практикум
Автор курса мобильной разработке (Android)
Яндекс Практикум
Редактор
Анастасия Павлова
Яндекс Практикум
Иллюстратор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться
Идеи новогодних подарков от нейросети + промокоды на курсы Практикума и акции от партнеров
Tue Oct 08 2024 18:33:27 GMT+0300 (Moscow Standard Time)