Информация об изменениях

Сообщение Re[30]: Поругайте TypeScript/node.js от 30.06.2022 12:07

Изменено 30.06.2022 12:23 Pauel

Re[30]: Поругайте TypeScript/node.js
Здравствуйте, ·, Вы писали:

P>>В Джаве, скажем, если ты не на массивах которые reifable, то из за type erasure случайные "фиксы" то тут, то там.

·>По-моему ты не очень правильно понимаешь, что такое type erasure.

Наоборот Массивы в джаве reifable, это факт. А вот остальные типы — нет, там просто type erasure. Т.е. вопрос в том, как именно ты будешь с этим работать.

P>>TS это лучший из яп которых пруд пруди в ноде/браузере.

·>Не спорю. Но явно не лучший в бэке, и именно по той главной причине, что он поверх js.

JS во многих вопросах обходит и джаву, и дотнет.

·>Можно и иммутабл, просто, как правило, тормознее. Но т.к. нода и так безбожно тормозит, то одним тормозом больше, одним меньше, уже не столь важно, главное чтобы хоть как-то работало, иначе поседеешь на поисках багов.


Ога. "Безбожно тормозит", как выяснилось в этом же треде, в пределах стат погрешности. Исключение — многопоточные вычисления.

P>>Ничего пока что не наломали. Конкуренты типа того же Flow, вот те наломали дров, поскольку взялись именно исправлять жээс.

·>Не наломали по сравнению с другими js-улучшателями, но не по сравнению с другими яп, типа того же c#.

C# уже 20 лет. ТС — всего 10, если считать от экспериментальной версии. Джаве — все 30.

P>>Зачем? С С++ все просто — читай внимательно свою же ссылку.

·>Там явно написано, что нельзя: No, you cannot convert between vectors of different types.

Ты продолжаешь читать только ту часть, что удобная для тебя.

P>>C С# все ровно так же ,как в джаве, только 1 из за отсутствия type erasure ты гарантировано получишь исключение в рантайме в любых типах, а не только массивах, если там не object под капотом

·>В java ты тоже получишь исключение, только в месте приведения типа элемента взятого из коллекции, а не в момент его добавления. Разберись что такое type erasure.
P>>т.е. animals[0] = new Cats() будет иногда работать, а иногда будет кидать исключение
·> Это не будет кидать исключение. Исключение будет кидать Dog d = dogs[0].

Непринципиально, в какой строчке. Важно — из за чего. Т.е. код может будет хромать.

P>>2 типы вида IList никто из фремворка не выбросил, а это означает неявный каст к object и всё, приехали.

·>Не понял, зачем его выбрасывать?

Затем, что он умножает количество ошибок.
Re[30]: Поругайте TypeScript/node.js
Здравствуйте, ·, Вы писали:

P>>В Джаве, скажем, если ты не на массивах которые reifable, то из за type erasure случайные "фиксы" то тут, то там.

·>По-моему ты не очень правильно понимаешь, что такое type erasure.

Наоборот Массивы в джаве reifable, это факт. А вот остальные типы — нет, там просто type erasure. Т.е. вопрос в том, как именно ты будешь с этим работать.

P>>TS это лучший из яп которых пруд пруди в ноде/браузере.

·>Не спорю. Но явно не лучший в бэке, и именно по той главной причине, что он поверх js.

JS во многих вопросах обходит и джаву, и дотнет.

·>Можно и иммутабл, просто, как правило, тормознее. Но т.к. нода и так безбожно тормозит, то одним тормозом больше, одним меньше, уже не столь важно, главное чтобы хоть как-то работало, иначе поседеешь на поисках багов.


Ога. "Безбожно тормозит", как выяснилось в этом же треде, в пределах стат погрешности. Исключение — многопоточные вычисления.

P>>Ничего пока что не наломали. Конкуренты типа того же Flow, вот те наломали дров, поскольку взялись именно исправлять жээс.

·>Не наломали по сравнению с другими js-улучшателями, но не по сравнению с другими яп, типа того же c#.

C# уже 20 лет. ТС — всего 10, если считать от экспериментальной версии. Джаве — все 30.

P>>Зачем? С С++ все просто — читай внимательно свою же ссылку.

·>Там явно написано, что нельзя: No, you cannot convert between vectors of different types.

Ты продолжаешь читать только ту часть, что удобная для тебя.

P>>C С# все ровно так же ,как в джаве, только 1 из за отсутствия type erasure ты гарантировано получишь исключение в рантайме в любых типах, а не только массивах, если там не object под капотом

·>В java ты тоже получишь исключение, только в месте приведения типа элемента взятого из коллекции, а не в момент его добавления. Разберись что такое type erasure.
P>>т.е. animals[0] = new Cats() будет иногда работать, а иногда будет кидать исключение
·> Это не будет кидать исключение. Исключение будет кидать Dog d = dogs[0].

Непринципиально, в какой строчке. Важно — из за чего. Т.е. код может будет хромать, то валится, то нет, в зависимости от поведения "где то там"

P>>2 типы вида IList никто из фремворка не выбросил, а это означает неявный каст к object и всё, приехали.

·>Не понял, зачем его выбрасывать?

Затем, что он умножает количество ошибок.