Перейти к содержимому

Что пишут на котлине

  • автор:

Kotlin

На вопросы о Kotlin отвечали только те, кто выбрал его в качестве одного из трех основных языков программирования.

Для каких платформ вы компилируете Kotlin?

Большинство пользователей Kotlin по-прежнему разрабатывают приложения для Android и JVM. Kotlin также компилируется в JavaScript и в исполняемый код, но относительно мало разработчиков выбирают эти платформы.

Kotlin — универсальный язык. Его можно использовать для создания мобильных, серверных, десктопных и веб-приложений, а также для разработки встраиваемых систем. Благодаря механизмам совместного использования кода можно легко создавать кросс-платформенные библиотеки и приложения.

Под какие версии JDK вы компилируете Kotlin?

Доля JDK 11 за год увеличилась почти вдвое, но большинство пользователей Kotlin по-прежнему разрабатывают под JDK 8.

Под какую версию Android вы разрабатываете приложения на Kotlin?

Старые версии Android теряют популярность медленно, за исключением KitKat и Jelly Bean, которые, наконец, устарели: их доли за последний год сократились более чем вдвое.

Какие типы приложений вы разрабатываете на Kotlin?

Здесь в лидерах те же приложения, что и в прошлом году. Однако есть одно важное изменение: Kotlin стали активнее использовать для анализа данных. Вот несколько уроков по обработке данных с помощью Kotlin.

Топ-15 Kotlin-библиотек

Мы объединили ответы на вопросы «Какие Kotlin-библиотеки и фреймворки JetBrains вы используете?» и «Какие еще Kotlin-библиотеки и фреймворки вы используете?»

Kotlin: универсальный язык программирования

Что это такое? Kotlin – язык программирования, совместимый с Java, но в отличие от него является более безопасным, универсальным, простым. Используется для разработки на Android серверных и веб-приложений, кроссплатформенных приложений, работы с большими данными.

Как? Чтобы начать изучать Kotlin, нужно, в первую очередь, познакомиться с базовыми принципами языка на официальном сайте разработчиков. Далее следует прочитать профильную литературу, установить среду программирования на компьютер или ноутбук. А потом дело за малым – пробовать программировать.

  1. Описание языка программирования Kotlin
  2. Kotlin как основный язык приложений Android
  3. Преимущества и недостатки языка программирования Kotlin
  4. Задачи, которые можно решать с помощью Kotlin
  5. Первые шаги по изучению Kotlin

Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.
Бесплатно от Geekbrains

Описание языка программирования Kotlin

Kotlin — язык программирования от компании JetBrains, существующий совместно с Java Virtual Machine (JVM). Когда его создавали, то не думали, что он станет достоянием общественности — Котлин разрабатывали для внутренних проектов. Но в 2011 году этот язык представили публике и открыли исходный код. А в споре первоочередности открытия Kotlin или Swift однозначно побеждает первый.

Это статически типизированный, ориентированный на объект язык программирования. Kotlin отличают прагматичность и гибкость. Этот язык пользуется успехом как у опытных программистов, так и у новичков —структура достаточно понятна. Также стоит отметить выразительность и краткость Kotlin.

Kotlin активно развивается и, в отличие от своего предшественника Java, —безопаснее. Семантика языка заключается в принципах, которые препятствуют ряду очень распространенных ошибок, что обычно происходит при выполнении программы. Например, Котлин обеспечивает механизм безопасности Null благодаря поддержке Nullable Modes и проверке при распаковке опциональных значений.

Kotlin полностью совместим с Java. Можно легко использовать язык как существующую библиотеку, написанную под JVM, и адаптировать с приложением, написанным на Java. Также IDE Intelij Idea и Android Studio поддерживают автоматическую конвертацию Java-кода в Kotlin.

Узнай, какие ИТ — профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов
Исполнительный директор Geekbrains

Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.

Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains

Павел Симонов
Исполнительный директор Geekbrains

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

Получить подборку бесплатно
Уже скачали 23678

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

Kotlin как основный язык приложений Android

В 2017 году на Google I/O анонсировали поддержку языка Котлин для разработки приложений под Android с помощью IDE Android Studio. Спустя 2 года, на Google I/O 2019, объявили его приоритетным для разработки Android-приложений (Kotlin-First), и рекомендовали начинать новые проекты уже на Котлин: «Меньше кода для вас, меньше кода писать, проще тестировать и поддерживать». Также Kotlin-First означает приоритетность выпуска новых API и библиотек (Jetpack API) именно на данном языке.

