Представлен (https://blog.jetbrains.com/kotlin/2018/02/kotlinnative-v0-6-... выпуск инструментария Kotlin/Native 0.6 (https://github.com/JetBrains/kotlin-native), предоставляющего возможность компиляции проектов на языке Kotlin в самодостаточные исполняемые файлы, для выполнения которых не требуется виртуальная машина. Kotlin/Native реализован в виде бэкенда на базе LLVM, интегрируемого со штатным компилятором Kotlin, а также сопутствующие реализации runtime и генератора кода. Kotlin/Native может применяться для сборки приложений для платформ, в которых применение виртуальной машины неоправдано или невозможно, например, для встраиваемых систем.
В новом выпуске добавлена возможность использования Kotlin/Native в многоплатформенных проектах, например, теперь можно применять один сборочный сценарий Gradle для формирования сборок в виде байткода JVM, машинного кода и JavaScript. Добавлена поддержка Kotlin 1.2.20, Java 9 и Gradle 4.5, представлена возможность сборки для микроконтроллеров STM32, обеспечена совместимость с классами Objective-C, улучшен API для передачи объектов между потоками и обработчиками, добавлена возможность экспорта первичных функций на Си, реализована возможность сборки в псевдокод WebAssembly.
Напомним, что разработчики языка Kotlin попытались сохранить максимальную совместимость и похожесть на Java, при этом избавившись от имеющихся в Java ограничений и недостатков. Язык обеспечивает неплохую переносимость с Java - из программ на Java можно вызывать компоненты, написанные на Kotlin, и, наоборот, из программ Kotlin можно вызывать Java-классы. Среди отличий Kotlin выделяется ориентация на обеспечение более высокой безопасности за счет реализации статических проверок, отсутствия raw-типов, полного сохранения информации о типах в процессе выполнения и реализации массивов в виде инварианта (http://confluence.jetbrains.net/display/Kotlin/Basic+types#B.... Язык обеспечивает поддержку функций высшего порядка (http://ru.wikipedia.org/wiki/%D0%A4%D1%8... вывода типов (http://ru.wikipedia.org/wiki/%D0%92%D1%8... значений, уточняющих "примесей (http://ru.wikipedia.org/wiki/%D0%9F%D1%8... (mixin) и делегирования (http://ru.wikipedia.org/wiki/%D0%94%D0%B....
URL: https://blog.jetbrains.com/kotlin/2018/02/kotlinnative-v0-6-.../
Новость: http://www.opennet.me/opennews/art.shtml?num=48082
Так держать, JetBrains!
Какого размера получаются выходные exe файлы?
Да пусть хоть гигабайт, скорость какая?
Гагабайт не прокатит. Не влезет в STM32.
(stq sarcasm t)
Это проблема STM32!
(stq sarcasm nil)
veryFunny :: Bool
В M7 влезет
Чот с самого начала излучения котла, меня не покидает чувство, что jb сделали этого кадавра для облегчения болей от разработки на java. То, что получилось в результате, однако, удобно только тем, кто познал всю боль разработки БОЛЬШИХ проектов на java. Ну или это просто попытка оправдать затраты на разработку перед инвесторами.
>что jb сделали этого кадавра для облегчения болей от разработки на javaЭто написано на официальном сайте в описании языка kotlin, 3 строкой.
>То, что получилось в результате, однако, удобно только тем, ктоработает в jetbrains, очевидно же. Проприетарный язычек, котроллируемый одной компанией не нужен, как бы они не клялись в любви к сообществу.
Так что наш герой едет на помоечку к С#, golang, rust и прочему мусору.
>прочему мусору.Лопнешь ведь, зелёный :)
"Проприетарность" Жабы никак не влияет на её популярность. Равно как и у Котлина. Если язык - достойный, людям всё равно, кто и как его пилит - лишь бы без багов.
а стоит ли с джавы перескакивать, если я джаву не доучил?
ну смотри. Яву все же доучивай - жрать-то тебе наверное хочется. На работе будешь прогать на яве, а дома на котлине, для души (потому что на котлине работы пока что нету короче). Я сейчас прогаю дома на яве (тоже для души), вместе с тем мне приходится дублировать ява-код на тайпскрипте, чтоб в браузере выполнять. А тут смарю - котлин и там и там может выполняться, так что ща допью пивасик и напишу свой первый хелловорлд на котлине.
> Я сейчас прогаю дома на яве (тоже для души), вместе с тем мне приходится дублировать ява-код на тайпскрипте, чтоб в браузере выполнять.Что, мало компиляторов JVM-байткода в JavaScript/WASM?
>> Я сейчас прогаю дома на яве (тоже для души), вместе с тем мне приходится дублировать ява-код на тайпскрипте, чтоб в браузере выполнять.
> Что, мало компиляторов JVM-байткода в JavaScript/WASM?а перечислить ? вроде мало
>>> Я сейчас прогаю дома на яве (тоже для души), вместе с тем мне приходится дублировать ява-код на тайпскрипте, чтоб в браузере выполнять.
>> Что, мало компиляторов JVM-байткода в JavaScript/WASM?
> а перечислить ? вроде малоя бы до кучи и про компилятор JVM-байткода в натив послушал
JCG - но оно уже мёртвое
Excelsior - оно *оно и за баблоУ жабистов всегда выбор такой ... зелёный :)
Что-то я не втыкаю. Где в этих исходниках парсер и лексер котлина? Где перевод котлина во внутреннее представление LLVM?
Короче, как я понял эта поделка работает только в присутствии JDK который исполняет код котлина (на котором написан kotlin-native) который в свою очередь переводит код на kotlin на котором написано приложение в ir представление LLVM. Написать всё на C++ не осилили.
Ну, если так - то его забутстрапить же можно?
Если так считаешь то сделай это. Исследовательскую часть для тебя я уже сделал.
GC то какой? Самое важное
Что-то типа как в питоне.
>для микроконтроллеров STM32а для атмеги 328 будет?
Поглядел синтаксис - обычная java не похоже что сразу скомпилируется
>для выполнения которых не требуется виртуальная машина
>реализован в виде бэкенда на базе LLVM
>LLVM - low level virtual machine
>не требуется виртуальная машинаЯсно.
>>для выполнения которых не требуется виртуальная машина
>>реализован в виде бэкенда на базе LLVM
>>LLVM - low level virtual machine
>>не требуется виртуальная машина
> Ясно.теперь прочитай про фронтенды LLVM
> Ясно.Не позорься.
Чет у меня вопрос, а рынку реально нужен Kotlin? Какие фундаментальные вопросы кроме амбиций JetBrains он решает? Почему их не решает Scala или Groovy? Чем плохи Rust, Go и %что там сейчас на слуху%
Scala - слишком тяжелая для мобильных устройств, а как язык - просто опасная. На ней слишком дорого вести разработку крупных проектов - надо очень внимательно следить за стилем, иначе проект становится не сопровождаемым.Groovy - с одной стороны хорош, но после появления JRuby ниша его подсократилась.
> Чет у меня вопрос, а рынку реально нужен Kotlin?По-хорошему, ему и Жаба не особо нужна, но раз есть целая армия старпёров, ничего кроме жабы не кодящие, то и Котлин там - необходимая, свежая струя.
>> Чет у меня вопрос, а рынку реально нужен Kotlin?
> По-хорошему, ему и Жаба не особо нужна, но раз есть целая армия
> старпёров, ничего кроме жабы не кодящие, то и Котлин там -
> необходимая, свежая струя.Это такой зуд молодости, весь работающий код выкинуть и переписать на чем-то новомодном и экстравагантном. То стиль якобы лучше, то 5 % производительности на бенчмарке, то обещания что компилятор сам исправит все ошибки.
Rust - еще корявее прототипа (сишечки).Go - это аналог бейсик и VisualBasic, только от Гугла. Чтобы миллиард индусов можно было обучить кодить, прямо не вынимая из полевых работ.
Kotlin - развитие Java, с сохранением возоможностей корпоративной платформы и одновременно применением в Embedded.
Kotlin на STM32? Сильно, надо попробовать :)
Ясно. Понятно