Вышло техническое превью Kotlin/Native

Из-за JBreak мы припозднились с этой новостью, но лучше поздно, чем пропустить. Появилось техническое превью проекта Kotlin/Native: теперь на Kotlin технически возможно писать программы, не требующие для исполнения ни JVM, ни другой виртуальной машины.

В недавнем интервью Андрей Бреслав как раз рассказывал нам о том, что Native — новый шаг Kotlin за пределы ниши «JVM-язык»: вместе с недавним релизом компиляции в JavaScript он означает, что на языке станет можно писать более-менее всё. И в JetBrains верят, что такая «фуллстэковость» играет на руку, позволяя переиспользовать и наработанный опыт, и часть кода.

В отличие от JS-поддержки, которая уже дошла до релизного состояния, в Native всё пока что гораздо более сыро (работа над ним началась только осенью). За оптимизацию производительности ещё не брались, стандартная библиотека далека от завершения, а про управление памятью авторы признают, что пока неизвестно даже, как оно вообще будет выглядеть в конечном счёте. Пока что используется временное решение, вызывающее ехидные замечания о том, что у использующих LLVM проектов всё сложно с GC:

В данный момент Kotlin/Native поддерживает четыре платформы — macOS, iOS, Linux и Raspberry Pi. Судя по заднему фону официальной картинки, хотя Бреслав и говорил «у нас нет ни возможности, ни цели конкурировать со Swift на iOS», эта платформа интересует компанию в первую очередь. Логично, если учесть сильные позиции Kotlin на Android: хотя большинство iOS-разработчиков привязано к Swift, есть и немало желающих использовать один язык для обеих систем.

Уже послезавтра Андрей выступит на JPoint с докладом о будущем Kotlin — там без слов о Native наверняка тоже не обойдётся.

  1. Андрей Бреслав
    Возглавляет разработку языка Kotlin в компании JetBrains. Раньше преподавал в университете и в старшей школе; теперь вместо этого выступает на различных конференциях, рассказывая о своём проекте и о фундаментальных принципах, лежащих в основе профессии разработчика ПО. @abreslav
Tags from the story
,