Scala app without JVM

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

Re: Scala app without JVM

Post by Palych »

Я бы так сформулировал вопросы:
1. Можно ли скомпилировать JVM byte code в native? (Хоть в котлине, хоть в граале)
2. Как у native code работает garbage collection?
User avatar
Вячеслав Викторович
Уже с Приветом
Posts: 5738
Joined: 13 Feb 2016 18:50
Location: Кемерово

Re: Scala app without JVM

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

Palych wrote: 30 Dec 2018 06:34 Я бы так сформулировал вопросы:
1. Можно ли скомпилировать JVM byte code в native? (Хоть в котлине, хоть в граале)
2. Как у native code работает garbage collection?
Внятно сформулированный вопрос - уже половина ответа. В котлин нэйтив на оба ответ нет, естественно, т.к. ВМ нет.
User avatar
Ion Tichy
Уже с Приветом
Posts: 13460
Joined: 07 Dec 2004 04:00
Location: Москва->CO

Re: Scala app without JVM

Post by Ion Tichy »

Вячеслав Викторович 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).
Как же это вы без гравицаппы пепелац выкатываете из гаража? Это непорядок...
User avatar
Вячеслав Викторович
Уже с Приветом
Posts: 5738
Joined: 13 Feb 2016 18:50
Location: Кемерово

Re: Scala app without JVM

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

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, то тогда всё как в яве и можно использовать все явские фички.
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5665
Joined: 15 Aug 2008 00:52

Re: Scala app without JVM

Post by Alexander Troyansky »

Вячеслав Викторович 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: ява компилится в котлин
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
Palych
Уже с Приветом
Posts: 13989
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: 5738
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: 5738
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: 5665
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: 13460
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”