М.Двач / Программирование

73 Кб, 1050x1050
JS Thread #326 /js/ # OP 23 июня, 18:53 3482678 В конец треда | Веб

Предыдущий тред: >>3443580 (OP)

Больше пары строк кода в посте или на скриншоте ведут в ад.

Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs

Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.

Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript

Ответы3011

2 23 июня, 19:32 2 3482710

Первый нах!

216 Кб, 960x1083
3 23 июня, 19:57 3 3482729

Напомните, пожалуйста, нахуй вообще нужен JS на бэкенде? Шо мне сказала нейросетка из плюсов:
1. Нода быстрая — да, но не быстрее Go/Java/C#;
2. Один язык на фронт и бэк — да, актуально для предельно ракового способа разработки, когда фронтендер ебашит из пулёмёта новые роуты на сервере на каждую свою хотелку; но не вляется уникальной фичёй для JS, потому что есть тот же GraphQL, дающий DB-level доступ с аналогичной авторизацией-инкапсуляцией "на отъебись" — разница в том, что делать это же на JS пиздец как просто (и потом пиздец как сложно это поддерживать).
Из минусов:
1. Нода медленнее чем все компилируемые ЯП;
2. SSR/гидрация — для простых шаблонов JS не обязателен; для гидрации всё сложнее, у разных JS-фреймворков разная поддержка гидрации, для каких-то есть серверные решения на Go (Vugu, templ) и Rust (Leptos, Sycamore). Конечно, подразумевается, что вы уже ответили на вопрос "а нахуй это SSR нужно в 2025 году, когда есть Eleventy + Alpine?";
3. Простота деплоя — смишно, угу.

И шо ж получается? Что JS на бэкенде нужен для того, чтобы ебашить как из пулемёта говносайты, без проверок прав доступа, без валидации ввода и проёбанным кэшированием (пикрил эксперт по теме). Бонусом из этой модели разработки идёт призрачная возможность переиспользовать логику при SSR, на за пределами рендеринга почти статичных шаблонов через getStaticProps/getServerSideProps и client-only динамики риск выстрелить себе в ногу приближается к единице — то есть, всё это SSR сводится к шаблонизатору с JS-вставками, что можно реализовать на любом ЯП.

Ничо не забыл?

Ответы4186

403 Кб, 512x361
Рейтоните гитхабчик :3 4 23 июня, 23:01 4 3482898

https://github.com/xcontcom

За полтора месяца туда всякой фигни напихал.

Ответы29703030

5 24 июня, 04:13 5 3482955

Перекатывый обратно. Этот тред неудачным сразу получился

114 Кб, 688x688
6 24 июня, 06:42 6 3482970

>>3482898

7 24 июня, 09:05 7 3483011

>>3482678 (OP)
Главный вопрос тысячелетия - почему бекенд на ноде мёртв ?

Ответы3035

8 24 июня, 09:57 8 3483030

>>3482898
>https://github.com/xcontcom
>За полтора месяца туда всякой фигни напихал.
Хуяк-хуяк и в продакшен на Next.js умеешь? Нет? Нахуй ты нужен?

Ответы3276

9 24 июня, 10:04 9 3483035

>>3483011
>Главный вопрос тысячелетия - почему бекенд на ноде мёртв ?
Не мёртв, кто-то даже в СНГ такой хуйнёй занимается, но вакашек на Python/PHP на порядок больше. С развитием Go у ноды объективно очень мало ниш остаётся, даже бессхемовое API на GraphQL можно сделать на куче ЯП, нода не обязательна.

Ответы30413046

10 24 июня, 10:11 10 3483041

>>3483035
Можно ли перейти на другие стеки без потери зарплаты? Обычно везде требуют 3-5 лет опыта на go без исключений..

Ответы3130

11 24 июня, 10:19 11 3483046

>>3483035
Я бы смотрел на ноду как на средство быстрого прототипирования. Проверка гипотез, моки-хуеки, тому подобное говно. Язык более фичастый чем го, значит писанины ебанины меньше, но есть траблы с перформансом в части сборки мусора, в проде просадки могут делать плохие метрики.

Ответы30553065312631304186

12 24 июня, 10:36 12 3483055

>>3483046
Сычев, какой нахуй прототип. Выкладывай что есть и чтобы работало! Завтара важные люди будут смотреть.

13 24 июня, 10:50 13 3483065

>>3483046
>в проде просадки могут делать плохие метрики.
В 99% случаях просадки метрик из-за БД

Ответы31303134

14 24 июня, 11:52 14 3483126

>>3483046
>фичастый чем го,
Ну разрабы го в последние годы вроде очухались и начали добавлять фишки по чайной ложке

Ответы3132

15 24 июня, 12:00 15 3483130

>>3483041
>Можно ли перейти на другие стеки без потери зарплаты? Обычно везде требуют 3-5 лет опыта на go без исключений..
Мне вспоминаются вакансии "15 лет опыта разработки ядра Linux". Да, 95% HR-ов — бездарные хуилы и не способны набирать кодеров, потому требуют те требования, которые требуют все на рынке, но есть довольно много технически грамотных вакансий, где требуется что-то типа "at least 5 years in backend development" с очевидным предпочтением в сторону Go.
Нужно понимать, что как и на рынке поддержанных авто, как на рынке женщин 30+ 90% предложений — это "тухляк", который никто не разбирает, он висит месяцами и годам. Чтобы найти что-то годное, нужно перелопатить все эти вакашки. А ещё лучше зарекомендовать себя через другие каналы, чтобы безмозглую пизду-HR вообще в глаза не видеть. То есть, статьи, проекты на гитхаб с хорошей видимостью, холодные сообщения техническим спецам или участие в их проектах, и так далее — но, да, это всё долго и сложно.
Я тебе такой пример приведу: последний проект, на котором я был, компания получила благодаря тому, что наш шеф написал какому-то большому начальнику одной частной фирмы, и тот начальник откликнулся. Естественно, до получения отклика было разослано две сотни писем, на которые либо не ответили, либо послали нахуй, либо отреагировали без большого энтузиазма, мол "может быть, может быть".

>>3483046
>Я бы смотрел на ноду как на средство быстрого прототипирования. Проверка гипотез, моки-хуеки, тому подобное говно
JS на бэке в хуй не упёрлось именно для прототипирования, потому что есть PHP/Ruby/Python. А если у вас не прототип, то оно опять же в хуй не упёрлось, потому что есть Go, который медленнее в разработке, но намного надёжнее, даже чем TypeScript, и в том числе потому проще поддержка и доработка.

>>3483065
>В 99% случаях просадки метрик из-за БД
Если твоя хуйня дёргает БД на каждый чих, то да. Тот же Golang позволяет иметь in-process кэш с околонулевой стоимостью доступа, который сильно снижает необходимость читать БД по 20 раз на запрос. И нет, нода так не умеет, потому что нода не умеет выполнять десять воркеров в одном адресном пространстве (чтобы кэш был общим).

15 24 июня, 12:00 15 3483130

>>3483041
>Можно ли перейти на другие стеки без потери зарплаты? Обычно везде требуют 3-5 лет опыта на go без исключений..
Мне вспоминаются вакансии "15 лет опыта разработки ядра Linux". Да, 95% HR-ов — бездарные хуилы и не способны набирать кодеров, потому требуют те требования, которые требуют все на рынке, но есть довольно много технически грамотных вакансий, где требуется что-то типа "at least 5 years in backend development" с очевидным предпочтением в сторону Go.
Нужно понимать, что как и на рынке поддержанных авто, как на рынке женщин 30+ 90% предложений — это "тухляк", который никто не разбирает, он висит месяцами и годам. Чтобы найти что-то годное, нужно перелопатить все эти вакашки. А ещё лучше зарекомендовать себя через другие каналы, чтобы безмозглую пизду-HR вообще в глаза не видеть. То есть, статьи, проекты на гитхаб с хорошей видимостью, холодные сообщения техническим спецам или участие в их проектах, и так далее — но, да, это всё долго и сложно.
Я тебе такой пример приведу: последний проект, на котором я был, компания получила благодаря тому, что наш шеф написал какому-то большому начальнику одной частной фирмы, и тот начальник откликнулся. Естественно, до получения отклика было разослано две сотни писем, на которые либо не ответили, либо послали нахуй, либо отреагировали без большого энтузиазма, мол "может быть, может быть".

>>3483046
>Я бы смотрел на ноду как на средство быстрого прототипирования. Проверка гипотез, моки-хуеки, тому подобное говно
JS на бэке в хуй не упёрлось именно для прототипирования, потому что есть PHP/Ruby/Python. А если у вас не прототип, то оно опять же в хуй не упёрлось, потому что есть Go, который медленнее в разработке, но намного надёжнее, даже чем TypeScript, и в том числе потому проще поддержка и доработка.

>>3483065
>В 99% случаях просадки метрик из-за БД
Если твоя хуйня дёргает БД на каждый чих, то да. Тот же Golang позволяет иметь in-process кэш с околонулевой стоимостью доступа, который сильно снижает необходимость читать БД по 20 раз на запрос. И нет, нода так не умеет, потому что нода не умеет выполнять десять воркеров в одном адресном пространстве (чтобы кэш был общим).

Показать весь текст
Ответы316231764186

16 24 июня, 12:01 16 3483132

>>3483126
>Ну разрабы го в последние годы вроде очухались и начали добавлять фишки по чайной ложке
Ну там грамотные архитекторы работают, а не Гвидо, которые в 90-е тащил прямо всё подряд в ЯП. Golang как раз отличается простотой языка, а простота сама по себе является преимуществом.

Ответы31393142

17 24 июня, 12:03 17 3483134

>>3483065
Просадки отдельных запросов - да. Както раз стресс-тестил графкульную федерацию на ноде, там прямо в htop было видно как сначала при полной загрузке cpu растет выделение памяти, потом вступает в дело gc и загрузка cpu падает почти до нуля, и через некоторое время снова полная загрузка проца и памяти выделено в разы меньше. Тру стори!

18 24 июня, 12:07 18 3483139

>>3483132
>простотой языка, а простота сама по себе является преимуществом.
Такой простой,что пакет для работы с массивами и его производных добавили только недавно,а раньше надо было городить кучу кода.
И то, не добавили функции reduce filter map ,потому что один и создателей сказал,что НЕ НУЖНО

Ответы31903477

19 24 июня, 12:12 19 3483142

>>3483132
Простота хуже воровства.

20 24 июня, 12:32 20 3483162

>>3483130
>Тот же Golang позволяет иметь in-process кэш с околонулевой стоимостью доступа
В Nodejs(ORM) позволяет иметь in-process кэш с околонулевой стоимостью доступа

Ответы3204

21 24 июня, 12:41 21 3483170

>>348313
>PHP/Ruby/Python
Ну попробуй реалтайм сделать

Ответы31823204

22 24 июня, 12:56 22 3483176

>>3483130
>PHP/Ruby/Python
Первые два совсем некрота. Ты бы ещё Perl предложил. Петухон получше, но до выразительности JS ему далеко.

Ответы317731863204

23 24 июня, 12:57 23 3483177

>>3483176
Круды клепать самое то

Ответы3180

24 24 июня, 13:05 24 3483180

>>3483177
Чел, JS это уже lingua franca на котором говорят буквально все. Пыхера еще найти можно, с рубистами потяжелее, а жсеров бери не хочу. Кому взбредет в голову изучать говна мамонтов, чтобы прототипировать не снимая свитер в режиме забега?

Ответы3204

25 24 июня, 13:07 25 3483182

>>3483170
В симфони "реалтайм" из коробки, чел. Через mercure и symfony messenger работает. Не надо ниче делать. только бандл установить официальный. Даже настраивать не надо все само через flex настроится.

26 24 июня, 13:19 26 3483186

>>3483176
JS последние версии ниочем,нет важных улучшений

Ответы3195

27 24 июня, 13:25 27 3483190

>>3483139
>Такой простой,что пакет для работы с массивами и его производных добавили только недавно,а раньше надо было городить кучу кода.
>И то, не добавили функции reduce filter map ,потому что один и создателей сказал,что НЕ НУЖНО
Я не понимаю, до чего ты доебался. Что нельзя сделать в Go без filter/map/reduce?
Допустим, ты сделал свои filter/map:
func filter[T any](slice []T, f func(T) bool) []T
func mapSlice[T, U any](slice []T, f func(T) U) []U

Для чего? Чтобы сделать композицию плана numbers.map().filter().reduce(). Окей, давай сделаем:
numbers := []int{1, 2, 3, 4, 5}
evenSquaredNumbers := mapSlice(filter(numbers, func(n int) bool {
return n%2 == 0
}), func(n int) int {
return n n
})
fmt.Println(evenSquaredNumbers) // [4 16]

Но то же самое можно написать как:
numbers := []int{1, 2, 3, 4, 5}
evenSquaredNumbers := []int{}
for _, n := range numbers {
if n%2 == 0 {
evenSquaredNumbers = append(evenSquaredNumbers, n n)
}
}
fmt.Println(evenSquaredNumbers) // [4 16]

Шо ж тогда получается? Что обычные Тьюринговые пошаговые алгоритмы хуево сочетаются через filter/map/reduce. Ты вот в курсе. что сделали по итогу в Common Lisp?
(loop for n in '(1 2 3 4 5)
when (evenp n)
collect (* n n))

Ой, шо за хуйня, как-то оно подозрительно похоже на подход Go?
Да, если взять какую-нибудь Clojure, то там больше упора на filter/map/reduce, но там, с ихними персистентными типами данных и параллелизацией через всякие pmap, особенности этих функций конкретно используются, они не просто "потому что удобнее" применяются.

27 24 июня, 13:25 27 3483190

>>3483139
>Такой простой,что пакет для работы с массивами и его производных добавили только недавно,а раньше надо было городить кучу кода.
>И то, не добавили функции reduce filter map ,потому что один и создателей сказал,что НЕ НУЖНО
Я не понимаю, до чего ты доебался. Что нельзя сделать в Go без filter/map/reduce?
Допустим, ты сделал свои filter/map:
func filter[T any](slice []T, f func(T) bool) []T
func mapSlice[T, U any](slice []T, f func(T) U) []U

Для чего? Чтобы сделать композицию плана numbers.map().filter().reduce(). Окей, давай сделаем:
numbers := []int{1, 2, 3, 4, 5}
evenSquaredNumbers := mapSlice(filter(numbers, func(n int) bool {
return n%2 == 0
}), func(n int) int {
return n n
})
fmt.Println(evenSquaredNumbers) // [4 16]

Но то же самое можно написать как:
numbers := []int{1, 2, 3, 4, 5}
evenSquaredNumbers := []int{}
for _, n := range numbers {
if n%2 == 0 {
evenSquaredNumbers = append(evenSquaredNumbers, n n)
}
}
fmt.Println(evenSquaredNumbers) // [4 16]

Шо ж тогда получается? Что обычные Тьюринговые пошаговые алгоритмы хуево сочетаются через filter/map/reduce. Ты вот в курсе. что сделали по итогу в Common Lisp?
(loop for n in '(1 2 3 4 5)
when (evenp n)
collect (* n n))

Ой, шо за хуйня, как-то оно подозрительно похоже на подход Go?
Да, если взять какую-нибудь Clojure, то там больше упора на filter/map/reduce, но там, с ихними персистентными типами данных и параллелизацией через всякие pmap, особенности этих функций конкретно используются, они не просто "потому что удобнее" применяются.

Показать весь текст
Ответы32084354

28 24 июня, 13:31 28 3483195

>>3483186
Никто не запрещает втаскивать в проект фичи на стадии пропозала. На свой страх и риск, конечно, но кого это останавливает?

Ответы3224

29 24 июня, 13:42 29 3483204

>>3483162
>В Nodejs(ORM) позволяет иметь in-process кэш с околонулевой стоимостью доступа
Что такое Nodejs(ORM)?

>>3483176
>Первые два совсем некрота. Ты бы ещё Perl предложил.
Жывее всех жывых — просто посмотри, сколько вакашек на PHP./

>Петухон получше, но до выразительности JS ему далеко.
Ты ебанулся, дядя? У тебя list comprehension какие в JS есть? Переопределения операторов? Дескрипторы свойств? Генераторы недавно завезли — они в питоне есть с девяностых годов. Какая нахуй "выразительность"? В чём она выражается?

>>3483180
>JS это уже lingua franca на котором говорят буквально все. Пыхера еще найти можно, с рубистами потяжелее, а жсеров бери не хочу
Ни питон, ни JS в хуй ни упёрлись никому в отрыве от предметки. Особенно это касается питона, где предметка бывает очень сложной. То есть, на собесе по питону тебя с ходу спросят "какой метод обратного распространения ошибки вы бы предпочли для регрессивного предсказания?" — и хоть ты все PEP выучи наизусть, ты не сможешь ответить на этот вопрос, потому что, ещё раз, сам ЯП никому не нужен, этот язык — дерьмо говна, он нужен лишь как дёргалка сторонних биллиотек на C/C++.

JS — это такое же дерьмо говна, и спрашивать тебя будут по GUI фреймворкам или организации сервисов на бэке. Я проходил собесы — именно это меня и спрашивали, ни одного вопроса не было про "для каких случаев вы предпочтёте асинхронные функции?", нет, только прикладнуха, сторонние либы, фреймворки. Ну и софт-хуйня всякая, типа "как вы будете решать проблему с заказчиком?".

>>3483170
>>PHP/Ruby/Python
>Ну попробуй реалтайм сделать
Какой в пизду петушиный рилтайм вы там собрались делать на языке с GC? Мне аж интересно стало. Наверное, это что-то из оперы "у нас хайлоад система на PHP, обрабатываем 100 запросов в секунду"?

Ответы320832123567

30 24 июня, 13:45 30 3483208

>>3483190
>>3483204
>Жывее всех жывых — просто посмотри, сколько вакашек на PHP./
Битрикс,вордпресс и прочие

Ответы3210

31 24 июня, 13:48 31 3483210

>>3483208
и часто есть вакансии,где надо переписать с пхп на го

32 24 июня, 13:51 32 3483212

>>3483204
>тебя list comprehension какие в JS есть?
Lodash chain в тыщи раз пижже
>Переопределения операторов?
Частично, через well known symbols
>Дескрипторы свойств?
Рефлексия во все поля
>Генераторы недавно завезли
10 лет это недавно,лол. Зато async/await завезли быстрее и типизацию

Ответы3224

33 24 июня, 14:11 33 3483224

>>3483195
>Никто не запрещает втаскивать в проект фичи на стадии пропозала. На свой страх и риск, конечно, но кого это останавливает?
А что там втаскивать? Из языка фичи нужно УБИРАТЬ и причёсывать старые, а не втаскивать новую хуйню. Там до сих пор целых чисел нет я языке, я ебал. Там недавно НАКОНЕЦ добавили ассоциативные массивы. Не рандомная хуйня на обычных объектах, а настоящий массив, без глобальной перезаписи цепей прототипов сформированным злоумышленником JSON-ом.

