Re[9]: Поругайте TypeScript/node.js
От: scf  
Дата: 29.06.22 12:59
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Меня вот, к примеру, время стартапа джавы бесит неимоверно. И это при том, что я сам на ней не работаю — студенты показывают свои приложения на спринге.

S>Вот он ко мне подходит, стартует приложение, и успевает всё про это приложение рассказать, пока эта хрень взлетит.

Это "особенность" спринга, а не джавы как платформы. Другой вопрос, что студенты не заморачиваются и берут что популярнее. И, конечно, дотнет всегда будет впереди со своей предкомпиляцией байткода.
Re[24]: Поругайте TypeScript/node.js
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 29.06.22 13:00
Оценка:
Здравствуйте, ·, Вы писали:

P>>·>Протыкается явными операциями протыкания. А не как typescript — втихушку теряется инфа.

P>>То есть, с хаскелем ты привел невалидный пример.
·>Это пример возможности явного протыкания системы типов.

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

P>>В тайпскрипте readonly это единственное место, где теряется инфа. И судя по гитхабу, это мало кого волнует.

·>С коллекциями тоже проблема была, но, слава богу, пофиксили недавно.

А с коллекциями что не так? Тоже ужос-ужос который никого не волнует?

·>Плюс null checks вроде сделано, но, по моему опыту, никто не использует, т.к. неюзабельно. Ты вот используешь?


Не понял что за фича такая.

P>>Потому, что тебе это не нравится?

·>Потому, что компилятор тебе явно говорит, что типы не проверяются. Компилятору не нравится, причём тут я?

Я ж говорю — у меня ничего не говорит. Т.е. есть вариант, когда всё пройдет в прод.

P>>Я в джава коде регулярно встречаю и такое, и всевозможные касты, и что угодно. Т.е. это фактическое положение дел.

·>Это не дыры в системе типов явы, а баги в конкретном коде. Ещё ни один яп не смог заставить писать безбажый код.

Фактически в джаве в норме использовать олскульные вещи, что ты сам же и продемонстрировал совсем недавно. Соответсвенно дыра есть, и на неё до сих пор напарываются.
Re[25]: Поругайте TypeScript/node.js
От: · Великобритания  
Дата: 29.06.22 15:45
Оценка:
Здравствуйте, Pauel, Вы писали:

P>>>То есть, с хаскелем ты привел невалидный пример.

P>·>Это пример возможности явного протыкания системы типов.
P>Именно. А речь то была совсем про другое — дыра при отсутствии намеренного протыкания системы типов.
Про что была речь сказать сложно. Свою демагогию "без особых заморочек" ты так и не раскрыл. Unsafe в хаскеле ты считаешь заморочками, а заморочки в других ЯП ты не считаешь. Молодец, конечно, но что считаешь заморочками ты — вряд ли кого-то интересует.

P>>>В тайпскрипте readonly это единственное место, где теряется инфа. И судя по гитхабу, это мало кого волнует.

P>·>С коллекциями тоже проблема была, но, слава богу, пофиксили недавно.
P>А с коллекциями что не так? Тоже ужос-ужос который никого не волнует?
Ковариантность-контравариантность. "Никого не волнует" — это ещё одна демагогия, "необоснованное обобщение".

P>·>Плюс null checks вроде сделано, но, по моему опыту, никто не использует, т.к. неюзабельно. Ты вот используешь?

P>Не понял что за фича такая.
strictNullChecks

P>>>Потому, что тебе это не нравится?

P>·>Потому, что компилятор тебе явно говорит, что типы не проверяются. Компилятору не нравится, причём тут я?
P>Я ж говорю — у меня ничего не говорит. Т.е. есть вариант, когда всё пройдет в прод.
Он выдаёт предупреждение, что типы у тебя не проверяются в compile-time. И, внезапно, они не проверились. Что тебе не нравится то?

P>>>Я в джава коде регулярно встречаю и такое, и всевозможные касты, и что угодно. Т.е. это фактическое положение дел.

P>·>Это не дыры в системе типов явы, а баги в конкретном коде. Ещё ни один яп не смог заставить писать безбажый код.
P>Фактически в джаве в норме использовать олскульные вещи, что ты сам же и продемонстрировал совсем недавно. Соответсвенно дыра есть, и на неё до сих пор напарываются.
Нет, не в норме. Это backward compatibility и легко отключается.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[26]: Поругайте TypeScript/node.js
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.06.22 07:52
Оценка:
Здравствуйте, ·, Вы писали:

P>>Именно. А речь то была совсем про другое — дыра при отсутствии намеренного протыкания системы типов.

·>Про что была речь сказать сложно. Свою демагогию "без особых заморочек" ты так и не раскрыл. Unsafe в хаскеле ты считаешь заморочками, а заморочки в других ЯП ты не считаешь.

Вроде очевидно — ты сам привел пример неявной ненамереной поломки в ТС. А в Хаскеле ты настаиваешь на явной намеренной.
Отсюда ясно, что твой аргумент про Хаскель невалидный.

P>>А с коллекциями что не так? Тоже ужос-ужос который никого не волнует?

·>Ковариантность-контравариантность. "Никого не волнует" — это ещё одна демагогия, "необоснованное обобщение".

Ковариантность-контравариантность штука хорошая. Тебя смущает, что в ТС её добавили позже, чем в джаву, или что?
ТС вообще появился в тот момент, когда джаве было без малого лет 20.
Тем не менее, свою долю на бакенде он уже отнял.

P>>·>Плюс null checks вроде сделано, но, по моему опыту, никто не использует, т.к. неюзабельно. Ты вот используешь?

P>>Не понял что за фича такая.
·>strictNullChecks

Вполне себе годная вещь. Штука в том, что эта хрень засоряет апи, который экспозишь из библиотеки, т.к. надо всегда указывать возможные null и undefined. Здесь снова та же вещь — ТС не исправляет жээс. А раз так, то всегда могут влезать null и undefined.
Если другая сторона этим не пользуется, то смысла здесь не сильно то и много. Т.е. это работает для библиотечного кода, но не для связки.
Вообще, судя по тому, как идут дела на дотнете или джаве, таким фичам нужно большое время, что бы проникнуть в код.

P>>Я ж говорю — у меня ничего не говорит. Т.е. есть вариант, когда всё пройдет в прод.

·>Он выдаёт предупреждение, что типы у тебя не проверяются в compile-time. И, внезапно, они не проверились. Что тебе не нравится то?

Честно говоря, не знаю про что ты говоришь. Где его смотреть надо? Я все по дефолту юзаю.

P>>Фактически в джаве в норме использовать олскульные вещи, что ты сам же и продемонстрировал совсем недавно. Соответсвенно дыра есть, и на неё до сих пор напарываются.

·>Нет, не в норме. Это backward compatibility и легко отключается.

Т.е. условно, о чем и речь.
Отредактировано 30.06.2022 9:11 Pauel . Предыдущая версия .
Re[27]: Поругайте TypeScript/node.js
От: · Великобритания  
Дата: 30.06.22 08:42
Оценка:
Здравствуйте, Pauel, Вы писали:

P>>>Именно. А речь то была совсем про другое — дыра при отсутствии намеренного протыкания системы типов.

