Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 December 27

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
а вот для математики уже js не подходит
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
но для этих случаев есть WASM который по сути, только для математики и подходит. ну и если уже за WASM браться, можно взглянуть и в сторону нативных модулей.
источник

IL

Ihor Levchenko in NodeUA - JavaScript and Node.js in Ukraine
Ну это крайнее извращение писать на двух языках математику, и второй ещё и "вкомпиливать" в первый.
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Ihor Levchenko
Меня в ноде пугает только полная атональность принятых типов.

Тот же намбер - это черная дыра всей ноды для вычислений и любой математики, ибо очень легко выйти за пределы integer или обрезать дабл.
BigInt вынужденное извращение, но его все равно недостаточно.

В моей картине мира нода для математики (особенно деньги считать), ну это не правильно, только разве что как прокси.

А ещё как минимум потому что это интерпретатор, а значит у нас легко есть доступ к исходникам (ну не обфусцировать же серверный код!)

Если бы у меня был свой бизнес, я, даже имея опыт в ноде более 6 лет, абсолютно точно не писал бы "финансовое ядро" своего продукта на ноде.
В ноде можно скомпилить js в байткод, потом передать его в бинарном виде на другой комп и выполнить и то же со структурами данных. См. модули vm и v8. Но бояться за исходники на сервере - это значит, что туда кто-угодно лазит?
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
js байткод
шта
можно поподробней?
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Ihor Levchenko
Ну это крайнее извращение писать на двух языках математику, и второй ещё и "вкомпиливать" в первый.
Есть N-API и писать математику на C это вполне норм. Вот криптографию так делают.
источник

IL

Ihor Levchenko in NodeUA - JavaScript and Node.js in Ukraine
Но ведь потенциальные утечки нужно закладывать в потенциальные уязвимости чтобы были инструкции как действовать в случае беды.

Байт-код конечно можно, но не нужно.
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Дмитрий
js байткод
шта
можно поподробней?
Давным давно, см доки и мои лекции
источник

IL

Ihor Levchenko in NodeUA - JavaScript and Node.js in Ukraine
Единственное преимущество ноды в более менее вменяемой асинхронной однопоточной модели, что очень хорошо интегрируется с синтаксисом языка.

Но в шарпах конечно гораздо приятней то, что можно писать свою имплементацию многопоточного/асинхронного поведения
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Дмитрий
а вот для математики уже js не подходит
На js можно писать всего в 2 раза медленнее чем на С
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
На js можно писать всего в 2 раза медленнее чем на С
производить мат вычисления ограничиваясь только f64 — сомнительное удовольствие
источник

PS

Pavel Shakhov (pongo... in NodeUA - JavaScript and Node.js in Ukraine
Дмитрий
js байткод
шта
можно поподробней?
источник

PS

Pavel Shakhov (pongo... in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Для прикладного программирования не подходит. Нужен JS, это сейчас самый распространенный, гибкий и универсальный язык, который подходит и для прикладного программирования.
но ведь раст уже давно перестал позиционироваться как язык системного уровня. он теперь универсальный, с низко- и высокоуровневными абстракциями, что позволяет писать прикладной код.

а компилятор не даст так легко выстрелить в ногу.
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
раст прекрасен, но как мне кажется с borrow checker-ом там быстро бизнеслогику писать будет больно
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Дмитрий
а вот для математики уже js не подходит
Математики бывают разные. В случаях, когда исходные данные имеют гораздо большую погрешность, чем может дать жс, оный вполне подходит для вычислений.
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Alexander
Математики бывают разные. В случаях, когда исходные данные имеют гораздо большую погрешность, чем может дать жс, оный вполне подходит для вычислений.
Контекст обсуждения был финансы, думаю для финансов это условие не подходит
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
ну насколько я знаю финансы вычисляются в основном в bigdecimal который реализуется при помощи связки bigint и просто int
что в js скорее возможно чем невозможно
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Алексей Попов
Контекст обсуждения был финансы, думаю для финансов это условие не подходит
Зависит от порядка обрабатываемых значений. Если это не триллионы, то хватит с головой
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Alexander
Зависит от порядка обрабатываемых значений. Если это не триллионы, то хватит с головой
А вот хз, какой там может быть порядок в разных валютах. Боливары, может, и в триллионах исчисляются
Ну и потом нужна же точность при вычислении сложных процентов, а тут 0.2 + 0.1 - как эта проблема решается в финансовом js? В шарпе и жаве есть штатна возможность получить корректную сумму
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Math.round
источник