>>3483212
>>тебя list comprehension какие в JS есть?
>Lodash chain в тыщи раз пижже
Чем пизже? Тем, что ты забыл ".value()" и получил LodashWrapper{...} вместо значения?

>>Переопределения операторов?
>Частично, через well known symbols
Чивоблять? Каким образом символы помогают переопределить поведение оператора "+" для мамссива?

>Рефлексия во все поля
Reflect, Proxy, Object.getOwnPropertyDescriptors, Object.defineProperty — это полный список всех инструментов хуков-интроспекции в JS. Мне нужно рассказывать, что есть в питоне, или ты сам погуглишь? Я просто заебусь список искать, потому что в питоне есть это всё, и ещё в пять раз больше других фич.

>>Генераторы недавно завезли
>10 лет это недавно,лол. Зато async/await завезли быстрее и типизацию
.В питоне генераторы больше 30 лет существуют. Типизации в ECMAScript нет до сих пор. Async/await в JS появился с ECMAScript 2017, в питоне оно было ещё в Tornado на генераторах с версии 2.1 (2011 год).

Ответы32623567

34 24 июня, 14:15 34 3483228

А вы заметили что в последний год,код в этом треде почти не обсуждают?

Ответы3244

35 24 июня, 14:37 35 3483244

>>3483228
Любители повкатываться ушли отсюда к менторам

7 Кб, 225x225
36 24 июня, 14:50 36 3483262

>>3483224
>ты забыл ".value()" и получил LodashWrapper{...} вместо значения
Твоё ебало когда в петухон завезли типизацию, но не научили ей пользоваться.

Ответы3330

37 24 июня, 15:23 37 3483276

>>3483030
>Next.js
Кто это?

Ответы3330

38 24 июня, 16:49 38 3483330

>>3483262
>Твоё ебало когда в петухон завезли типизацию, но не научили ей пользоваться.
В питоне код обычно понятен без типизации. То есть, не нужно превозмогать для того, чтобы вызвать примитивную функцию.

>>3483276
>>Next.js
>Кто это?

Next.js — это популярный фреймворк для разработки веб-приложений на основе React. Он упрощает создание быстрых, масштабируемых и SEO-оптимизированных приложений. Основные особенности:
• Серверный и клиентский рендеринг: Поддерживает SSR (Server-Side Rendering), SSG (Static Site Generation) и CSR (Client-Side Rendering) для гибкости и оптимизации скорости.
• Файловая маршрутизация: Страницы создаются автоматически на основе структуры файлов в папке pages или app (в новых версиях).
• API Routes: Позволяет создавать серверные API в рамках приложения.
• Автоматическая оптимизация: Включает оптимизацию изображений, шрифтов и производительности.
• Поддержка TypeScript и CSS: Встроенная поддержка TypeScript, CSS-модулей и популярных библиотек стилей.
• Быстрая разработка: Горячая перезагрузка и встроенные инструменты для упрощения разработки.
Next.js часто используется для создания статических сайтов, e-commerce платформ и сложных веб-приложений. Последняя версия на июнь 2025 — Next.js 15, с улучшениями в рендеринге и производительности.

Ответы3374

24 Кб, 564x564
39 24 июня, 18:53 39 3483374

>>3483330
>В питоне код обычно понятен без типизации

40 24 июня, 19:06 40 3483381

Продвигаясь к заветной сотыге через /pr/, вы встретили тест на icq. Вычеркните лишнее:
- jestjs
- nest.js
- next.js
- nuxt.js

Ответы338833903449

41 24 июня, 19:23 41 3483388

>>3483381
nest.js

42 24 июня, 19:29 42 3483390

>>3483381
nuts.js

43 24 июня, 20:49 43 3483449

>>3483381
next.js очевидно же, ведь он разработан meta - запрещённой в России экстремистской организацией

44 24 июня, 21:19 44 3483464

Есть смысол вкатываться в next.js или это очередной jqwery, в который ты сегодня вкатываешься, а завтра им уже никто не пользуется и у тебя мозги засраты мусором?

Ответы34793694

45 24 июня, 21:34 45 3483477

>>3483139
>You can just use a for loop, which is more flexible in general. I am not being facetious; the filter operation tends to obscure allocation and overhead, and also tends to be overused. Although I may be in the minority, I do not believe this would be a wise addition to the standard library.

Ответы3480

46 24 июня, 21:38 46 3483479

>>3483464
>Есть смысол вкатываться в next.js или это очередной jqwery, в который ты сегодня вкатываешься, а завтра им уже никто не пользуется и у тебя мозги засраты мусором?
Да какая нахуй разница? Во что бы ты не вкатися — завтра это будет мусор. React уже два раза под корень переписывали.

Ответы3693

47 24 июня, 21:40 47 3483480

>>3483477
>>You can just use a for loop, which is more flexible in general. I am not being facetious; the filter operation tends to obscure allocation and overhead, and also tends to be overused. Although I may be in the minority, I do not believe this would be a wise addition to the standard library.
Я пояснил всё то же самое, только развёрнуто и на конкретных примерах. Я-то понимаю, что сей чел имел в виду. но простому крокодилу нихуя не понятно, особенно каргокультисту из функциональщины.

48 25 июня, 01:09 48 3483567

>>3483204
>Что такое Nodejs(ORM)?
Я бы начал с того, что такое
>in process кэш
В node.js нет такого понятия.

>У тебя list comprehension какие в JS есть?
Во-первых, это уебищный нечитаемый синтаксис. Во-вторых, а нахуя они вообще нужны, когда есть map/filter/reduce?

>Переопределения операторов?
В питоне че ты там переопределяешь?

>Дескрипторы свойств?
Ты говна поел?

>Какая нахуй "выразительность"? В чём она выражается?
Она заключается в том, что вместо вот такой хуйни
[item for row in matrix for item in row]
я напишу просто
array.flat()

Уловил разницу?

>Особенно это касается питона, где предметка бывает очень сложной
Кек, крудошлепство на джанго или ноутбуки на анаконде - это пиздец как сложно, верю, проверяй.

>и спрашивать тебя будут по GUI фреймворкам или организации сервисов на бэке
Еще раз кекаю с дауна. В нормальной конторе собес начнется с того, что тебя попросят склонировать объект, после того как собеседующий поймет, что ты не знаешь о существовании дескрипторов свойств в джс, собес закончится.

>нет, только прикладнуха, сторонние либы, фреймворки
Так ты просто додик-формошлеп. Зачем тебя про асинхронщину спрашивать, если ты банально не понимаешь, как объекты устроены? Ты оператор npm install.

>Какой в пизду петушиный рилтайм вы там собрались делать на языке с GC?
Ну давай посмотрим как ты чат на питоне запилишь. А, у тебя скриптовая хуйня, которая интерпретатор на каждый запрос запускает, поняяяятно.

>>3483224
>Там до сих пор целых чисел нет я языке, я ебал.
А в питоне-то, в питоне-то они конечно есть? Ну и завали кукарекалку

>Там недавно НАКОНЕЦ добавили ассоциативные массивы.
Какие блять ассоциативные массивы? Ты под наркотиками какими-то сюда пишешь, ебанько?

>Я просто заебусь список искать, потому что
его нет, лол.

>В питоне генераторы больше 30 лет существуют
А параллельные вычисления завезли в питон уже Многопроцессность? ;)

>Типизации в ECMAScript нет до сих пор
Ебать долбоеб, она там есть с 1999 года, с момента того, как был добавлен jsdoc

48 25 июня, 01:09 48 3483567

>>3483204
>Что такое Nodejs(ORM)?
Я бы начал с того, что такое
>in process кэш
В node.js нет такого понятия.

>У тебя list comprehension какие в JS есть?
Во-первых, это уебищный нечитаемый синтаксис. Во-вторых, а нахуя они вообще нужны, когда есть map/filter/reduce?

>Переопределения операторов?
В питоне че ты там переопределяешь?

>Дескрипторы свойств?
Ты говна поел?

>Какая нахуй "выразительность"? В чём она выражается?
Она заключается в том, что вместо вот такой хуйни
[item for row in matrix for item in row]
я напишу просто
array.flat()

Уловил разницу?

>Особенно это касается питона, где предметка бывает очень сложной
Кек, крудошлепство на джанго или ноутбуки на анаконде - это пиздец как сложно, верю, проверяй.

>и спрашивать тебя будут по GUI фреймворкам или организации сервисов на бэке
Еще раз кекаю с дауна. В нормальной конторе собес начнется с того, что тебя попросят склонировать объект, после того как собеседующий поймет, что ты не знаешь о существовании дескрипторов свойств в джс, собес закончится.

>нет, только прикладнуха, сторонние либы, фреймворки
Так ты просто додик-формошлеп. Зачем тебя про асинхронщину спрашивать, если ты банально не понимаешь, как объекты устроены? Ты оператор npm install.

>Какой в пизду петушиный рилтайм вы там собрались делать на языке с GC?
Ну давай посмотрим как ты чат на питоне запилишь. А, у тебя скриптовая хуйня, которая интерпретатор на каждый запрос запускает, поняяяятно.

>>3483224
>Там до сих пор целых чисел нет я языке, я ебал.
А в питоне-то, в питоне-то они конечно есть? Ну и завали кукарекалку

>Там недавно НАКОНЕЦ добавили ассоциативные массивы.
Какие блять ассоциативные массивы? Ты под наркотиками какими-то сюда пишешь, ебанько?

>Я просто заебусь список искать, потому что
его нет, лол.

>В питоне генераторы больше 30 лет существуют
А параллельные вычисления завезли в питон уже Многопроцессность? ;)

>Типизации в ECMAScript нет до сих пор
Ебать долбоеб, она там есть с 1999 года, с момента того, как был добавлен jsdoc

Показать весь текст
Ответы37463772

120 Кб, 702x467
49 25 июня, 06:56 49 3483645

Аноны, я в JS вообще ни в зуб ногой, но по работе хочу сделать расширение для Хрома, которое копирует содержимое определенных элементов в буфер обмена и отдает его обратно. Чатгпт мне выдал код, он работает на Линуксе, но на Вин расширение падает в ошибку "NotAllowedError: Failed to execute 'writeText' on 'Clipboard': Document is not focused."
Сам скрипт тут https://pastebin.com/fGhxGyXp.

Что можно изменить, а? Этот Javascript охуенно сложная хуйня оказывается.

Ответы3657

50 25 июня, 07:35 50 3483657

>>3483645
А ты свою чатжипиту дальше спрашивай.

51 25 июня, 09:12 51 3483693

>>3483479
вот поэтому угараю каждый раз с вас фрейморщиксов. всегда писал на чистом js и никаких проблем. хуйней страдаете как дети

Ответы36953800

52 25 июня, 09:16 52 3483694

>>3483464
Хули там вкатываться, если знаешь реакт то почитать доки про app router и нужные компоненты и можно начинать говнокодить

Ответы4352

53 25 июня, 09:22 53 3483695

>>3483693
Твои тыща строк это не писал, а так, пописывал.

54 25 июня, 10:54 54 3483746

37 Кб, 531x73324 Кб, 524x542

>>3483567
> бы начал с того, что такое
>>in process кэш
>В node.js нет такого понятия.
Так я об этом тебе и пишу: нода — бесполезный мусор, в ней ничего нету из того, что есть в норм инструментах/языках.

>Во-первых, это уебищный нечитаемый синтаксис. Во-вторых, а нахуя они вообще нужны, когда есть map/filter/reduce?
Согласен, мне тоже не нравятся list comprehension в питоне. Правда, лямбды в питоне тоже говно, и в JS они были заметно хуже до ES6.
Что, однако, не отменяет того факта, что for range в Go выглядит намного лучше, чем всё это вместе взятое.

>В питоне че ты там переопределяешь?
Пикрил. Это не весь список, есть ещё контейнерные операции.

>>Дескрипторы свойств?
>Ты говна поел?
До какого-то стандарта это был единственный способ перехвата доступа к JS. Потом появилось Proxy. Полное проксирование было в питоне с версии 2.0.

>Она заключается в том, что вместо вот такой хуйни
>[item for row in matrix for item in row]
>я напишу просто
>array.flat()
Если тебе нужно будет немножко поменять реализацию flat, то ты просто возьмёшь за щеку. Знаешь как выглядит реализация функции flat на JS?
function customFlat(array, depth = 1) {
if (depth < 0) {
return array;
}

return array.reduce((flattened, current) => {
if (Array.isArray(current) && depth > 0) {
return flattened.concat(customFlat(current, depth - 1));
}
return flattened.concat(current);
}, []);
}

Теперь как это выглядит в питухоне на list comprehension:
def customFlat(lst, depth=1):
if depth == 0:
return lst
return [
item
for sublist in lst
for item in (
flatten_depth(sublist, depth - 1)
if isinstance(sublist, list)
else [sublist]
)
]

Дохуя сложнее? Чот я сомневаюсь, что код на reduce-concat ты прямо с ходу понял.

54 25 июня, 10:54 54 3483746

37 Кб, 531x73324 Кб, 524x542

>>3483567
> бы начал с того, что такое
>>in process кэш
>В node.js нет такого понятия.
Так я об этом тебе и пишу: нода — бесполезный мусор, в ней ничего нету из того, что есть в норм инструментах/языках.

>Во-первых, это уебищный нечитаемый синтаксис. Во-вторых, а нахуя они вообще нужны, когда есть map/filter/reduce?
Согласен, мне тоже не нравятся list comprehension в питоне. Правда, лямбды в питоне тоже говно, и в JS они были заметно хуже до ES6.
Что, однако, не отменяет того факта, что for range в Go выглядит намного лучше, чем всё это вместе взятое.

>В питоне че ты там переопределяешь?
Пикрил. Это не весь список, есть ещё контейнерные операции.

>>Дескрипторы свойств?
>Ты говна поел?
До какого-то стандарта это был единственный способ перехвата доступа к JS. Потом появилось Proxy. Полное проксирование было в питоне с версии 2.0.

>Она заключается в том, что вместо вот такой хуйни
>[item for row in matrix for item in row]
>я напишу просто
>array.flat()
Если тебе нужно будет немножко поменять реализацию flat, то ты просто возьмёшь за щеку. Знаешь как выглядит реализация функции flat на JS?
function customFlat(array, depth = 1) {
if (depth < 0) {
return array;
}

return array.reduce((flattened, current) => {
if (Array.isArray(current) && depth > 0) {
return flattened.concat(customFlat(current, depth - 1));
}
return flattened.concat(current);
}, []);
}

Теперь как это выглядит в питухоне на list comprehension:
def customFlat(lst, depth=1):
if depth == 0:
return lst
return [
item
for sublist in lst
for item in (
flatten_depth(sublist, depth - 1)
if isinstance(sublist, list)
else [sublist]
)
]

Дохуя сложнее? Чот я сомневаюсь, что код на reduce-concat ты прямо с ходу понял.

Показать весь текст
Ответы4256

37,3 Мб, 26959x26290
55 25 июня, 11:32 55 3483772

>>3483567
>Кек, крудошлепство на джанго или ноутбуки на анаконде - это пиздец как сложно, верю, проверяй.
Пикрил иерархия классов Django 5.2.3 пикрил. Открывать с осторожностью, на мобилках лучше вообще не открывать.
Забавно, что именно американские стартапы угорают по джанге — остальной мир предпочитает минимизировать свой контакт с этим пиздецом.

>В нормальной конторе собес начнется с того, что тебя попросят склонировать объект, после того как собеседующий поймет, что ты не знаешь о существовании дескрипторов свойств в джс, собес закончится.
Да, однажды что-то такое спросили. Я ХЗ, с хуя ли ты делаешь вывод про "не знаешь о существовании дескрипторов свойств", если в сообщении, на которое ты отвечаешь, я про них написал. Дескрипторы свойств обычно предпочитают не копировать, и я бы скорее предпочёл отпиздить линейкой по рукам того, кто введёт в проект клонирование объектов с их дескрипторами, потому что дескрипторы обычно опираются на внешний контекст, который не входит в состав клонируемого объекта.
И, опять же, индустрия уже давно уходит от дескрипторов в сторону более чистого Proxy, который явно разделяет данные и наблюдение за ними.

>Так ты просто додик-формошлеп. Зачем тебя про асинхронщину спрашивать, если ты банально не понимаешь, как объекты устроены? Ты оператор npm install.
Я тебе про питон рассказывал. В JS про прикладнуху спрашивают реже потому, что её там намного меньше. Но всё равно много. В самом ЯП там нехуй изучать, любое профессиональное развитие что в JS, что в питоне идёт только в прикладнуху. Если тебя на собесах спрашивают только про устройство ЯП, то, возможно, ты даже до "додика-формошлёпа" ещё не дорос.

>Ну давай посмотрим как ты чат на питоне запилишь. А, у тебя скриптовая хуйня, которая интерпретатор на каждый запрос запускает, поняяяятно.
Как же ты охуеешь, когда узнаешь, что мессенжеры в Discord и Instagram были изначально написаны на Python.
То, что вы описываете, не называется "real time", по крайней мере в общепринятом словаре. Так-то для кого-то ответ за 5 минут может быть "real time". Общепринятый real time подразумевает, что система никогда не превышает некоторую заданную задержку в долю секунду, даже при потере связи (система продолжает реагировать на события с учётом потери связи).
Всё это к простым месенжерам, естественно, не относится, это просто системы с низкой задержкой, которые могут и через секунду, и через две прислать сообщения, и всем будет похую.

>>Там до сих пор целых чисел нет я языке, я ебал.
>А в питоне-то, в питоне-то они конечно есть? Ну и завали кукарекалку
У тебя гугл отключили и бесплатные лимиты по всем нейросеткам исчерпаны?

>Какие блять ассоциативные массивы? Ты под наркотиками какими-то сюда пишешь, ебанько?
Map(), WeakMap(). Точно токены кончились.

>А параллельные вычисления завезли в питон уже Многопроцессность?
В питоне с параллельными вычислениями ситуация ровно такая же хуёвая, как и в JS. В том же ML по сути дёргается внешний многопоточный код на C/C++ — с таким же успехом его можно было запускать в отдельном процессе (как это делают в Elixir).

>Ебать долбоеб, она там есть с 1999 года, с момента того, как был добавлен jsdoc
JSDoc — это школьная поделка (community-driven), которая ни в одном стандарте не принята.

37,3 Мб, 26959x26290
55 25 июня, 11:32 55 3483772