P>·>Про что была речь сказать сложно. Свою демагогию "без особых заморочек" ты так и не раскрыл. Unsafe в хаскеле ты считаешь заморочками, а заморочки в других ЯП ты не считаешь.
P>Вроде очевидно — ты сам привел пример неявной ненамереной поломки в ТС. А в Хаскеле ты настаиваешь на явной намеренной.
P>Отсюда ясно, что твой аргумент про Хаскель невалидный.
Так в упомянутых яп (java/c++/c#/haskell) везде ломать надо намеренно. Небольшим исключением является java, т.к. из-за backward compatibility чтобы поломка стала фатальной ошибкой — нужно прописать дополнительные параметры компилятору, что собственно полностью аналогично необходимости прописывать compilerOptions.strict=true в ts. Так что либо мой аргумент валидный, либо твоё утверждение о неявных поломках в других яп — невалидно. Выбирай.

P>>>А с коллекциями что не так? Тоже ужос-ужос который никого не волнует?

P>·>Ковариантность-контравариантность. "Никого не волнует" — это ещё одна демагогия, "необоснованное обобщение".
P>Ковариантность-контравариантность штука хорошая. Тебя смущает, что в ТС её добавили позже, чем в джаву, или что?
Не смущает. Просто говорю, что да, возможно лет через 5 ts станет хорошим яп. Ведь фичу добавили только месяц назад, теперь ведь ещё все либы надо апдейтить...

P>ТС вообще появился в тот момент, когда джаве было без малого лет 20.

Во-во. Уже шли по протоптанной тропке и всё равно дров наломали.

P>Тем не менее, свою долю на бакенде он уже отнял.

У пхп и перла.

P>>>Я ж говорю — у меня ничего не говорит. Т.е. есть вариант, когда всё пройдет в прод.

P>·>Он выдаёт предупреждение, что типы у тебя не проверяются в compile-time. И, внезапно, они не проверились. Что тебе не нравится то?
P>Честно говоря, не знаю про что ты говоришь. Где его смотреть надо? Я все по дефолту юзаю.
Надо прописать "-Xlint:unchecked -Werror". Что является хорошим тоном для современных проектов. Будет вот так:
Main.java:16: warning: [unchecked] unchecked call to add(E) as a member of the raw type ArrayList
        x.add(5); // собака в массиве котов
             ^
  where E is a type-variable:
    E extends Object declared in class ArrayList
error: warnings found and -Werror specified
1 error
1 warning


P>>>Фактически в джаве в норме использовать олскульные вещи, что ты сам же и продемонстрировал совсем недавно. Соответсвенно дыра есть, и на неё до сих пор напарываются.

P>·>Нет, не в норме. Это backward compatibility и легко отключается.
P>Т.е. условно, о чем и речь.
Ок, можно натянуть сову на джаву, формально. Осталось тебе ещё рассказать такое про с++ и c#.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[28]: Поругайте TypeScript/node.js
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.06.22 09:33
Оценка:
Здравствуйте, ·, Вы писали:

·>Так в упомянутых яп (java/c++/c#/haskell) везде ломать надо намеренно. Небольшим исключением является java, т.к. из-за backward compatibility чтобы поломка стала фатальной ошибкой — нужно прописать дополнительные параметры компилятору, что собственно полностью аналогично необходимости прописывать compilerOptions.strict=true в ts. Так что либо мой аргумент валидный, либо твоё утверждение о неявных поломках в других яп — невалидно. Выбирай.


В C# буквально не получится тот же вариант, что и в ТС, будет просто ошибка в рантайме т.к. C# хранит типы в рантайме.
В Джаве, скажем, если ты не на массивах которые reifable, то из за type erasure случайные "фиксы" то тут, то там.

P>>Ковариантность-контравариантность штука хорошая. Тебя смущает, что в ТС её добавили позже, чем в джаву, или что?

·>Не смущает. Просто говорю, что да, возможно лет через 5 ts станет хорошим яп. Ведь фичу добавили только месяц назад, теперь ведь ещё все либы надо апдейтить...

TS это лучший из яп которых пруд пруди в ноде/браузере. readonly при своей дырявости имеет несколько вариантов для предоставления гарантий. Т.е. не такая это и страшая вещь, как ты тут расписываешь. Это в джаве в норме использовать мутабл дизайн. В динамических языках такое вобщем избегают. Такой вот парадокс.

P>>ТС вообще появился в тот момент, когда джаве было без малого лет 20.

·>Во-во. Уже шли по протоптанной тропке и всё равно дров наломали.

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

P>>Тем не менее, свою долю на бакенде он уже отнял.

·>У пхп и перла.

И у джавы в т.ч. Веб-приложения, т.е. фронтенд-бакенд большей частью переползают на Fulstack Node с тайпскриптом.

P>>Т.е. условно, о чем и речь.

·>Ок, можно натянуть сову на джаву, формально. Осталось тебе ещё рассказать такое про с++ и c#.

Зачем? С С++ все просто — читай внимательно свою же ссылку. C С# все ровно так же ,как в джаве, только
1 из за отсутствия type erasure ты гарантировано получишь исключение в рантайме в любых типах, а не только массивах, если там не object под капотом
т.е. animals[0] = new Cats() будет иногда работать, а иногда будет кидать исключение
2 типы вида IList никто из фремворка не выбросил, а это означает неявный каст к object и всё, приехали.

Т.е. на мой взгляд и в джаве, и шарпе дженерики надо было добавлять изначально. А так все гарантии в сложных случаях приходится обеспечивать руками, следовательно, время от времени будут дыры. У тебя, понятно, есть скил "писать без багов", судя по прошлой беседе, тут ты сразу начнешь возражать
Re[29]: Поругайте TypeScript/node.js
От: · Великобритания  
Дата: 30.06.22 10:46
Оценка:
Здравствуйте, Pauel, Вы писали:

P>·>Так в упомянутых яп (java/c++/c#/haskell) везде ломать надо намеренно. Небольшим исключением является java, т.к. из-за backward compatibility чтобы поломка стала фатальной ошибкой — нужно прописать дополнительные параметры компилятору, что собственно полностью аналогично необходимости прописывать compilerOptions.strict=true в ts. Так что либо мой аргумент валидный, либо твоё утверждение о неявных поломках в других яп — невалидно. Выбирай.

P>В C# буквально не получится тот же вариант, что и в ТС, будет просто ошибка в рантайме т.к. C# хранит типы в рантайме.
Java тоже хранит типы в рантайме. Вариант в C# не получится лишь потому, что там легаси с raw types нет.

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

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

P>>>Ковариантность-контравариантность штука хорошая. Тебя смущает, что в ТС её добавили позже, чем в джаву, или что?

P>·>Не смущает. Просто говорю, что да, возможно лет через 5 ts станет хорошим яп. Ведь фичу добавили только месяц назад, теперь ведь ещё все либы надо апдейтить...
P>TS это лучший из яп которых пруд пруди в ноде/браузере.
Не спорю. Но явно не лучший в бэке, и именно по той главной причине, что он поверх js.

P>readonly при своей дырявости имеет несколько вариантов для предоставления гарантий. Т.е. не такая это и страшая вещь, как ты тут расписываешь. Это в джаве в норме использовать мутабл дизайн. В динамических языках такое вобщем избегают. Такой вот парадокс.

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

P>>>ТС вообще появился в тот момент, когда джаве было без малого лет 20.

P>·>Во-во. Уже шли по протоптанной тропке и всё равно дров наломали.
P>Ничего пока что не наломали. Конкуренты типа того же Flow, вот те наломали дров, поскольку взялись именно исправлять жээс.
Не наломали по сравнению с другими js-улучшателями, но не по сравнению с другими яп, типа того же c#.

P>>>Тем не менее, свою долю на бакенде он уже отнял.

P>·>У пхп и перла.
P>И у джавы в т.ч. Веб-приложения, т.е. фронтенд-бакенд большей частью переползают на Fulstack Node с тайпскриптом.
Может быть местами, где деньги на программистах экономят, но вряд ли большей частью.

P>>>Т.е. условно, о чем и речь.

P>·>Ок, можно натянуть сову на джаву, формально. Осталось тебе ещё рассказать такое про с++ и c#.
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 и всё, приехали.

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

P>Т.е. на мой взгляд и в джаве, и шарпе дженерики надо было добавлять изначально. А так все гарантии в сложных случаях приходится обеспечивать руками, следовательно, время от времени будут дыры. У тебя, понятно, есть скил "писать без багов", судя по прошлой беседе, тут ты сразу начнешь возражать

Таких неявных как в ts дыр — нет. Есть явно протыкаемые дыры как в хаскелле.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Отредактировано 30.06.2022 10:49 · . Предыдущая версия . Еще …
Отредактировано 30.06.2022 10:49 · . Предыдущая версия .
Re[30]: Поругайте TypeScript/node.js
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.06.22 12:07
Оценка:
Здравствуйте, ·, Вы писали:

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 и всё, приехали.

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

Затем, что он умножает количество ошибок.
Отредактировано 30.06.2022 12:23 Pauel . Предыдущая версия .
Re[31]: Поругайте TypeScript/node.js
От: · Великобритания  
Дата: 30.06.22 18:40
Оценка:
Здравствуйте, Pauel, Вы писали:

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

P>·>По-моему ты не очень правильно понимаешь, что такое type erasure.
P>Наоборот Массивы в джаве reifable, это факт. А вот остальные типы — нет, там просто type erasure. Т.е. вопрос в том, как именно ты будешь с этим работать.
Не все остальные, а только генерики. В общем неясно к чему всё это. В чём твой поинт?

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

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

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

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

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

P>·>Не наломали по сравнению с другими js-улучшателями, но не по сравнению с другими яп, типа того же c#.
P>C# уже 20 лет. ТС — всего 10, если считать от экспериментальной версии. Джаве — все 30.
Ну вроде уж гоговорились, что вот когда TCу будет 20, тогда и приходи в бэкенд. А пока он годится только чтобы дыры js затыкать на фронте.

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

P>·>Там явно написано, что нельзя: No, you cannot convert between vectors of different types.
P>Ты продолжаешь читать только ту часть, что удобная для тебя.
Тебя, надеюсь, не затруднит процитировать ту часть, которая удобна тебе.

P>>>т.е. animals[0] = new Cats() будет иногда работать, а иногда будет кидать исключение

P>·> Это не будет кидать исключение. Исключение будет кидать Dog d = dogs[0].
P>Непринципиально, в какой строчке. Важно — из за чего. Т.е. код может будет хромать, то валится, то нет, в зависимости от поведения "где то там"
Ну да, поэтому и используют обёртки подобные IList.

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

P>·>Не понял, зачем его выбрасывать?
P>Затем, что он умножает количество ошибок.
Каких ошибок? Говори конкретно.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[32]: Поругайте TypeScript/node.js
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.06.22 19:05
Оценка:
Здравствуйте, ·, Вы писали:

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

·>Так ведь выяснилось, что ты наврал. Т.к. работала нативная либа на плюсах, а не нода.

Что не так с этим примером?
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/spectralnorm-node-7.html

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

·>Ну вроде уж гоговорились, что вот когда TCу будет 20, тогда и приходи в бэкенд. А пока он годится только чтобы дыры js затыкать на фронте.

Уже давно на бакенде.

·>Тебя, надеюсь, не затруднит процитировать ту часть, которая удобна тебе.


Зачем? Ты все равно выкусишь то, что тебе удобно.
Бенчмарков было больше одного. Из них ты ожидаемо выбрал тот, где либа и проигнорил те, что без либы.
Какой смысл доказывать тебе?

·>Ну да, поэтому и используют обёртки подобные IList.


Ну да, компенсируют проблемы языка.
Re[4]: Поругайте TypeScript/node.js
От: Ватакуси Россия  
Дата: 30.06.22 21:32
Оценка:
Б>Библиотеки более зрелые (для бэкенда).
Б>Сам язык более стройный (последовательный), более расширяемый, развивается быстро
Б>Нет браузерного легаси

Это теория или практика?
Питон таки тормозит-с. Хотя ява-скрипт — тоже.

Меня, конечно, вообще удручаети общее состояние отрасли. Всё на коленке, хренак-хренак и в боевую часть.

Пытаюсь анализировать elscticseach. Есть 1.5 (знаю!) и 6.8 (тоже). 2000 гб каждая.
scoll не работает в первой.
search кончается на 1% во второй при выборке в 100, 1000, 10000 элементов.

Код на 20 строк, но работает 5 часов. Королева в шоке (с)

Какого хрена не придумали combined schema? Почему mapping отменили, но они всё ещё есть. Но даже там где есть, они не учитывают вложенность?
Почему в питоне слияние словарей не учивает списки? *перезатираются последним, вместо слияния* И ещё довольные такие, типа это редкость. Сам пиши.
Чё, вообще за нах?
Все будет Украина!
Re[10]: Поругайте TypeScript/node.js
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.07.22 03:08
Оценка:
Здравствуйте, scf, Вы писали:
scf>Это "особенность" спринга, а не джавы как платформы. Другой вопрос, что студенты не заморачиваются и берут что популярнее. И, конечно, дотнет всегда будет впереди со своей предкомпиляцией байткода.
А казалось бы — ну включите JIT с 0-ля запусков. Но нет, наоборот — сейчас дефолт, ЕМНИП, 10000 исполнений (а когда-то был 1000).
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: Поругайте TypeScript/node.js
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 01.07.22 08:03
Оценка:
Здравствуйте, Ватакуси, Вы писали:

В>Это теория или практика?

В>Питон таки тормозит-с. Хотя ява-скрипт — тоже.

Тормоза джаваскрипта сильно преувеличены. У него есть проблемы с многопоточностью и тяжелыми вычислениями, которые блокируют эвент-луп. В отличие от питона, сам по себе он достаточно быстрый, во многих вопросах примерно как джава и часто даже быстрее.
Re[6]: Поругайте TypeScript/node.js
От: Ватакуси Россия  
Дата: 01.07.22 08:54
Оценка:
P>Тормоза джаваскрипта сильно преувеличены. У него есть проблемы с многопоточностью и тяжелыми вычислениями, которые блокируют эвент-луп. В отличие от питона, сам по себе он достаточно быстрый, во многих вопросах примерно как джава и часто даже быстрее.

И современные сайты это конечно опровергают.
Инет сумашедший по скорости, железо тоже, но сайты тупят по 2-5-10 секунд.
Я видел сайты с 15 секундной задержкой!

Голый js, по-минимуму ещё ничего, но как только ангуляры/реакты/вуе и прочий бред привязывают, всё туши свет.
Все будет Украина!
Re[7]: Поругайте TypeScript/node.js
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 01.07.22 09:03
Оценка:
Здравствуйте, Ватакуси, Вы писали:

P>>Тормоза джаваскрипта сильно преувеличены. У него есть проблемы с многопоточностью и тяжелыми вычислениями, которые блокируют эвент-луп. В отличие от питона, сам по себе он достаточно быстрый, во многих вопросах примерно как джава и часто даже быстрее.


В>И современные сайты это конечно опровергают.

В>Инет сумашедший по скорости, железо тоже, но сайты тупят по 2-5-10 секунд.
В>Голый js, по-минимуму ещё ничего, но как только ангуляры/реакты/вуе и прочий бред привязывают, всё туши свет.

Ужос, всё как c WPF, а до того WinForms, а до того MFC, а до того Delfi, а до того Turbo Vision...

UI в норме тормозит, т.е. какая бы ни была технология под капотом, вечно находится 100500 софтин на которые весь инет жалуется, что тормозят.

Причины не в программистах — UI почти всегда пишется с целью time to market. Вот те, кто выиграли эту гонку, могут себе позволить ширкарный UI который еще и быстро работает.
Re[5]: Поругайте TypeScript/node.js
От: Буравчик Россия  
Дата: 01.07.22 09:25
Оценка:
Здравствуйте, Ватакуси, Вы писали:

В>Это теория или практика?

В>Питон таки тормозит-с. Хотя ява-скрипт — тоже.

Все относительно. На io-bound задачах тормоза не ощущаются, а писать намного приятней из-за хороших библиотек и удобного языка.
На cpu-bound задачах, конечно хуже, но есть подходящие библиотеки, которые все это ускоряют, и часто этого бывает достаточно.
И конечно, есть cpu-bound задачи со сложными алгоритмами, где питон противопоказан — но таких не так уж и много.

С бэкендом (в том числе нагруженном) на питоне сталкиваюсь на практике, работает норм. На мой взгляд, в Java/C# нет гибкости и простоты питона в разработке. На TS я много не писал, но на JS приходилось. Начиная с ES-2015 наконец стал нормальным языком, но я бы все равно предпочел питон (современный, с типами).

В>Меня, конечно, вообще удручаети общее состояние отрасли. Всё на коленке, хренак-хренак и в боевую часть.


Нужно писать тесты, на любом языке. Тогда норм.

В>Пытаюсь анализировать elscticseach. Есть 1.5 (знаю!) и 6.8 (тоже). 2000 гб каждая.

В>scoll не работает в первой.
В>search кончается на 1% во второй при выборке в 100, 1000, 10000 элементов.
В>Код на 20 строк, но работает 5 часов. Королева в шоке (с)
В>Какого хрена не придумали combined schema? Почему mapping отменили, но они всё ещё есть. Но даже там где есть, они не учитывают вложенность?

Это я не распарсил.

В>Почему в питоне слияние словарей не учивает списки? *перезатираются последним, вместо слияния* И ещё довольные такие, типа это редкость. Сам пиши.


Про "слияние словарей не учивает списки". Почему ты считаешь, что при слиянии надо списки объединять, а не заменять? Лично для меня это не очевидно. Написать функцию не проблема — 4-5 строк
Best regards, Буравчик
Re[6]: Поругайте TypeScript/node.js
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.07.22 09:29
Оценка:
Здравствуйте, Pauel, Вы писали:

P>Здравствуйте, Ватакуси, Вы писали:


В>>Это теория или практика?

В>>Питон таки тормозит-с. Хотя ява-скрипт — тоже.

P>Тормоза джаваскрипта сильно преувеличены. У него есть проблемы с многопоточностью и тяжелыми вычислениями, которые блокируют эвент-луп. В отличие от питона, сам по себе он достаточно быстрый, во многих вопросах примерно как джава и часто даже быстрее.

То ест в JS уже добавили потоки и примитивы синхронизации. Или только промисы?
и солнце б утром не вставало, когда бы не было меня
Re[7]: Поругайте TypeScript/node.js
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 01.07.22 09:40
Оценка: 1 (1)
Здравствуйте, Serginio1, Вы писали:

P>>Тормоза джаваскрипта сильно преувеличены. У него есть проблемы с многопоточностью и тяжелыми вычислениями, которые блокируют эвент-луп. В отличие от питона, сам по себе он достаточно быстрый, во многих вопросах примерно как джава и часто даже быстрее.

S> То ест в JS уже добавили потоки и примитивы синхронизации. Или только промисы?

Промисы к многопоточности никакого отношения не имеют, это просто оболочка поверх колбека, всё в том же потоке.

Потоки и примитивы синхронизации — такого нет. Есть воркеры, куда передаём посредством структурного клонирования, т.е. задорого, или же передаём владение, если объект вида ArrayBuffer, что далеко не всегда удобно.

Итого — можно передавать только большие куски работы. А вот так, что бы сообща обрабатывать какие то данные — такое вряд ли.
Re[8]: Поругайте TypeScript/node.js
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.07.22 09:52
Оценка:
Здравствуйте, Pauel, Вы писали:


P>Потоки и примитивы синхронизации — такого нет. Есть воркеры, куда передаём посредством структурного клонирования, т.е. задорого, или же передаём владение, если объект вида ArrayBuffer, что далеко не всегда удобно.


P>Итого — можно передавать только большие куски работы. А вот так, что бы сообща обрабатывать какие то данные — такое вряд ли.

Понятно. Из за того, что нет примитивов синхронизации нельзя использовать промисы. В C# таски как раз могут быть и из пула потоков так и полноценным потоком (LongRunning)
https://habr.com/ru/company/ruvds/blog/437984/
Модуль worker_threads


Потоки воркеров выполняются в изолированном контексте. Они обмениваются информацией с главным процессом, используя сообщения. Это избавляет нас от проблемы «состояния гонок», которой подвержены многопоточные среды. При этом потоки воркеров существуют в том же процессе, в котором находится основная программа, то есть, при таком подходе, в сравнении с применением форков процессов, используется гораздо меньше памяти.

Кроме того, работая с воркерами, можно пользоваться разделяемой памятью. Так, специально для этой цели созданы объекты типа SharedArrayBuffer. Их стоит использовать только в тех случаях, когда в программе нужно выполнять сложную обработку больших объёмов данных. Они позволяют экономить ресурсы, необходимые на выполнение сериализации и десериализации данных при организации обмена данными между воркерами и основной программой посредством сообщений.

и солнце б утром не вставало, когда бы не было меня
Re[33]: Поругайте TypeScript/node.js
От: · Великобритания  
Дата: 01.07.22 10:15
Оценка:
Здравствуйте, Pauel, Вы писали:

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

P>·>Так ведь выяснилось, что ты наврал. Т.к. работала нативная либа на плюсах, а не нода.
P>Что не так с этим примером?
P>https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/spectralnorm-node-7.html
Ок. Похоже node осилил jit плоских циклов с байт-буферами. Не очень ясно, почему в коде явы массивы в цикле выделяются, поэтому какое-то непонятное сравнение. Для систем с jit такой бенчмарк мало что показывает. Это как мериться производительностью "hello world".

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

P>·>Ну вроде уж гоговорились, что вот когда TCу будет 20, тогда и приходи в бэкенд. А пока он годится только чтобы дыры js затыкать на фронте.
P>Уже давно на бакенде.
В бекенд чего только не тащат, даже php. Это не значит, что оно того стоит.

P>·>Тебя, надеюсь, не затруднит процитировать ту часть, которая удобна тебе.

P>Зачем? Ты все равно выкусишь то, что тебе удобно.
P>Бенчмарков было больше одного. Из них ты ожидаемо выбрал тот, где либа и проигнорил те, что без либы.
P>Какой смысл доказывать тебе?
Ты конткест потерял. Перечитай что тут обсуждается.

P>·>Ну да, поэтому и используют обёртки подобные IList.

P>Ну да, компенсируют проблемы языка.
Языком компенсируют проблемы языка?! Это как?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.