По статистике Google (I/O 2021), Котлин сейчас и самый популярный для разработки. Причем не только приложений под Android, но и различных библиотек и решений, в том числе серверных и кросс-платформенных. 1 000 топовых (по установкам) приложений из Google Play содержат 80 % кода на Kotlin. 60 % всех Android-разработчиков пишут код именно на Котлин.

Больше 70 приложений самой компании Google написаны на Kotlin. Сервисы Maps, Places, Firebase и другие давно используют этот язык. Также Гугл отмечают что, благодаря их совместной работе с JetBrains над компилятором, разработка на Kotlin становится быстрее и производительнее, чем на Java.

Итак, какие же расширения (KTX) и библиотеки Котлин облегчают и улучшают разработку библиотек и приложений:

    Kotlin Symbol Processing (KSP), мощный и в то же время простой API, который напрямую анализирует код, написанный на Котлин, и способен работать в 2 раза быстрее с некоторыми библиотеками, например, Room. Также он поддерживается кросс-платформенно.

Читайте также

Преимущества и недостатки языка программирования Kotlin

Язык чаще применяют для Android-разработки. Но он действует везде, где работает Java. Преимущества программирования на Kotlin:

  • Совместимость с Котлин используют в проектах, уже реализованных на Джава. На нём создают программы с нуля до релиза как моно, так и совместно с Java.

Для вас подарок! В свободном доступе до 05.11 —>
Скачайте ТОП-10
бесплатных нейросетей
для программирования
Помогут писать код быстрее на 25%
Чтобы получить подарок, заполните информацию в открывшемся окне

  • Чистота. В Котлин нет лишних функций, избыточных модулей, он компактен и лаконичен. По сравнению с другими языками, код в Kotlin короче на 40 % — это снижает количество ошибок.
  • Безопасность. На этапе компиляции предусмотрена автоматическая проверка кода. В Котлин есть функция Null Safety, которая помогает избежать ошибок неопределённости — самых распространённых и очень трудно выявляемых.
  • Простота синтаксиса. Этот язык задумывался, в том числе, как лёгкий для изучения. Авторы уверяют, что перейти с любого другого на Котлин можно за неделю. Новички осваивают Kotlin быстрее, чем другие языки.

Недостатки программирования на Kotlin:

  • Низкая скорость компиляции. В среднем компиляция на Котлин дольше, чем на Джава, на 30–40 %. Это связано с тем, что она в виртуальной машине JVM предназначена для Java, поэтому с родным языком она работает быстрее.
  • Мало дополнений. В силу молодости языка у него намного меньше библиотек и фреймворков, чем у Джава. Но это вопрос времени, команда разработки Котлин продолжает работать над продуктом и новые возможности не за горами.
  • Малочисленное сообщество. Официальный релиз языка состоялся в 2017 году, и пока разработчики при обнаружении багов вынуждены обращаться в техподдержку JetBrains, добавлять свою проблему в очередь и ждать её решения.

Тем не менее, нерешаемые на Котлин задачи, успешно реализуют на Джава.

Задачи, которые можно решать с помощью Kotlin

Потенциально Котлин можно использовать везде, где работает Java — а это и бэкенд, и веб, и десктоп, и куча других задач. Как говорит Андрей Бреслав, его создатель, «Kotlin — это язык для всех платформ». И в этом большая доля правды. Тем не менее, у каждого языка есть своя ниша — та сфера, где его используют больше всего программистов. У Kotlin пока их две — это серверная и мобильная разработки. Хотя его всё чаще можно встретить и в других областях — например, в науке и Data Science.

Дарим скидку от 60%
на обучение «Инженер-программист» до 05 ноября
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей

Давайте рассмотрим все сферы применения, помимо разработки приложений для Андроид:

Серверные приложения

Благодаря совместимости с JVM, Kotlin можно запустить на любых серверах, где работает Java. Поэтому его часто используют для создания бэкенда — той части систем, которая выполняется на сервере и не видна обычному пользователю. Например, на Kotlin уже работают облачные сервисы Jira и некоторые продукты Adobe.

Эта ниша — одна из приоритетных для команды Котлин. И, несмотря на популярность Kotlin в мобильной разработке, DevRel-команды JetBrains говорят о своём языке исключительно в контексте серверной разработки, вообще не упоминая мобилку.

Веб-приложения (фронтенд)

Помимо бэкенда, есть ещё фронтенд — фасадная сторона интернета. Это разные кнопки, выпадающие меню и окошки, с которыми взаимодействуют пользователи. Почти весь фронтенд пишется на одном языке — JavaScript. А Kotlin как раз умеет компилироваться в JavaScript — и такую его версию можно использовать для создания фронтенда. То есть на нём вполне реально написать и логику, и интерфейс — веб-приложение целиком.

Кросс-платформенные мобильные приложения

Допустим, нам нужно написать мобильное приложение для аренды самокатов. Оно должно одинаково хорошо работать и на айфонах, и на смартфонах под управлением Android.

В таком случае нам может помочь кросс-платформенная разработка — это когда мы пишем код один раз, а потом адаптируем под несколько систем. В Kotlin есть технология, которая позволяет так делать, — называется Multiplatform. Её используют уже довольно много компаний — например, тот же Яндекс.

Наука и большие данные

Если вы работали с дата-сайенс, то наверняка знаете про Jupyter Notebook. Это среда разработки, которая может исполнять код по кусочкам и мгновенно давать результат. Её часто используют в машинном обучении, статистике и визуализации данных. Раньше в Jupyter писали только на Python, Ruby и R, но теперь можно и на Kotlin.

Достаточно подключить пару библиотек, и можно делать свою Siri или Алису. А ещё Kotlin активно осваивают учёные — например, физики и математики. Сейчас достаточно быстро развивается специальная библиотека KMath, которая приносит в Котлин продвинутую математику и обеспечивает интеграцию с тем же TensorFlow.

Первые шаги по изучению Kotlin

Перед тем как приступить к изучению языка, изучите его официальный сайт: https://kotlinlang.ru. Здесь вы найдёте техническую документацию, инструкции, библиотеки и ответы на часто задаваемые вопросы.

Только до 2.11
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:

ТОП-100 площадок для поиска работы от GeekBrains

20 профессий 2023 года, с доходом от 150 000 рублей

Чек-лист «Как успешно пройти собеседование»

Чтобы зарегистрироваться на бесплатный интенсив и получить в подарок подборку файлов от GeekBrains, заполните информацию в открывшемся окне

Мы подготовили для вас пошаговое руководство, чтобы освоение языка было системным и простым на начальном этапе.

Шаг 1: Введение в теорию

Изучите информацию на вкладках «Введение», «Основы», «Классы и объекты», «Функции и лямбды», «Сопрограммы», «Справочник» на официальном сайте Котлин.

Прочитайте книгу «Kotlin в действии» — она написана создателями этого языка Дмитрием Жемеровым и Светланой Исаковой и поможет научиться пользоваться языком Котлин, начать с ним эффективно работать. В издании вы найдёте необходимую для новичка базу знаний: основы предметно-ориентированных языков, функциональное программирование, совместное использование Kotlin и Java.

Шаг 2: Установите на свой ПК IntelliJ IDEA

IntelliJ IDEA — это интегрированная среда разработки, в которой вы будете кодить. Она бесплатная и поддерживает программирование на Kotlin, Java, Scala, Groovy и систему контроля версий Git. IntelliJ IDEA — это умный редактор кода с автодополнением, анализом в реальном времени и всеми необходимыми разработчику инструментами.

Шаг 3: Пробуйте свои силы в песочнице официального сайта Котлин

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

Шаг 4: Зарегистрируйтесь на сайте GitHub

GitHub — это специализированное хранилище. По сути, это социальная сеть программистов, где вы и ваши коллеги выкладываете проекты с открытым кодом. Любой может принять участие в доработке понравившегося замысла. Здесь также получите помощь и поддержку коллег.

Теперь вы готовы к своему первому проекту на Котлин. Но не забывайте, что основа всякого программирования — это постоянное обучение. В этой сфере изменения и обновления очень часты. Вы должны следить за ними, изучать и применять в своей работе.

Привлекает мир кодирования и создания программ? На курсе программиста с нуля до Junior вы освоите основы, познакомитесь с языками и инструментами разработки, и станете готовы к созданию своих первых проектов в IT-индустрии.

Практическое применение Kotlin в стартапах и энтерпрайзе

Disclaimer: Я не имею никакого отношения к JetBrains, не получаю денег от продвижения Kotlin или от написания данной статьи. Весь материал — это лишь отражение моего личного опыта.