>>3483567
>Кек, крудошлепство на джанго или ноутбуки на анаконде - это пиздец как сложно, верю, проверяй.
Пикрил иерархия классов Django 5.2.3 пикрил. Открывать с осторожностью, на мобилках лучше вообще не открывать.
Забавно, что именно американские стартапы угорают по джанге — остальной мир предпочитает минимизировать свой контакт с этим пиздецом.

>В нормальной конторе собес начнется с того, что тебя попросят склонировать объект, после того как собеседующий поймет, что ты не знаешь о существовании дескрипторов свойств в джс, собес закончится.
Да, однажды что-то такое спросили. Я ХЗ, с хуя ли ты делаешь вывод про "не знаешь о существовании дескрипторов свойств", если в сообщении, на которое ты отвечаешь, я про них написал. Дескрипторы свойств обычно предпочитают не копировать, и я бы скорее предпочёл отпиздить линейкой по рукам того, кто введёт в проект клонирование объектов с их дескрипторами, потому что дескрипторы обычно опираются на внешний контекст, который не входит в состав клонируемого объекта.
И, опять же, индустрия уже давно уходит от дескрипторов в сторону более чистого Proxy, который явно разделяет данные и наблюдение за ними.

>Так ты просто додик-формошлеп. Зачем тебя про асинхронщину спрашивать, если ты банально не понимаешь, как объекты устроены? Ты оператор npm install.
Я тебе про питон рассказывал. В JS про прикладнуху спрашивают реже потому, что её там намного меньше. Но всё равно много. В самом ЯП там нехуй изучать, любое профессиональное развитие что в JS, что в питоне идёт только в прикладнуху. Если тебя на собесах спрашивают только про устройство ЯП, то, возможно, ты даже до "додика-формошлёпа" ещё не дорос.

>Ну давай посмотрим как ты чат на питоне запилишь. А, у тебя скриптовая хуйня, которая интерпретатор на каждый запрос запускает, поняяяятно.
Как же ты охуеешь, когда узнаешь, что мессенжеры в Discord и Instagram были изначально написаны на Python.
То, что вы описываете, не называется "real time", по крайней мере в общепринятом словаре. Так-то для кого-то ответ за 5 минут может быть "real time". Общепринятый real time подразумевает, что система никогда не превышает некоторую заданную задержку в долю секунду, даже при потере связи (система продолжает реагировать на события с учётом потери связи).
Всё это к простым месенжерам, естественно, не относится, это просто системы с низкой задержкой, которые могут и через секунду, и через две прислать сообщения, и всем будет похую.

>>Там до сих пор целых чисел нет я языке, я ебал.
>А в питоне-то, в питоне-то они конечно есть? Ну и завали кукарекалку
У тебя гугл отключили и бесплатные лимиты по всем нейросеткам исчерпаны?

>Какие блять ассоциативные массивы? Ты под наркотиками какими-то сюда пишешь, ебанько?
Map(), WeakMap(). Точно токены кончились.

>А параллельные вычисления завезли в питон уже Многопроцессность?
В питоне с параллельными вычислениями ситуация ровно такая же хуёвая, как и в JS. В том же ML по сути дёргается внешний многопоточный код на C/C++ — с таким же успехом его можно было запускать в отдельном процессе (как это делают в Elixir).

>Ебать долбоеб, она там есть с 1999 года, с момента того, как был добавлен jsdoc
JSDoc — это школьная поделка (community-driven), которая ни в одном стандарте не принята.

Показать весь текст

56 25 июня, 12:07 56 3483800

>>3483693
>вот поэтому угараю каждый раз с вас фрейморщиксов. всегда писал на чистом js и никаких проблем. хуйней страдаете как дети
С кого "вас"? Дядя, я даже в проекте на Vue половину кода писал на простом JS, без "реактивности". Там ещё нужно постараться не дать фреймворку всунуть свою реактивность туда, где его не просят, а то он лезет во все щёлки, замедляя работу без толку.
Перед тем, как уйти из фронта, я угорал по Svelte v3, ны нынче уже есть такие штуки, как Alpine.js и Petite vue, которые куда угодно можно встроить — всё-такие ебаться со сложными взаимосвязями на сухую не очень приятно. Допустим, тот же Prosemirror использует модель реактивности аля React, то есть, построение всего VDOM одним проходом и синхронизация DOM по нему — и какой тут смысл выёбываться "зато у нас не React"?

57 25 июня, 18:57 57 3484186

>>3482729
> 1. Нода быстрая — да, но не быстрее Go/Java/C#;
Быстрее, если не писать говнокод
> 1. Нода медленнее чем все компилируемые ЯП
Медленнее на 20-130% по сравнению с С, это ни о чем
> 3. Простота деплоя — смишно, угу.
Писать в три-пять раз быстрее это пиздато, потом можно переписать на с/zig/rust, а можно и хуй забить.

>>3483046
>но есть траблы с перформансом в части сборки мусора
Только если писать как индус. У меня gc на беке вообще не работает, например

>>3483130
>JS на бэке в хуй не упёрлось именно для прототипирования, потому что есть PHP/Ruby/Python.
Чего нахуй? Прототипы пишут фулстек, нахуй нужно два языка когда прототип пишешь? Обезумел совсем?

Ответы42484356

58 25 июня, 20:24 58 3484248

>>3484186
>> 1. Нода быстрая — да, но не быстрее Go/Java/C#;
>Быстрее, если не писать говнокод
Напомни мне, сколько ядер процессора в норме может нода использовать? А то я забыл что-то.

>Медленнее на 20-130% по сравнению с С, это ни о чем
Ты пизданулся? Откуда инфа? Даже нейросетка такую хуйню не сморозит. Пять-десять раз в среднем не хотел (по памяти и ЦП)?
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/node-gcc.html

>Писать в три-пять раз быстрее это пиздато, потом можно переписать на с/zig/rust, а можно и хуй забить.
В три-пять раз быстрее, чем что? Чем Rust? У меня нет других предположений по поводу того, что может быть настолько медленным в разработке.

>Чего нахуй? Прототипы пишут фулстек, нахуй нужно два языка когда прототип пишешь? Обезумел совсем?
Если так доебаться, то HTML — это тоже ЯП, и CSS. Это што ж получается, три языка нужно знать? Хотя, я уверен, что ты бездарная хуила (как и все фулстэкеры), которая флексбоксы не умеет правильно организовывать (inb4: нахуй мне знать CSS, когда есть Bootstrap?).
Прототип в смысле "кусок говна, внешне похожий на будущий продукт" можно захуярить на Python + strawberry + GraphQL с доступом к БД без какой-либо авторизации и валидации ввода — это будет мало отличаться от духа CRUD-ов на TypeScript + Zod, и больше похоже по духу на express-graphql.
Честно говоря, я в настолько хуёвых проектах никогда не работал, так что тут моя компетентность может быть недостаточной.

Ответы42594331

59 25 июня, 20:46 59 3484256

>>3483746
>Так я об этом тебе и пишу: нода — бесполезный мусор
Так я с этим и не спорил, я тебе сказал, что ты отвечаешь додику, который вообще не понимает, что такое нода.

>for range в Go выглядит намного лучше, чем всё это вместе взятое.
Я не знаю, как выглядит
>for range в Go

>for range в Go
Это недоразумение. В питоне все - объект. Ты в JS можешь также
для любого объекта переопределить valueOf и получишь такую же псевдоперегрузку.

>До какого-то стандарта это был единственный способ перехвата доступа к JS.
При чем здесь перехват? Перехват - задача аксессоров (позже - прокси). Задача дескрипторов - предотвратить перезапись/удаление свойства, которое положит систему, стоимостью 6,000 рублей в секунду.

>Если тебе нужно будет немножко поменять реализацию flat
Мне не нужно менять реализацию flat. Любой компрехеншн реализуется той илиной комбинацией map/flat/reduce с аналогичной алгоритмической сложностью.

>Пикрил иерархия классов Django 5.2.3 пикрил.
Ну я могу тебе еще более уебищную иерархию высрать. Дальше-то что? Типа крутость в сложности или что? Ну программни на брэйнфаке UI для браузера, че.

>Дескрипторы свойств обычно предпочитают не копировать, и я бы скорее предпочёл отпиздить линейкой по рукам того, кто введёт в проект клонирование объектов с их дескрипторами
Удачи реализовать аналог тильды

>Если тебя на собесах спрашивают только про устройство ЯП
Если ты не понимаешь устройство ЯП, о какой прикладнухе идет речь, лол?

>То, что вы описываете, не называется "real time"
Чувак, я прекрасно знаю, что в АКАДЕМИЧЕСКОЙ среде называется soft real-time и hard real-time система. Я говорю, про то, что подразумевается в БЫТОВОЙ речи.

>У тебя гугл отключили и бесплатные лимиты по всем нейросеткам исчерпаны?
Ну кидай ссылку на доку.

>Map(), WeakMap().
>ассоциативные массивы
ВАВХХАВХАХВАХВХАХВАХВАХХВАХВАХВАХ

На остальные 2 лень отвечать.

59 25 июня, 20:46 59 3484256

>>3483746
>Так я об этом тебе и пишу: нода — бесполезный мусор
Так я с этим и не спорил, я тебе сказал, что ты отвечаешь додику, который вообще не понимает, что такое нода.

>for range в Go выглядит намного лучше, чем всё это вместе взятое.
Я не знаю, как выглядит
>for range в Go

>for range в Go
Это недоразумение. В питоне все - объект. Ты в JS можешь также
для любого объекта переопределить valueOf и получишь такую же псевдоперегрузку.

>До какого-то стандарта это был единственный способ перехвата доступа к JS.
При чем здесь перехват? Перехват - задача аксессоров (позже - прокси). Задача дескрипторов - предотвратить перезапись/удаление свойства, которое положит систему, стоимостью 6,000 рублей в секунду.

>Если тебе нужно будет немножко поменять реализацию flat
Мне не нужно менять реализацию flat. Любой компрехеншн реализуется той илиной комбинацией map/flat/reduce с аналогичной алгоритмической сложностью.

>Пикрил иерархия классов Django 5.2.3 пикрил.
Ну я могу тебе еще более уебищную иерархию высрать. Дальше-то что? Типа крутость в сложности или что? Ну программни на брэйнфаке UI для браузера, че.

>Дескрипторы свойств обычно предпочитают не копировать, и я бы скорее предпочёл отпиздить линейкой по рукам того, кто введёт в проект клонирование объектов с их дескрипторами
Удачи реализовать аналог тильды

>Если тебя на собесах спрашивают только про устройство ЯП
Если ты не понимаешь устройство ЯП, о какой прикладнухе идет речь, лол?

>То, что вы описываете, не называется "real time"
Чувак, я прекрасно знаю, что в АКАДЕМИЧЕСКОЙ среде называется soft real-time и hard real-time система. Я говорю, про то, что подразумевается в БЫТОВОЙ речи.

>У тебя гугл отключили и бесплатные лимиты по всем нейросеткам исчерпаны?
Ну кидай ссылку на доку.

>Map(), WeakMap().
>ассоциативные массивы
ВАВХХАВХАХВАХВХАХВАХВАХХВАХВАХВАХ

На остальные 2 лень отвечать.

Показать весь текст
Ответы4354

60 25 июня, 20:50 60 3484259

>>3484248
>Напомни мне, сколько ядер процессора в норме может нода использовать? А то я забыл что-то.
1ядро-один поток.Но можно спокойно поднять кластер из коробки или добавить PM2

Ответы4355

61 25 июня, 23:18 61 3484331

>>3484248
> Напомни мне, сколько ядер процессора в норме может нода использовать? А то я забыл что-то.
Все может использовать, дебил что ли? Там и кластер есть и воркеры и атомики.
> Ты пизданулся? Откуда инфа? Даже нейросетка
У тебя все знания от нейросетки? Неудивительно.
> Пять-десять раз в среднем не хотел (по памяти и ЦП)?
Если ты даун-говноед и никогда не писал на С - у тебя так и будет. Пиши нормально - нормально будет.
> Пять-десять раз в среднем не хотел (по памяти и ЦП)? https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/node-gcc.html
Классика калоедства - обычные массивы вместо typedarray, сообщения вместо атомиков, алгоритм уровня кала. Вот нормальный тест https://github.com/denshade/speedTest С сравним с JS, че-то около 20% что ли. Нормально написанный JS код всегда +/- на уровне С.
> В три-пять раз быстрее, чем что? Чем Rust? У меня нет других предположений по поводу того, что может быть настолько медленным в разработке.
Чем почти на любых других языках, очевидно же. На ноде ты просто берёшь и пишешь говняк который по скорости сравним с С без AVX.
> Если так доебаться, то HTML — это тоже ЯП, и CSS.
Что ты несешь, даун? HTML и CSS это не не язык программирования, это язык разметки и язык стилей. Пиздец ты хуйню высрал конечно.
> Прототип в смысле "кусок говна, внешне похожий на будущий продукт" можно захуярить на Python + strawberry + GraphQL
Безусловно, в питоне можно сделать только кусок говна. Я не спорю.

Ответы4363

62 26 июня, 00:15 62 3484352

>>3483694
Роутер для педиков, кста. Нахуй в SPA роутер довны?

Ответы4364

63 26 июня, 00:16 63 3484354

>>3484256
>>for range в Go выглядит намного лучше, чем всё это вместе взятое.
>Я не знаю, как выглядит
>>for range в Go
А нахуй ты пишешь в тред, который не читаешь? >>3483190

>Ты в JS можешь также для любого объекта переопределить valueOf и получишь такую же псевдоперегрузку.
Складывать массивы? Нихуя ты не можешь в JS, там с самого начала операторы (плюс, минус. больше, меньше, если не дошло ещё) в языке реализованы максимально хуёво.

>Перехват - задача аксессоров (позже - прокси). Задача дескрипторов - предотвратить перезапись/удаление свойства, которое положит систему, стоимостью 6,000 рублей в секунду.
Чисто доеб до определений. Свойств не было изначально в JS, потому всё, что налепили поверх них, можно назвать тем или иным перехватом. Например, никто не запрещает коду вызвать операцию записи — более того, в старом режиме (без strict) запись в read-only property происходит вообще без ошибок, значение просто не сохраняется и код выполняется дальше.

>Мне не нужно менять реализацию flat. Любой компрехеншн реализуется той илиной комбинацией map/flat/reduce с аналогичной алгоритмической сложностью.
Ты просто понимашеь степень всратости той хуйни, которую ты превозносишь? То есть, засовывать в массивы и возвращать в лямбдах map() иногда значения, иногда массивы, иногда массивы массивов — это, блять, нормально? "А мы потом может быть как-нибудь это мусорное ведро причешем через flat()" — мне прям представился бомж, копающийся в мусорном баке, находит там недоеденные колбасные огрызки, и такой "вот, map/flat/reduce работает, а вы говорили". Пиздец, такой кринж.

>Ну я могу тебе еще более уебищную иерархию высрать. Дальше-то что? Типа крутость в сложности или что? Ну программни на брэйнфаке UI для браузера, че.
Для кого-то сложность джанги оправдана, но просто так вкатиться с ноги в коммерческую джангу со словами "я знаю питон, мне ничо не нужно" — это очень наивно. Энтерпрайз с миллионами строк на питоне — это совершенно другой зверь, нежели страничка с одной строчкой текста и кнопочкой.
Если чо — я был на собесах, там вопрос с ходу был "сколько лет ты с джангой работал? Ноль? Ну и нахуй ты нам в бэке?".

>>Дескрипторы свойств обычно предпочитают не копировать, и я бы скорее предпочёл отпиздить линейкой по рукам того, кто введёт в проект клонирование объектов с их дескрипторами
>Удачи реализовать аналог тильды
Ты о чём?

>Если ты не понимаешь устройство ЯП, о какой прикладнухе идет речь, лол?
В JS до сих пор находят сложнообъяснимые поведения даже в базовых функциях, потому что поверх изначального говна дерьма, созданного за десять дней, лепят всё больше и больше слоёв новых функций. и эти новые функции сложнопредсказуемо взаимодействуют с древним пиздецом.
Потому с практической точки зрения есть смысл только в "знать, каким подмножеством ЯП пользоваться", а теоретическими раскопками для "понимания устройство ЯП" занимаются либо в комитете TC39, либо просто от нехуй делать.
Чтобы было ясно:
(![]+[])[+[]]+([][[]]+[])[+[]]+([][[]]+[])[+!![]]
Здесь записана строка 'fun'.

parseInt(0.0000005)
Результат этой функции — число 5. Знай JS дальше. Чо ты там про брейнфакт говорил?

>Чувак, я прекрасно знаю, что в АКАДЕМИЧЕСКОЙ среде называется soft real-time и hard real-time система. Я говорю, про то, что подразумевается в БЫТОВОЙ речи.
Ты говоришь про то, что подразумевается в среде смузихлёбов "ранящих жобу". Так-то в очереди на кассе в пятёрочке я что ни разу не слышал от бабулек про рилтайм, в бытовой-то речи.

>>Map(), WeakMap().
>>ассоциативные массивы
>ВАВХХАВХАХВАХВХАХВАХВАХХВАХВАХВАХ
То есть, среди фулст.эк смузихлёбов, изучающих устройство языка изо дня в день, не слышали про "key-value хранилища", "таблицы символов", "хэш-таблицы", "деревья поиска"?

>Ну кидай ссылку на доку.
https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex

>На остальные 2 лень отвечать.
Чот у тебя быстро токены кончаются. Зарегайся на других сервисах.

63 26 июня, 00:16 63 3484354

>>3484256
>>for range в Go выглядит намного лучше, чем всё это вместе взятое.
>Я не знаю, как выглядит
>>for range в Go
А нахуй ты пишешь в тред, который не читаешь? >>3483190

>Ты в JS можешь также для любого объекта переопределить valueOf и получишь такую же псевдоперегрузку.
Складывать массивы? Нихуя ты не можешь в JS, там с самого начала операторы (плюс, минус. больше, меньше, если не дошло ещё) в языке реализованы максимально хуёво.

>Перехват - задача аксессоров (позже - прокси). Задача дескрипторов - предотвратить перезапись/удаление свойства, которое положит систему, стоимостью 6,000 рублей в секунду.
Чисто доеб до определений. Свойств не было изначально в JS, потому всё, что налепили поверх них, можно назвать тем или иным перехватом. Например, никто не запрещает коду вызвать операцию записи — более того, в старом режиме (без strict) запись в read-only property происходит вообще без ошибок, значение просто не сохраняется и код выполняется дальше.

>Мне не нужно менять реализацию flat. Любой компрехеншн реализуется той илиной комбинацией map/flat/reduce с аналогичной алгоритмической сложностью.
Ты просто понимашеь степень всратости той хуйни, которую ты превозносишь? То есть, засовывать в массивы и возвращать в лямбдах map() иногда значения, иногда массивы, иногда массивы массивов — это, блять, нормально? "А мы потом может быть как-нибудь это мусорное ведро причешем через flat()" — мне прям представился бомж, копающийся в мусорном баке, находит там недоеденные колбасные огрызки, и такой "вот, map/flat/reduce работает, а вы говорили". Пиздец, такой кринж.

>Ну я могу тебе еще более уебищную иерархию высрать. Дальше-то что? Типа крутость в сложности или что? Ну программни на брэйнфаке UI для браузера, че.
Для кого-то сложность джанги оправдана, но просто так вкатиться с ноги в коммерческую джангу со словами "я знаю питон, мне ничо не нужно" — это очень наивно. Энтерпрайз с миллионами строк на питоне — это совершенно другой зверь, нежели страничка с одной строчкой текста и кнопочкой.
Если чо — я был на собесах, там вопрос с ходу был "сколько лет ты с джангой работал? Ноль? Ну и нахуй ты нам в бэке?".

>>Дескрипторы свойств обычно предпочитают не копировать, и я бы скорее предпочёл отпиздить линейкой по рукам того, кто введёт в проект клонирование объектов с их дескрипторами
>Удачи реализовать аналог тильды
Ты о чём?

>Если ты не понимаешь устройство ЯП, о какой прикладнухе идет речь, лол?
В JS до сих пор находят сложнообъяснимые поведения даже в базовых функциях, потому что поверх изначального говна дерьма, созданного за десять дней, лепят всё больше и больше слоёв новых функций. и эти новые функции сложнопредсказуемо взаимодействуют с древним пиздецом.
Потому с практической точки зрения есть смысл только в "знать, каким подмножеством ЯП пользоваться", а теоретическими раскопками для "понимания устройство ЯП" занимаются либо в комитете TC39, либо просто от нехуй делать.
Чтобы было ясно:
(![]+[])[+[]]+([][[]]+[])[+[]]+([][[]]+[])[+!![]]
Здесь записана строка 'fun'.

parseInt(0.0000005)
Результат этой функции — число 5. Знай JS дальше. Чо ты там про брейнфакт говорил?

>Чувак, я прекрасно знаю, что в АКАДЕМИЧЕСКОЙ среде называется soft real-time и hard real-time система. Я говорю, про то, что подразумевается в БЫТОВОЙ речи.
Ты говоришь про то, что подразумевается в среде смузихлёбов "ранящих жобу". Так-то в очереди на кассе в пятёрочке я что ни разу не слышал от бабулек про рилтайм, в бытовой-то речи.

>>Map(), WeakMap().
>>ассоциативные массивы
>ВАВХХАВХАХВАХВХАХВАХВАХХВАХВАХВАХ
То есть, среди фулст.эк смузихлёбов, изучающих устройство языка изо дня в день, не слышали про "key-value хранилища", "таблицы символов", "хэш-таблицы", "деревья поиска"?

>Ну кидай ссылку на доку.
https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex

>На остальные 2 лень отвечать.
Чот у тебя быстро токены кончаются. Зарегайся на других сервисах.

Показать весь текст
Ответы5383

64 26 июня, 00:19 64 3484355

>>3484259
>1ядро-один поток.Но можно спокойно поднять кластер из коробки или добавить PM2
Если есть лишние пару сотен Гб памяти, то конечно можно. На Benchmarks game хорошо видно, насколько больше памяти выжирает многопроцессовая нода. С питоном, к слову, аналогичная проблема, ему даже fork не помогает. По той же причине Github, по крайней мере раньше, требовал ебанутых объемов оперативной памяти для работы (он был написан на руби).

Всех этих проблем нет в Go, он просто сразу работает быстро, его не нужно прогревать, ему не нужна лишняя память под JIT-оптимизатор, он может использовать сколько угодно ядер когда угодно. Да, можно подыскать очень специфичный пример, где на ноде выполняется тщательно заоптимизированная разрабами функция, а на Go — слабо оптимизированная, но в среднем по палате коде Go уверенно укатывает ноду в разы.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/go-node.html
Даже там, где нода показала одинаковое время выполнения, Go потребил в 5-10-20 раз меньше оперативной памяти. Идея ясна? И это длинные повторяющиеся бенчи — если у вас короткая динамичная логика, то нода сосёт без шансов, одна лишь раскрутка JIT-оптимизатора сожрёт больше ресурсов, чем выполнение.

Ответы43634465

65 26 июня, 00:20 65 3484356

>>3484186
Не, ну ты про то, что node быстрее Go, загнул. Но в целом, да. Дауны до сих пор читаю методички, где у них JAVA - это серьёзно, а JS - нет, хотя, по возможностям выражения мысли TS (TS хейтеры - сосатБ) превосходит JAVA, а по сложности V8 ебёт JVM

Ответы437244355383

66 26 июня, 00:26 66 3484358

Чепухонцы, вы заебали менять скорость языков. Одна только мысль, что вы там сравниваете СКОРОСТЬ ЯЗЫКА, говорит о вашей дегенеративность. Язык выбирается из соображений применимости и фич. Хочешь скорость, бери кресты и не еби мозг, так как они дают максимальное количество возможностей, чтобы, внимание, написать быстрый код, потому, как и на крестах можно наговнякать тормозное нечитаемое говно, похуже школьной поделки на пятухоне

Ещё раз такое увижу, забаню на дваче

Ответы44355383

67 26 июня, 00:48 67 3484363

>>3484331
>Все может использовать, дебил что ли? Там и кластер есть и воркеры и атомики.
Не так давно введённые в JS инструменты для многопоточности по степени удобства и надёжности находятся где-то на уровне C. Потому я не рассматриваю их всерьёз, как инструменты написания обычного кода на ноде. Просто открой любую либу с интенсивным использованием воркеров и передачей данных между ними, и зацени, насколько там нечитаемый пиздец.
Отличие C/C++ в том, что в C/C++ под это дело есть настоящие типы данных, например ЦЕЛЫЕ СУКА ЧИСЛА, которых нет даже в ебаном TypeScript.

Про кластер уже ответил: >>3484355

>>Ты пизданулся? Откуда инфа? Даже нейросетка
>У тебя все знания от нейросетки? Неудивительно.
А у тебя все знания с потолка — таблетки не забывай принимать.

>Если ты даун-говноед и никогда не писал на С - у тебя так и будет. Пиши нормально - нормально будет.
Таблетки. Не забываем.

>Вот нормальный тест https://github.com/denshade/speedTest С сравним с JS, че-то около 20% что ли. Нормально написанный JS код всегда +/- на уровне С.
"Нормальный тест" на десять строчек кода? Что по этому поводу говорит твой психиатр?

>На ноде ты просто берёшь и пишешь говняк который по скорости сравним с С без AVX.
Такую хуйню может написать только чел, который не пытался достичь быстрого выполнения программы из более чем десяти строчек на node.js. Там граблей оптимизатора неисчерпаемый запас. Asm.js — это рабочая методика, но код должен быть очень точный, ни про какое "пишешь говняк" речи идти не может.

>Что ты несешь, даун? HTML и CSS это не не язык программирования, это язык разметки и язык стилей. Пиздец ты хуйню высрал конечно.
CSS позволяет записывать переиспользуемые вычисления и декларативные шаги анимации. То, что он не Тьюринг полный, не значит, что он не язык и не программирования. HTML — да, сам по себе нихуя не может, но после опредмечивания браузером на его месте появляется DOM из интерактивных элементов. Браузерный DOM не является частью спецификации ECMAScript, это всё сторонние библиотеки-расширения.

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

67 26 июня, 00:48 67 3484363

>>3484331
>Все может использовать, дебил что ли? Там и кластер есть и воркеры и атомики.
Не так давно введённые в JS инструменты для многопоточности по степени удобства и надёжности находятся где-то на уровне C. Потому я не рассматриваю их всерьёз, как инструменты написания обычного кода на ноде. Просто открой любую либу с интенсивным использованием воркеров и передачей данных между ними, и зацени, насколько там нечитаемый пиздец.
Отличие C/C++ в том, что в C/C++ под это дело есть настоящие типы данных, например ЦЕЛЫЕ СУКА ЧИСЛА, которых нет даже в ебаном TypeScript.

Про кластер уже ответил: >>3484355

>>Ты пизданулся? Откуда инфа? Даже нейросетка
>У тебя все знания от нейросетки? Неудивительно.
А у тебя все знания с потолка — таблетки не забывай принимать.

>Если ты даун-говноед и никогда не писал на С - у тебя так и будет. Пиши нормально - нормально будет.
Таблетки. Не забываем.

>Вот нормальный тест https://github.com/denshade/speedTest С сравним с JS, че-то около 20% что ли. Нормально написанный JS код всегда +/- на уровне С.
"Нормальный тест" на десять строчек кода? Что по этому поводу говорит твой психиатр?

>На ноде ты просто берёшь и пишешь говняк который по скорости сравним с С без AVX.
Такую хуйню может написать только чел, который не пытался достичь быстрого выполнения программы из более чем десяти строчек на node.js. Там граблей оптимизатора неисчерпаемый запас. Asm.js — это рабочая методика, но код должен быть очень точный, ни про какое "пишешь говняк" речи идти не может.

>Что ты несешь, даун? HTML и CSS это не не язык программирования, это язык разметки и язык стилей. Пиздец ты хуйню высрал конечно.
CSS позволяет записывать переиспользуемые вычисления и декларативные шаги анимации. То, что он не Тьюринг полный, не значит, что он не язык и не программирования. HTML — да, сам по себе нихуя не может, но после опредмечивания браузером на его месте появляется DOM из интерактивных элементов. Браузерный DOM не является частью спецификации ECMAScript, это всё сторонние библиотеки-расширения.

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

Показать весь текст
Ответы44355383

68 26 июня, 00:50 68 3484364

>>3484352
>Роутер для педиков, кста. Нахуй в SPA роутер довны?
Бесит, кстати. Раньше в query строке всю эту хуйню делали, а сейчас им весь location давай на растерзание.

Ответы4365

69 26 июня, 00:52 69 3484365

>>3484364
Во, во. Хештега достаточно #

Ответы4367

70 26 июня, 01:00 70 3484367

>>3484365
Это некрасиво выглядит.
Плюс хэштег нужен для скроллинга к конкретному элементу, все браузеры обеспечивают этот функционал.
Путь в url всегда отвечал за загрузку нужной страницы, а раз этим теперь занимается spa router, то пусть так и берет данные о выборе страницы из пути.

71 26 июня, 01:29 71 3484372

>>3484356
>Дауны до сих пор читаю методички, где у них JAVA - это серьёзно, а JS - нет, хотя, по возможностям выражения мысли TS (TS хейтеры - сосатБ) превосходит JAVA, а по сложности V8 ебёт JVM
Не люблю язык школьников плана "мой батя твоего отпиздит", потому настойчиво требую придерживаться фактов.
Java — это провал века, на мой взгляд, и тот факт, что C# слепо его скопировал, аналогичным образом похоронило всё будущее, которое на эту платформу возложил Microsoft. И слава богу, земля пухом Syn Microsystems, Nokia, Windows CE, UWP, и прочему разложившемуся мусору (каким бы он актуальным не был 30 лет назад). Провал сей хорошо виден на бенчах:
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/javavm-node.html
так что я особо вдаваться в механизмы низкой производительности Java и C# не буду.
Зато затрону два важных момента:
1. На C#/CLR и Java/JVM возможно написание удобной надёжной многопоточки — нода так не умеет. Бенчи с кластерами-воркерами требовали намного большего приложения усилий к ноде, чем аналогичный код на C#/Java — то есть, JS лишается своей простоты, нужно прилагать сверхусилия уровня кодописания на Си;
2. "по сложности V8 ебёт JVM" — и что тут хорошего? Кучу микрооптимизаций там, микрооптимизаций здесь, всё это регулярно деоптимизируется, и хуй поймёшь почему это происходит. Но, да, весь этот мертворождённый труп JS приводится в вид, подобный живому. именно за счёт огромного объема усилий со стороны Google, и только поэтому платформа всё ещё воспринимается всерьёз.

Ответы4438

72 26 июня, 06:45 72 3484435

>>3484356
Быстрее, но не на много. Если брать сервера - нода будет быстрее уже существенно, тому что в голанге ансихронность немного ебанутая. Офк сама нода кусок кала, по этому придётся использовать c++ сервера через napi, либо использовать бан.

>>3484358
Кого ебёт че там у тебя происходит в рогах и копытах? Применимость, че блядь? Ебнулся совсем малютка

>>3484363
>Не так давно введённые в JS инструменты для многопоточности по степени удобства и надёжности находятся где-то на уровне C.
Да, хорошая штука. Мне нравится, ничего лишнего.
>Потому я не рассматриваю их всерьёз
Так ты просто не можешь в С. Твои проблемы.
>Отличие C/C++ в том, что в C/C++ под это дело есть настоящие типы данных, например ЦЕЛЫЕ СУКА ЧИСЛА, которых нет даже в ебаном TypeScript.
Ебанулся? Для этого есть TypedArray, через них и осуществляется вся работа с многопоточностью.
>Про кластер уже ответил
Прав в гигабайтах памяти, но если взять bun - будет получше, всего лишь гигабайт.
>А у тебя все знания с потолка — таблетки не забывай принимать.
>Таблетки. Не забываем.
>"Нормальный тест" на десять строчек кода? Что по этому поводу говорит твой психиатр?
Сколько бы ты не отрицал реальность она не будет другой - оптимизированный JS работает примерно на уровне C.
> Такую хуйню может написать только чел, который не пытался достичь быстрого выполнения программы из более чем десяти строчек на node.js. Там граблей оптимизатора неисчерпаемый запас.
Можешь писать сколько угодно строк, главное не писать говнокод. Но для тебя атомики это сложно, С это сложно - ты даже не понимаешь в чем проблема твоих говнотестов.
> То, что он не Тьюринг полный, не значит, что он не язык и не программирования.
Это язык разметки, дебил, перестань свои определения выдумывать.
> Так это ж всё из ноды методики я описывал.
Из твоей практики что ли? Так ты говнокод пишешь, потому что дебил.

Ответы4487

73 26 июня, 06:48 73 3484438

>>3484372
Зачем ты кидаешь свои говнобенчи? Их писали такие же как ты отсталые дебилы, которые не в состоянии понять что происходит в коде и как работать с нормальной многопоточностью.

Эти бенчи доказывают лишь твою отсталость, что ты говноедище которое не замечает даже в чем проблема.

Ответы4488

74 26 июня, 09:02 74 3484465

>>3484355
>он может использовать сколько угодно ядер когда угодно
Нормально человек-нейросеть отвечает, сразу видно, что не шарит.

Голанг на проде использует 1 ядро тоже. Это хайлоад. Вам не понять.

Ответы44774498

75 26 июня, 09:50 75 3484477

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

Ответы4498

76 26 июня, 10:18 76 3484487

>>3484435
>Если брать сервера - нода будет быстрее уже существенно, тому что в голанге ансихронность немного ебанутая
"Асинхронность немножко ебанутая"? Пишет говноед, фанатеющий по ЯП с цветными функциями, где разные цвета нельзя сочетать. Я просто в ахуе, ваше мннеие очень важно для нас.

>Да, хорошая штука. Мне нравится, ничего лишнего.
Замечательная штука — теперь бы ещё к ней средства отладки для её непредсказуемого поведения, и IDE для того чтобы разрозненные куски единого алгоритма собрать по десятку модулей — и было бы вообще заебись.
Чисто для справки, перый раз с кодом на воркерах JS я работал уже имея опыт поддержки годами большой многопоточной хуйни на Delphi. И всё равно я был в шоке.

>>Потому я не рассматриваю их всерьёз
>Так ты просто не можешь в С. Твои проблемы.
Твои аналитические навыки в очередной раз обосрались — последние три года я работал техлидом C/C++, REST сервисы.

>Ебанулся? Для этого есть TypedArray, через них и осуществляется вся работа с многопоточностью.
Вы языке нет целых чисел, но есть целочисленный массив — степень пиздеца понимаешь или нужно ещё развернуть?

>Прав в гигабайтах памяти, но если взять bun - будет получше, всего лишь гигабайт.
QuickJS и Duktape ещё быстрее будут, потому что в них JIT нету — парадоксально, но JS изначально был разработан под работу с очень маленьким объемом RAM, потому потенциал в этом направлении большой. Другое дело, что там где-то за горизонтом начинает маячить питон.

>Сколько бы ты не отрицал реальность она не будет другой - оптимизированный JS работает примерно на уровне C.
Где я это отрицал? Я лишь писал о том, что оптимизация работает далеко не для любого кода на JS, и поебаться с его вылизиванием придётся поболее, чем с написанием аналогичного кода сразу на Си. То же самое относится к Java, C#, Go — пока не приходит сборщик мусора, конечно.

>Можешь писать сколько угодно строк, главное не писать говнокод. Но для тебя атомики это сложно, С это сложно - ты даже не понимаешь в чем проблема твоих говнотестов.
Окей, гуру, в чём проблема этого говнокода? Почему V8 не сможет его оптимизировать?
let obj = { a: 1 };
obj.b = 2;

76 26 июня, 10:18 76 3484487

>>3484435
>Если брать сервера - нода будет быстрее уже существенно, тому что в голанге ансихронность немного ебанутая
"Асинхронность немножко ебанутая"? Пишет говноед, фанатеющий по ЯП с цветными функциями, где разные цвета нельзя сочетать. Я просто в ахуе, ваше мннеие очень важно для нас.

>Да, хорошая штука. Мне нравится, ничего лишнего.
Замечательная штука — теперь бы ещё к ней средства отладки для её непредсказуемого поведения, и IDE для того чтобы разрозненные куски единого алгоритма собрать по десятку модулей — и было бы вообще заебись.
Чисто для справки, перый раз с кодом на воркерах JS я работал уже имея опыт поддержки годами большой многопоточной хуйни на Delphi. И всё равно я был в шоке.

>>Потому я не рассматриваю их всерьёз
>Так ты просто не можешь в С. Твои проблемы.
Твои аналитические навыки в очередной раз обосрались — последние три года я работал техлидом C/C++, REST сервисы.

>Ебанулся? Для этого есть TypedArray, через них и осуществляется вся работа с многопоточностью.
Вы языке нет целых чисел, но есть целочисленный массив — степень пиздеца понимаешь или нужно ещё развернуть?

>Прав в гигабайтах памяти, но если взять bun - будет получше, всего лишь гигабайт.
QuickJS и Duktape ещё быстрее будут, потому что в них JIT нету — парадоксально, но JS изначально был разработан под работу с очень маленьким объемом RAM, потому потенциал в этом направлении большой. Другое дело, что там где-то за горизонтом начинает маячить питон.

>Сколько бы ты не отрицал реальность она не будет другой - оптимизированный JS работает примерно на уровне C.
Где я это отрицал? Я лишь писал о том, что оптимизация работает далеко не для любого кода на JS, и поебаться с его вылизиванием придётся поболее, чем с написанием аналогичного кода сразу на Си. То же самое относится к Java, C#, Go — пока не приходит сборщик мусора, конечно.

>Можешь писать сколько угодно строк, главное не писать говнокод. Но для тебя атомики это сложно, С это сложно - ты даже не понимаешь в чем проблема твоих говнотестов.
Окей, гуру, в чём проблема этого говнокода? Почему V8 не сможет его оптимизировать?
let obj = { a: 1 };
obj.b = 2;

Показать весь текст
Ответы45545387

77 26 июня, 10:21 77 3484488

>>3484438
>Зачем ты кидаешь свои говнобенчи? Их писали такие же как ты отсталые дебилы, которые не в состоянии понять что происходит в коде и как работать с нормальной многопоточностью.
Типикал двач:
— Сотни программ, бенчащих сложные и совершенно разные алгоритмы на двадцати разных языках?
— Отсталые дебилы!
— Программа с одним циклом на десять строчек?
— Профессиональные оптимизаторы из Google!

Что и требовалось доказать.

Ответы4554

78 26 июня, 10:32 78 3484498

>>3484465
>Голанг на проде использует 1 ядро тоже. Это хайлоад. Вам не понять.
Go размазывает активные горутины по всем ядрам. Если вы написали хуйню, которая имеет только одну активную горутину, то я вам соболезную. Но вас никто не заставлял так писать.

>>3484477
>даже не понимает что синхронизация потоков убивает всю многопоточность
Ну так не делай синхронизацию потоков лишний раз, ебаныврот. А то делают HTTP запрос под блокировкой, а потом "чот медленно работает, хуйня ваш голанг". Я сейчас даже не выдумываю пример, потому что в моих дельфийских буднях я какой только хуйни не видел под блокировками.

Ответы45014554

79 26 июня, 10:34 79 3484501

>>3484498
>Go размазывает активные горутины по всем ядрам
Какие "все" ядра, если у тебя в контейнере дали одно ядро 0.125 ?
Сразу видно вкатуна, который прод на го не нюхал
Я работал на го, нет в современной разработке больше 1го ядра

Ответы4526

80 26 июня, 11:10 80 3484526

>>3484501
>Какие "все" ядра, если у тебя в контейнере дали одно ядро 0.125 ?
>Сразу видно вкатуна, который прод на го не нюхал
У вас микросервисная помойка по распилу инвесторных денег — при чём тут я? У меня на последней работе "прод" был 48 ядер и 192 Гб оперативы — вот это "прод". Это только одна нода, таких десятки.
Слава богу, что я при поиске работы просто скипал всю такую новомодную прогрессивную хуйню по перекладыванию JSON-ов из одной коробки в другую..

81 26 июня, 11:47 81 3484554

>>3484487
>>3484488
А ясно, это нейронка. Так вот почему ебанутая чушь вместо аргументов, а рассуждения уровня "пук среньк jit gc бенч врёти"

> Я лишь писал о том, что оптимизация работает далеко не для любого кода на JS
Хорошо что даже нейронка признаёт что на JS код по скорости сравним с C. Очередная победа человека в споре с пиздушной машиной.

>>3484498
Любая блокировка и любая синхронизация при запросе это минус производительность, любая рассинхронизация это значительный простой. Зачем проебывать производительность, если это можно не делать? Ведь уже есть системное распределение задач между процессами, притом оно работает без всяких синхронизаций. Зачем потоки в вебе, при запросах? Это же шиза, задумайся, у тебя галлюцинации.

Сейчас нейросеть скажет "да, ты полность прав, я в очередной раз отсосала, многопоточность в проде это галлюцинация с моей стороны".

Ответы47915111

82 26 июня, 12:15 82 3484582

так я не понял,сколько го использует ядер по умолчанию?

Ответы4603

83 26 июня, 12:46 83 3484603

>>3484582
go это язык программирования, он ничего не использует. Горутины - да, использует все ядра

Ответы4606

84 26 июня, 12:48 84 3484606

>>3484603
Если я сделаю один простой веб сервер с парочкой маршрутами и простой обработкой json, то ГО при выполнении загрузит только одно ядро процессора?

Ответы46075112

85 26 июня, 12:52 85 3484607

>>3484606
1 ядро без горутин, все ядра с горутинами.
Можешь проверить

Ответы46094613

86 26 июня, 12:53 86 3484609

>>3484607
Так там тоже надо писать код под многопоточность, аналог cluster node js?

Ответы4611

87 26 июня, 12:53 87 3484610

Только чур не используй обёртку над горутинами, а то не честно.

88 26 июня, 12:54 88 3484611

>>3484609
>аналог cluster node js?
Аналог pub/sub workers, это когда одноядерные контейнеры разгребают асинхронные сообщения из очереди

89 26 июня, 12:58 89 3484613

>>3484607
>If your goal is just to have your request-processing code run on all CPU cores, net/http already starts a goroutine (a vaguely thread-like thing with a Go-specific implementation) per connection, and Go arranges for NumCPU OS threads to run by default so that goroutines can be spread across all available CPU cores.
А это как понять?

Ответы4615

90 26 июня, 12:59 90 3484615

>>3484613
>net/http already starts a goroutine
Ну так ты используешь обёртку, над горутинами, всё правильно. Попробуй написать свой веб-сервер без них

Ответы4616

91 26 июня, 13:01 91 3484616

>>3484615
Чет не понял,если пакет для сервера то там автоматом включают горутины,а если простой код вывести хелло ворлд то одно ядро без горутин?

Ответы4618

92 26 июня, 13:03 92 3484618

>>3484616
>а если простой код вывести хелло ворлд то одно ядро без горутин?
Да

Ответы4620

93 26 июня, 13:07 93 3484620

>>3484618
А если на серваке еще есть программа числодробилка,тоне надо для нее вручную писать код обработки под горутины?

Ответы4622

94 26 июня, 13:15 94 3484622

>>3484620
Ну смотря как запустить, если числодробилки будут асинхронно идти через go func, то горутины запустятся сразу на всех ядрах

Ответы4624

95 26 июня, 13:16 95 3484624

>>3484622
ну к примеру принял запрос на роут и надо что-то посчитать и вернуть юзеру

Ответы4626

96 26 июня, 13:19 96 3484626

>>3484624
>запрос на роут
Если ты делал запрос на роут через net/http, то там уже горутина включена

Ответы46354673

97 26 июня, 13:28 97 3484635

>>3484626
Пиздец конечно. Неудивительно почему go такой тормозной, если у него в каждом запросе хуячат какие-то горутины и синхронизация между потоками, очереди, блядь. Охуеть просто.

Нахуй они это сделали, знает кто?

Ответы4663

98 26 июня, 14:16 98 3484658

Да ну на ваш го.

Лучше скажите, как подружить Prettier со StandardJS.

Стандард незаслуженно забытый шин ящитаю. Prettier - форсед хуита, котора я разраслась как рак по всей экосистеме.

Ответы4664

99 26 июня, 14:29 99 3484663

>>3484635
В горутинах нет синхронизации между потоками, горутина не переключает треды, а переключает контексты

Ответы4665

100 26 июня, 14:30 100 3484664

>>3484658
Эпик вин это eslint, а не эта ваша хуета Prettier со StandardJS.

Ответы4717

101 26 июня, 14:33 101 3484665

>>3484663
Похуй, всё равно между потоками нужно данные передавать, а значит простой будет. Нахуя это нужно в сетевухе? Чтобы сервер не нагревался сильно? Лолд

Ответы46675116

102 26 июня, 14:33 102 3484667

>>3484665
Данные между потоками передаются асинхронными событиями. Всё, другого уже не будет. Это стандарт ит-разработки

Ответы4674

103 26 июня, 14:40 103 3484673

>>3484626
А вычисления?

104 26 июня, 14:41 104 3484674

>>3484667
Говна поел штоле? В любой нормальной асинхронной либе всё работает через атомики, чтобы данные не гонять и простоя не было.
И вопрос не в этом. Вопрос в том нахуя нужны горутины в сетевой либе, если распределением запросов занимается ядро системы.

Ответы4675

105 26 июня, 14:43 105 3484675

>>3484674
>В любой нормальной асинхронной либе
мультипоточной либе, конечно же
слоуфикс

106 26 июня, 14:56 106 3484678

В чём прикол подрубать нейросеть и писать в этом треде?

Ответы4690

107 26 июня, 15:18 107 3484690

>>3484678
Вполне возможно что так макака постинг поднимает

Ответы4759

108 26 июня, 15:54 108 3484717

>>3484664
Путаешь мягкое с теплым. StandardJS это набор правил, eslint - тул для проверки выполнения правил.

109 26 июня, 17:16 109 3484759

>>3484690
Некоторые алени на дваче руками посты в нейросетку переносят, а потом обратно. Скорее вопрос были именно про это - какой прикол быть прокладкой между человеком и нейронкой?

Ответы4764

110 26 июня, 17:30 110 3484764

>>3484759
Вероятнее всего это делают дети или вроде того. Думаю такое поведение какая-то форма бессознательных действий, какая-нибудь дрисня в башке навроде "хихи он спорит с нейронкой"

111 26 июня, 18:04 111 3484791

>>3484554
>Любая блокировка и любая синхронизация при запросе это минус производительность, любая рассинхронизация это значительный простой. Зачем проебывать производительность, если это можно не делать? Ведь уже есть системное распределение задач между процессами, притом оно работает без всяких синхронизаций.
У процессов нет общей памяти. Порождение процесса -- это медленно. Для этого и придумали потоки.

>Зачем потоки в вебе, при запросах? Это же шиза, задумайся, у тебя галлюцинации.
Я, лично, пишу сложные приложения на дотнете. Запросы бывают тяжёлые. Основное горлышко — это, конечно, БД, и тут достаточно просто асинхронности, но кое-где есть и вычисления, которые неплохо бы распараллеливать, чтобы запрос пользователя выполнялся побыстрее.

Мимо-аллигатор

Ответы4832

112 26 июня, 18:44 112 3484832

>>3484791
>У процессов нет общей памяти.
Шаредмемори существует. Но на это похуй, потому что всё равно синхронизация убивает такты.
>Я, лично, пишу сложные приложения на дотнете.
Ты лично тупая нейросеть. В одном посте пишешь про работу мультипотоком и в этом же посте расписываешься в незнании шаредмемори.
> но кое-где есть и вычисления, которые неплохо бы распараллеливать, чтобы запрос пользователя выполнялся побыстрее.
Ага, галлюцинируй дальше. Это работает только если это отдельный микросервис который выполняет только один единственный класс задач и только тогда это будет работать нормально. В любых других ситуациях сервер будет тратить до 60% времени на выполнение кода планировщика задач и простои.
И кстати благодаря атомикам и шаредмемори JS в принципе ничем отличаться от любого другого языка не будет в такой ситуации. Только если не вспоминать про AVX и указатели, с ними конечно JS сосёт, но кто в наше время может в архитектуру заточенную под AVX

Ответы48615126

113 26 июня, 19:15 113 3484861

>>3484832
И этим мы делаем вывод,что го не лучше ноды жс?

Ответы5040

114 26 июня, 22:09 114 3485040

>>3484861
В целом да, но в голанге есть указатели и avx. Используя указатели уже можно ебануть годные алгоритмы которые работают крайне хуёво в js, а если угорить по avx это уже всё, конец.
Конечно, для большинства задач это всё смысла не имеет, avx нужен только для каких-нибудь геймсерверов, а алгоритмы с указателями это тёмная магии. Остаются только отличия в простоте и скорости написания и это будет не в пользу го.

Ответы5126

115 26 июня, 23:38 115 3485111

>>3484554
>Хорошо что даже нейронка признаёт что на JS код по скорости сравним с C. Очередная победа человека в споре с пиздушной машиной.
Ебать, я два или три раза за тред это написал, причём, уточнил, что никакой не абстрактный "JS код", а только написанный в очень специфическом стиле JS код может выполняться со скоростью кода на Си.
По сравнению с тобой нейронка хотя бы контекст немножко помнит, нахуй мне такие собеседники.

>Любая блокировка и любая синхронизация при запросе это минус производительность
Ебать ты охуеешь, когда узнаешь, что любая смена ссылки на объект в V8 приводит к lock-free передаче сигнала сборщику мусора. То есть, примерно половина строчек в JS синхронизируется со сборщиком. И чо дальше? Синхронизация синхронизации рознь.

>Сейчас нейросеть скажет "да, ты полность прав, я в очередной раз отсосала, многопоточность в проде это галлюцинация с моей стороны".
Это новая мода — когда не понимаешь, о чём разговор и встряёшь в неё, то обязательно делаешь отсылку к "нейросетке"? Чисто эмпирически замечаю, что чем тупее собеседник на /pr/, тем чаще он ноет про нейросетки. Ещё бы начал говорить, что гуглом пользоваться нечестно, LOL.

Ответы5185

116 26 июня, 23:40 116 3485112

>>3484606
>Если я сделаю один простой веб сервер с парочкой маршрутами и простой обработкой json, то ГО при выполнении загрузит только одно ядро процессора?
В Go нет никакого встроенного "веб сервера с парочкой маршрутов", всё зависит от конкретной реализации. Обычно как минимум одна го-рутина на запрос, а дальше планировщик размазывает го-рутины по ядрам.

Ответы51855248

117 26 июня, 23:52 117 3485116

>>3484665
>Похуй, всё равно между потоками нужно данные передавать, а значит простой будет. Нахуя это нужно в сетевухе? Чтобы сервер не нагревался сильно? Лолд
Почему ты не можешь попросить нейросетку тебе объяснить азбуку? Ты просто заваливаешь тред про JAVASCRIPT тупой хуйнёй про то, как ты не понимаешь устройство Go.

Ответы5185

118 27 июня, 00:14 118 3485126

>>3484832
>И кстати благодаря атомикам и шаредмемори JS в принципе ничем отличаться от любого другого языка не будет в такой ситуации.
JS отличается отсутствием высокоуровневых примитивов синхронизации, которые есть у многих "любых других языков".

>Это работает только если это отдельный микросервис который выполняет только один единственный класс задач и только тогда это будет работать нормально. В любых других ситуациях сервер будет тратить до 60% времени на выполнение кода планировщика задач и простои.
Очень сильно зависит от конкретной задачи. В общем случае это разговор ни о чём.

>>3485040
Справедливости ради, многозадачность в современных ЦП выполнена крайне омерзительно, и там дальше уже похуй, какой конкретно ЯП пытается на этой платформе выполниться. С каждым годом разрыв по эффективности вычислений на ЦП и GPGPU только увеличивается.
Например, когерентность кэша в современных ЦП, внезапно, выполнена при помощи передачи сообщений. А такой хуйни, как "разделяемая ячейка памяти" в принципе не существует, ячейка с формально тем же адресом может быть одновременно и в RAM, и в нескольких уровнях кэша, и везде у неё будет разное значение, но процессор по прежнему продолжает притворяться, будто это одна ячейка, и пытается скрыть рассинхрон от пользователя. А внеочередное выполнение происходит по event-driven принципу — хуйня, которой в исходной машине Тьюринга вообще в принципе нет.
Из позитивных новостей: продолжающийся кризис западной экономики приводит к сокращению расходов на новые технологии, так что с имеющимися технологиями мы застряли надолго, так что усаживайтесь поудобнее, спешить некуда.

Ответы5205

119 27 июня, 06:35 119 3485185

>>3485111
> Ебать ты охуеешь, когда узнаешь, что любая смена ссылки на объект в V8 приводит к lock-free передаче сигнала сборщику мусора. То есть, примерно половина строчек в JS синхронизируется со сборщиком. И чо дальше? Синхронизация синхронизации рознь.
Тупая нейросетка сравнила синхронизацию процессов на разных ядрах и какую-то хуйню из GC из v8. Хуя галлюцинация!

>>3485116
Так ты же приходишь и объясняешь нам какой Go кал. Вот >>3485112 объяснил что обычно либы на go это многопоточный бред, который проёбывает произвоидтельность по факту своего существования.

Ответы5248

120 27 июня, 08:33 120 3485205

>>3485126
>JS отличается отсутствием высокоуровневых примитивов синхронизации, которые есть у многих "любых других языков".
Они и не нужны. Если ты не можешь понять атомики - твоя проблема
> Очень сильно зависит от конкретной задачи. В общем случае это разговор ни о чём.
Задача тут вполне конкретная: вебсервер с каким-то кодом многопотоночсти. Это будет проебывать огромное кол-во процессорного времени на синхронизацию, потому что по времени обработка запроса и обработка любого другого говна различается. Это существенный проеб произвоидтельности
> Справедливости ради, многозадачность в современных ЦП выполнена крайне омерзительно, и там дальше уже похуй, какой конкретно ЯП пытается на этой платформе выполниться. С каждым годом разрыв по эффективности вычислений на ЦП и GPGPU только увеличивается.
Какой-то бред от нейросети. CPU и GPU это разные задачи, на CPU ядра работают как разные, несинхронные, процессоры, потому что именно этого и ожидают от CPU
>Например, когерентность кэша в современных ЦП, внезапно, выполнена при помощи передачи сообщений. А такой хуйни, как "разделяемая ячейка памяти" в принципе не существует, ячейка с формально тем же адресом может быть одновременно и в RAM, и в нескольких уровнях кэша, и везде у неё будет разное значение, но процессор по прежнему продолжает притворяться, будто это одна ячейка, и пытается скрыть рассинхрон от пользователя. А внеочередное выполнение происходит по event-driven принципу — хуйня, которой в исходной машине Тьюринга вообще в принципе нет.
Понимаю, сложно для нейросети находится в ситуации подобной неопределённости, но для людей нормально писать алгоритмы с учётом некогерентности, управлять барьерами синхронизации это нормально. Конечно, если ты не даун-дебил который без нейросети не может пост на харчке написать, лолд

Ответы5273

121 27 июня, 09:56 121 3485248

>>3485185
>Тупая нейросетка сравнила синхронизацию процессов на разных ядрах и какую-то хуйню из GC из v8. Хуя галлюцинация!
Ебать шок, в V8 большой GC и код JS выполняются в разных потоках. "О сколько нам открытий чудных...".

>Так ты же приходишь и объясняешь нам какой Go кал. Вот >>3485112 (You) объяснил что обычно либы на go это многопоточный бред, который проёбывает произвоидтельность по факту своего существования.
Бля, чел, учит матчасть, просто какой-то позор обоссатый тут постишь.

Ответы5307

122 27 июня, 10:16 122 3485273

>>3485205
>Они и не нужны. Если ты не можешь понять атомики - твоя проблема
Понимание прежде всего должно заключаться в том, что lock-free программирование на атомиках — это вообще одна из самых сложных задач в программировании. И я не вижу этого понимания у тебя, я не вижу у тебя опыта аля звонки в три часа ночи "прод второй раз за ночь наебнулся, бегом к компу, платим двойную ставку, логи-стэке в тикете".

>Задача тут вполне конкретная: вебсервер с каким-то кодом многопотоночсти
Тебя не смущает сочетание "конкретная" и "каким-то" в одном предложении? Не?

>Это будет проебывать огромное кол-во процессорного времени на синхронизацию, потому что по времени обработка запроса и обработка любого другого говна различается.
А, так это ты опять... Но я всё-таки советую подтянуть матчасть.

>CPU и GPU это разные задачи, на CPU ядра работают как разные, несинхронные, процессоры, потому что именно этого и ожидают от CPU
Шок, но в GPU тоже много незвисимых исполнителей. Например, моя 3060 содержит 28 процессоров, при том, что весьма "жырный" рузен имеет всего-лишь 6 ядер — всё это ищется в инете без необходимости позориться на дваче.

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

123 27 июня, 11:10 123 3485307

>>3485248
>Ебать шок, в V8 большой GC и код JS выполняются в разных потоках.
Речь про синхронизацию, к чему тут lock-free gc? Там наверняка CAS везде.

Как блядь, у тебя токены высрались? Ебаная галюционирующая хуйня, блядь, ну невозможно же общаться!

>Понимание прежде всего должно заключаться в том, что lock-free программирование на атомиках — это вообще одна из самых сложных задач в программировании.
Только если ты нейросеть или даун-гошник с нейросетью вместо мозгов, лолд

Ответы5316

124 27 июня, 11:18 124 3485316

>>3485307
>Речь про синхронизацию, к чему тут lock-free gc? Там наверняка CAS везде.
Сериал "аноньчик учит матчасть продолжается" — оптимистичная ветка блокировки представляет из себя один CAS.

>Только если ты нейросеть или даун-гошник с нейросетью вместо мозгов, лолд
Расскажи мне больше про "я пишу код без багов". Ох уж эти вайбкодеры.

Ответы5337

125 27 июня, 11:53 125 3485337

>>3485316
>Расскажи мне больше про "я пишу код без багов".
Всё просто - для этого нужно писать код и посты на харчке без нейросети и думать. Не для всех.

126 27 июня, 12:51 126 3485383

>>3484354
>А нахуй ты пишешь в тред, который не читаешь?
Да, сорян, я посмотрел как выглядит for в go и не могу понять, чем

for username, score := range userScores {
fmt.Println(username, "has a score of", score)
}

отличается от

for (const [username, score] of userScores) {
console.log(username, "has a score of", score)
}

Ты видишь между ними разницу? Эта разница с тобой в одной комнате?

>Складывать массивы?
А причем тут переопределение, долбоеб? У тебя в языке ЗАШИТО, что для массивов плюс работает как конкатенация. Ну переопредели мне чтобы плюс складывал поэлементно, вперед, удачи. Код не забудь сюда написать.

>в языке реализованы максимально хуёво.
Они и в питоне реализованы уебищно.

>Свойств не было изначально в JS
Повторю вопрос, долбоеб, ты под какими наркотиками сюда пишешь? JS ИЗНАЧАЛЬНО построен на том, что у тебя по сути все, кроме null и undefined ЛИБО объект, либо может им стать.

>Например, никто не запрещает коду вызвать операцию записи — более того, в старом режиме (без strict) запись в read-only property происходит вообще без ошибок
А причем тут старый режим? У тебя весь код на модулях уже лет 5 как, то есть он по УМОЛЧАНИЮ исполняется в строгом режиме. Ну и даже в нестрогом режиме запись не происходит, просто уведомления об ошибке нет. Ну так он на это и нестрогий.

>бомж, копающийся в мусорном баке, находит там недоеденные list comprehension
Поправил, не благодари

>Ты о чём?
Ну создай мне дрэг энд дроп конструктор из компонентов без дескрипторов свойства.

>Знай JS дальше.
Правильно, пока ты этого не знаешь никем кроме макаки версталы ты работать не можешь.

>"key-value хранилища"
Любой объект - это key value хранилище, мапы не для этого нужны. Обтекай, маня.

>https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex
И че ты высрал? Как целочисленную переменную в питоне объявить?

a = 1
a = 1.5

print(type(a))

Почему код выше не приводит к ошибке, а, долбоеб?

>>3484356
>по возможностям выражения мысли TS (TS хейтеры - сосатБ) превосходит JAVA
По возможностям опорожнения в штаны точно превосходит.

>>3484358
>Хочешь скорость, бери кресты и сри себе в штаны UB

>>3484363
>ЦЕЛЫЕ СУКА ЧИСЛА, которых нет даже в ебаном TypeScript.
Дурачок, блять, ты про TypedArray слышал когда-нибудь?

126 27 июня, 12:51 126 3485383

>>3484354
>А нахуй ты пишешь в тред, который не читаешь?
Да, сорян, я посмотрел как выглядит for в go и не могу понять, чем

for username, score := range userScores {
fmt.Println(username, "has a score of", score)
}

отличается от

for (const [username, score] of userScores) {
console.log(username, "has a score of", score)
}

Ты видишь между ними разницу? Эта разница с тобой в одной комнате?

>Складывать массивы?
А причем тут переопределение, долбоеб? У тебя в языке ЗАШИТО, что для массивов плюс работает как конкатенация. Ну переопредели мне чтобы плюс складывал поэлементно, вперед, удачи. Код не забудь сюда написать.

>в языке реализованы максимально хуёво.
Они и в питоне реализованы уебищно.

>Свойств не было изначально в JS
Повторю вопрос, долбоеб, ты под какими наркотиками сюда пишешь? JS ИЗНАЧАЛЬНО построен на том, что у тебя по сути все, кроме null и undefined ЛИБО объект, либо может им стать.

>Например, никто не запрещает коду вызвать операцию записи — более того, в старом режиме (без strict) запись в read-only property происходит вообще без ошибок
А причем тут старый режим? У тебя весь код на модулях уже лет 5 как, то есть он по УМОЛЧАНИЮ исполняется в строгом режиме. Ну и даже в нестрогом режиме запись не происходит, просто уведомления об ошибке нет. Ну так он на это и нестрогий.

>бомж, копающийся в мусорном баке, находит там недоеденные list comprehension
Поправил, не благодари

>Ты о чём?
Ну создай мне дрэг энд дроп конструктор из компонентов без дескрипторов свойства.

>Знай JS дальше.
Правильно, пока ты этого не знаешь никем кроме макаки версталы ты работать не можешь.

>"key-value хранилища"
Любой объект - это key value хранилище, мапы не для этого нужны. Обтекай, маня.

>https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex
И че ты высрал? Как целочисленную переменную в питоне объявить?

a = 1
a = 1.5

print(type(a))

Почему код выше не приводит к ошибке, а, долбоеб?

>>3484356
>по возможностям выражения мысли TS (TS хейтеры - сосатБ) превосходит JAVA
По возможностям опорожнения в штаны точно превосходит.

>>3484358
>Хочешь скорость, бери кресты и сри себе в штаны UB

>>3484363
>ЦЕЛЫЕ СУКА ЧИСЛА, которых нет даже в ебаном TypeScript.
Дурачок, блять, ты про TypedArray слышал когда-нибудь?

Показать весь текст
Ответы54985890

127 27 июня, 12:53 127 3485387

>>3484487
>Вы языке нет целых чисел, но есть целочисленный массив — степень пиздеца понимаешь или нужно ещё развернуть?
В языке есть целые числа. ЦЕЛОЧИСЛЕННЫХ ПЕРЕМЕННЫХ НЕТ, ебанашка.

128 27 июня, 13:22 128 3485409

Ребята,есть языки на которых много пишут.И те, на которых почти не пишут или вообще не пишут.

129 27 июня, 15:21 129 3485498

>>3485383
>Да, сорян, я посмотрел как выглядит for в go и не могу понять, чем
Разговор был про filter/map/reduce, твои циклы этого не делают. Да,"for ... of" близок к "for .. range", и я с этим не спорил. Анон затирал про filter/map/reduce, которые уродливы — об этом я и писал, для тьюринговых алгоритмов они просто бесполезны. В Clojure они активнее используются не в последнюю очеред потому, что у этого ЯП возможностей больше, чем у Тьюринг-машины. Go тоже является сверх-тьюринговой средой, но однозадачный пошаговый "for ... range" выполняется в тьюринговых ограничениях (одна горутина), потому пошаговая запись для него является естественной формой.

>А причем тут переопределение, долбоеб? У тебя в языке ЗАШИТО, что для массивов плюс работает как конкатенация. Ну переопредели мне чтобы плюс складывал поэлементно, вперед, удачи.
Так я о том и пишу, что JS — убогий язык, в котором мало того, что нельзя переопределять операторы, так ещё и единственная встроенная семантика максимально неадекватная.

>Они и в питоне реализованы уебищно.
Да? Какой будет результат операции "[] + []"? В каком ещё ЯП настолько ебанутая семантика базовых операций? Вот что происхоидт в питоне:
>>> [] + []
[]
>>> [] + {}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "dict") to list

>JS ИЗНАЧАЛЬНО построен на том, что у тебя по сути все, кроме null и undefined ЛИБО объект, либо может им стать.
Это ты мне писал про "не нужно знать предметку, нужно лишь знать язык"? Что-то я нихуя не вижу знания языка:
>> typeof 42
"number"
>> typeof Number(42)
"number"
>> typeof new Number(42)
"object"
>> (42).__proto__
Number { 0 }
>> (new Number(42)).__proto__
Number { 0 }
>> let a = 10
10
>> a.b = 10
10
>> a.b
undefined
Какое нахуй знание языка, если ты не знаешь про автобоксинг, и почему String('') отличается от new String('')?

>>бомж, копающийся в мусорном баке, находит там недоеденные list comprehension
>Поправил, не благодари
List comprehension тоже можно хуёво написать, как ты и предлагаешь. Свинья ввезде грязь найдёт.

>Любой объект - это key value хранилище, мапы не для этого нужны. Обтекай, маня.
Любитель помойки legacy фич опять захрюкал
Object.prototype.unwanted = "oops";
let obj = { a: 1 };
obj.__proto__.state = 'pwned";
for (let key in obj) {
console.log(key);
}
Пояснять, или сам поймёшь? Да, можно устаривать ебаный цирк с:
let obj = Object.create(null);
Object.defineProperty(obj, 'hasOwnProperty', {
value: function (key) {
return Object.prototype.hasOwnProperty.call(this, key);
},
enumerable: false
});

И далее тщательно строить весь код на Object.keys(), Object.values, Object.hasOwn(), но один Map решает все эти проблемы из коробки и с чистым интерфейсом.

>И че ты высрал? Как целочисленную переменную в питоне объявить?
Тебе целочисленных переменных никто не обещал, пойди проспись. А целочисленные значения есть, в отличие от JS. Мне нужно пояснять, чем значение отличается от переменной?

>Дурачок, блять, ты про TypedArray слышал когда-нибудь?
TypedArray — это всратая сишная хуета, со всеми сишными артефактами, вроде переполнения.
Композитные объекты с насильным приведением к целым числам возможны в питоне, но при этом их можно сделать намного лучше, чем этот всратый TypedArray, который такой всратый останется навсегда, ты его не исправишь ничем.
Аналогичную хуйню можно сделать в JS на Proxy, но это Proxy ты будешь вынужден везде носить с собой при копировании контейнера.

>В языке есть целые числа. ЦЕЛОЧИСЛЕННЫХ ПЕРЕМЕННЫХ НЕТ, ебанашка.
Хорошо, принято — можно сказать, что начиная с ES6 в языке появились стандартизированные Number.isInteger(), Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER. Так-то можно и новый BigInt вспомнить, который вполне себе явно целое число, правда, не совместимое с обычными числами (number).

129 27 июня, 15:21 129 3485498

>>3485383
>Да, сорян, я посмотрел как выглядит for в go и не могу понять, чем
Разговор был про filter/map/reduce, твои циклы этого не делают. Да,"for ... of" близок к "for .. range", и я с этим не спорил. Анон затирал про filter/map/reduce, которые уродливы — об этом я и писал, для тьюринговых алгоритмов они просто бесполезны. В Clojure они активнее используются не в последнюю очеред потому, что у этого ЯП возможностей больше, чем у Тьюринг-машины. Go тоже является сверх-тьюринговой средой, но однозадачный пошаговый "for ... range" выполняется в тьюринговых ограничениях (одна горутина), потому пошаговая запись для него является естественной формой.

>А причем тут переопределение, долбоеб? У тебя в языке ЗАШИТО, что для массивов плюс работает как конкатенация. Ну переопредели мне чтобы плюс складывал поэлементно, вперед, удачи.
Так я о том и пишу, что JS — убогий язык, в котором мало того, что нельзя переопределять операторы, так ещё и единственная встроенная семантика максимально неадекватная.

>Они и в питоне реализованы уебищно.
Да? Какой будет результат операции "[] + []"? В каком ещё ЯП настолько ебанутая семантика базовых операций? Вот что происхоидт в питоне:
>>> [] + []
[]
>>> [] + {}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "dict") to list

>JS ИЗНАЧАЛЬНО построен на том, что у тебя по сути все, кроме null и undefined ЛИБО объект, либо может им стать.
Это ты мне писал про "не нужно знать предметку, нужно лишь знать язык"? Что-то я нихуя не вижу знания языка:
>> typeof 42
"number"
>> typeof Number(42)
"number"
>> typeof new Number(42)
"object"
>> (42).__proto__
Number { 0 }
>> (new Number(42)).__proto__
Number { 0 }
>> let a = 10
10
>> a.b = 10
10
>> a.b
undefined
Какое нахуй знание языка, если ты не знаешь про автобоксинг, и почему String('') отличается от new String('')?

>>бомж, копающийся в мусорном баке, находит там недоеденные list comprehension
>Поправил, не благодари
List comprehension тоже можно хуёво написать, как ты и предлагаешь. Свинья ввезде грязь найдёт.

>Любой объект - это key value хранилище, мапы не для этого нужны. Обтекай, маня.
Любитель помойки legacy фич опять захрюкал
Object.prototype.unwanted = "oops";
let obj = { a: 1 };
obj.__proto__.state = 'pwned";
for (let key in obj) {
console.log(key);
}
Пояснять, или сам поймёшь? Да, можно устаривать ебаный цирк с:
let obj = Object.create(null);
Object.defineProperty(obj, 'hasOwnProperty', {
value: function (key) {
return Object.prototype.hasOwnProperty.call(this, key);
},
enumerable: false
});

И далее тщательно строить весь код на Object.keys(), Object.values, Object.hasOwn(), но один Map решает все эти проблемы из коробки и с чистым интерфейсом.

>И че ты высрал? Как целочисленную переменную в питоне объявить?
Тебе целочисленных переменных никто не обещал, пойди проспись. А целочисленные значения есть, в отличие от JS. Мне нужно пояснять, чем значение отличается от переменной?

>Дурачок, блять, ты про TypedArray слышал когда-нибудь?
TypedArray — это всратая сишная хуета, со всеми сишными артефактами, вроде переполнения.
Композитные объекты с насильным приведением к целым числам возможны в питоне, но при этом их можно сделать намного лучше, чем этот всратый TypedArray, который такой всратый останется навсегда, ты его не исправишь ничем.
Аналогичную хуйню можно сделать в JS на Proxy, но это Proxy ты будешь вынужден везде носить с собой при копировании контейнера.

>В языке есть целые числа. ЦЕЛОЧИСЛЕННЫХ ПЕРЕМЕННЫХ НЕТ, ебанашка.
Хорошо, принято — можно сказать, что начиная с ES6 в языке появились стандартизированные Number.isInteger(), Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER. Так-то можно и новый BigInt вспомнить, который вполне себе явно целое число, правда, не совместимое с обычными числами (number).

Показать весь текст
Ответы5535

130 27 июня, 16:15 130 3485535

30 Кб, 641x86839 Кб, 587x890

>>3485498
>потому пошаговая запись для него является естественной формой.
Ну и какие преимущества тогда у го перед нодой? Или че ты вообще высрал, я не понял, цикл for во всех языках программирования одинаковый.

>Так я о том и пишу, что JS — убогий язык, в котором мало того, что нельзя переопределять операторы
В питоне тоже нельзя. Ну переопредели мне чтобы плюс складывал поэлементно, вперед, удачи. Код не забудь показать.

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

>Что-то я нихуя не вижу знания языка:
В глаза ебешься?
>ЛИБО объект, либо МОЖЕТ ИМ стать.
5..toString()

>Какое нахуй знание языка, если ты не знаешь про автобоксинг
Ты долбоеб? Я тебе ровно это и написал. Ебанат.

>Малолетний долбоеб открыл для себя существование prototype pollution.
Спешите видеть.

>Мне нужно пояснять, чем значение отличается от переменной?
Да мне поебать на твои значения, пик 2.

>TypedArray — это всратая сишная хуета
В чем ее всратость заключается?

>Так-то можно и новый BigInt вспомнить, который вполне себе явно целое число, правда, не совместимое с обычными числами (number).
А в питоне-то есть такое, конечно же? Ах да, там же числа любой длины, зачем нам бигинты

130 27 июня, 16:15 130 3485535

30 Кб, 641x86839 Кб, 587x890

>>3485498
>потому пошаговая запись для него является естественной формой.
Ну и какие преимущества тогда у го перед нодой? Или че ты вообще высрал, я не понял, цикл for во всех языках программирования одинаковый.

>Так я о том и пишу, что JS — убогий язык, в котором мало того, что нельзя переопределять операторы
В питоне тоже нельзя. Ну переопредели мне чтобы плюс складывал поэлементно, вперед, удачи. Код не забудь показать.

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

>Что-то я нихуя не вижу знания языка:
В глаза ебешься?
>ЛИБО объект, либо МОЖЕТ ИМ стать.
5..toString()

>Какое нахуй знание языка, если ты не знаешь про автобоксинг
Ты долбоеб? Я тебе ровно это и написал. Ебанат.

>Малолетний долбоеб открыл для себя существование prototype pollution.
Спешите видеть.

>Мне нужно пояснять, чем значение отличается от переменной?
Да мне поебать на твои значения, пик 2.

>TypedArray — это всратая сишная хуета
В чем ее всратость заключается?

>Так-то можно и новый BigInt вспомнить, который вполне себе явно целое число, правда, не совместимое с обычными числами (number).
А в питоне-то есть такое, конечно же? Ах да, там же числа любой длины, зачем нам бигинты

Показать весь текст
Ответы554255735608

131 27 июня, 16:32 131 3485542

>>3485535
https://pastebin.com/raw/3FzBuJhX

Ответы55755608

132 27 июня, 17:07 132 3485573

>>3485535
Ты с нейросетью говоришь, в курсе?

Ответы5575

133 27 июня, 17:13 133 3485575

>>3485542
>пук
Я правильно понял, что по всем остальным пунктам я разъебал тебя настолько крепко, что ты даже высрать ничего не смог в ответ?

>https://pastebin.com/raw/3FzBuJhX
И че ты высрал? Я тебе сказал оператор ПЛЮС перегрузить, а не кастомный класс высрать с какой-то логикой.

>>3485573
У меня хуй видно, в курсе?

Ответы55865604

134 27 июня, 17:26 134 3485586

>>3485575
>Я тебе
1) Не мне.
2) Что значит перегрузить оператор? Оператор на типах определяется даже в хаскеле, а не абстрактный в вакууме оператор

Ответы55975672

135 27 июня, 17:32 135 3485597

>>3485586
Правда в руби можно переоткрыть любой класс и напихать туда любой мусор. Получается руби лучше жс..

136 27 июня, 17:38 136 3485604

>>3485575
Разъебал ты тут только себя. Буквально каждым постом разъебываешь сам себя и обсираешься, лол, вот же поехавшее безумное животное

Ответы5672

137 27 июня, 17:44 137 3485608

>>3485535
>Ну и какие преимущества тогда у го перед нодой? Или че ты вообще высрал, я не понял, цикл for во всех языках программирования одинаковый.
Я написал, что filter/map/flat/reduce — это хуйня из-под коня. Всё. Ни про какой Go речи не шло. Возьми питон — там та же хуйня будет. Java, C++, и так далее. Просто обсуждали Go, и я подумал, что тут гошники сидят.

>В питоне тоже нельзя. Ну переопредели мне чтобы плюс складывал поэлементно, вперед, удачи. Код не забудь показать.
Для стандартного list это сделать нельзя, он залочен, потому что вся стандартная либа на нём держится. Но если сделать производный класс типа MyList([1,2,3,4]), то можно любые операции реализовать. Нейросетка в помощь.

>Никто не спорит с ебанутостью джаваскрипта, я не понимаю, почему ты пиздишь про питоне, ведь в нем семантика такая же ебанутая, а перегрузки обещанной нет.
Ты точно знаком с жаваскриптом? Чему равно [] + [] в JS? Ты мне ответишь? Есть ровно три ЯП с настолько ебанутой базовой семантикой — это JS, PHP, и Perl. Всё, больше такой хуйнёй никто не страдает. Даже Python уже не разрешает делать
>>> 1 < "2"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'int' and 'str'

>В глаза ебешься?
>>ЛИБО объект, либо МОЖЕТ ИМ стать.
>5..toString()
Всё рано или поздно может стать объектом, если с ним что-то делать. И число может стать строкой, и строка превратиться в дату. Другое дело, что изначально примитивные типы не являются объектами.

>>Малолетний долбоеб открыл для себя существование prototype pollution.
>Спешите видеть.
Ну так нахуй ты мне писал про свои словари на объектах, если именно по этой причине обычные объекты нельзя использовать в качестве словарей?

>Мне нужно пояснять, чем значение отличается от переменной?
>Да мне поебать на твои значения, пик 2.
В стандартной поставке питоне нет никакой проверки типов, есть только поддержка их объявления. Любую либу для проверки типов нужно ставить дополнительно, а это можно делать только в продвинутых онлайн IDE проде Replit, Google Colab, Binder:
from typeguard import typechecked

@typechecked
def pick(l: list, index: int) -> int:
return l[index]

a = 1.5

print(pick([1,2,3,4], a))

Traceback (most recent call last):
File "/home/user/deleteme/types.py", line 9, in <module>
print(pick([1,2,3,4], a))
File "/home/user/deleteme/types.py", line 4, in pick
def pick(l: list, index: int) -> int:
File "/home/user/.local/lib/python3.10/site-packages/typeguard/_functions.py", line 137, in check_argument_types
check_type_internal(value, annotation, memo)
File "/home/user/.local/lib/python3.10/site-packages/typeguard/_checkers.py", line 956, in check_type_internal
raise TypeCheckError(f"is not an instance of {qualified_name(origin_type)}")
typeguard.TypeCheckError: argument "index" (float) is not an instance of int

>>TypedArray — это всратая сишная хуета
>В чем ее всратость заключается?
>> const a = new Int8Array(1);
undefined
>> a[0] = 200;
200
>> a[0]
-56
В лучших традициях JS, присвоил одно — получил другое.

>А в питоне-то есть такое, конечно же? Ах да, там же числа любой длины, зачем нам бигинты
Так ты по итогу спросил или согласился с моими аргументами? А то я не понял.
>>> print(123423544257457856978956789546873453456345745683672357356835688658)
123423544257457856978956789546873453456345745683672357356835688658

>>3485542
>https://pastebin.com/raw/3FzBuJhX
Ну да, как-то так.

137 27 июня, 17:44 137 3485608

>>3485535
>Ну и какие преимущества тогда у го перед нодой? Или че ты вообще высрал, я не понял, цикл for во всех языках программирования одинаковый.
Я написал, что filter/map/flat/reduce — это хуйня из-под коня. Всё. Ни про какой Go речи не шло. Возьми питон — там та же хуйня будет. Java, C++, и так далее. Просто обсуждали Go, и я подумал, что тут гошники сидят.

>В питоне тоже нельзя. Ну переопредели мне чтобы плюс складывал поэлементно, вперед, удачи. Код не забудь показать.
Для стандартного list это сделать нельзя, он залочен, потому что вся стандартная либа на нём держится. Но если сделать производный класс типа MyList([1,2,3,4]), то можно любые операции реализовать. Нейросетка в помощь.

>Никто не спорит с ебанутостью джаваскрипта, я не понимаю, почему ты пиздишь про питоне, ведь в нем семантика такая же ебанутая, а перегрузки обещанной нет.
Ты точно знаком с жаваскриптом? Чему равно [] + [] в JS? Ты мне ответишь? Есть ровно три ЯП с настолько ебанутой базовой семантикой — это JS, PHP, и Perl. Всё, больше такой хуйнёй никто не страдает. Даже Python уже не разрешает делать
>>> 1 < "2"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'int' and 'str'

>В глаза ебешься?
>>ЛИБО объект, либо МОЖЕТ ИМ стать.
>5..toString()
Всё рано или поздно может стать объектом, если с ним что-то делать. И число может стать строкой, и строка превратиться в дату. Другое дело, что изначально примитивные типы не являются объектами.

>>Малолетний долбоеб открыл для себя существование prototype pollution.
>Спешите видеть.
Ну так нахуй ты мне писал про свои словари на объектах, если именно по этой причине обычные объекты нельзя использовать в качестве словарей?

>Мне нужно пояснять, чем значение отличается от переменной?
>Да мне поебать на твои значения, пик 2.
В стандартной поставке питоне нет никакой проверки типов, есть только поддержка их объявления. Любую либу для проверки типов нужно ставить дополнительно, а это можно делать только в продвинутых онлайн IDE проде Replit, Google Colab, Binder:
from typeguard import typechecked

@typechecked
def pick(l: list, index: int) -> int:
return l[index]

a = 1.5

print(pick([1,2,3,4], a))

Traceback (most recent call last):
File "/home/user/deleteme/types.py", line 9, in <module>
print(pick([1,2,3,4], a))
File "/home/user/deleteme/types.py", line 4, in pick
def pick(l: list, index: int) -> int:
File "/home/user/.local/lib/python3.10/site-packages/typeguard/_functions.py", line 137, in check_argument_types
check_type_internal(value, annotation, memo)
File "/home/user/.local/lib/python3.10/site-packages/typeguard/_checkers.py", line 956, in check_type_internal
raise TypeCheckError(f"is not an instance of {qualified_name(origin_type)}")
typeguard.TypeCheckError: argument "index" (float) is not an instance of int

>>TypedArray — это всратая сишная хуета
>В чем ее всратость заключается?
>> const a = new Int8Array(1);
undefined
>> a[0] = 200;
200
>> a[0]
-56
В лучших традициях JS, присвоил одно — получил другое.

>А в питоне-то есть такое, конечно же? Ах да, там же числа любой длины, зачем нам бигинты
Так ты по итогу спросил или согласился с моими аргументами? А то я не понял.
>>> print(123423544257457856978956789546873453456345745683672357356835688658)
123423544257457856978956789546873453456345745683672357356835688658

>>3485542
>https://pastebin.com/raw/3FzBuJhX
Ну да, как-то так.

Показать весь текст
Ответы5672

138 27 июня, 18:41 138 3485672

>>3485586
>1) Не мне.
Не кукарекай.

>2) Что значит перегрузить оператор? Оператор на типах определяется даже в хаскеле, а не абстрактный в вакууме оператор
Оператор - это бинарная функция в данном случае. Перегрузить, значит сделать так, что плюс с этими аргументами ведет себя по-другому. Причем тут типы, епту бля?

>>3485604
>Пок, кок, кудах!

>>3485608
>Я написал, что filter/map/flat/reduce — это хуйня из-под коня
С хуяли это хуйня? filter и map - это самая база для ежедневных операций. Ну вот надо тебе отфильтровать данные по каким-то признакам и че ты каждый раз будешь for loop c if else костылить?

>Для стандартного list это сделать нельзя, он залочен
Очко у тебя, питонодебила залочено. Вот и не пизди, что у тебя че-то там переопределять можно. Переопределять можно, когда я могу сделать что-то типа такого:

import Base: +
+(l::Vector{Int64}, r::Vector{64}) = "ty xyi"

Вот это ПЕРЕГРУЗКА СУКА ОПЕРАТОРА. А когда ты, говнюк,
>сделать производный класс типа MyList([1,2,3,4])
Это ни хуя не перегрузка, это расширение твоего рабочего очка.

>Ты мне ответишь?
Нахуя мне тебе что-то отвечать?

>Всё рано или поздно может стать объектом, если с ним что-то делать.
Ок, подскажи каким образом в Java, C#, C++, D да где угодно число автоматически становится объектом при приведение его к строке? Что, нигде? Ну вот и не пизди, потому что там это РЕАЛЬНЫЕ примитивы.

>Другое дело, что изначально примитивные типы не являются объектами.
Примитив не может иметь методов, точка. Если примитив неявно превращается в объект - это что угодно, но не примитив.

>В стандартной поставке питоне нет никакой проверки типов, есть только поддержка их объявления.
Это значит там нет типов, лол.

>В лучших традициях JS, присвоил одно — получил другое.
Додсон, ты понимаешь, что такое Int8? Что ты там блять ожидал увидеть после
> a[0] = 200;

138 27 июня, 18:41 138 3485672

>>3485586
>1) Не мне.
Не кукарекай.

>2) Что значит перегрузить оператор? Оператор на типах определяется даже в хаскеле, а не абстрактный в вакууме оператор
Оператор - это бинарная функция в данном случае. Перегрузить, значит сделать так, что плюс с этими аргументами ведет себя по-другому. Причем тут типы, епту бля?

>>3485604
>Пок, кок, кудах!

>>3485608
>Я написал, что filter/map/flat/reduce — это хуйня из-под коня
С хуяли это хуйня? filter и map - это самая база для ежедневных операций. Ну вот надо тебе отфильтровать данные по каким-то признакам и че ты каждый раз будешь for loop c if else костылить?

>Для стандартного list это сделать нельзя, он залочен
Очко у тебя, питонодебила залочено. Вот и не пизди, что у тебя че-то там переопределять можно. Переопределять можно, когда я могу сделать что-то типа такого:

import Base: +
+(l::Vector{Int64}, r::Vector{64}) = "ty xyi"

Вот это ПЕРЕГРУЗКА СУКА ОПЕРАТОРА. А когда ты, говнюк,
>сделать производный класс типа MyList([1,2,3,4])
Это ни хуя не перегрузка, это расширение твоего рабочего очка.

>Ты мне ответишь?
Нахуя мне тебе что-то отвечать?

>Всё рано или поздно может стать объектом, если с ним что-то делать.
Ок, подскажи каким образом в Java, C#, C++, D да где угодно число автоматически становится объектом при приведение его к строке? Что, нигде? Ну вот и не пизди, потому что там это РЕАЛЬНЫЕ примитивы.

>Другое дело, что изначально примитивные типы не являются объектами.
Примитив не может иметь методов, точка. Если примитив неявно превращается в объект - это что угодно, но не примитив.

>В стандартной поставке питоне нет никакой проверки типов, есть только поддержка их объявления.
Это значит там нет типов, лол.

>В лучших традициях JS, присвоил одно — получил другое.
Додсон, ты понимаешь, что такое Int8? Что ты там блять ожидал увидеть после
> a[0] = 200;

Показать весь текст
Ответы57115806

68 Кб, 427x507
139 27 июня, 19:10 139 3485701

> filter и map - это самая база для ежедневных операций. Ну вот надо тебе отфильтровать данные по каким-то признакам и че ты каждый раз будешь for loop c if else костылить?
Ебало этого дерьмоеда представили? If для него костыль, да это же эталонный индус нахуй!

140 27 июня, 19:24 140 3485711

>>3485672
>import Base: +
>+(l::Vector{Int64}, r::Vector{64}) = "ty xyi"

Ну и в чем различие? Оператор + не определен в Base для Vector{Int64}
ГПТ говорит что в жулии тоже нельзя без хаков переписать операторы из Base если они там определены некоторых для типов.

>Причем тут типы, епту бля?
Притом что в типизированном языке ты не можешь никак задать выражение само по себе, не привязывая его к типу. В динамических языках это рантаймом может определятся, когда ты передаешь какую-то структуру в сишную либу и она тебе выдает error если операция неопределена для типа. В твоей жулии + не определен для Vector{Int64}, но определен для строк и чисел. Для поэлементного сложения векторов там вроде есть .+ (точка с плюсом) , так же как в хаскеле и окамле

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

Ответы5723

106 Кб, 925x672
141 27 июня, 19:48 141 3485723

>>3485711
>Ну и в чем различие? Оператор + не определен в Base для Vector{Int64}
Ты еблан?

>ГПТ говорит что в жулии тоже нельзя без хаков переписать операторы
Ебало нейронкодауна, который столкнулся с тем, что нейронка хуево обучена ндля джулии, представили? Ты хоть код, который я тебе скинул, запусти, а потом уже кукарекай.

>Притом что в типизированном языке ты не можешь никак задать выражение само по себе, не привязывая его к типу.
Ну, привязал проверяй.
import Base: +
+(l::Vector{Int64}, r::Vector{64}) = "ty xyi"
Или ты от нофапа ослеп и типов не видишь?

> В твоей жулии + не определен для Vector{Int64}
Сказочный долбоеб.

Ответы5747

142 27 июня, 20:11 142 3485747

>>3485723
Скорее нейронка не пиздит, а в твоем плейграунде какая-то прелюдия подключена определяющая +. Покажи мне код в Base на гитхабе определющий +. Даже я нихуя не зная жулии больше тебя понимаю..

Зы Если там будет женерик, так чем это лучше наследования? Спор же был не статический vs динамический полиморфизм.

Ответы5766

4 Кб, 252x66
143 27 июня, 20:50 143 3485766

>>3485747
>Скорее нейронка не пиздит, а в твоем плейграунде какая-то прелюдия подключена определяющая +.
Чтоб ты знал, ебанько, для того, чтобы посмотреть КАКАЯ именно из функций вызывается для твоего кода, есть специальный метод @which, который тебе номер строки показывает.

>Даже я нихуя не зная жулии больше тебя понимаю..
Нейронкодаун срет не снимая штанов.
https://github.com/JuliaLang/julia/blob/309b1b158f59485772d5f5fe0a762f20185cf799/base/arraymath.jl#L12
Ну че, готовы нейросети заменить айтишников, петушара ебаная?

Ответы5775

144 27 июня, 21:05 144 3485775

>>3485766
Ну то есть это дженерик? Идем дальше.
Почему
>+(l::Vector{Int64}, r::Vector{64}) = "ty xyi"
Это переопределение, в твоем понимании
>class A(list) ...
Это не переопределение оператора + на списке, в твоем понимании

Точно так же можно сказать: c женериком ты уточняешь выражение для конкретного типа (подтипа), которое будет спользовано при применении женерика в другом выражении, а не переопределяешь оператор +

C наследованием от list я получаю список (подтип списка). Только с новым поведением +. Этот мой список пролазиет, там же где используется обычный лист. Недотаток в более вербозном конструкторе A([1, 2, 3]) по сравнению с [1, 2, 3]

Что тебе непонятно?

Ответы6013

145 27 июня, 21:36 145 3485806

>>3485672
>С хуяли это хуйня? filter и map - это самая база для ежедневных операций. Ну вот надо тебе отфильтровать данные по каким-то признакам и че ты каждый раз будешь for loop c if else костылить?
Что значит "каждый раз костылить"? Ты мне хочешь рассказать, что filter() сам по себе без аргументов понимает, что тебе нужно отфильтровать? Тебе так или иначе нужно писать условия фильтрования. Только цикл for позволяет тебе одновременно сделать и filter, и map, и flat(1), и reduce — и всё это в пару-тройку строчек. Отсюда дизайнеры Go справедливо задали вопрос "а нахуй вам filter/map/reduce, когда у вас уже есть такой простой и мощный инструмент?" — и я пояснил, что не нужен.

>Вот и не пизди, что у тебя че-то там переопределять можно. Переопределять можно, когда я могу сделать что-то типа такого
Слыш, ебало стянул, тебе никто не обещал стандартные типы переопределять — тут тебе не JS, чтобы срать в туже миску, из которой ешь. Для невстроенных типов переопределение свободное, в том числе для классов-наследников встроенных типов.

>Нахуя мне тебе что-то отвечать?
Так а нахуя ты мне отвечаешь? Ебало стяни.

>Ок, подскажи каким образом в Java, C#, C++, D да где угодно число автоматически становится объектом при приведение его к строке? Что, нигде? Ну вот и не пизди, потому что там это РЕАЛЬНЫЕ примитивы.
Прикинь. Java:
int num = 42;
String result = "The number is: " + num;
System.out.println(result);

C#:
string str1 = "Integer: " + num;
string str2 = "Double: " + decimal;
Console.WriteLine(str1);
Console.WriteLine(str2);

Просто для справки: String — это объект Java, string в C# — это алиас на String.String, тоже объект.

>Примитив не может иметь методов, точка. Если примитив неявно превращается в объект - это что угодно, но не примитив.
До тебя ещё не дошло, что JS делает хуеву гору разных неявных превращений при операциях? Неявное превращение примитива в объект — это ещё не самое страшное, в других случаях JS может кастовать значение вообще в хуй пойми какой тип, даже несмотря на то, что его никто не просил этого делать.
>> [] == ![]
true
Расскажешь мне, что тут объект?

>Это значит там нет типов, лол.
Пациент опять путается в определениях? Понимаешь разницу между типом, его валидацией перед выполнением, и валидацией во время выполнения?

Додсон, ты понимаешь, что такое Int8? Что ты там блять ожидал увидеть после
> a[0] = 200;

>> BigInt("9".repeat(1000000));
Uncaught RangeError: BigInt is too large to allocate
>> const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setUint32(6, 1234);
Uncaught RangeError: offset is outside the bounds of the DataView

145 27 июня, 21:36 145 3485806

>>3485672
>С хуяли это хуйня? filter и map - это самая база для ежедневных операций. Ну вот надо тебе отфильтровать данные по каким-то признакам и че ты каждый раз будешь for loop c if else костылить?
Что значит "каждый раз костылить"? Ты мне хочешь рассказать, что filter() сам по себе без аргументов понимает, что тебе нужно отфильтровать? Тебе так или иначе нужно писать условия фильтрования. Только цикл for позволяет тебе одновременно сделать и filter, и map, и flat(1), и reduce — и всё это в пару-тройку строчек. Отсюда дизайнеры Go справедливо задали вопрос "а нахуй вам filter/map/reduce, когда у вас уже есть такой простой и мощный инструмент?" — и я пояснил, что не нужен.

>Вот и не пизди, что у тебя че-то там переопределять можно. Переопределять можно, когда я могу сделать что-то типа такого
Слыш, ебало стянул, тебе никто не обещал стандартные типы переопределять — тут тебе не JS, чтобы срать в туже миску, из которой ешь. Для невстроенных типов переопределение свободное, в том числе для классов-наследников встроенных типов.

>Нахуя мне тебе что-то отвечать?
Так а нахуя ты мне отвечаешь? Ебало стяни.

>Ок, подскажи каким образом в Java, C#, C++, D да где угодно число автоматически становится объектом при приведение его к строке? Что, нигде? Ну вот и не пизди, потому что там это РЕАЛЬНЫЕ примитивы.
Прикинь. Java:
int num = 42;
String result = "The number is: " + num;
System.out.println(result);

C#:
string str1 = "Integer: " + num;
string str2 = "Double: " + decimal;
Console.WriteLine(str1);
Console.WriteLine(str2);

Просто для справки: String — это объект Java, string в C# — это алиас на String.String, тоже объект.

>Примитив не может иметь методов, точка. Если примитив неявно превращается в объект - это что угодно, но не примитив.
До тебя ещё не дошло, что JS делает хуеву гору разных неявных превращений при операциях? Неявное превращение примитива в объект — это ещё не самое страшное, в других случаях JS может кастовать значение вообще в хуй пойми какой тип, даже несмотря на то, что его никто не просил этого делать.
>> [] == ![]
true
Расскажешь мне, что тут объект?

>Это значит там нет типов, лол.
Пациент опять путается в определениях? Понимаешь разницу между типом, его валидацией перед выполнением, и валидацией во время выполнения?

Додсон, ты понимаешь, что такое Int8? Что ты там блять ожидал увидеть после
> a[0] = 200;

>> BigInt("9".repeat(1000000));
Uncaught RangeError: BigInt is too large to allocate
>> const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setUint32(6, 1234);
Uncaught RangeError: offset is outside the bounds of the DataView

Показать весь текст
Ответы6013

146 27 июня, 21:37 146 3485809

Заканчивайте,этот срач так не кончиться

Ответы5813

147 27 июня, 21:40 147 3485813

>>3485809
Зачем? Тебе не интересно как языки устроены?

Ответы5815

148 27 июня, 21:42 148 3485815

>>3485813
в таком сраче трудно что то понять

Ответы5844

149 27 июня, 22:21 149 3485844

>>3485815
>в таком сраче трудно что то понять
Самое смешное то, что это ведь я писал про "понимание JS не нужно, предметка важнее". Может быть потому, что я, блять, всё-таки понял язык и занимался дальше предметкой, а не решал философские проблемы плана "писать ли else перед return или нет".

Ответы5848

150 27 июня, 22:24 150 3485848

>>3485844
Ну да, кроме тебя предметкой никто не занимается. Ты единственная надежда всех кабанов, лучик света в темном царстве волчар-философов..

Ответы5882

151 27 июня, 22:37 151 3485867

Почиатл я ваш срач и захотелось выучить другой язык, чтобы не быть как лох и шарить во всем написанном тут. Кроме жс ничего не знаю. Что посоветуете? Модный раст или го? Вечный с++? Может жава или с#?

Ответы58735886589659086027

152 27 июня, 22:47 152 3485873

>>3485867
кобол

153 27 июня, 23:00 153 3485882

>>3485848
>Ну да, кроме тебя предметкой никто не занимается. Ты единственная надежда всех кабанов, лучик света в темном царстве волчар-философов..
Есть челы-фулстэкеры, которые хуярят новые сайты быстрее, чем понимают, что написали. Я после двух лет во фронте по прежнему понимал, что дохуя не понимаю. Там одни гриды и флексбоксы такие, что ебануться можно. Это без CSS-переменных. Реально, фулстэком может быть только чел, который либо не умеет во фронт, либо не умеет в бэк, но чаще не умеет в них обоих. Написание современного веба в сборе — это крайне сложное занятие, и "упрощение" достигается только снижением требований.
Мне тем более смешно слышать про "написать сразу для веба, чтобы подо все платформы было" — ебокляки, у которых я работал, на эту хуйню повелись, и довольно поздно выяснили, что проще было написать тупо три приложения под три платформы, чем "упрощать" разработку до веб-приложения. Причём, браузер ебёт мозги намного больше, из-за бесконечного многослойного груза наследия со времён 1992 года. В бэке ты просто взял и сменил версию PHP на другую, а на фронте у тебя есть то, что есть, никакого выбора нет.

У меня где-то была охуенная презентация, где челы подводили итоги после аналогичной разработке сложного SPA под веб, они тоже повелись на истории про "электрон решает все проблемы" , и тоже поели говна, после чего SPA дропнули и написали нативное приложение.

154 27 июня, 23:02 154 3485886

>>3485867
>Почиатл я ваш срач и захотелось выучить другой язык, чтобы не быть как лох и шарить во всем написанном тут. Кроме жс ничего не знаю. Что посоветуете? Модный раст или го? Вечный с++? Может жава или с#?
Мой стэк: Delphi, C/C++, Python, JS, Haskell. Считая что я поел всего самого вонючего говна. Лучше учи Go,можно Rust, но только если думаешь работать на запад. В СНГ ещё долго на C++ будут писать.

155 27 июня, 23:05 155 3485890

>>3485383
>Хочешь скорость, бери кресты и сри себе в штаны UB
Шото ты сынок не туда воюешь

1. UB - понятие стандарта C++, что-то в стандарте описано, как должно работать, а что-то нет, то есть не определено, то есть undefined behavior, так как ебанёшься всё описывать, а значит реализация остаётся на усмотрение разработчика компилятора. Бери компилятор, например gcc, смотри, как сделано в нем. На уровне компилятора никакого UB нет, реализация конкретна. Также любые разговоры про UB - без демонстрации другого языка с таким же стандартом и уровнем детализации фич, а, впрочем, иди нахуй, лень объяснять

2. Твой опыт срания в штаны не представляет ценности. Я беру кресты и делаю норм

Ответы6013

156 27 июня, 23:10 156 3485896

>>3485867
typescript изучай чтобы понять синтез ооп и типов. Хаскел/окамл изучай для понимания чистого ФП, чтобы ни говорили, мультипарадигмальные языки имеют мало общего с чистым ФП. Всякие там функторы и функциональные обновления не используются, если писать код на том же тайпскрипте. Руби можешь изучить чтобы понять, как с помощью красивых концепций писать запутанный код. Если у рубистов отобрать доку по рельсам, они через месяц уже нихуя не напишут, потому что забудут конвенции, чтобы там ни пиздел DHH про свой фреймворк.

157 27 июня, 23:20 157 3485908

>>3485867
Кресты бери и не ожидай быстрого результата, минимум 3 месяца. Вся языки пиздят концепции от-туда причем зачастую реализуя их в убогой форме

Ответы59095913

158 27 июня, 23:25 158 3485909

>>3485908
Да, ещё C++98 и последние 26 - это два разных языка. Учи последние фичи. Со всяким unique_ptr придется ознакомиться, а потом понять, что этот мусор ненужОн, потому, что есть контейнеры и поинтеры в редких случаях внутри них используются, а вне нет. Но это по ходу изучения, завадая себе вопросы выяснить. Кстати, нейросети в ряде вопросы не помогут, потому, что они обучены на ранних стандартах, чей код доминирует, а на новых, может просто нужной стать и примера не найти и посоветует дичь

159 27 июня, 23:30 159 3485913

>>3485908
Теперь покажи пальцем какую концепцию спиздили из крестов. Все концепции крестов замыкаются на борьбе с крестовыми нюансами. Общих концепций там раз два и обсчелся. Шаблоны устроены хуже дженериков в других языках, лямбды появились отностительно недавно и не могли быть спизжены у плюсов, constexpr появились отностительно недавно и не могли быть спизжены у плюсов.

Ответы5972

160 28 июня, 01:12 160 3485972

>>3485913
=( Думал, буду новые тезисы, а ты просто пересказываешь мне уже известную чушь.

Лямбды не спизжены у плюсов, лямбды более ранняя концепция. В плюсах появились в 2003 в boost. Это был первый язык со статической компиляцией с лямбдами

constexpr в текущем виде впервые появился в крестах. Код, который вычисляется на этапе компиляции, если все его переменные константы или также constexpr. Что-то похожее было в D раньше C++, но он мог только с константами работать и не умел использовать constexpr, вызываемы constexpr

Кстати, сам по себе consexprt говно, язык должен сам определять константы у нас или нет, без ключевых слов, но дауны в других языках об этом но додумались и тупо пиздят концепцию. Что Rust с const fn, что Zig с его compile, что другие

>Шаблоны устроены хуже дженериков
Лол. Шаблоны более мощная модель. В шаблонах у тебя есть полиморфизм, благодаря этому, ты можешь в зависимости от выходных данных, по сути генерировать тип. С дженериками это не работает. Опять же, лень пример приводить, который бы тебя разъебал, так как я с телефона, а пример на компе, и твой уровень дискуссии не достоин, чтобы я вставал с кровати

Ответы59775979

161 28 июня, 01:19 161 3485977

>>3485972
>Это был первый язык со статической компиляцией с лямбдами
Ты ебанат совсем? 50 лет семейству ML — а у него, видите ли, лямбды в 2003 году появились. Пиздец, с кем я сижу на одной борде. Может у тебя ещё и асинхронное программирование первым в C++ появилось?

Ответы5997

162 28 июня, 01:23 162 3485979

>>3485972
>Опять же, лень пример приводить, который бы тебя разъебал, так как я с телефона, а пример на компе, и твой уровень дискуссии не достоин, чтобы я вставал с кровати
Твой уровень дискусии достоен того, чтобы не отрывать тебя от хуя, который ты сосёшь — я бы так сказал.

Ответы5997

163 28 июня, 02:20 163 3485997

>>3485977
Показывай язык со статической компиляцией и лямбдами до 2003. Ты читать научись, у меня нет лишних слов

>>3485979
Ты собрался побеждать в спорте бессильным пуком?

164 28 июня, 03:11 164 3486013

>>3485775
>Это не переопределение оператора + на списке, в твоем понимании
Еще раз возвращаемся к тому, с чего начинали 15 постов назад. Ты вскукарекнул про перегрузку ОПЕРАТОРА, но в примере почему-то высрал КАСТОМНЫЙ класс.

Я тебе привел контрпример из нормального языка программирования, где НЕ СОЗДАВАЯ никаких дополнительных классов ПЕРЕГРУЗИЛ ВСТРОЕННЫЙ плюс. С чем ты споришь, я не понимаю?

>c женериком ты уточняешь выражение для конкретного типа (подтипа)
С каким женериком, блять? Где ты в Vector{Int64} женерик увидел, юродивый?

>Что тебе непонятно?
Мне все понятно. В питухоне НЕТ перегрузки операторов.

>>3485806
>Отсюда дизайнеры Go справедливо задали вопрос
Я очень рад, что дизайнеры Go одиноки в своей гениальности, и во все остальные языки map/filter все-таки добавили.

>тебе никто не обещал стандартные типы переопределять — тут тебе не JS
Ебанько, в JS как раз нельзя переопределять стандартные операторы.

>Для невстроенных типов переопределение свободное
А что, оно может несвободным? Типа тебе яп запрещает собственным классам определенные методы добавлять, ахах

>Прикинь. Java:
Прикинул. Ты разницу улавливаешь между, сука, приведением типов из одного примитива в другой и боксингом, когда у тебя автоматически примитив в объект превращается? У тебя ни в инте, ни в стринге нет своих методов.

>Неявное превращение примитива в объект — это ещё не самое страшное
То есть оказывается все МОЖЕТ становиться объектом, как я и написал?

> [] == ![]
>true
>Расскажешь мне, что тут объект?
Причем тут объект? Ты об алгоритме нестрогого равенства вообще слышал? Справа ты отрицанием скастанул массив к булиану, то есть к false, потому что любой объект всегда true. Слева у тебя остался объект, который приводится к примитиву методом toString(), который для пустого объекта возвращает пустую строку.

Ну и да, ебнутое нестрогое равенство считает что пустая строка и false одно и тоже. Объекты-то тут причем?

>валидация во время выполнения
Это не валидация, это упавшая программа.

>>3485890
>Я беру кресты и делаю норм
Молодец, ручку подарить?

164 28 июня, 03:11 164 3486013

>>3485775
>Это не переопределение оператора + на списке, в твоем понимании
Еще раз возвращаемся к тому, с чего начинали 15 постов назад. Ты вскукарекнул про перегрузку ОПЕРАТОРА, но в примере почему-то высрал КАСТОМНЫЙ класс.

Я тебе привел контрпример из нормального языка программирования, где НЕ СОЗДАВАЯ никаких дополнительных классов ПЕРЕГРУЗИЛ ВСТРОЕННЫЙ плюс. С чем ты споришь, я не понимаю?

>c женериком ты уточняешь выражение для конкретного типа (подтипа)
С каким женериком, блять? Где ты в Vector{Int64} женерик увидел, юродивый?

>Что тебе непонятно?
Мне все понятно. В питухоне НЕТ перегрузки операторов.

>>3485806
>Отсюда дизайнеры Go справедливо задали вопрос
Я очень рад, что дизайнеры Go одиноки в своей гениальности, и во все остальные языки map/filter все-таки добавили.

>тебе никто не обещал стандартные типы переопределять — тут тебе не JS
Ебанько, в JS как раз нельзя переопределять стандартные операторы.

>Для невстроенных типов переопределение свободное
А что, оно может несвободным? Типа тебе яп запрещает собственным классам определенные методы добавлять, ахах

>Прикинь. Java:
Прикинул. Ты разницу улавливаешь между, сука, приведением типов из одного примитива в другой и боксингом, когда у тебя автоматически примитив в объект превращается? У тебя ни в инте, ни в стринге нет своих методов.

>Неявное превращение примитива в объект — это ещё не самое страшное
То есть оказывается все МОЖЕТ становиться объектом, как я и написал?

> [] == ![]
>true
>Расскажешь мне, что тут объект?
Причем тут объект? Ты об алгоритме нестрогого равенства вообще слышал? Справа ты отрицанием скастанул массив к булиану, то есть к false, потому что любой объект всегда true. Слева у тебя остался объект, который приводится к примитиву методом toString(), который для пустого объекта возвращает пустую строку.

Ну и да, ебнутое нестрогое равенство считает что пустая строка и false одно и тоже. Объекты-то тут причем?

>валидация во время выполнения
Это не валидация, это упавшая программа.

>>3485890
>Я беру кресты и делаю норм
Молодец, ручку подарить?

Показать весь текст
Ответы6042

165 28 июня, 05:45 165 3486027

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

Чтобы получше понимать че происходит в программировании наворачивай С, больше ничего не нужно. После С можно ещё Zig навернуть и какую-то часть С++. И твоё понимание скорее зависит от того что ты пишешь и как именно пишешь, если будешь писать игровой движок или гуи фреймворк с упором на производительность - большинство низкоуровневых концепций ты изучишь и с JS.

166 28 июня, 06:51 166 3486035

Я посмотрел какой-то вводный ознакомительный урок с гло академии. Там какой-то усатый бородатый мужик на лекторе сказал, что если учите фронтенд, то надо только его учить, не надо распаляться, из бэкенда достаточно уметь кодить моковый имитационный псведобэк, который джейсоны получает и отдает. И сказал делать по фронтенду побольше петпроектов и рекомендовал поиграться с webgl с графикой.

Эти рекомендации полностью противоречат указаниям полученным на ту си эйч. Здесь на анонимном форуме наоборот всё говорят, что во фронтенд нельзя попасть, только на фуллстек можно. И здесь же говорят, что webgl и three.js нахуй не нужно мол учи лучше фуллстек учи фронт и бэк, без графики типа webgl three.js

И теперь под пойми кто прав. Я запутался.

Ответы6039

167 28 июня, 07:20 167 3486039

>>3486035
>гло академии
Ну академик всяко умнее двачера будет.

168 28 июня, 07:58 168 3486042

>>3486013
>С каким женериком, блять?
>https://github.com/JuliaLang/julia/blob/309b1b158f59485772d5f5fe0a762f20185cf799/base/arraymath.jl#L12

Почему в коде анотация ::Array? а у тебя в примере ::Vector{Int64}

Смотрим в документацию
https://docs.julialang.org/en/v1/base/arrays/

Array{T,N} <: AbstractArray{T,N}

Ответы6048

169 28 июня, 08:36 169 3486048

>>3486042
Ну ладно. Пример:
import Base: +
+(l::Array, r::Array) = "ty xyi"
Тоже работает в твоей жулии
Остается непонятным почему ты монкипатчинг называешь перегрузкой. Перегрузкой в типизированых языках называется доопределение операций для других типов агргумента,а не изменение существующих. Спроси у плюсовика.

Обновить тред

« /pr/В начало тредаВеб-версияНастройки

/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.gq, m2ch.cf, m2ch.fapp.in, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion