Kotlin для серверов

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

  • Выразительность: инновационные возможности Kotlin, такие как поддержка типобезопасных строителей и делегированных свойств, помогают создавать мощные и простые в использовании абстракции.
  • Масштабируемость: поддержка корутинов помогает создавать серверные приложения, масштабируемые для большого числа клиентов со скромными требованиями к оборудованию.
  • Совместимость: Kotlin полностью совместим со всеми фреймворками на базе Java, поэтому вы можете использовать свой привычный стек технологий, одновременно пользуясь преимуществами более современного языка.
  • Миграция: Kotlin поддерживает постепенную миграцию больших кодовых баз с Java на Kotlin. Вы можете начать писать новый код на Kotlin, сохраняя при этом старые части вашей системы на Java.
  • Инструментарий: В дополнение к отличной поддержке IDE в целом, Kotlin предлагает инструментарий для конкретной платформы (например, для Spring) в плагине для IntelliJ IDEA Ultimate.
  • Кривая обучения: Для Java разработчика начать работу с Kotlin очень просто. Автоматический конвертер Java в Kotlin, включенный в плагин Kotlin, помогает с первыми шагами. Kotlin Koans поможет вам разобраться в ключевых особенностях языка с помощью интерактивных упражнений.

Фреймворки для серверной разработки на Kotlin

  • Spring использует возможности Kotlin, чтобы предлагать более лаконичные API, начиная с версии 5.0. Онлайн-генератор проектов позволяет быстро сгенерировать новый проект в Kotlin.
  • Vert.x, фреймворк для создания интерактивных веб-приложений на JVM, предлагает специальную поддержку Kotlin, включая полную документацию.
  • Ktor - это фреймворк, созданный JetBrains для создания веб-приложений в Kotlin, использующий корутины для высокой масштабируемости и предлагающий простой в использовании идиоматический API.
  • kotlinx.html - это DSL, который можно использовать для HTML разметки в веб-приложениях. Он служит альтернативой традиционным системам шаблонов, таким как JSP и FreeMarker.
  • Micronaut - это современный фулстек фреймворк на базе JVM созданный для создания модульных, легко тестируемых микросервисов и бессерверных приложений. В него встроены множество полезных функций.
  • http4k - это функциональный инструментарий с небольшими возможностями для HTTP-приложений Kotlin, написанный на чистом Kotlin. Библиотека основана на статье "Your Server as a Function" из Twitter и представляет моделирование как HTTP-серверов, так и клиентов в виде простых функций Kotlin, которые могут быть собраны вместе.
  • Javalin - это очень легкий веб-фреймворк для Kotlin и Java, который поддерживает WebSockets, HTTP2 и асинхронные запросы.
  • Доступные варианты стабильности включают в себя прямой доступ к JDBC, JPA и использование баз данных NoSQL через их Java драйверы. Для JPA плагин компилятора kotlin-jpa адаптирует классы, скомпилированные на Kotlin, к требованиям фреймворка.

Внедрение серверных приложений Kotlin

Приложения Kotlin могут быть развернуты на любом хосте, поддерживающем веб-приложения Java, включая Amazon Web Services, Google Cloud Platform и многое другое.

Чтобы развернуть приложения Kotlin на Heroku, вы можете следовать официальному руководству Heroku.

AWS Labs предлагает пример проекта, демонстрирующего использование Kotlin для написания AWS лямбда-функций.

Google Cloud Platform предлагает серию учебных пособий по развертыванию приложений Kotlin в GCP для Ktor и App Engine, а также для Spring и App engine. Кроме того, существует интерактивная лаборатория кода для развертывания Kotlin Spring приложения.

Продукты, использующие Kotlin на сервере

Corda - это open-source платформа распределенных реестров, которая поддерживается крупными банками и полностью построена Kotlin.

JetBrains Account, система, отвечающая за весь процесс продажи и проверки лицензий в JetBrains, вся на 100% написана на Kotlin и работает с 2015 года без каких-либо серьезных проблем.

Дальнейшие действия