Scala app without JVM

Palych
Уже с Приветом
Posts: 13722
Joined: 16 Jan 2001 10:01

Re: Scala app without JVM

Post by Palych »

Ion Tichy wrote: 30 Dec 2018 02:59 Я правильно понимаю, что если я возьму исходники, скажем, джБосса (джава текст), сконвертирую их в котлин, скомпилю в нейтив код, потом слинкую объектники, то получу нейтив бинарик, смогу его запустить и он будет работать как оригинальный джавный джБосс?
ДжБосс первым делом грузит модули.
Да и любой app server связывает компоненты динамически.
В примере Сабины демонстрируется server less подход, в этом, как я понимаю и есть изюм...
User avatar
Вячеслав Викторович
Уже с Приветом
Posts: 5777
Joined: 13 Feb 2016 18:50
Location: Кемерово

Re: Scala app without JVM

Post by Вячеслав Викторович »

Alexander Troyansky wrote: 30 Dec 2018 18:34
Вячеслав Викторович wrote: 30 Dec 2018 17:54
Ion Tichy wrote: 30 Dec 2018 17:21
Вячеслав Викторович wrote: 30 Dec 2018 16:03
Palych wrote: 30 Dec 2018 06:34 Я бы так сформулировал вопросы:
1. Можно ли скомпилировать JVM byte code в native? (Хоть в котлине, хоть в граале)
2. Как у native code работает garbage collection?
Внятно сформулированный вопрос - уже половина ответа. В котлин нэйтив на оба ответ нет, естественно, т.к. ВМ нет.
Когда в котлинских исходниках вы обращаетесь к методам джава классов, то в рантайме (котлин интерпретер или скомпилированный котлин код) подгружается JVM (.dl/.so) и т.о. джава ВМ есть. И это имеет место быть для любых екзашников которые пользуют джаву через JNI (Java native interface).
в котлин нэйтиве нет явы, только динамические бинарные библиотеки. Собственно компилятор продуцирует код не сильно отличающийся от кода продуцированного C,C++, Objective-C компиляторами, базирующихся на LLVM.
если котлин компилировать в байткод для JVM, то тогда всё как в яве и можно использовать все явские фички.
Похоже, что клиент проспался и подучил матчасть и теперь вот этого праздника не будет:
Вячеслав Викторович wrote: 29 Dec 2018 22:44
Alexander Troyansky wrote: 29 Dec 2018 19:36
Вячеслав Викторович wrote: 29 Dec 2018 09:31 котлин компилиться прямо в бинарник и ему ВМ или Рантайммашина после этого не нужна вообще.
https://kotlinlang.org/docs/reference/n ... rview.html
Вопрос, что делать с жаба-библиотеками от которых может зависить котлин-приложуха, остаётся открытым.
Только для дооктябрят сидящих на детсадовских горшках!
Всем остальным естественно понятно, что ява полностностью операбельна в котлин.
т.е. нэйтив котлин таки с явой не будет операбелен.

Осталось только выяснить, что имелось в виду под этим:
Вячеслав Викторович wrote: ява компилится в котлин
до вас видимо до сих пор не дошло, что есть отличие байткода от ява? Байт код та же Scala тоже генерит.
Ну ладно, тут похоже уже ничем не помочь и караул снова устал...
User avatar
Вячеслав Викторович
Уже с Приветом
Posts: 5777
Joined: 13 Feb 2016 18:50
Location: Кемерово

Re: Scala app without JVM

Post by Вячеслав Викторович »

Palych wrote: 30 Dec 2018 19:54
Ion Tichy wrote: 30 Dec 2018 02:59 Я правильно понимаю, что если я возьму исходники, скажем, джБосса (джава текст), сконвертирую их в котлин, скомпилю в нейтив код, потом слинкую объектники, то получу нейтив бинарик, смогу его запустить и он будет работать как оригинальный джавный джБосс?
ДжБосс первым делом грузит модули.
Да и любой app server связывает компоненты динамически.
В примере Сабины демонстрируется server less подход, в этом, как я понимаю и есть изюм...
я ни понил, а зачем там NodeJS? :crazy:
$ npm install serverless -g
Без npm "бинарный" код выходит не работаит? :shock:
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Scala app without JVM

Post by Alexander Troyansky »

Вячеслав Викторович wrote: 30 Dec 2018 23:19 до вас видимо до сих пор не дошло, что есть отличие байткода от ява? Байт код та же Scala тоже генерит.
Ну ладно, тут похоже уже ничем не помочь и караул снова устал...
А, т.е. у вас под "ява полностностью операбельна в котлин" вот здесь у вас даже не байткод имелся в виду:
Вячеслав Викторович wrote: 29 Dec 2018 22:44 Всем остальным естественно понятно, что ява полностностью операбельна в котлин.
Вы говнокодить недавно начали, что ли? Потому что бывалые говнокодеры под компиляцией понимают трансляцию исходного текста высокоуровнего языка в машинный или байт-код. А под (интер)операбельностью языков понимают возможность скомпилированного байт-кода этих языков взаимодействовать друг с другом совершенно естественным образом без всяких конвертацией, а не то, что вы подумали вчера про функцию среды IntelliJ для конвертации ява-в-котлин. Садитесь обратно на горшок и переваривайте новую информацию
I would hope that a wise white man with the richness of his experiences would more often than not reach a better conclusion than a latina female who hasn't lived that life
User avatar
Ion Tichy
Уже с Приветом
Posts: 13339
Joined: 07 Dec 2004 04:00
Location: Москва->CO

Re: Scala app without JVM

Post by Ion Tichy »

Сабина wrote: 28 Dec 2018 16:49 впечатляет
https://github.com/bytekast/serverless-graal-scala
Кстати к оригинальному посту...
А что впечатляет то?
Ну есть язык программирования. Определены синтаксис и семантика. Что, сбацать компилятор в x86 или SPARC это уже "wow!" ?
[утрированно] Дайте мне BNF языка плюс знание целевой платформы (ассемблер и ОС) и с помощью yacc-а/bison-а :pray: компайлер можно сбацать за день за неделю легко.
Как же это вы без гравицаппы пепелац выкатываете из гаража? Это непорядок...

Return to “Вопросы и новости IT”