@kotlin_lang

Страница 743 из 982
Никита?❄️
07.07.2018
19:50:57
ну то есть в kotlin/js такой код возможен (вроде): var a = 5 a = "b" a = 7.0

Bogdan
07.07.2018
19:51:31
Никита?❄️
07.07.2018
19:51:41
такое возможно только в kotlin/js, и если такого не делать - то любая платформа возможна

Igor
07.07.2018
19:52:01
ну то есть в kotlin/js такой код возможен (вроде): var a = 5 a = "b" a = 7.0
По моему конкретно этот пример не скомпилируется

Google
Bogdan
07.07.2018
19:52:03
это если обявишь дайнемик тип
причем указывать нада явно

Quantum Harmonizer
07.07.2018
19:52:21
просто в jvm не разбираюсь, говорят что геморно настраивать
тонкая настройка под максимальную производительность непроста, а без особых требований всё просто берёт и работает

Никита?❄️
07.07.2018
19:52:22
это если обявишь дайнемик тип
я пишу под kotlin/jvm и поглядываю на native, а этот пример вычитал в интервью, так что хз что там и как)

Sander
07.07.2018
19:52:27
если писать Kotlin Native, и юзать либы - C , C++, можно ведь скомпилить в машинный код?

Никита?❄️
07.07.2018
19:52:45
Никита?❄️
07.07.2018
19:53:16
var a: dynamic = 1
аааа, спасиб

Sander
07.07.2018
19:53:17
тонкая настройка под максимальную производительность непроста, а без особых требований всё просто берёт и работает
то есть я могу просто запустить и все? а потом если начнутся проблемы тут то я и начну е***********

там будет LLVM, а не машинный код
ну все равно компилятор потом скомпилирует тебе это

Quantum Harmonizer
07.07.2018
19:54:05
то есть я могу просто запустить и все? а потом если начнутся проблемы тут то я и начну е***********
ну это смотря какие проблемы :) Когда станешь держать больше соединений, чем вообще способна нода, тогда да.

Bogdan
07.07.2018
19:54:09
нет идеального интрумента\системы

Google
Igor
07.07.2018
19:55:07
то есть я могу просто запустить и все? а потом если начнутся проблемы тут то я и начну е***********
Ты там игры что ли пишешь? Инженеры из Oracel вылизали за 20 лет JVM по полной, а бошковитые-авторы либ/фреймворков делают их максимально быстрыми.

Никита?❄️
07.07.2018
19:55:41
ну все равно компилятор потом скомпилирует тебе это
насколько я знаю, там низкоуровневая виртуальная машина, которая типа JVM, только быстрее и значительно легче

машинного кода не будет никогда

Boris
07.07.2018
19:55:53
Да, извините, я конечно имел ввиду, что можно на жвм запустить, на ноде нет

Sander
07.07.2018
19:56:20
компилятор байткода в машинный код

Sander
07.07.2018
19:57:00
насколько я знаю, там низкоуровневая виртуальная машина, которая типа JVM, только быстрее и значительно легче
ну он как гошка тебе бинарник выплюнит после компиляции, который просто запустишь, так или что-то другое?

у Rustlang тоже LLVM, там бинарник на выхлопе

Sander
07.07.2018
19:57:22
в golang, не помню честно - но вроде тоже

Никита?❄️
07.07.2018
19:57:32
интересно, будет ли у Unity/Unreal engine поддержка котлеты когда-нибудь

Bogdan
07.07.2018
19:58:33
JB хотят двигатся в том направлении

Sander
07.07.2018
19:58:52
JetBrains вообще молодцы

Bogdan
07.07.2018
19:58:57
имею ввиду в геймдейв

Sander
07.07.2018
19:58:58
только webstorm все равно тормозит

Quantum Harmonizer
07.07.2018
19:59:15
насколько я знаю, там низкоуровневая виртуальная машина, которая типа JVM, только быстрее и значительно легче
там нет никакой виртуальной машины, LLVM — не рантайм, а платформа для построения компиляторов

Bogdan
07.07.2018
19:59:32
только webstorm все равно тормозит
ну мало кто ним пользуются, все на атомах и визуалк

Sander
07.07.2018
19:59:53
да мы пользуемся ) я на vscode хотел, но все его юзают и мне приходится

в общем Kotlin это круто

Google
Никита?❄️
07.07.2018
20:00:52
в общем Kotlin это круто
это да, перспектив много, растёт быстро

Sander
07.07.2018
20:01:51
я его взял вначале просто потому что, не вижу норм языков на котором можно писать ООП, пыху я бы не стал, вообще хотел убрать ее из резюме, ну начал изучать и охренел от крутости

?

Boris
07.07.2018
20:23:37
интересно, будет ли у Unity/Unreal engine поддержка котлеты когда-нибудь
Есть проект позволяющий запускать котлинжс под анрил

Quantum Harmonizer
08.07.2018
01:25:17
как бы мультипарадигменный язык :) Но больше ООП, конечно.

Alexander
08.07.2018
09:23:13
та вроде нет, только свой gc
Нет там никакого gc. LLVM просто оптимизирует код в IR и компилирует в машинное представление. В Kotlin native пока счетчик ссылок собственный.

Alexander
08.07.2018
09:26:51
конечно именно ради этого
Настройка и запусе программы под JVM на порядок проще, чем под node.js. Инструментов для тонкой настройки VM довольно мало, но я не знаю, где эта тонкая настройка вообще может быть нужна. Единственный минус в том, что JVM будет по определению резервировать больше памяти.

Я тут обнаружил, что между счетчиком ссылок и GC тоже холивар есть. Есть сторонники того и того