Выбор того или иного языка (и вообще любого инструмента) как правило продиктован как объективными, так и субъективными факторами. В каждом проекте могут быть свои особенности, влияющие на выбор. Я далек от того, чтоб устраивать очередной холивар на тему какой язык круче — языков много и у каждого своя ниша. Однако, на мой взгляд выбор между Kotlin и Java более определенный, поскольку Kotlin покрывает все возможности Java и добавляет много дополнительного функционала и сахара.

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

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

Kotlin против Java

Можно было бы привести список из десятков-сотен преимуществ языковых конструкций в Kotlin против таких же конструкций в Java, но основной выигрыш от применения языка находится гораздо глубже.

На мой взгляд, Java зародилась как мощный ответ прежде всего C++. Поэтому в ней чувствуется сильное его влияние со всеми его недостатками. Проблема в том, что за 25 лет существования Java, она продемонстрировала значительную консервативность по сравнению с другими языками. В то время как множество языков экспериментировали с ключевыми словами типа async , с пунктуацией языка (точки с запятой, скобки и пр.), Oracle хранила исключительную верность «традиционным принципам», что привело лишь к моральному устареванию самого языка.

Печально то, что разрыв лишь нарастает, несмотря на попытки его сократить со стороны Oracle. Например, дата-классы в Kotlin появились в самых ранних версиях, а некий их аналог в Java появился лишь в 14 версии, полагаю, как раз под давлением конкуренции с JetBrains.

Kotlin, напротив, стремился вобрать в себя все самые передовые практики от всех других языков разработки, при этом поддерживая интероперабельность с Java. Поэтому, сравнивая Java и Kotlin, мне приходит на ум аналогия со старым добрым и надежным паровозом с его чугунными поршнями (Java) и автомобилем с его персональной аудиосистемой, противоугонкой, хромированными ручками дверей и прочими «наворотами» (Kotlin).

Если вам в вашем проекте требуется «возить лес в Сибири» вдали от селений и с полным отсутствием бензина, то, вероятно, паровоз вам действительно подойдет лучше. Но большинство проектов все же находятся не в столь экзотических условиях. Поэтому тот факт, что на Kotlin проект получается раза в 2-3 компактнее, более легкочитаемый, более надежный в плане защиты от NullPointerException , должен стать серьезным аргументом. Именно эти особенности и позволяют Kotlin снижать в 2 раза время разработки и количество багов, а в итоге, стоимость создания и владения программным продуктом.

Я лишь вкратце перечислю те преимущества, которые Kotlin предлагает из коробки, но которые с трудом достигаются в традиционном Java.

  1. Множество элементов, сокращающих бойлерплейт: data class, getters&setters — в разы сокращает количество кода.
  2. Более продуманная и юзабельная структура классов: вместо HashMap, например, Map (иммутабельный) и MutableMap (мутабельный) — позволяет с легкостью входить в язык новичкам и концентрироваться на бизнесовой постановке, а не на способах реализации.
  3. Прямо из коробки идут различные защиты, например от null :

var str: String = "" str = null // Здесь будет ошибка компиляции, а не runtime var nullableStr: String? = null // а так можно

Проблемы перехода на Kotlin

При обсуждении проекта с командами, возникают одни и те же вопросы по внедрению Kotlin. Давайте пройдемся по ним.

Где взять Kotlin разработчиков?

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

В любом случае, любой разработчик, знакомый с Java, вполне успешно и быстро переходит на Kotlin (см. следующий вопрос).

Сколько нужно времени для подготовки разработчиков?

Kotlin разрабатывался на базе Java и совместим с ним на 100%. Поэтому для перехода на него не обязательно проходить какие-то специализированные курсы. Начать разрабатывать на Kotlin можно с первого дня. Базовых отличий не так много между языками. Например, if работает и там, и там практически одинаково, дополнительно в Kotlin его можно использовать в виде выражения:

val x: Int = if (a == 1) 2 else 3

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

Однако, надо понимать, что новичок будет пользоваться Котлином в стиле Java, т.е. без использования всех преимуществ языка. Для освоения практики использования Kotlin с его особенностями, безусловно требуется практический опыт. Значительно ускорить вход в язык помогает опытный разработчик, который может отревьюировать код и подсказать лучшие решения, либо практические курсы.

В любом случае, некоторая заминка в связи с переходом на новый язык, полностью покрывается значительным ускорением разработки на Kotlin.

