Size: a a a

Node.js — русскоговорящее сообщество

2020 March 03

ДБ

Дмитрий Беляев in Node.js — русскоговорящее сообщество
на то она и vm поверх oop байт кода
источник

YG

Yury Golikov in Node.js — русскоговорящее сообщество
Дмитрий Беляев
на то она и vm поверх oop байт кода
Ну типо если ts не существует в рантайме тк он компилится в js, то и java не существует тк компилируется в байт-код jvm
источник

S🛸

Sergey 🛸 in Node.js — русскоговорящее сообщество
Yury Golikov
Ну типо если ts не существует в рантайме тк он компилится в js, то и java не существует тк компилируется в байт-код jvm
+
источник

ДБ

Дмитрий Беляев in Node.js — русскоговорящее сообщество
Yury Golikov
Ну типо если ts не существует в рантайме тк он компилится в js, то и java не существует тк компилируется в байт-код jvm
разница в том, что ts компилится в js, в котором нет информации о типах
а java компилится в байт код jvm, где информация о типах есть
источник

¿

¿hope in Node.js — русскоговорящее сообщество
Дмитрий Беляев
разница в том, что ts компилится в js, в котором нет информации о типах
а java компилится в байт код jvm, где информация о типах есть
А v8, как думаешь, знает о типах?
источник

YG

Yury Golikov in Node.js — русскоговорящее сообщество
Дмитрий Беляев
разница в том, что ts компилится в js, в котором нет информации о типах
а java компилится в байт код jvm, где информация о типах есть
Ну какая-то есть а какой-то нет. Type erasure например
источник

ДБ

Дмитрий Беляев in Node.js — русскоговорящее сообщество
¿hope
А v8, как думаешь, знает о типах?
вычисляет в рантайме с помощью евристик
v8 не умеет в ts
источник

S🛸

Sergey 🛸 in Node.js — русскоговорящее сообщество
Дмитрий Беляев
вычисляет в рантайме с помощью евристик
v8 не умеет в ts
После jit v8 знает столько же от типах сколько jvm
источник

ДБ

Дмитрий Беляев in Node.js — русскоговорящее сообщество
2 самые большие проблемы ts в 2 концепциях:
1. суперсет динамического языка (purescript, dart, clojurescript никогда не скатятся в any, но typescript надо изрядно помучить составляя дженерик, чтоб HOF не скатилась в any)
2. никакого рантайма языка (ms ставит это как плюс, но именно изза этого указание типа у аргумента функции не гарантирует мне, что придет именно этот тип)
источник

S🛸

Sergey 🛸 in Node.js — русскоговорящее сообщество
Дмитрий Беляев
2 самые большие проблемы ts в 2 концепциях:
1. суперсет динамического языка (purescript, dart, clojurescript никогда не скатятся в any, но typescript надо изрядно помучить составляя дженерик, чтоб HOF не скатилась в any)
2. никакого рантайма языка (ms ставит это как плюс, но именно изза этого указание типа у аргумента функции не гарантирует мне, что придет именно этот тип)
В java тоже никто не гарантирует тип, я могу скастить любой объект и получить ошибку в рантайм
источник

¿

¿hope in Node.js — русскоговорящее сообщество
Sergey 🛸
В java тоже никто не гарантирует тип, я могу скастить любой объект и получить ошибку в рантайм
Сложно сказать где это гарантируется
источник

ДБ

Дмитрий Беляев in Node.js — русскоговорящее сообщество
Sergey 🛸
После jit v8 знает столько же от типах сколько jvm
v8 вычисляет типы наблюдая за выполнением, и даже убедившись в типе он добавляет проверку на то, что пришел другой тип и нужно откатится)
jvm знает тип сразу как прочитала байт код, еще до запуска
источник

ДБ

Дмитрий Беляев in Node.js — русскоговорящее сообщество
¿hope
Сложно сказать где это гарантируется
в хаскеле, в расте, в окамле я всегда уверен в пришедших ко мне типах
источник

S🛸

Sergey 🛸 in Node.js — русскоговорящее сообщество
Дмитрий Беляев
в хаскеле, в расте, в окамле я всегда уверен в пришедших ко мне типах
Unsafe с тобой не согласен
источник

KA

Kylych Asankulov in Node.js — русскоговорящее сообщество
Всем привет ребята. Вопрос у меня к тем кто плотно юзает jest. Пытался отловить ошибку через
expect(foo()).rejects.toThrowError()
. Ошибка ловится, но на консоли все равно остаётся UnhandledRejection. Это баг или так должно быть? Ошибка идёт из асинхронной функции(foo ())
источник

ДБ

Дмитрий Беляев in Node.js — русскоговорящее сообщество
самая большая моя притензия к ts:
вот пишу я либу на ts и выкладываю на npm (естественно скомпиленную, ибо иначе никак)
потом ставит мою либу ктото кто не юзает ts и пихает мне на вход что угодно... нет он конечно сам дурак, но ts никак мне не подсказывает, что вот этот экспорт идет за пределы пакета, где может быть любая дичь и надо бы рантайм проверку добавить, хотя вполне мог бы вставить эту проверку сам
источник

ДБ

Дмитрий Беляев in Node.js — русскоговорящее сообщество
Sergey 🛸
Unsafe с тобой не согласен
причем тут unsafe вообще?
источник

G

GG in Node.js — русскоговорящее сообщество
Дмитрий Беляев
самая большая моя притензия к ts:
вот пишу я либу на ts и выкладываю на npm (естественно скомпиленную, ибо иначе никак)
потом ставит мою либу ктото кто не юзает ts и пихает мне на вход что угодно... нет он конечно сам дурак, но ts никак мне не подсказывает, что вот этот экспорт идет за пределы пакета, где может быть любая дичь и надо бы рантайм проверку добавить, хотя вполне мог бы вставить эту проверку сам
👍.
источник

V

Victor in Node.js — русскоговорящее сообщество
Дмитрий Беляев
самая большая моя притензия к ts:
вот пишу я либу на ts и выкладываю на npm (естественно скомпиленную, ибо иначе никак)
потом ставит мою либу ктото кто не юзает ts и пихает мне на вход что угодно... нет он конечно сам дурак, но ts никак мне не подсказывает, что вот этот экспорт идет за пределы пакета, где может быть любая дичь и надо бы рантайм проверку добавить, хотя вполне мог бы вставить эту проверку сам
ну сделай сам проверку в функции которую экспортишь наружу если тебя это волнует
источник

G

GG in Node.js — русскоговорящее сообщество
Victor
ну сделай сам проверку в функции которую экспортишь наружу если тебя это волнует
Щас бы руками все самому писать, когда уже сто лет назад все придумано и используется в норм яп
источник