Alexander
08.07.2018
09:29:21
Без понятия. Я как-то попрбовал настроить и плюнул. Не понятно зачем. Я не уверен, что я прав, но JVM обычно по определению резервирует довольно много, V8 вроде по природе своей гораздо ближе к системе, так что я думаю, что к памяти оно более экономично относится... надо посмотреть

Quantum Harmonizer
08.07.2018
09:31:44
Я просто локально гоняю веб-сервис на девятке с -Xss180K -Xms16M -Xmx32M. Но сколько жрёт по факту — не в курсе.

Alexander
08.07.2018
09:35:20
Тут есть два пункта: память на тред и память на объекты в треде. По первому пункту ява всегда проигрывала однотредной ноде, но это лечится корутинами. А вот тот факт, что объекты в яве спроектированы так, чтобы не экономить память, не лечится.

Правда сейчас вроде в десятке оптимизированные строки, это может очень сильно все урезать

Quantum Harmonizer
08.07.2018
09:35:57
по первому пункту нода вынуждена стартовать по отдельной VM на поток :)

Google
Alexander
08.07.2018
09:38:31
Ну если вы посмотрите на обычные структуры данных в яве и то, как они работают, видно, что если заморочиться, то можно сделать экономнее. Многие плюсоиды так и делают, что я считаю довольно глупым занятием. Плюс отсутсвие ручного управления памятю гарантирует, что общая аллоцированная память будет всегда сильно больше, чем общая использованная, от чего у тех же плюсоидов припадок начинается.

Правда в JS тот же самый GC, так что и проблемы должны быть те же самые.

Alexander
08.07.2018
09:41:34
плюсоиды это нетолерантно
А ладно, есть еще питоноиды. И наверно жабоиды и теперь котлиноиды... и хаскелисты.

eugene
08.07.2018
09:44:06
как бы мультипарадигменный язык :) Но больше ООП, конечно.
почему больше ООП? можно и без ООП писать на котлине, это в java ООП обязательно ведь

Quantum Harmonizer
08.07.2018
09:44:58
причем намного больше
ждём конкретные числа

Alexander
08.07.2018
09:44:59
почему больше ООП? можно и без ООП писать на котлине, это в java ООП обязательно ведь
Не желательно. Там много клево-функционального, но для чисто функционального кода (без побочных эфектов и так далее) он не годится.

Quantum Harmonizer
08.07.2018
09:45:28
почему больше ООП? можно и без ООП писать на котлине, это в java ООП обязательно ведь
Потому что функциональный тип выражен интерфейсами, а функции — объектами :)

Alexander
08.07.2018
09:46:09
я имею в виду процедурный стиль, как в C
Ну это мазохизм называется

Quantum Harmonizer
08.07.2018
09:46:17
я имею в виду процедурный стиль, как в C
функциональный != процедурный, это две разных вселенных. Процедурно, как в Си, к сожлению, никто писать не запретит. Именно поэтому Котлин нельзя назвать труъ функциональным языком.

Bogdan
08.07.2018
09:46:33
eugene
08.07.2018
09:46:56
Ну это мазохизм называется
это вроде относительно, на go вроде пишут в процедурном стиле

Bogdan
08.07.2018
09:47:44
я пока не видел крупных проектов, а для маленьких реально много, это одна из причин почему javaGUI не зашло

Alexander
08.07.2018
09:47:51
Так они и есть мазохисты. Го классный язык в том смысле, что на нем может писать кто угодно. Но если ты не кто угодно, то будешь, как любит говорить один мой приятель, страдать.

Quantum Harmonizer
08.07.2018
09:47:59
Google
Bogdan
08.07.2018
09:49:04
?
java mission control

Alexander
08.07.2018
09:49:17
Люди и на PHP еще пишут.

Quantum Harmonizer
08.07.2018
09:49:25
ни в go, ни в rust нет ООП, тем не менее, люди пишут на этих языках, ядро linux написано на C
ядро — эта штука, где хочется не выделять память динамически и работать максимально быстро. Там и ассемблеррные вставки есть

java mission control
Да, я в курсе. И что?

Bogdan
08.07.2018
09:49:33
java mission control
просто конкретные числа сложно привести

Bogdan
08.07.2018
09:50:32
тогда откуда инфа, что намного?
соотношения используемой\выделеной

Bogdan
08.07.2018
09:50:58
зашло, см. IntelliJ IDEA
ну електрон лучше зашел почемуто, вот это и печалит

Quantum Harmonizer
08.07.2018
09:51:20
ну електрон лучше зашел почемуто, вот это и печалит
потому что веб-разработчиков больше

Bogdan
08.07.2018
09:51:29
-Xmx
ну вот и пошли настройки на старте, а хотелось на старте

Quantum Harmonizer
08.07.2018
09:51:35
хотя хз, кто и зачем пользуется приложениям на электроне

ну вот и пошли настройки на старте, а хотелось на старте
ну да, JVM привыкла жить на сервере, где она может сожрать всю память — надо её ограничивать)

Bogdan
08.07.2018
09:52:04
Alexander
08.07.2018
09:52:35
соотношения используемой\выделеной
Это не всегда правда, он выделяет виртуальную память, а не реальную. Сколько он реально использует, довольно трудно понять. Но у меня вот есть проблема с тем, что довольно накладно держать несколько инстансов JVM одновременно

хотя хз, кто и зачем пользуется приложениям на электроне
Собственно я про это и говорил. JVM не экономит память по своей идее. Про Node не знаю, не пробовал

Quantum Harmonizer
08.07.2018
09:54:17
IDEA, Gradle, запущенный рабочий проект, ещё всякие инструменты — вроде уживаются

Страница 743 из 982