Как быть с легаси кодом?

Kotlin полностью интероперабелен с Java, что позволяет прямо в программе на Kotlin использовать код, написанный в Java. Также в саму Intellij Idea включен плагин, который на лету умеет конвертировать куски кода (либо весь файл) из Java в Kotlin. Надо понимать, что качество автоконвертации не сравнится с работой человека, но тем не менее, инструмент очень полезный.

Также Kotlin позволяет писать код одновременно на Java и Kotlin в одном модуле. Для этого можно настроить сборщик либо на расширения, либо на директории, разнеся их в src/main/java и src/main/kotlin . Тут опять нужно знать о нюансах: код из Java легко подхватывается в коде на Kotlin, но для обратной совместимости приходится прилагать определенные усилия. Например, по умолчанию в Kotlin вместо статических методов используются объекты-компаньоны и для экспорта в Java требуется применить аннотацию @JvmStatic .

Начинающие разработчики на Kotlin бывает совершают ошибку, дублируя библиотеку для Java и для Kotlin. Поддерживать две версии библиотеки будет неэффективно, поэтому рекомендую либо просто продолжать ее разработку на Java и просто импортировать в Kotlin, а еще лучше сразу конвертировать ее в Kotlin и обеспечить совместимость с легаси семантикой.

У нас стартап, зачем нам Kotlin?

Довольно часто для стартапов применяется даже не Java, а такие языки как PHP, Python, JavaScript (NodeJS). В каких-то случаях это может быть оправдано, но надо иметь в виду следующее. Перечисленные языки могут себя неплохо показать для прототипирования, но из-за отсутствия строгой типизации, они меньше подходят для долгосрочных, крупных проектов. Просто потому, что строгая типизация позволяет избегать множества ошибок на этапе даже не компиляции, а на этапе написания кода в IDE. Ошибки, допущенные из-за отсутствия проверки типов, выливаются в простои в боевом режиме, приводя к убыткам. Поэтому вам нужно тщательно взвесить все выгоды от быстрой разработки на языках без строгой типизации и убытки от их применения в продуктовом режиме.

Довольно часто бытует мнение, что первую продажу можно сделать на каком-нибудь PHP, а затем мигрировать на Java/Kotlin. Мой опыт говорит, что сделать первую продажу можно вообще без кода хоть на PHP, хоть на Kotlin. Но времени для перехода с одного языка на другой на практике никто не даст при развитии стартапа. Каждый день будут задачи, которые нужно сделать вчера.

Безусловно, на любом языке можно написать плохо. Но PHP, Python, JS дают гораздо больше возможностей для низкокачественного кода, чем Java/Scala/Kotlin. И чем хуже изначально написанный код, тем хуже он поддерживается дальше, приводя к еще большим костылям. Я сталкивался со стартапом, который стартовал нормально, но за 7 лет своей работы получил совершенно нечитаемый и неподдерживаемый код на Python. Ситуация оказалась патовой: его нельзя было просто так закрыть из-за наличия обязательств, и нельзя было продолжить развивать из-за необходимости полностью переписать проект, на что бюджета уже не было.

Поэтому моя рекомендация для долгосрочных и потенциально крупных проектов — использовать Kotlin. Ускорение выхода на рынок можно реализовать не снижением качества разработки, а другими подходами типа правильного выбора MVP, гибкой архитектурой и сокращением расходов на техподдержку при качественно написанном коде.

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

Как я уже отмечал выше, применение Kotlin в реальных проектах может существенно отличаться от применения Java, благодаря тем дополнительным средствам, которые он предоставляет. Особенности эти, в итоге влияют в том числе и на общую архитектуру проекта. Поскольку особенностей много, я лишь для примера приведу несколько.

Ненулевые переменные и свойства класса

Kotlin предоставляет мощнейший элемент защиты от null . Приводит это к тому, что работать с nullable переменными просто неудобно — их ведь нужно всегда проверять на null . Хоть такая проверка выполняется очень просто в Kotlin, хочется избегать ее чрезмерного использования. Достигается это тем, что при создании большинства классов я определяю пустой элемент:

data class SomeClass( var x: String = "", var y: Int = -1 ) < companion object < val NONE = SomeClass() >>

, который и используется при инициализации в качестве значения по умолчанию вместо null .

Существует множество случаев, когда нам просто необходимо делать свойства нулевыми. Например, в API или в хранилище мы не можем быть уверенными, что нам придет всегда non-nullable значение. Как раз здесь и играет свою роль DDD (domain driven design). Мы для отправки данных или для сохранения делаем отдельные DTO-классы, которые содержат в себе нулевые поля, а в рабочие модели мы их мапим со всеми проверками:

data class StorableObject( var id: String? = null, var data: String? = null ) < // Место размещения мапера зависит от задачи constructor(wm: WorkModel): this( < it != -1 >?.toString(), data = wm.data.takeIf < it.isNotBlank() >) // Место размещения мапера зависит от задачи fun toWorkModel(): WorkModel = WorkModel( ?: -1, data = data ?: "" ) >

Таким образом, простое использование Null-safety в Kotlin стимулирует нас применять практику DDD, что в свою очередь делает наш код более гибким, защищенным от изменений API или внутренней логики.

Kotlin Multiplatform (KMP)

KMP — это довольно мощное средство и его стоит использовать в проектах при интеграции с JS и Native компонентами системы. На практике, KMP вполне неплохо себя показывает при описании API для потребления Single Page Application (SPI) типа React, Angular, Vue, а также мобильными приложениями под Android и iOS.

Но лично я предпочитаю разрабатывать фронтенд на Dart/Flutter, а с этим фреймворком простой интеграции через KMP пока не существует. Интеграцию между бэкендом на Kotlin и фронтендом на Dart можно реализовать с использованием OpenAPI, AsyncAPI, gRPC и других кодогенераторов.

На бэкенде KMP может быть применен, например, при использовании Serverless архитектуры, в том числе Google Cloud Functions, Yandex Cloud Functions, AWS Lambda и др. аналогов. Особенность бессерверных архитектур в том, что в них важна скорость старта приложения. Поэтому код на Python или NodeJs может показывать гораздо более низкое время отклика, чем на JVM. Использование KMP позволяет компилировать код в JavaScript или в Native executable, что вполне решает проблему быстрого старта.

Недостатки Kotlin

Наверное есть какие-то недостатки более бытового характера. Но для меня самым существенным недостатком является отсутствие фронтенд-фреймворка для Kotlin. Ktor, при всех его преимуществах, не достиг уровня фронтенд-фреймворка. Я как-то видел набор в Jetbrains фронт-разработчиков и думаю, что вскорости такой фреймворк будет анонсирован. Однако, на сегодняшний день на фронтенде я предпочитаю использовать Google Flutter, который использует язык Dart. Возможно для кого-то окажется более приемлемым переход на Dart как на фронтенде, так и на бэкенде вместо Котлина.

Заключение

В заключении хочу кратко суммировать основные утверждения настоящей статьи.

  1. Kotlin — это действительно мощный инструмент, который превосходит классическую Java по многим параметрам. Поэтому я ожидаю, что в ближайшие 5 -10 лет произойдет существенное вытеснение им последней с рынка.
  2. Перевод реальных проектов на Kotlin не создает непреодолимых препятствий, наоборот, его уместно осуществлять на легаси-проектах, так и новых; как в корпорациях, так и в стартапах.
  3. При том, что переход на Kotlin довольно прост, недостаточный опыт чреват Java-стилем, что неэффективно. Для более полноценного использования этого инструмента, рекомендую получение опыта, привлечение экспертов, либо прохождение практических курсов разработчиками.
  4. Использование Kotlin может заметно влиять на архитектуру проекта, делать ее более стройной, а также позволяет применять техники, которые неприменимы в Java, в частности Kotlin Multiplatform.
  5. Пока не существует достаточно мощного фронтенд-фреймворка на Kotlin. Кто-то может предпочесть Котлину Dart, который можно использовать одновременно на всех платформах как на фронтенде, так и на бэкенде.
  • kotlin
  • управление проектами
  • выбор языка программирования
  • стартапы
  • Программирование
  • Kotlin

Что такое Kotlin

Kotlin — это статистически типизированный язык программирования, который разработала JetBrains и быстро набрал популярность среди разработчиков. Kotlin совместим с Java, имеет выразительный и лаконичный синтаксис, обеспечивает безопасность от NullPointerExceptions и поддержку сопрограмм.

Интересный факт: создатель языка — Андрей Бреслав, питерский выпускник Университета ИТМО.

Спектр применения

С помощью этого языка программирования создаются инструменты разработчика, приложения, веб-сайты и проводится научные вычисления. Он поддерживает мультиплатформенную разработку — можно написать код один раз и запускать его на Android, iOS, Windows, Linux, MacOS и в браузере.

Какие приложения делают на Kotlin?

  1. Веб-приложения. В этом случае Kotlin используется с такими фреймворками, как Spring, Ktor и Vert.x.
  2. Серверные приложения. Фреймворк Spring Boot позволяет создавать на Kotlin веб-приложения, RESTful API, микросервисы и приложения для обеспечения безопасности.
  3. Консольные приложения. Для выполнения обработки данных, автоматизации задач, выполнения скриптов и взаимодействия с пользователем.
  4. Мобильные приложения. Google в 2017 году добавила Kotlin в качестве официального языка программирования для Android-приложений. На этом языке программирования пишут не только для Android, но и для iOS и Windows Phone.

Самое распространенное применение Kotlin — это написание приложений для Android. 60% Android разработчиков выбирают именно этот язык.

Синтаксис

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

  1. Для объявления переменных используются ключевые слова `val` (для неизменяемых переменных) и `var` (для изменяемых переменных)
  2. Для объявления функций используется ключевое слово `fun`, а параметры и возвращаемый тип указываются после имени функции через двоеточие
  3. Для создания классов применяется ключевое слово `class`, а для наследования — двоеточие после имени класса
  4. Для создания объектов применяется ключевое слово `object`, а для создания анонимных объектов — `object :`.

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

fun main() < val name = "Иван" // неизменяемая переменная var age = 28 // изменяемая переменная println("Привет, $name!") // вывод строки с шаблоном age++ // увеличение значения переменной println("Вам исполнилось $age лет.") // вывод строки с шаблоном val numbers = listOf(1, 2, 3) // создание списка for (number in numbers) < // цикл for println(number) // вывод элемента списка >val person = Person("Иван", 28) // создание объекта класса Person person.sayHello() // вызов метода объекта > class Person(val name: String, var age: Int) < // объявление класса с конструктором fun sayHello() < // объявление функции внутри класса println("Привет, меня зовут $name и мне $age лет.") >>

Главная точка входа

В Kotlin главная точка входа в программу — это функция main, она объявляется в любом файле или классе. Функция main принимает один параметр типа Array, который содержит аргументы командной строки. Функция main объявляется с помощью ключевого слова fun или с помощью аннотации @JvmStatic, если она находится внутри объекта или компаньон-объекта. Примеры:

  1. Функция main вне класса
fun main(args: Array)

2. Функция main внутри объекта с аннотацией @JvmStatic

object MyApp < @JvmStatic fun main(args: Array) < println("Хорошего дня!") >>

3. Функция main внутри компаньон-объекта с аннотацией @JvmStatic

class MyApp < companion object < @JvmStatic fun main(args: Array) < println("Хорошего дня!") >> >

Преимущества

Kotlin имеет много преимуществ перед другими языками программирования, вот некоторые из них:

Мы меняем цены на курсы

  1. Совместимость с Java. Kotlin можно легко интегрировать с кодом на Java и использовать библиотеки и фреймворки Java. Он также поддерживает вызов кода на Java из Kotlin и наоборот.
  2. Выразительность и лаконичность. Kotlin позволяет писать код кратко и понятно, избегая лишних символов и повторений. Он поддерживает современные возможности языка: лямбда-выражения, расширения функций, деструктуризацию, операторы in, is, when.
  3. Безопасность от NullPointerExceptions. Система типов данного языка программирования различает nullable и non-null типы и не допускает присваивания null к non-null переменным. Это помогает избежать одной из самых частых ошибок в Java — NullPointerExceptions. Kotlin также предоставляет операторы для работы с nullable значениями, такие как . . !! и ?.let.
  4. Поддержка сопрограмм. Язык поддерживает структурированную конкурентность с помощью сопрограмм — легковесных потоков исполнения, которые позволяют писать асинхронный код в императивном стиле. Сопрограммы упрощают работу с задачами, которые требуют ожидания результата, такими как сетевые запросы или обновления базы данных. Сопрограммы также поддерживают потоки данных с помощью Flow — асинхронных последовательностей элементов.

Мы меняем цены на курсы

Рейтинг языков программирования 2023

24 окт. 2023 г.

Рейтинг языков программирования 2023

Интернет вещей: как устройства взаимодействуют и упрощают нашу жизнь

24 окт. 2023 г.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *