Как стать автором
Обновить

Комментарии 10

Но в итоге же просто вышел запуск процесса питона из котлина, что ничем не отличается от запуска любого друого процесса, и, в целом, не тянет на "заставил Kotlin взаимодействовать с Python". Два первых варианта (Jython и клиент-сервер) позволили бы организовать какое-то нетрививальное взаимодействие на уровне вызовов функций, а вышло примитивнее некуда.

И еще, не знаю, как сейчас, но раньше на винде этот код зависал бы в тех случаях, когда питон заполнил свой буфер stderr, пока котлин ждал и читал stdout.

PS. Что характерно, в питоне запуск процесса и чтение его stdout/stderr делается в одну-две строчки, а тут целая статья вышла.

Да тут тоже недолго

    val process = ProcessBuilder(script, title, summary).start()
    val output: String
    val errors: String
    val returnCode: Int
    coroutineScope {
        val outputResult = async(Dispatchers.IO) { process.inputReader().readText() }
        val errorsResult = async(Dispatchers.IO) { process.errorReader().readText() }
        returnCode = process.waitFor()
        output = outputResult.await()
        errors = errorsResult.await()
    }

Это с учётом что запускаемый процесс может писать в stdout и stderr параллельно.

И еще, не знаю, как сейчас, но раньше на винде этот код зависал бы в тех
случаях, когда питон заполнил свой буфер stderr, пока котлин ждал и
читал stdout.

Не только на винде. Приходилось в двух разных проектах это фиксить: один на windows server , а другой на CentOS, если не ошибаюсь.

По коду видно, что дело как правило не в языке :)

Facepalm... Использовать конкатенацию строк в цикле (вместо StringBuilder), а потом будут жаловаться, что "Java (Kotlin) тормозит"... И это только на первый взгляд.

R Плюсы: Открытый исходный код

  • Открытый исходный код

Плюс по сравнению с чем?

Наследует экосистему Java.

Null-безопасный

Это однозначно плюсы, но можно выбрать только один пункт. Как только вы начинаете тянуть джава библиотеки null безопаснось теряется.

Сборка команды для выполнения с помощью конктенации строк без экранирования? Это сильно расходится с "Цифровые навыки от ведущих экспертов".

Иногда отстутсвие экранирования приводит к такому:
https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/issues/123

НЛО прилетело и опубликовало эту надпись здесь

"В этом проекте нами извлекается обобщенное резюме из значительного объема текста. Мы столкнулись с проблемой написания кода машинного обучения..."

......

"Установите pip с помощью команды ..."

Объясните тогда уж ЦА все про концепцию машинного обучения, а то наверно люди которые не могут сами поставить pip вообще не поймут зачем им его ставить.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий