Size: a a a

Programming Offtop

2020 December 09

AN

Alexander Nozik in Programming Offtop
Vladimir Petrakovich
JNI сам по себе работает только с C
Так JNI это не на С проганье, а вызов сишного кода. И через JNI пишутся байндинги на С++ в том числе
источник

VP

Vladimir Petrakovich in Programming Offtop
Так что некоторое количество сишечки неизбежно
источник

KD

Konstantin Dovnar in Programming Offtop
Alexander Nozik
А там прямо C API или все-таки С++? И много ли людей работают с NDK?
>А там прямо C API или все-таки С++?

Без понятия, я с ним не работал.

>И много ли людей работают с NDK?

Это тема для отдельного опроса, но суть остаётся сутью, что там C.
источник

D

Dmitry in Programming Offtop
Vladimir Petrakovich
JNI сам по себе работает только с C
С интерфейсами, определенными в языке си. Эти интерфейсы поддерживает примерно 100% языков программирования.
источник

VP

Vladimir Petrakovich in Programming Offtop
Alexander Nozik
Так JNI это не на С проганье, а вызов сишного кода. И через JNI пишутся байндинги на С++ в том числе
Ну если ты туда полез - считай програмируешь на С
источник

AN

Alexander Nozik in Programming Offtop
Vladimir Petrakovich
Так что некоторое количество сишечки неизбежно
В смысле ответная часть? Ну да, но это как бы очень локально
источник

AN

Alexander Nozik in Programming Offtop
Кстати, вы видели, что панаму кусками завозят? Там в следующем релизе уже основной JEP будет
источник

AN

Alexander Nozik in Programming Offtop
источник

IP

Iaroslav Postovalov in Programming Offtop
Vladimir Petrakovich
JNI сам по себе работает только с C
не совсем так. jni импортирует методы с сишным abi, но сам jni предоставляет плюсовые классы типа JNIEnv
источник

D

Dmitry in Programming Offtop
Vladimir Petrakovich
Ну если ты туда полез - считай програмируешь на С
Нет, если ты пишешь на джаве и определяешь интерфейсы, это не значит, что ты программируешь на си. А ответная часть может быть написана, например на расте. Это тоже ни разу не си. У си просто описание интерфейса простое, его многие поддерживают.
источник

VP

Vladimir Petrakovich in Programming Offtop
Dmitry
С интерфейсами, определенными в языке си. Эти интерфейсы поддерживает примерно 100% языков программирования.
Да, точнее с C ABI. И тулза в комплекте генерирует сишный код.
источник

IP

Iaroslav Postovalov in Programming Offtop
источник

VP

Vladimir Petrakovich in Programming Offtop
Dmitry
Нет, если ты пишешь на джаве и определяешь интерфейсы, это не значит, что ты программируешь на си. А ответная часть может быть написана, например на расте. Это тоже ни разу не си. У си просто описание интерфейса простое, его многие поддерживают.
Оперирование терминами из С требует некоторого его знания. Натягивание раста на сишный интерфейс в том числе.
источник

AM

Andrew Mikhaylov in Programming Offtop
Так или иначе, это не то писание на си, которое изначально имел ввиду Александр.
источник

VP

Vladimir Petrakovich in Programming Offtop
Я не спорю, это не то же самое, что и писать основную логику на нём, но тут граница размыта
источник

D

Dmitry in Programming Offtop
Vladimir Petrakovich
Оперирование терминами из С требует некоторого его знания. Натягивание раста на сишный интерфейс в том числе.
Ну растовая тулза точно сишный код не генерирует. Она генерирует раст IR, из него LLVM байткод. Это просто совместимо с интерфейсами, которые для си изначально создавались.
источник

D

Dmitry in Programming Offtop
Это не требует знания языка си.
источник

IP

Iaroslav Postovalov in Programming Offtop
Vladimir Petrakovich
Оперирование терминами из С требует некоторого его знания. Натягивание раста на сишный интерфейс в том числе.
ну как бы одно дело malloc'и писать, другое - знать по сути только типы
источник

VP

Vladimir Petrakovich in Programming Offtop
Iaroslav Postovalov
ну как бы одно дело malloc'и писать, другое - знать по сути только типы
Мне кажется, без знания о том, как выделяется память за пределами JVM, не обойтись всё равно
источник

IP

Iaroslav Postovalov in Programming Offtop
Vladimir Petrakovich
Мне кажется, без знания о том, как выделяется память за пределами JVM, не обойтись всё равно
ну в плюсах ты пишешь new/delete, в расте вызываешь конструктор и правильно обращаешься с владением объектов
источник