Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 304 29 76
JS Thread #326 /js/ Аноним # OP 23/06/25 Пнд 18:53:33 3482678 1
изаброжение.png 73Кб, 1050x1050
1050x1050
Предыдущий тред: >>3443580 (OP)

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

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

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

Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Аноним 23/06/25 Пнд 19:32:03 3482710 2
Первый нах!
Аноним 23/06/25 Пнд 19:57:38 3482729 3
Denis fullstack.png 216Кб, 960x1083
960x1083
Напомните, пожалуйста, нахуй вообще нужен 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-вставками, что можно реализовать на любом ЯП.

Ничо не забыл?
Рейтоните гитхабчик :3 Аноним 23/06/25 Пнд 23:01:59 3482898 4
вкатился такой [...].png 403Кб, 512x361
512x361
Аноним 24/06/25 Втр 04:13:08 3482955 5
Перекатывый обратно. Этот тред неудачным сразу получился
Аноним 24/06/25 Втр 06:42:49 3482970 6
17443629135731.jpg 114Кб, 688x688
688x688
Аноним 24/06/25 Втр 09:05:28 3483011 7
>>3482678 (OP)
Главный вопрос тысячелетия - почему бекенд на ноде мёртв ?
Аноним 24/06/25 Втр 09:57:52 3483030 8
>>3482898
>https://github.com/xcontcom
>За полтора месяца туда всякой фигни напихал.
Хуяк-хуяк и в продакшен на Next.js умеешь? Нет? Нахуй ты нужен?
Аноним 24/06/25 Втр 10:04:59 3483035 9
>>3483011
>Главный вопрос тысячелетия - почему бекенд на ноде мёртв ?
Не мёртв, кто-то даже в СНГ такой хуйнёй занимается, но вакашек на Python/PHP на порядок больше. С развитием Go у ноды объективно очень мало ниш остаётся, даже бессхемовое API на GraphQL можно сделать на куче ЯП, нода не обязательна.
Аноним 24/06/25 Втр 10:11:52 3483041 10
>>3483035
Можно ли перейти на другие стеки без потери зарплаты? Обычно везде требуют 3-5 лет опыта на go без исключений..
Аноним 24/06/25 Втр 10:19:15 3483046 11
>>3483035
Я бы смотрел на ноду как на средство быстрого прототипирования. Проверка гипотез, моки-хуеки, тому подобное говно. Язык более фичастый чем го, значит писанины ебанины меньше, но есть траблы с перформансом в части сборки мусора, в проде просадки могут делать плохие метрики.
Аноним 24/06/25 Втр 10:36:58 3483055 12
>>3483046
Сычев, какой нахуй прототип. Выкладывай что есть и чтобы работало! Завтара важные люди будут смотреть.
Аноним 24/06/25 Втр 10:50:29 3483065 13
>>3483046
>в проде просадки могут делать плохие метрики.
В 99% случаях просадки метрик из-за БД
Аноним 24/06/25 Втр 11:52:21 3483126 14
>>3483046
>фичастый чем го,
Ну разрабы го в последние годы вроде очухались и начали добавлять фишки по чайной ложке
Аноним 24/06/25 Втр 12:00:51 3483130 15
>>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 раз на запрос. И нет, нода так не умеет, потому что нода не умеет выполнять десять воркеров в одном адресном пространстве (чтобы кэш был общим).
Аноним 24/06/25 Втр 12:01:40 3483132 16
>>3483126
>Ну разрабы го в последние годы вроде очухались и начали добавлять фишки по чайной ложке
Ну там грамотные архитекторы работают, а не Гвидо, которые в 90-е тащил прямо всё подряд в ЯП. Golang как раз отличается простотой языка, а простота сама по себе является преимуществом.
Аноним 24/06/25 Втр 12:03:04 3483134 17
>>3483065
Просадки отдельных запросов - да. Както раз стресс-тестил графкульную федерацию на ноде, там прямо в htop было видно как сначала при полной загрузке cpu растет выделение памяти, потом вступает в дело gc и загрузка cpu падает почти до нуля, и через некоторое время снова полная загрузка проца и памяти выделено в разы меньше. Тру стори!
Аноним 24/06/25 Втр 12:07:50 3483139 18
>>3483132
>простотой языка, а простота сама по себе является преимуществом.
Такой простой,что пакет для работы с массивами и его производных добавили только недавно,а раньше надо было городить кучу кода.
И то, не добавили функции reduce filter map ,потому что один и создателей сказал,что НЕ НУЖНО
Аноним 24/06/25 Втр 12:12:22 3483142 19
>>3483132
Простота хуже воровства.
Аноним 24/06/25 Втр 12:32:31 3483162 20
>>3483130
>Тот же Golang позволяет иметь in-process кэш с околонулевой стоимостью доступа
В Nodejs(ORM) позволяет иметь in-process кэш с околонулевой стоимостью доступа
Аноним 24/06/25 Втр 12:41:16 3483170 21
>>348313
>PHP/Ruby/Python
Ну попробуй реалтайм сделать
Аноним 24/06/25 Втр 12:56:20 3483176 22
>>3483130
>PHP/Ruby/Python
Первые два совсем некрота. Ты бы ещё Perl предложил. Петухон получше, но до выразительности JS ему далеко.
Аноним 24/06/25 Втр 12:57:38 3483177 23
>>3483176
Круды клепать самое то
Аноним 24/06/25 Втр 13:05:48 3483180 24
>>3483177
Чел, JS это уже lingua franca на котором говорят буквально все. Пыхера еще найти можно, с рубистами потяжелее, а жсеров бери не хочу. Кому взбредет в голову изучать говна мамонтов, чтобы прототипировать не снимая свитер в режиме забега?
Аноним 24/06/25 Втр 13:07:56 3483182 25
>>3483170
В симфони "реалтайм" из коробки, чел. Через mercure и symfony messenger работает. Не надо ниче делать. только бандл установить официальный. Даже настраивать не надо все само через flex настроится.
Аноним 24/06/25 Втр 13:19:33 3483186 26
>>3483176
JS последние версии ниочем,нет важных улучшений
Аноним 24/06/25 Втр 13:25:20 3483190 27
>>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, особенности этих функций конкретно используются, они не просто "потому что удобнее" применяются.
Аноним 24/06/25 Втр 13:31:07 3483195 28
>>3483186
Никто не запрещает втаскивать в проект фичи на стадии пропозала. На свой страх и риск, конечно, но кого это останавливает?
Аноним 24/06/25 Втр 13:42:04 3483204 29
>>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 запросов в секунду"?
Аноним 24/06/25 Втр 13:45:38 3483208 30
>>3483190
>>3483204
>Жывее всех жывых — просто посмотри, сколько вакашек на PHP./
Битрикс,вордпресс и прочие
Аноним 24/06/25 Втр 13:48:48 3483210 31
>>3483208
и часто есть вакансии,где надо переписать с пхп на го
Аноним 24/06/25 Втр 13:51:32 3483212 32
>>3483204
>тебя list comprehension какие в JS есть?
Lodash chain в тыщи раз пижже
>Переопределения операторов?
Частично, через well known symbols
>Дескрипторы свойств?
Рефлексия во все поля
>Генераторы недавно завезли
10 лет это недавно,лол. Зато async/await завезли быстрее и типизацию
Аноним 24/06/25 Втр 14:11:32 3483224 33
>>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 год).
Аноним 24/06/25 Втр 14:15:36 3483228 34
А вы заметили что в последний год,код в этом треде почти не обсуждают?
Аноним 24/06/25 Втр 14:37:18 3483244 35
>>3483228
Любители повкатываться ушли отсюда к менторам
Аноним 24/06/25 Втр 14:50:26 3483262 36
download-1.jpeg 7Кб, 225x225
225x225
>>3483224
>ты забыл ".value()" и получил LodashWrapper{...} вместо значения
Твоё ебало когда в петухон завезли типизацию, но не научили ей пользоваться.
Аноним 24/06/25 Втр 15:23:26 3483276 37
Аноним 24/06/25 Втр 16:49:54 3483330 38
>>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, с улучшениями в рендеринге и производительности.
Аноним 24/06/25 Втр 18:53:49 3483374 39
05f68579100c5e9[...].jpg 24Кб, 564x564
564x564
>>3483330
>В питоне код обычно понятен без типизации
Аноним 24/06/25 Втр 19:06:46 3483381 40
Продвигаясь к заветной сотыге через /pr/, вы встретили тест на icq. Вычеркните лишнее:
- jestjs
- nest.js
- next.js
- nuxt.js
Аноним 24/06/25 Втр 19:23:44 3483388 41
Аноним 24/06/25 Втр 19:29:38 3483390 42
Аноним 24/06/25 Втр 20:49:39 3483449 43
>>3483381
next.js очевидно же, ведь он разработан meta - запрещённой в России экстремистской организацией
Аноним 24/06/25 Втр 21:19:41 3483464 44
Есть смысол вкатываться в next.js или это очередной jqwery, в который ты сегодня вкатываешься, а завтра им уже никто не пользуется и у тебя мозги засраты мусором?
Аноним 24/06/25 Втр 21:34:08 3483477 45
>>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.
Аноним 24/06/25 Втр 21:38:35 3483479 46
>>3483464
>Есть смысол вкатываться в next.js или это очередной jqwery, в который ты сегодня вкатываешься, а завтра им уже никто не пользуется и у тебя мозги засраты мусором?
Да какая нахуй разница? Во что бы ты не вкатися — завтра это будет мусор. React уже два раза под корень переписывали.
Аноним 24/06/25 Втр 21:40:08 3483480 47
>>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.
Я пояснил всё то же самое, только развёрнуто и на конкретных примерах. Я-то понимаю, что сей чел имел в виду. но простому крокодилу нихуя не понятно, особенно каргокультисту из функциональщины.
Аноним 25/06/25 Срд 01:09:22 3483567 48
>>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
Аноним 25/06/25 Срд 06:56:56 3483645 49
Буфер обмена06-[...].jpg 120Кб, 702x467
702x467
Аноны, я в JS вообще ни в зуб ногой, но по работе хочу сделать расширение для Хрома, которое копирует содержимое определенных элементов в буфер обмена и отдает его обратно. Чатгпт мне выдал код, он работает на Линуксе, но на Вин расширение падает в ошибку "NotAllowedError: Failed to execute 'writeText' on 'Clipboard': Document is not focused."
Сам скрипт тут https://pastebin.com/fGhxGyXp.

Что можно изменить, а? Этот Javascript охуенно сложная хуйня оказывается.
Аноним 25/06/25 Срд 07:35:18 3483657 50
>>3483645
А ты свою чатжипиту дальше спрашивай.
Аноним 25/06/25 Срд 09:12:33 3483693 51
>>3483479
вот поэтому угараю каждый раз с вас фрейморщиксов. всегда писал на чистом js и никаких проблем. хуйней страдаете как дети
Аноним 25/06/25 Срд 09:16:10 3483694 52
>>3483464
Хули там вкатываться, если знаешь реакт то почитать доки про app router и нужные компоненты и можно начинать говнокодить
Аноним 25/06/25 Срд 09:22:42 3483695 53
>>3483693
Твои тыща строк это не писал, а так, пописывал.
Аноним 25/06/25 Срд 10:54:05 3483746 54
1i-eQm1hVNC2Xi8[...].webp 37Кб, 531x733
531x733
1Y3a1FfgTv8jen9[...].webp 24Кб, 524x542
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 ты прямо с ходу понял.
Аноним 25/06/25 Срд 11:32:56 3483772 55
classes.png 38212Кб, 26959x26290
26959x26290
>>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), которая ни в одном стандарте не принята.
Аноним 25/06/25 Срд 12:07:51 3483800 56
>>3483693
>вот поэтому угараю каждый раз с вас фрейморщиксов. всегда писал на чистом js и никаких проблем. хуйней страдаете как дети
С кого "вас"? Дядя, я даже в проекте на Vue половину кода писал на простом JS, без "реактивности". Там ещё нужно постараться не дать фреймворку всунуть свою реактивность туда, где его не просят, а то он лезет во все щёлки, замедляя работу без толку.
Перед тем, как уйти из фронта, я угорал по Svelte v3, ны нынче уже есть такие штуки, как Alpine.js и Petite vue, которые куда угодно можно встроить — всё-такие ебаться со сложными взаимосвязями на сухую не очень приятно. Допустим, тот же Prosemirror использует модель реактивности аля React, то есть, построение всего VDOM одним проходом и синхронизация DOM по нему — и какой тут смысл выёбываться "зато у нас не React"?
Аноним 25/06/25 Срд 18:57:42 3484186 57
>>3482729
> 1. Нода быстрая — да, но не быстрее Go/Java/C#;
Быстрее, если не писать говнокод
> 1. Нода медленнее чем все компилируемые ЯП
Медленнее на 20-130% по сравнению с С, это ни о чем
> 3. Простота деплоя — смишно, угу.
Писать в три-пять раз быстрее это пиздато, потом можно переписать на с/zig/rust, а можно и хуй забить.

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

>>3483130
>JS на бэке в хуй не упёрлось именно для прототипирования, потому что есть PHP/Ruby/Python.
Чего нахуй? Прототипы пишут фулстек, нахуй нужно два языка когда прототип пишешь? Обезумел совсем?
Аноним 25/06/25 Срд 20:24:27 3484248 58
>>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.
Честно говоря, я в настолько хуёвых проектах никогда не работал, так что тут моя компетентность может быть недостаточной.
Аноним 25/06/25 Срд 20:46:29 3484256 59
>>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 лень отвечать.
Аноним 25/06/25 Срд 20:50:14 3484259 60
>>3484248
>Напомни мне, сколько ядер процессора в норме может нода использовать? А то я забыл что-то.
1ядро-один поток.Но можно спокойно поднять кластер из коробки или добавить PM2
Аноним 25/06/25 Срд 23:18:54 3484331 61
>>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
Безусловно, в питоне можно сделать только кусок говна. Я не спорю.
Аноним 26/06/25 Чтв 00:15:28 3484352 62
>>3483694
Роутер для педиков, кста. Нахуй в SPA роутер довны?
Аноним 26/06/25 Чтв 00:16:34 3484354 63
>>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 лень отвечать.
Чот у тебя быстро токены кончаются. Зарегайся на других сервисах.
Аноним 26/06/25 Чтв 00:19:49 3484355 64
>>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-оптимизатора сожрёт больше ресурсов, чем выполнение.
Аноним 26/06/25 Чтв 00:20:15 3484356 65
>>3484186
Не, ну ты про то, что node быстрее Go, загнул. Но в целом, да. Дауны до сих пор читаю методички, где у них JAVA - это серьёзно, а JS - нет, хотя, по возможностям выражения мысли TS (TS хейтеры - сосатБ) превосходит JAVA, а по сложности V8 ебёт JVM
Аноним 26/06/25 Чтв 00:26:05 3484358 66
Чепухонцы, вы заебали менять скорость языков. Одна только мысль, что вы там сравниваете СКОРОСТЬ ЯЗЫКА, говорит о вашей дегенеративность. Язык выбирается из соображений применимости и фич. Хочешь скорость, бери кресты и не еби мозг, так как они дают максимальное количество возможностей, чтобы, внимание, написать быстрый код, потому, как и на крестах можно наговнякать тормозное нечитаемое говно, похуже школьной поделки на пятухоне

Ещё раз такое увижу, забаню на дваче
Аноним 26/06/25 Чтв 00:48:18 3484363 67
>>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, это всё сторонние библиотеки-расширения.

>Безусловно, в питоне можно сделать только кусок говна. Я не спорю.
Так это ж всё из ноды методики я описывал.
Аноним 26/06/25 Чтв 00:50:10 3484364 68
>>3484352
>Роутер для педиков, кста. Нахуй в SPA роутер довны?
Бесит, кстати. Раньше в query строке всю эту хуйню делали, а сейчас им весь location давай на растерзание.
Аноним 26/06/25 Чтв 00:52:37 3484365 69
>>3484364
Во, во. Хештега достаточно #
Аноним 26/06/25 Чтв 01:00:45 3484367 70
>>3484365
Это некрасиво выглядит.
Плюс хэштег нужен для скроллинга к конкретному элементу, все браузеры обеспечивают этот функционал.
Путь в url всегда отвечал за загрузку нужной страницы, а раз этим теперь занимается spa router, то пусть так и берет данные о выборе страницы из пути.
Аноним 26/06/25 Чтв 01:29:36 3484372 71
>>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, и только поэтому платформа всё ещё воспринимается всерьёз.
Аноним 26/06/25 Чтв 06:45:49 3484435 72
>>3484356
Быстрее, но не на много. Если брать сервера - нода будет быстрее уже существенно, тому что в голанге ансихронность немного ебанутая. Офк сама нода кусок кала, по этому придётся использовать c++ сервера через napi, либо использовать бан.

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

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

Эти бенчи доказывают лишь твою отсталость, что ты говноедище которое не замечает даже в чем проблема.
Аноним 26/06/25 Чтв 09:02:17 3484465 74
>>3484355
>он может использовать сколько угодно ядер когда угодно
Нормально человек-нейросеть отвечает, сразу видно, что не шарит.

Голанг на проде использует 1 ядро тоже. Это хайлоад. Вам не понять.
Аноним 26/06/25 Чтв 09:50:00 3484477 75
>>3484465
Двачую. Вангую этот чушок многопоточность никогда вообще не писал, даже не понимает что синхронизация потоков убивает всю многопоточность, да и в целом это нахуй не нужно когда есть системный SO_REUSEPORT.
Аноним 26/06/25 Чтв 10:18:43 3484487 76
>>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;
Аноним 26/06/25 Чтв 10:21:37 3484488 77
>>3484438
>Зачем ты кидаешь свои говнобенчи? Их писали такие же как ты отсталые дебилы, которые не в состоянии понять что происходит в коде и как работать с нормальной многопоточностью.
Типикал двач:
— Сотни программ, бенчащих сложные и совершенно разные алгоритмы на двадцати разных языках?
— Отсталые дебилы!
— Программа с одним циклом на десять строчек?
— Профессиональные оптимизаторы из Google!

Что и требовалось доказать.
Аноним 26/06/25 Чтв 10:32:10 3484498 78
>>3484465
>Голанг на проде использует 1 ядро тоже. Это хайлоад. Вам не понять.
Go размазывает активные горутины по всем ядрам. Если вы написали хуйню, которая имеет только одну активную горутину, то я вам соболезную. Но вас никто не заставлял так писать.

>>3484477
>даже не понимает что синхронизация потоков убивает всю многопоточность
Ну так не делай синхронизацию потоков лишний раз, ебаныврот. А то делают HTTP запрос под блокировкой, а потом "чот медленно работает, хуйня ваш голанг". Я сейчас даже не выдумываю пример, потому что в моих дельфийских буднях я какой только хуйни не видел под блокировками.
Аноним 26/06/25 Чтв 10:34:53 3484501 79
>>3484498
>Go размазывает активные горутины по всем ядрам
Какие "все" ядра, если у тебя в контейнере дали одно ядро 0.125 ?
Сразу видно вкатуна, который прод на го не нюхал
Я работал на го, нет в современной разработке больше 1го ядра
Аноним 26/06/25 Чтв 11:10:05 3484526 80
>>3484501
>Какие "все" ядра, если у тебя в контейнере дали одно ядро 0.125 ?
>Сразу видно вкатуна, который прод на го не нюхал
У вас микросервисная помойка по распилу инвесторных денег — при чём тут я? У меня на последней работе "прод" был 48 ядер и 192 Гб оперативы — вот это "прод". Это только одна нода, таких десятки.
Слава богу, что я при поиске работы просто скипал всю такую новомодную прогрессивную хуйню по перекладыванию JSON-ов из одной коробки в другую..
Аноним 26/06/25 Чтв 11:47:44 3484554 81
>>3484487
>>3484488
А ясно, это нейронка. Так вот почему ебанутая чушь вместо аргументов, а рассуждения уровня "пук среньк jit gc бенч врёти"

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

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

Сейчас нейросеть скажет "да, ты полность прав, я в очередной раз отсосала, многопоточность в проде это галлюцинация с моей стороны".
Аноним 26/06/25 Чтв 12:15:55 3484582 82
так я не понял,сколько го использует ядер по умолчанию?
Аноним 26/06/25 Чтв 12:46:51 3484603 83
>>3484582
go это язык программирования, он ничего не использует. Горутины - да, использует все ядра
Аноним 26/06/25 Чтв 12:48:53 3484606 84
>>3484603
Если я сделаю один простой веб сервер с парочкой маршрутами и простой обработкой json, то ГО при выполнении загрузит только одно ядро процессора?
Аноним 26/06/25 Чтв 12:52:04 3484607 85
>>3484606
1 ядро без горутин, все ядра с горутинами.
Можешь проверить
Аноним 26/06/25 Чтв 12:53:45 3484609 86
>>3484607
Так там тоже надо писать код под многопоточность, аналог cluster node js?
Аноним 26/06/25 Чтв 12:53:57 3484610 87
Только чур не используй обёртку над горутинами, а то не честно.
Аноним 26/06/25 Чтв 12:54:41 3484611 88
>>3484609
>аналог cluster node js?
Аналог pub/sub workers, это когда одноядерные контейнеры разгребают асинхронные сообщения из очереди
Аноним 26/06/25 Чтв 12:58:22 3484613 89
>>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.
А это как понять?
Аноним 26/06/25 Чтв 12:59:57 3484615 90
>>3484613
>net/http already starts a goroutine
Ну так ты используешь обёртку, над горутинами, всё правильно. Попробуй написать свой веб-сервер без них
Аноним 26/06/25 Чтв 13:01:48 3484616 91
>>3484615
Чет не понял,если пакет для сервера то там автоматом включают горутины,а если простой код вывести хелло ворлд то одно ядро без горутин?
Аноним 26/06/25 Чтв 13:03:15 3484618 92
>>3484616
>а если простой код вывести хелло ворлд то одно ядро без горутин?
Да
Аноним 26/06/25 Чтв 13:07:40 3484620 93
>>3484618
А если на серваке еще есть программа числодробилка,тоне надо для нее вручную писать код обработки под горутины?
Аноним 26/06/25 Чтв 13:15:15 3484622 94
>>3484620
Ну смотря как запустить, если числодробилки будут асинхронно идти через go func, то горутины запустятся сразу на всех ядрах
Аноним 26/06/25 Чтв 13:16:39 3484624 95
>>3484622
ну к примеру принял запрос на роут и надо что-то посчитать и вернуть юзеру
Аноним 26/06/25 Чтв 13:19:16 3484626 96
>>3484624
>запрос на роут
Если ты делал запрос на роут через net/http, то там уже горутина включена
Аноним 26/06/25 Чтв 13:28:07 3484635 97
>>3484626
Пиздец конечно. Неудивительно почему go такой тормозной, если у него в каждом запросе хуячат какие-то горутины и синхронизация между потоками, очереди, блядь. Охуеть просто.

Нахуй они это сделали, знает кто?
Аноним 26/06/25 Чтв 14:16:44 3484658 98
Да ну на ваш го.

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

Стандард незаслуженно забытый шин ящитаю. Prettier - форсед хуита, котора я разраслась как рак по всей экосистеме.
Аноним 26/06/25 Чтв 14:29:35 3484663 99
>>3484635
В горутинах нет синхронизации между потоками, горутина не переключает треды, а переключает контексты
Аноним 26/06/25 Чтв 14:30:18 3484664 100
>>3484658
Эпик вин это eslint, а не эта ваша хуета Prettier со StandardJS.
Аноним 26/06/25 Чтв 14:33:01 3484665 101
>>3484663
Похуй, всё равно между потоками нужно данные передавать, а значит простой будет. Нахуя это нужно в сетевухе? Чтобы сервер не нагревался сильно? Лолд
Аноним 26/06/25 Чтв 14:33:54 3484667 102
>>3484665
Данные между потоками передаются асинхронными событиями. Всё, другого уже не будет. Это стандарт ит-разработки
Аноним 26/06/25 Чтв 14:40:43 3484673 103
Аноним 26/06/25 Чтв 14:41:31 3484674 104
>>3484667
Говна поел штоле? В любой нормальной асинхронной либе всё работает через атомики, чтобы данные не гонять и простоя не было.
И вопрос не в этом. Вопрос в том нахуя нужны горутины в сетевой либе, если распределением запросов занимается ядро системы.
Аноним 26/06/25 Чтв 14:43:06 3484675 105
>>3484674
>В любой нормальной асинхронной либе
мультипоточной либе, конечно же
слоуфикс
Аноним 26/06/25 Чтв 14:56:42 3484678 106
В чём прикол подрубать нейросеть и писать в этом треде?
Аноним 26/06/25 Чтв 15:18:20 3484690 107
>>3484678
Вполне возможно что так макака постинг поднимает
Аноним 26/06/25 Чтв 15:54:06 3484717 108
>>3484664
Путаешь мягкое с теплым. StandardJS это набор правил, eslint - тул для проверки выполнения правил.
Аноним 26/06/25 Чтв 17:16:54 3484759 109
>>3484690
Некоторые алени на дваче руками посты в нейросетку переносят, а потом обратно. Скорее вопрос были именно про это - какой прикол быть прокладкой между человеком и нейронкой?
Аноним 26/06/25 Чтв 17:30:31 3484764 110
>>3484759
Вероятнее всего это делают дети или вроде того. Думаю такое поведение какая-то форма бессознательных действий, какая-нибудь дрисня в башке навроде "хихи он спорит с нейронкой"
Аноним 26/06/25 Чтв 18:04:54 3484791 111
>>3484554
>Любая блокировка и любая синхронизация при запросе это минус производительность, любая рассинхронизация это значительный простой. Зачем проебывать производительность, если это можно не делать? Ведь уже есть системное распределение задач между процессами, притом оно работает без всяких синхронизаций.
У процессов нет общей памяти. Порождение процесса -- это медленно. Для этого и придумали потоки.

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

Мимо-аллигатор
Аноним 26/06/25 Чтв 18:44:02 3484832 112
>>3484791
>У процессов нет общей памяти.
Шаредмемори существует. Но на это похуй, потому что всё равно синхронизация убивает такты.
>Я, лично, пишу сложные приложения на дотнете.
Ты лично тупая нейросеть. В одном посте пишешь про работу мультипотоком и в этом же посте расписываешься в незнании шаредмемори.
> но кое-где есть и вычисления, которые неплохо бы распараллеливать, чтобы запрос пользователя выполнялся побыстрее.
Ага, галлюцинируй дальше. Это работает только если это отдельный микросервис который выполняет только один единственный класс задач и только тогда это будет работать нормально. В любых других ситуациях сервер будет тратить до 60% времени на выполнение кода планировщика задач и простои.
И кстати благодаря атомикам и шаредмемори JS в принципе ничем отличаться от любого другого языка не будет в такой ситуации. Только если не вспоминать про AVX и указатели, с ними конечно JS сосёт, но кто в наше время может в архитектуру заточенную под AVX
Аноним 26/06/25 Чтв 19:15:23 3484861 113
>>3484832
И этим мы делаем вывод,что го не лучше ноды жс?
Аноним 26/06/25 Чтв 22:09:28 3485040 114
>>3484861
В целом да, но в голанге есть указатели и avx. Используя указатели уже можно ебануть годные алгоритмы которые работают крайне хуёво в js, а если угорить по avx это уже всё, конец.
Конечно, для большинства задач это всё смысла не имеет, avx нужен только для каких-нибудь геймсерверов, а алгоритмы с указателями это тёмная магии. Остаются только отличия в простоте и скорости написания и это будет не в пользу го.
Аноним 26/06/25 Чтв 23:38:21 3485111 115
>>3484554
>Хорошо что даже нейронка признаёт что на JS код по скорости сравним с C. Очередная победа человека в споре с пиздушной машиной.
Ебать, я два или три раза за тред это написал, причём, уточнил, что никакой не абстрактный "JS код", а только написанный в очень специфическом стиле JS код может выполняться со скоростью кода на Си.
По сравнению с тобой нейронка хотя бы контекст немножко помнит, нахуй мне такие собеседники.

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

>Сейчас нейросеть скажет "да, ты полность прав, я в очередной раз отсосала, многопоточность в проде это галлюцинация с моей стороны".
Это новая мода — когда не понимаешь, о чём разговор и встряёшь в неё, то обязательно делаешь отсылку к "нейросетке"? Чисто эмпирически замечаю, что чем тупее собеседник на /pr/, тем чаще он ноет про нейросетки. Ещё бы начал говорить, что гуглом пользоваться нечестно, LOL.
Аноним 26/06/25 Чтв 23:40:21 3485112 116
>>3484606
>Если я сделаю один простой веб сервер с парочкой маршрутами и простой обработкой json, то ГО при выполнении загрузит только одно ядро процессора?
В Go нет никакого встроенного "веб сервера с парочкой маршрутов", всё зависит от конкретной реализации. Обычно как минимум одна го-рутина на запрос, а дальше планировщик размазывает го-рутины по ядрам.
Аноним 26/06/25 Чтв 23:52:45 3485116 117
>>3484665
>Похуй, всё равно между потоками нужно данные передавать, а значит простой будет. Нахуя это нужно в сетевухе? Чтобы сервер не нагревался сильно? Лолд
Почему ты не можешь попросить нейросетку тебе объяснить азбуку? Ты просто заваливаешь тред про JAVASCRIPT тупой хуйнёй про то, как ты не понимаешь устройство Go.
Аноним 27/06/25 Птн 00:14:31 3485126 118
>>3484832
>И кстати благодаря атомикам и шаредмемори JS в принципе ничем отличаться от любого другого языка не будет в такой ситуации.
JS отличается отсутствием высокоуровневых примитивов синхронизации, которые есть у многих "любых других языков".

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

>>3485040
Справедливости ради, многозадачность в современных ЦП выполнена крайне омерзительно, и там дальше уже похуй, какой конкретно ЯП пытается на этой платформе выполниться. С каждым годом разрыв по эффективности вычислений на ЦП и GPGPU только увеличивается.
Например, когерентность кэша в современных ЦП, внезапно, выполнена при помощи передачи сообщений. А такой хуйни, как "разделяемая ячейка памяти" в принципе не существует, ячейка с формально тем же адресом может быть одновременно и в RAM, и в нескольких уровнях кэша, и везде у неё будет разное значение, но процессор по прежнему продолжает притворяться, будто это одна ячейка, и пытается скрыть рассинхрон от пользователя. А внеочередное выполнение происходит по event-driven принципу — хуйня, которой в исходной машине Тьюринга вообще в принципе нет.
Из позитивных новостей: продолжающийся кризис западной экономики приводит к сокращению расходов на новые технологии, так что с имеющимися технологиями мы застряли надолго, так что усаживайтесь поудобнее, спешить некуда.
Аноним 27/06/25 Птн 06:35:16 3485185 119
>>3485111
> Ебать ты охуеешь, когда узнаешь, что любая смена ссылки на объект в V8 приводит к lock-free передаче сигнала сборщику мусора. То есть, примерно половина строчек в JS синхронизируется со сборщиком. И чо дальше? Синхронизация синхронизации рознь.
Тупая нейросетка сравнила синхронизацию процессов на разных ядрах и какую-то хуйню из GC из v8. Хуя галлюцинация!

>>3485116
Так ты же приходишь и объясняешь нам какой Go кал. Вот >>3485112 объяснил что обычно либы на go это многопоточный бред, который проёбывает произвоидтельность по факту своего существования.
Аноним 27/06/25 Птн 08:33:03 3485205 120
>>3485126
>JS отличается отсутствием высокоуровневых примитивов синхронизации, которые есть у многих "любых других языков".
Они и не нужны. Если ты не можешь понять атомики - твоя проблема
> Очень сильно зависит от конкретной задачи. В общем случае это разговор ни о чём.
Задача тут вполне конкретная: вебсервер с каким-то кодом многопотоночсти. Это будет проебывать огромное кол-во процессорного времени на синхронизацию, потому что по времени обработка запроса и обработка любого другого говна различается. Это существенный проеб произвоидтельности
> Справедливости ради, многозадачность в современных ЦП выполнена крайне омерзительно, и там дальше уже похуй, какой конкретно ЯП пытается на этой платформе выполниться. С каждым годом разрыв по эффективности вычислений на ЦП и GPGPU только увеличивается.
Какой-то бред от нейросети. CPU и GPU это разные задачи, на CPU ядра работают как разные, несинхронные, процессоры, потому что именно этого и ожидают от CPU
>Например, когерентность кэша в современных ЦП, внезапно, выполнена при помощи передачи сообщений. А такой хуйни, как "разделяемая ячейка памяти" в принципе не существует, ячейка с формально тем же адресом может быть одновременно и в RAM, и в нескольких уровнях кэша, и везде у неё будет разное значение, но процессор по прежнему продолжает притворяться, будто это одна ячейка, и пытается скрыть рассинхрон от пользователя. А внеочередное выполнение происходит по event-driven принципу — хуйня, которой в исходной машине Тьюринга вообще в принципе нет.
Понимаю, сложно для нейросети находится в ситуации подобной неопределённости, но для людей нормально писать алгоритмы с учётом некогерентности, управлять барьерами синхронизации это нормально. Конечно, если ты не даун-дебил который без нейросети не может пост на харчке написать, лолд
Аноним 27/06/25 Птн 09:56:25 3485248 121
>>3485185
>Тупая нейросетка сравнила синхронизацию процессов на разных ядрах и какую-то хуйню из GC из v8. Хуя галлюцинация!
Ебать шок, в V8 большой GC и код JS выполняются в разных потоках. "О сколько нам открытий чудных...".

>Так ты же приходишь и объясняешь нам какой Go кал. Вот >>3485112 (You) объяснил что обычно либы на go это многопоточный бред, который проёбывает произвоидтельность по факту своего существования.
Бля, чел, учит матчасть, просто какой-то позор обоссатый тут постишь.
Аноним 27/06/25 Птн 10:16:29 3485273 122
>>3485205
>Они и не нужны. Если ты не можешь понять атомики - твоя проблема
Понимание прежде всего должно заключаться в том, что lock-free программирование на атомиках — это вообще одна из самых сложных задач в программировании. И я не вижу этого понимания у тебя, я не вижу у тебя опыта аля звонки в три часа ночи "прод второй раз за ночь наебнулся, бегом к компу, платим двойную ставку, логи-стэке в тикете".

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

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

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

>для людей нормально писать алгоритмы с учётом некогерентности, управлять барьерами синхронизации это нормально
Ещё для людей нормально не знать, что такое когерентность кэша, как я вижу.
Аноним 27/06/25 Птн 11:10:32 3485307 123
>>3485248
>Ебать шок, в V8 большой GC и код JS выполняются в разных потоках.
Речь про синхронизацию, к чему тут lock-free gc? Там наверняка CAS везде.

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

>Понимание прежде всего должно заключаться в том, что lock-free программирование на атомиках — это вообще одна из самых сложных задач в программировании.
Только если ты нейросеть или даун-гошник с нейросетью вместо мозгов, лолд
Аноним 27/06/25 Птн 11:18:44 3485316 124
>>3485307
>Речь про синхронизацию, к чему тут lock-free gc? Там наверняка CAS везде.
Сериал "аноньчик учит матчасть продолжается" — оптимистичная ветка блокировки представляет из себя один CAS.

>Только если ты нейросеть или даун-гошник с нейросетью вместо мозгов, лолд
Расскажи мне больше про "я пишу код без багов". Ох уж эти вайбкодеры.
Аноним 27/06/25 Птн 11:53:32 3485337 125
>>3485316
>Расскажи мне больше про "я пишу код без багов".
Всё просто - для этого нужно писать код и посты на харчке без нейросети и думать. Не для всех.
Аноним 27/06/25 Птн 12:51:29 3485383 126
>>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 слышал когда-нибудь?
Аноним 27/06/25 Птн 12:53:57 3485387 127
>>3484487
>Вы языке нет целых чисел, но есть целочисленный массив — степень пиздеца понимаешь или нужно ещё развернуть?
В языке есть целые числа. ЦЕЛОЧИСЛЕННЫХ ПЕРЕМЕННЫХ НЕТ, ебанашка.
Аноним 27/06/25 Птн 13:22:19 3485409 128
Ребята,есть языки на которых много пишут.И те, на которых почти не пишут или вообще не пишут.
Аноним 27/06/25 Птн 15:21:54 3485498 129
>>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).
Аноним 27/06/25 Птн 16:15:04 3485535 130
image.png 30Кб, 641x868
641x868
image.png 39Кб, 587x890
587x890
>>3485498
>потому пошаговая запись для него является естественной формой.
Ну и какие преимущества тогда у го перед нодой? Или че ты вообще высрал, я не понял, цикл for во всех языках программирования одинаковый.

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

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

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

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

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

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

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

>Так-то можно и новый BigInt вспомнить, который вполне себе явно целое число, правда, не совместимое с обычными числами (number).
А в питоне-то есть такое, конечно же? Ах да, там же числа любой длины, зачем нам бигинты
Аноним 27/06/25 Птн 16:32:47 3485542 131
Аноним 27/06/25 Птн 17:07:25 3485573 132
>>3485535
Ты с нейросетью говоришь, в курсе?
Аноним 27/06/25 Птн 17:13:02 3485575 133
>>3485542
>пук
Я правильно понял, что по всем остальным пунктам я разъебал тебя настолько крепко, что ты даже высрать ничего не смог в ответ?

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

>>3485573
У меня хуй видно, в курсе?
Аноним 27/06/25 Птн 17:26:10 3485586 134
>>3485575
>Я тебе
1) Не мне.
2) Что значит перегрузить оператор? Оператор на типах определяется даже в хаскеле, а не абстрактный в вакууме оператор
Аноним 27/06/25 Птн 17:32:53 3485597 135
>>3485586
Правда в руби можно переоткрыть любой класс и напихать туда любой мусор. Получается руби лучше жс..
Аноним 27/06/25 Птн 17:38:05 3485604 136
>>3485575
Разъебал ты тут только себя. Буквально каждым постом разъебываешь сам себя и обсираешься, лол, вот же поехавшее безумное животное
Аноним 27/06/25 Птн 17:44:11 3485608 137
>>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
Ну да, как-то так.
Аноним 27/06/25 Птн 18:41:47 3485672 138
>>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;
Аноним 27/06/25 Птн 19:10:19 3485701 139
17505627820490.jpg 68Кб, 427x507
427x507
> filter и map - это самая база для ежедневных операций. Ну вот надо тебе отфильтровать данные по каким-то признакам и че ты каждый раз будешь for loop c if else костылить?
Ебало этого дерьмоеда представили? If для него костыль, да это же эталонный индус нахуй!
Аноним 27/06/25 Птн 19:24:38 3485711 140
>>3485672
>import Base: +
>+(l::Vector{Int64}, r::Vector{64}) = "ty xyi"

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

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

Нужно приводить в пример руби и котлин тогда уж. Где можно открывать классы для изменения.
Аноним 27/06/25 Птн 19:48:19 3485723 141
image.png 106Кб, 925x672
925x672
>>3485711
>Ну и в чем различие? Оператор + не определен в Base для Vector{Int64}
Ты еблан?

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

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

> В твоей жулии + не определен для Vector{Int64}
Сказочный долбоеб.
Аноним 27/06/25 Птн 20:11:42 3485747 142
>>3485723
Скорее нейронка не пиздит, а в твоем плейграунде какая-то прелюдия подключена определяющая +. Покажи мне код в Base на гитхабе определющий +. Даже я нихуя не зная жулии больше тебя понимаю..

Зы Если там будет женерик, так чем это лучше наследования? Спор же был не статический vs динамический полиморфизм.
Аноним 27/06/25 Птн 20:50:42 3485766 143
image.png 4Кб, 252x66
252x66
>>3485747
>Скорее нейронка не пиздит, а в твоем плейграунде какая-то прелюдия подключена определяющая +.
Чтоб ты знал, ебанько, для того, чтобы посмотреть КАКАЯ именно из функций вызывается для твоего кода, есть специальный метод @which, который тебе номер строки показывает.

>Даже я нихуя не зная жулии больше тебя понимаю..
Нейронкодаун срет не снимая штанов.
https://github.com/JuliaLang/julia/blob/309b1b158f59485772d5f5fe0a762f20185cf799/base/arraymath.jl#L12
Ну че, готовы нейросети заменить айтишников, петушара ебаная?
Аноним 27/06/25 Птн 21:05:18 3485775 144
>>3485766
Ну то есть это дженерик? Идем дальше.
Почему
>+(l::Vector{Int64}, r::Vector{64}) = "ty xyi"
Это переопределение, в твоем понимании
>class A(list) ...
Это не переопределение оператора + на списке, в твоем понимании

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

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

Что тебе непонятно?
Аноним 27/06/25 Птн 21:36:22 3485806 145
>>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
Аноним 27/06/25 Птн 21:37:09 3485809 146
Заканчивайте,этот срач так не кончиться
Аноним 27/06/25 Птн 21:40:50 3485813 147
>>3485809
Зачем? Тебе не интересно как языки устроены?
Аноним 27/06/25 Птн 21:42:00 3485815 148
>>3485813
в таком сраче трудно что то понять
Аноним 27/06/25 Птн 22:21:02 3485844 149
>>3485815
>в таком сраче трудно что то понять
Самое смешное то, что это ведь я писал про "понимание JS не нужно, предметка важнее". Может быть потому, что я, блять, всё-таки понял язык и занимался дальше предметкой, а не решал философские проблемы плана "писать ли else перед return или нет".
Аноним 27/06/25 Птн 22:24:56 3485848 150
>>3485844
Ну да, кроме тебя предметкой никто не занимается. Ты единственная надежда всех кабанов, лучик света в темном царстве волчар-философов..
Аноним 27/06/25 Птн 22:37:50 3485867 151
Почиатл я ваш срач и захотелось выучить другой язык, чтобы не быть как лох и шарить во всем написанном тут. Кроме жс ничего не знаю. Что посоветуете? Модный раст или го? Вечный с++? Может жава или с#?
Аноним 27/06/25 Птн 22:47:45 3485873 152
Аноним 27/06/25 Птн 23:00:24 3485882 153
>>3485848
>Ну да, кроме тебя предметкой никто не занимается. Ты единственная надежда всех кабанов, лучик света в темном царстве волчар-философов..
Есть челы-фулстэкеры, которые хуярят новые сайты быстрее, чем понимают, что написали. Я после двух лет во фронте по прежнему понимал, что дохуя не понимаю. Там одни гриды и флексбоксы такие, что ебануться можно. Это без CSS-переменных. Реально, фулстэком может быть только чел, который либо не умеет во фронт, либо не умеет в бэк, но чаще не умеет в них обоих. Написание современного веба в сборе — это крайне сложное занятие, и "упрощение" достигается только снижением требований.
Мне тем более смешно слышать про "написать сразу для веба, чтобы подо все платформы было" — ебокляки, у которых я работал, на эту хуйню повелись, и довольно поздно выяснили, что проще было написать тупо три приложения под три платформы, чем "упрощать" разработку до веб-приложения. Причём, браузер ебёт мозги намного больше, из-за бесконечного многослойного груза наследия со времён 1992 года. В бэке ты просто взял и сменил версию PHP на другую, а на фронте у тебя есть то, что есть, никакого выбора нет.

У меня где-то была охуенная презентация, где челы подводили итоги после аналогичной разработке сложного SPA под веб, они тоже повелись на истории про "электрон решает все проблемы" , и тоже поели говна, после чего SPA дропнули и написали нативное приложение.
Аноним 27/06/25 Птн 23:02:15 3485886 154
>>3485867
>Почиатл я ваш срач и захотелось выучить другой язык, чтобы не быть как лох и шарить во всем написанном тут. Кроме жс ничего не знаю. Что посоветуете? Модный раст или го? Вечный с++? Может жава или с#?
Мой стэк: Delphi, C/C++, Python, JS, Haskell. Считая что я поел всего самого вонючего говна. Лучше учи Go,можно Rust, но только если думаешь работать на запад. В СНГ ещё долго на C++ будут писать.
Аноним 27/06/25 Птн 23:05:34 3485890 155
>>3485383
>Хочешь скорость, бери кресты и сри себе в штаны UB
Шото ты сынок не туда воюешь

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

2. Твой опыт срания в штаны не представляет ценности. Я беру кресты и делаю норм
Аноним 27/06/25 Птн 23:10:28 3485896 156
>>3485867
typescript изучай чтобы понять синтез ооп и типов. Хаскел/окамл изучай для понимания чистого ФП, чтобы ни говорили, мультипарадигмальные языки имеют мало общего с чистым ФП. Всякие там функторы и функциональные обновления не используются, если писать код на том же тайпскрипте. Руби можешь изучить чтобы понять, как с помощью красивых концепций писать запутанный код. Если у рубистов отобрать доку по рельсам, они через месяц уже нихуя не напишут, потому что забудут конвенции, чтобы там ни пиздел DHH про свой фреймворк.
Аноним 27/06/25 Птн 23:20:56 3485908 157
>>3485867
Кресты бери и не ожидай быстрого результата, минимум 3 месяца. Вся языки пиздят концепции от-туда причем зачастую реализуя их в убогой форме
Аноним 27/06/25 Птн 23:25:54 3485909 158
>>3485908
Да, ещё C++98 и последние 26 - это два разных языка. Учи последние фичи. Со всяким unique_ptr придется ознакомиться, а потом понять, что этот мусор ненужОн, потому, что есть контейнеры и поинтеры в редких случаях внутри них используются, а вне нет. Но это по ходу изучения, завадая себе вопросы выяснить. Кстати, нейросети в ряде вопросы не помогут, потому, что они обучены на ранних стандартах, чей код доминирует, а на новых, может просто нужной стать и примера не найти и посоветует дичь
Аноним 27/06/25 Птн 23:30:35 3485913 159
>>3485908
Теперь покажи пальцем какую концепцию спиздили из крестов. Все концепции крестов замыкаются на борьбе с крестовыми нюансами. Общих концепций там раз два и обсчелся. Шаблоны устроены хуже дженериков в других языках, лямбды появились отностительно недавно и не могли быть спизжены у плюсов, constexpr появились отностительно недавно и не могли быть спизжены у плюсов.
Аноним 28/06/25 Суб 01:12:04 3485972 160
>>3485913
=( Думал, буду новые тезисы, а ты просто пересказываешь мне уже известную чушь.

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

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

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

>Шаблоны устроены хуже дженериков
Лол. Шаблоны более мощная модель. В шаблонах у тебя есть полиморфизм, благодаря этому, ты можешь в зависимости от выходных данных, по сути генерировать тип. С дженериками это не работает. Опять же, лень пример приводить, который бы тебя разъебал, так как я с телефона, а пример на компе, и твой уровень дискуссии не достоин, чтобы я вставал с кровати
Аноним 28/06/25 Суб 01:19:09 3485977 161
>>3485972
>Это был первый язык со статической компиляцией с лямбдами
Ты ебанат совсем? 50 лет семейству ML — а у него, видите ли, лямбды в 2003 году появились. Пиздец, с кем я сижу на одной борде. Может у тебя ещё и асинхронное программирование первым в C++ появилось?
Аноним 28/06/25 Суб 01:23:31 3485979 162
>>3485972
>Опять же, лень пример приводить, который бы тебя разъебал, так как я с телефона, а пример на компе, и твой уровень дискуссии не достоин, чтобы я вставал с кровати
Твой уровень дискусии достоен того, чтобы не отрывать тебя от хуя, который ты сосёшь — я бы так сказал.
Аноним 28/06/25 Суб 02:20:32 3485997 163
>>3485977
Показывай язык со статической компиляцией и лямбдами до 2003. Ты читать научись, у меня нет лишних слов

>>3485979
Ты собрался побеждать в спорте бессильным пуком?
Аноним 28/06/25 Суб 03:11:31 3486013 164
>>3485775
>Это не переопределение оператора + на списке, в твоем понимании
Еще раз возвращаемся к тому, с чего начинали 15 постов назад. Ты вскукарекнул про перегрузку ОПЕРАТОРА, но в примере почему-то высрал КАСТОМНЫЙ класс.

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

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

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

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

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

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

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

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

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

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

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

>>3485890
>Я беру кресты и делаю норм
Молодец, ручку подарить?
Аноним 28/06/25 Суб 05:45:48 3486027 165
>>3485867
Весь срач это высеры одного шиза который просто хуёню несёт почти всё время, постит всякое говно с нейронки, забей на этот кринж. Непоследовтельная аргументация, постоянно перескакивает с темы на тему, бред шизоидный

Чтобы получше понимать че происходит в программировании наворачивай С, больше ничего не нужно. После С можно ещё Zig навернуть и какую-то часть С++. И твоё понимание скорее зависит от того что ты пишешь и как именно пишешь, если будешь писать игровой движок или гуи фреймворк с упором на производительность - большинство низкоуровневых концепций ты изучишь и с JS.
Аноним 28/06/25 Суб 06:51:43 3486035 166
Я посмотрел какой-то вводный ознакомительный урок с гло академии. Там какой-то усатый бородатый мужик на лекторе сказал, что если учите фронтенд, то надо только его учить, не надо распаляться, из бэкенда достаточно уметь кодить моковый имитационный псведобэк, который джейсоны получает и отдает. И сказал делать по фронтенду побольше петпроектов и рекомендовал поиграться с webgl с графикой.

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

И теперь под пойми кто прав. Я запутался.
Аноним 28/06/25 Суб 07:20:03 3486039 167
>>3486035
>гло академии
Ну академик всяко умнее двачера будет.
Аноним 28/06/25 Суб 07:58:51 3486042 168
Аноним 28/06/25 Суб 08:36:39 3486048 169
>>3486042
Ну ладно. Пример:
import Base: +
+(l::Array, r::Array) = "ty xyi"
Тоже работает в твоей жулии
Остается непонятным почему ты монкипатчинг называешь перегрузкой. Перегрузкой в типизированых языках называется доопределение операций для других типов агргумента,а не изменение существующих. Спроси у плюсовика.
Аноним 28/06/25 Суб 09:20:25 3486059 170
>>3486048
Хотя [1, 2] + [3, 4] + [7, 5] остается не работающим. Работает только с двумя аргументами
MethodError: no method matching +(::Vector{Int64}, ::Vector{Int64}, ::Vector{Int64})
Получается это все таки "дописывание" определения для конкретной сигнатуры оператора + (с двумя аргументами, но не с тремя и больше), а не манки патчинг

Ну значит в жулии overloading примерно как в С++ а питухоне overriding как в С++ же
Аноним 28/06/25 Суб 09:46:30 3486065 171
>>3485997
>Показывай язык со статической компиляцией и лямбдами до 2003. Ты читать научись, у меня нет лишних слов
Да, слов нет, только лишняя сперма на бороде.

fun makeCounter (initial : int) : (unit -> int) =
let val count : int ref = ref initial
in fn () => (count := !count + 1; !count)
end;

val counter1 = makeCounter 0;

1982 год.
Аноним 28/06/25 Суб 10:17:38 3486074 172
>>3486013
>Я тебе привел контрпример из нормального языка программирования, где НЕ СОЗДАВАЯ никаких дополнительных классов ПЕРЕГРУЗИЛ ВСТРОЕННЫЙ плюс.
Мне до пизды твой "нормальный язык програмирования". Я прекрасно помню что ты писал — ты писал, что питон та же хуйня, что JS. Я тебя разъебал по перегрузки, которая есть в питоне в каком-то виде, а в JS её нет в принципе, все операторы имеют только встроенное ублюдочное поведение.
Причём, настолько ублюдочное, что оператор "==" нынче все линтеры запрещают к применению. Всё остальное мне до пизды, ты свой обсер маскируешь умной, но не относящейся к беседе хуетой.

>Ебанько, в JS как раз нельзя переопределять стандартные операторы.
Операторы нельзя — методы можно:
Array.prototype.toString = function() {
return JSON.stringify(this);
};

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

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

>То есть оказывается все МОЖЕТ становиться объектом, как я и написал?
Может, но не всё является объектом.

>Ну и да, ебнутое нестрогое равенство считает что пустая строка и false одно и тоже. Объекты-то тут причем?
Тебя не смущает, что язык сделал в двух операциях три превращения типа? Или "это не считается"?

>Это не валидация, это упавшая программа.
Исключение в питоне не обязано приводить к падению программы.
Аноним 28/06/25 Суб 10:25:41 3486076 173
>>3486035
>Здесь на анонимном форуме наоборот всё говорят, что во фронтенд нельзя попасть, только на фуллстек можно. И здесь же говорят, что webgl и three.js нахуй не нужно мол учи лучше фуллстек учи фронт и бэк, без графики типа webgl three.js
Где "здесь"? Кто "говорят"? Фуллстэк — это обычно говёные краткосрочные проекты "сделал и забыл", всё долгосрочное рано изи поздно делится на фронт и бэк, но туда требуются достаточно опытные разрабы. Сейчас джуном-мидлом вкатиться сложно куда угодно, потому что в сфере кучу джунов выкинуты на мороз.
WebGL и three.js — это довольно специфичная хрень, я за два года во фронте к ней не прикоснулся, хотя какой-то небольшой опыт с OpenGL имел.

>>3486059
>Хотя [1, 2] + [3, 4] + [7, 5] остается не работающим. Работает только с двумя аргументами
Для трёх и более аргументов нужно сделать трюк как в стандартной либе, с троеточиями.
Аноним 28/06/25 Суб 10:49:42 3486086 174
> 2025
> yarn
Ебало представили?
Аноним 28/06/25 Суб 15:56:32 3486257 175
>>3486086
Этот кринж уже не перспективно ракать в 25 году?
Аноним 28/06/25 Суб 16:56:05 3486317 176
>>3486065
Молодец. Хорошая попытка подумать, но тупость и оскорбительная спесь тебе мешают. Теперь напиши мне ту же функцию для флоатов. Что ты будешь делать makeCounterFloat? А на дабл? А на другие типы. Ты уже начинаешь видеть где ты смешон?

Поэтому люди, когда проектировали статическую компиляци придумали перегрузку, которую изначально заложили в C++. И статическая компиляция без этого свойства не имеет смысла. ML не подходит под эти критерии

Как я уже выше писал: "лямбды более ранняя концепция.". Она была в ML и в более ранних языках. Первая реализация на статической компиляции была на плюсах в boost, может ещё где-то, не изучал вопрос так детально

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

Скриптовые же языки, вроде JAVA, C# и прочие без стат компайл выполняются в виртуальной машине и уже в силу этого могут легко реализовать у себя лямбды, поэтому реализовали их ранее, но про них речи не идёт

Так что вытирай бороду, потому, что как ты выше признался, ты любишь думать о городах в жидкостью на ней, и пытайся думать и сравнивать, а не искать в интернете/нейросети и думать, что победил, не разбираясь в вопросе
Аноним 28/06/25 Суб 17:01:31 3486323 177
>>3486076
Фрон и бэк учатся каждый за год - два. Твой лимит обучения на жизнь два года, больше знаний не вмещается что ли? Я эту хуйню слышу только от бездарностей, по сути, рабов, которые не выбирают инструмент, а завязываются на него, становясь придатком к react-станку, а от толковых челиков слышу, что инструмент выбирают, а от Страуструпа слышу, что вообще не надо заморачиваться на программировании, а стоит изучать философию, историю и т.д.
Аноним 28/06/25 Суб 17:17:49 3486335 178
>>3486317
>когда у тебя примитивный язык
>про ML
посмешил, чел
Аноним 28/06/25 Суб 17:23:15 3486348 179
>>3486317
>будешь делать makeCounterFloat?

1. Standard ML (SML)
Дженерики встроены в язык изначально благодаря параметрическому полиморфизму (parametric polymorphism).

1984–1990 – Стандартизация ML (SML'90) закрепила эту возможность.

2. OCaml
Дженерики (в виде параметризованных типов) присутствуют с самого начала (наследуются из ML).

1996 – OCaml появился как ответвление от Caml Light, но параметрический полиморфизм был и раньше.

3. Haskell
Дженерики также встроены в язык через систему типов (параметрический полиморфизм).

1990 – Haskell 1.0 уже поддерживал обобщённые типы.
Аноним 28/06/25 Суб 18:27:20 3486402 180
function* qgen() {
for (let x = 1, isEven = 0; ; x += isEven, isEven = 1 - isEven)
for (let n = x, l = x - (2 - isEven), ms = 0.5; l >= 0; n += +(ms < 0), l += -(ms < 0), ms = -ms)
for (let m = -l; m <= l; m++) yield {n, l, m, ms};
}

как вам мой генератор квантовых чисел для электрона в атоме?
Аноним 28/06/25 Суб 18:51:34 3486424 181
>>3486402
Их же раз два и обчелся, проще в таблицу занести чем каждый раз вычислять.
Аноним 28/06/25 Суб 18:52:40 3486426 182
>>3486402
>электрона в атоме
Алсо сначала подумал про Electron и Atom. Ппц профдеформация.
Аноним 28/06/25 Суб 19:46:37 3486469 183
>>3486424
>раз два и обчелся
как это раз два?
их равно количеству протонов в ядре, для железа их 26, для оганесона 118, вообще не раз два
>проще в таблицу занести
это мб, но у меня чисто академический интерес. Задача в том, чтобы разобраться, как оно работает, а не в том, чтобы использовать на практике
к тому же мой генератор иногда пиздит
Аноним 28/06/25 Суб 20:34:19 3486483 184
>>3486317
>Молодец. Хорошая попытка подумать, но тупость и оскорбительная спесь тебе мешают. Теперь напиши мне ту же функцию для флоатов. Что ты будешь делать makeCounterFloat? А на дабл? А на другие типы. Ты уже начинаешь видеть где ты смешон?
Это хорошо, что ты вытер сперму и можешь дальше вести дискусию
Как ты понимаешь, обычные функции в C++ нихуя не полиморфны, потому ждать от любого другого ЯП полиморфности по умолчанию по крайней мере странно.

datatype Number = Int of int | Real of real;

fun addNumber (Int x, Int y) = Int (x + y)
| addNumber (Real x, Real y) = Real (x + y)

fun makeNumberCounter (initial : Number) : (unit -> Number) =
let val count = ref initial
val one = Int 1
in fn () =>
let val newCount = addNumber (!count, one)
in count := newCount; newCount
end
end;

val intCounter = makeNumberCounter (Int 0);
val realCounter = makeNumberCounter (Real 0.0);

Только не надо мне вонять по поводу того, что волшебный C/C++ имеет полиморфные арифметические операторы и скрыто приводит к int к float и обратно, теряя точность — это скорее недостаток, чем преимущество.

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

>Скриптовые же языки, вроде JAVA, C#
Похоже, тебя ещё и в очко ебут с другой стороны. Бля, зачем я вообще пытаюсь такому вафлёру что-то отвечать?
Аноним 28/06/25 Суб 21:04:09 3486501 185
>>3486323
>Страуструпа слышу, что вообще не надо заморачиваться на программировании, а стоит изучать философию, историю и т.д.
Очень удобно быть наёмным сотрудником, который оказался в правильной компании в правильное время, но не он сделал C++ популярным, и он даже никогда не писал компиляторов — он писал только первые версии Cfront, который тупой транслятор в C, и уже на этом этапе его разработку подхватили другие люди из AT&T, по сути весь C++ сделали AT&T, Страуструп только подкидывал им "удобные" предложения. Ему даже сложно как-то брать на себя лавры победителя, потому что даже не он "побеждал" в этой игре — он до сих пор отыгрывает размытую роль "идейного вдохновителя", "человек, который был у истоков", хотя по факту он уже давно простой хуила без какой-либо значимости, потому что его работодатель, AT&T, сильно похудел и теперь ничего в IT не решает.

>Фрон и бэк учатся каждый за год - два. Твой лимит обучения на жизнь два года, больше знаний не вмещается что ли?
Ещё раз: мой стэк — это Delphi, C/C++, JS, Python, Haskell. Расскажи мне больше про "лимит обучения на жизнь".
Я ещё раз настаиваю на том, что какую-то серьёзную длинную разработку для веба нереально делать командой фулстэкеров — неизбежно нужно изолировать отдельные модули, чтобы кодер X хорошо разбирался в алгоритме построения графиков, кодер Y знал всё про логику авторизации, а кодер Z занимался масштабированием очередей. Даже если чел начинает проект как фулстэкер, то он выберет какую-то одну сторону по ходу дела.

То, что мы часто видим в индустрии — это скорее "ставим задачи под имеющиеся решения", когда фронтендеров на React садят писать бэк на Next.js — я категорически настаиваю на том, что это мозг рака и нифига не от любви к обучению исполняется. Это в какой-то степени аналогично SPA на GraphQL без авторизации и валидации — фронтендеру аналогичным образом дают полный доступ к бэку, и он как бы почти становится бэкендером по совместительству. Конечно, если заказчика устраивает дырявый сайт.

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

Вот лично я на последней работе координировал как тестирование, питона так и писание фич на C/C++. Но я не могу сказать, что в какой-то момент времени я дохуя разбирался в каждой строчке кода — у меня были свои модули на крестах, которые я писал и понимал, всё остальное — это "чужой код, ХЗ что он там делает, но написано вроде правильно".
Аноним 28/06/25 Суб 21:18:51 3486505 186
>>3486501
МВП все таки лучше одному многорукому назначить, чем десятку челов. Потому что десять челов будет в десять раз дольше делать.

мимо
Аноним 28/06/25 Суб 22:15:35 3486546 187
image.png 43Кб, 776x658
776x658
Как же я заебался. Сделал компилятор в голове, но остановился на управлении всей оболочкой. Пиздец блядь, уже два дня сижу и нихуя не понимаю че делать.

Через стор с сигналами управлять созданием всего ui или через методы?
Аноним 28/06/25 Суб 22:21:43 3486548 188
>>3486546
Что это за херня?

>Через стор с сигналами управлять созданием всего ui
Для начала попробуй разделить модель и представление.
Аноним 28/06/25 Суб 22:24:50 3486550 189
>>3486546
Все эти фронтендные технологии для тырпрайза чел. А в тырпразе тебя будут нейронки тебя заменять. Поэтому сейчас лучше переходиь на деловские технологии расчитаные на одного чела делающего продукт для мелкобиза. Делаешь все на бекенде, рендеришь шаблонами, а на фронтенде жиленький слой жса, хоть на жиквери, хоть на стимулусе.
Аноним 28/06/25 Суб 22:25:46 3486551 190
>>3486550
>деловские технологии
дедовские
Аноним 28/06/25 Суб 22:55:23 3486569 191
>>3486505
>МВП все таки лучше одному многорукому назначить, чем десятку челов. Потому что десять челов будет в десять раз дольше делать.
Да, но я не уверен по поводу "одному" — если фич много, то стоит подключать двух-трёх-четырёх. По-хорошему, самые опытные и квалифицированные челы должны этим заниматься, а потом всё, что они написали, будет поэтапно выкинуто и полностью переписано. Это теория.
Практика — это проект находится в бесконечном MVP, начальная разработка поручается манагеру, а не кодеру, развитие и расширение поручается джунам-мидлам, при этом сеньоры делают "наиболее важную часть" в условиях, когда "мы архитектуру уже разработали", "не ломалось — не трогай". Может быть это преувеличение, но те или иные проявления подобного подхода я видел неоднократно: я приходил с предложениями и получал от кого-то старшего ответы плана "мы не видим значимых преимуществ твоего подхода, наша слепленная на коленке лапша и так хорошо работает".
Причём, даже когда я стал техлидом, то всё равно надо мной стояли экзекьютивы и CTO, которым нужно постараться доказать нужность изменений, при этом у каждого из них самооценка и самоммнение до небес — у меня даже была рабочая теория, что им похую на продукт, им намного важнее показать другим и самим себе какой у них большой член.
Аноним 28/06/25 Суб 23:01:07 3486574 192
>>3486548
> Что это за херня?
Кусок компилятора
>Для начала попробуй разделить модель и представление.
Это невозможная и бессмысленная шизофазия

>>3486550
Да нахуй мне это, я свой кал-калыч делаю чтобы делать свои приложения. Похуй что там для какого тырпрайза или биза
Аноним 29/06/25 Вск 04:05:20 3486659 193
>>3486574
>Кусок компилятора
Больше похоже на генератор кода на основе примитивных шаблонов из интерполяции строк.

>шизофазия
Ну раз ты так считаешь, то так оно и есть.
Аноним 29/06/25 Вск 07:25:37 3486691 194
>>3486659
> Больше похоже на генератор кода на основе примитивных шаблонов из интерполяции строк.
Нет, там строится AST, по AST два прохода и в конце строится исходник. Можно не только DOM собирать, но и WASM из ML похожего на JSX.
> Ну раз ты так считаешь, то так оно и есть.
Ты просто никогда фреймворки не писал, вот и фантазируешь хуйню. Не существует реальной возможности полностью отделить модель от представления.
Аноним 29/06/25 Вск 12:27:13 3486869 195
getVideoPreview.webp 35Кб, 1200x720
1200x720
>>3486059
>Хотя [1, 2] + [3, 4] + [7, 5] остается не работающим. Работает только с двумя аргументами
>MethodError: no method matching +(::Vector{Int64}, ::Vector{Int64}, ::Vector{Int64})
>Женерик! кок-кок КУДАХ!!!!

>>3486048
>Остается непонятным почему ты монкипатчинг называешь перегрузкой.
Аноним 29/06/25 Вск 12:35:41 3486880 196
>>3486074
>Я тебя разъебал по перегрузки, которая есть в питоне в каком-то виде, а в JS её нет в принципе
Еще раз, перегрузку плюса в питоне в студию. Так чтобы 2+3 возвращало "ty xyi". Обосралась, Маня? Значит, обтекай.

>Причём, настолько ублюдочное, что оператор "==" нынче все линтеры запрещают к применению.
Он никогда и не рекомендовался к употреблению, начнем с этого.

>Операторы нельзя — методы можно
Ты долбоеб? Я тебе про операторы.

>собственным
>встроенных
Сказочный долбоеб.

>Тебя не смущает, что язык сделал в двух операциях три превращения типа? Или "это не считается"?
Ты впервые столкнулся с JS или что? Ты внезапно в 2025 году открыл для себя, что это один из худших яп, когда либо созданных? Поздравляю. Ручку подарить?
Аноним 29/06/25 Вск 12:52:47 3486891 197
>>3486880
>Еще раз, перегрузку плюса в питоне в студию. Так чтобы 2+3 возвращало "ty xyi". Обосралась, Маня? Значит, обтекай.
Подменяешь понятия — зашиваешь очко. Такие дела.

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

>>>Тебя не смущает, что язык сделал в двух операциях три превращения типа? Или "это не считается"?
>Ты впервые столкнулся с JS или что? Ты внезапно в 2025 году открыл для себя, что это один из худших яп, когда либо созданных? Поздравляю. Ручку подарить?
Ага, то есть контекст беседы ты опять игнорируешь, потому что в нём ты обосрался? А сам несколько постов назад втирал, что неявные превращения — не превращения.
Аноним 29/06/25 Вск 13:10:09 3486897 198
>>3486880
> 2+3 возвращало "ty xyi"
Это не перегрузка, а манки патчинг, как в жс и рубях. В жс для операторов невозможно такое сделать,только потому что они в жс не являются методами объектов, а патчинг делается через прототипы в жс.

Классическая перегрузка в С++

#include <iostream>

class Number {
double num;

public:
Number(double num): num{num} {}
template<typename T>
Number operator +(T n) {
return num + n;
}
Number operator +(const Number& n) {
return Number(num + n.num);
}

friend std::ostream& operator<<(std::ostream &o, const Number& num) {
o << num.num;
return o;
}
};

int main() {
Number a{2};
Number b{3};

std::cout << a + b + 4 << std::endl;
}
Аноним 29/06/25 Вск 14:04:15 3486916 199
>>3486483
Ахаха. Ты с этим примером серьезно не понимаешь где обосрался? Ты иди изучи, что такое статик компиляция и полиморфизм. Заодно ознакомься с понятием вывода типов.

У тебя твоя параша в случае, когда ты кидаешь в метод makeNumberCounter int возвращает Number, когда Real - тоже Number. У тебя в твоём говне нет вывода типов. В плюсах если я кину int, мне всегда вернётся int

И в C++ нет полиморфных операторов, есть перегрузка. Полиморфизм - говно по своей сути, свойство ООП подхода, благодаря vtable (иди гугли что такое)

Ты не понимаешь, что такое статик компиляция. Твой код на ML не рабочий, там надо фиксануть. С самого начала подозревал, что с нейросетевым высером общаюсь. Хуль ты даже не проверяешь выдачу, бородатый спермолюб?
Аноним 29/06/25 Вск 14:12:11 3486923 200
FSD - ХУЙНЯ?
Аноним 29/06/25 Вск 14:47:13 3486942 201
>>3486923
Если морда декомпозируется по страницам (на каждый route свой page), то почему бы нет.

Меня только напрягает их нейминг. Почему-то слой виджетов выше слоя фичей, хотя казалось бы фича это полновесный функционал, а виджет это элемент UI.
Аноним 29/06/25 Вск 15:04:45 3486946 202
>>3486916
Ты хочешь сказать

В эмельках проблема в том что операции числами не полиморфны, для них не выражений с параметрическим полиморфизмом
Я могу написать
type 't point = {
x: 't;
y: 't;
}

Но функцию
let dist p = ?
Я не могу статически полиморфной сделать потому что операторы + ★ не полиморфны статически, sqrt функция тоже не полиморфна

В С++ шаблоны сам по себе не явлляются параметрическими выражениями языка С++ это тупо текст который преобразуется в конкретный код при инстанцировании (в месте применения шаблона)

В С++ шаблоны это по сути макроподстановка на стероидах

Так?

мимо
Аноним 29/06/25 Вск 15:16:38 3486953 203
>>3486946
>не явлляются параметрическими выражениями языка С++
Точнее шаблоны то являются конструкциями С++, но код в них не анализируется на синтаксис до того, как шаблон не будет подставлен в выражение.

Но если бы в С++ были раздельные операаторы для флоатов и целых. То была бы такая же проблема как в ML. Потому что бы при подстановке для целых требовалась операция +, а для флоатов .+

Тебе бы пришлось два шабона писать (перегрузка)
Аноним 29/06/25 Вск 15:24:27 3486955 204
>>3486942
В нижнем правом угла есть блок с "Избранное / Топ тредов"

Это виджет, фича или ентити?
Аноним 29/06/25 Вск 15:57:06 3486967 205
>>3486955
По терминологии fsd это виджет «топ тредов» использующий фичу «выпадашка прибитая к низу окна». В списке отображаются сущности типа «тред».

Но я бы назвал выпадашку виджетом, а топ тредов - фичой.
Аноним 29/06/25 Вск 16:10:18 3486979 206
>>3486967
А зачем так сложно? Можно сделать просто фичу "топ треды" где будет лежать все что включено в эту фичу. Зачем дробить дальше?

Зачем тут вообще ентити и виджет? Это хуйня какая-то, дележка ради дележки.


Не понимаю тех кто это придумал.
Аноним 29/06/25 Вск 16:25:34 3486996 207
>>3486946
>>>3486916
Ты серьёзно с этим животным что-то обсуждаешь? Правда? Он несёт какую-то настолько ебаную хуйню, что там буквально каждое предложение можно разъебать, это просто какой-то троллинг тупостью, как с яндекс-рефератом спорить.
Аноним 29/06/25 Вск 16:32:17 3487003 208
>>3486979
Это напрямую идёт из принципа single responsibility. Виджет занимается отображением данных, которые ему предоставляет фича через пропсы. Виджет не связан с хранилищем (store), в нем нет логики по упорядочиванию списка, количеству элементов и прочего. Его задача просто нарисовать что дали сверху. Фича наоборот ничего не рисует, её задача извлечь данные и передать в слой ниже. Когда код так разделяется его проще тестировать и менять.
Аноним 29/06/25 Вск 16:54:35 3487026 209
>>3487003

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

Кто-то придумал некий принцип ради самого принципа — но зачем мне его придерживаться?

Всё гораздо проще:

1. Делаешь отдельную самодостаточную фичу (например, топ-треды).
2. Подключаешь стор.
3. Либо пробрасываешь данные, либо фича сама тянет их с сервера по событию или действию.

Код при этом остаётся простым. Все лежит в одном месте и нет никакой путаницы с йоба-ентити и йоба-виджетами

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

Дорабатываешь фичу, чтобы она переиспользовалась (работаешь с версткой, убираешь пару кнопок).
Если логика отличается — пишешь новую фичу и шлешь всех нахуй, потому что логика новая.

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


FSD - РАК который усложняет проект
Аноним 29/06/25 Вск 17:25:26 3487055 210
>>3486923
Абсолютно. Делай всё по компонентам и будет счастье. Роуты и страницы в принципе прошлый век и шизофрения. Вот эта >>3487003 хуйня просто шизофрения и дрочево.

>>3487026
Нейронка базу выдала.
Аноним 29/06/25 Вск 17:39:30 3487066 211
>>3487055
FSD - это, по сути, легальный способ уволить программиста. Если тебе кто-то не нравится, ты начинаешь давить его на ревью аргументами вроде: «Это не фича, разнеси это на 50 файлов». Человек в шоке и вместо часовой тасочки тратит на неё две недели, а потом его просто увольняют.


Но я благодарен FSD, мы переписывали проект 2 года с этой параши.
Удалось оттяпать у кабана более 6 000 000 за это время рефакторинга
Аноним 29/06/25 Вск 17:48:36 3487076 212
>>3487026
>Код при этом остаётся простым.
Код как раз становится сложным, потому что в него буквально сложены разные ответственности. Первоначально такой код действительно быстрее писать, но когда дело дойдет до множественных изменений в итоге получится неподдерживаемое хуй пойми что, в обиходе называемое говнокодом. Single responsibility буквально запрещает делать сложные вещи. Больше писанины, но каждый участок кода прост и отвечает только за что-то одно.

> не имеет реального смысла для управления проектом
Простейший пример: отрисовка виджета на основе моковых данных. Если бы к виджету был прибит стор, то пришлось их протаскивать через него, а когда отрисовка отделена от работы с данными, то достаточно передать заглушки через параметры.
Аноним 29/06/25 Вск 19:03:46 3487136 213
>>3487076
Все таки не совсем так. В оригинале SRP нужно разделять код имеющий разные причины для изменений. Если же причины для изменений одни и те же, то легче поддерживать такое все вместе.

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

Вот старый пост от Дена Абрамова с другим примером https://overreacted.io/goodbye-clean-code/ Там не про SRP а скорее про про надуманное использование OCP (open close principle) Но SRP тоже может приводить к бесполезным абстракциям которые только затрудняют модификацию кода
Аноним 29/06/25 Вск 19:04:59 3487138 214
>>3487076
> Single responsibility буквально запрещает делать сложные вещи.
И в итоге делает сложную лапшу, разнесённую на тысячи файлов и тысячи функций. Рот почему в говне?

> достаточно передать заглушки через параметры.
Нет, недостаточно. Нужно написать кучу говнокода, лапши и апи. И дай подумать, что же лучше, написать прокси для стора на 10 строчек или написать ВОНЮЧУЮ КУЧУ ЛАПШИ НА ВЕСЬ ПРОЕКТ?

Впрочем, какая разница, работоблядь заставят жрать что дают.
Аноним 29/06/25 Вск 19:15:37 3487143 215
>>3487138
>Рот почему в говне?
Потому что ты обосрался с декомпозицией и композицией обратно. Но скорее всего ты даже не пытался и у тебя всё свалено в один большой ком грязи.

>>3487136
>В оригинале SRP нужно разделять код имеющий разные причины для изменений.
Разделение на фичи/виджеты в fsd как раз делается на основе причин изменений. Меняем фичу когда меняется верстка, меняем виджет когда меняется логика работы с данными (в данном случае терминология из fsd).
Аноним 29/06/25 Вск 19:16:37 3487144 216
image.png 68Кб, 222x227
222x227
>>3487076
>Код как раз становится сложным, потому что в него буквально сложены разные ответственности

Наоборот, когда все части фичи лежат в одном месте, поддержка и доработка проще. Не надо лезть в десятки файлов по проекту, работаешь с парой файлов внутри фичи (index.ts и store.ts). Если функционал растет, добавляешь подкомпоненты прямо в своей фиче.



>Single responsibility буквально запрещает делать сложные вещи
Да, поэтому у меня код максимально простой.

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

Мой подход я могу сравнить с полкой в шкафу, куда я просто кладу джинсы (я знаю, что их будет максимум 10 штук). А ты вместо этого раскладываешь пуговицы в одну коробку, молнии в другую, карманы в пакет. И все должны помнить, где синий кармашек, это еще повезет если такие как ты не распотрошат этот кармашек на нитки. Это лишнее и только нагружает код. В 99 процентах случаев джинсы используют как джинсы. Если нужны юбки, просто добавляешь полку с юбками. Не надо скрещивать ткань с пуговицами.


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

Просто поднимаешь mswjs.io и работаешь как с настоящим бэком. Для тестов прикручиваешь адаптеры или описываешь все через mockResolvedValue. Виджет зависит от store - это нормально. Топ-10 нужен в одном месте, а в админке может быть другой дизайн и логика. Тогда делаешь две фичи: одна для app, вторая для админки. Дизайн отличается на 5%, набор логики отличается.

Простой пример: Кабан Кабаныч говорит добавить логотип двача в app top-10 и серверную сортировку в admin top-10. Я меняю код в двух местах, закрываю задачу за час.

Ты будешь танцевать с fsd, рефакторить, переставлять фичи, переписывать 20 компонентов. Все ради того, чтобы показать миру, что сэкономил 30 строк кода и переиспользовал компонент.

Это если ты знаешь систему досконально. Если нет - тебе придется разбирать каждую "нитку джинс", чтобы понять, где она используется и сколько таких виджетов есть.

В моем подходе все просто: две монолит фичи, которые используют общие UI компоненты. Любой новичок сразу видит, что править нужно только то, что в текущей папке.


Аноним 29/06/25 Вск 19:22:56 3487147 217
>>3487143
>Но скорее всего ты даже не пытался и у тебя всё свалено в один большой ком грязи.
Ком грязи состоящий из 1000 строк можно разбить на 4 кусочка говна из 250 строк.

твой код как понос, он повсюду и он разделен на сотни капель говна файлов, чтобы уследить за ними, нужно понимать весь проект и осознавать-помнить 1000 сущностей
Аноним 29/06/25 Вск 19:23:08 3487148 218
>>3487136
>Вот старый пост от Дена Абрамова с другим примером https://overreacted.io/goodbye-clean-code/
Классика говноедов обосранных, ахахах. Один даун не может в стркутуры данных, математику и пишет индусский код, второй даун всё это превращает в набор лапши потому что иди нахуй вот почему. Они даже не понимают че там происходит с рендером, сука!

Очевидно же что этот калыч можно решить одной математической формулой с несколькими константами! Как они не видят?

>>3487143
> >Рот почему в говне?
> Потому что ты обосрался
И зачем ты съел моё говно, дебилище?

> всё свалено в один большой ком грязи.
Буквально любой проект с лапшой и абсракциями - чтобы понять что делает форма нужно 50 файлов открыть
Аноним 29/06/25 Вск 19:27:52 3487153 219
>>3487138
>написать прокси для стора
>Просто поднимаешь mswjs.io и работаешь как с настоящим бэком.
Вот оно КОСТЫЛЕСТРОЕНИЕ. Лишь бы не раскидывать код по "каким-то выдуманным принцимам".
Аноним 29/06/25 Вск 19:32:19 3487156 220
>>3487153
> json fetch http
Как там в 2015 году?
Аноним 29/06/25 Вск 19:34:52 3487159 221
>>3487153
раскидав код - ты получишь лапшу.
лучше копаться в 4 кусочках говна, чем перебирать 1000 капель поноса.
Аноним 29/06/25 Вск 19:36:30 3487162 222
>>3487148
>этот калыч можно решить одной математической формулой
Кстати заметил, что математикоидиоты не умеют в работу с понятиями как гуманитаростарейшены, поэтому спотыкаются на элементарных определениях что такое фича/виджет/сущность/итд.
Аноним 29/06/25 Вск 19:42:09 3487168 223
>>3487162
Пока ты пишешь очередную поэму говнокода, которая нахуй никому не всралась, я выпускаю и продаю второй проект.
Аноним 29/06/25 Вск 19:44:17 3487170 224
>>3487168
Я сам практически ничего не пишу, я смотрю что пишут другие и погоняю их палкой чтобы писали как надо.
Аноним 29/06/25 Вск 19:44:51 3487172 225
>>3487162
> фича/виджет/сущность
Это и не нужно знать, потому что это термины из FSD. (их придумали в RU)
FSD - легаси в 2025.

Фича нормального человека - это бизнес-компонент \ композиция компонентов \ композиция компонентов с натянутой поверх бизнес логикой/
Но никто не запрещает применять тут термин: виджет.
Просто нужно договорится с командой 1 раз (да и это лишнее, обычно по названию папки и так все ясно).
Аноним 29/06/25 Вск 19:49:43 3487174 226
>>3487143
>>3487138
Я уже давно сдался и не спорю с ебанатами, которые следуют книжным принципам в качестве самоцели. Самый адекватный тут Дэн Абрамов:
>>3487136
>Вот старый пост от Дена Абрамова с другим примером https://overreacted.io/goodbye-clean-code/
Но мне кажется, что сидящие тут нихуя не поняли, о чём он.

Кстати, у меня неоднократно было, что я пытался рефакторить чужой код, приходил к выводу "хуйня получилась", и оставлял код как есть. Дэн прямо-таки по всем пунктам показал, как не нужно делать. Правда, деталей он всё-таке не описывал (NDA), потому вполне может выяснится, что всё-таик исходный кодер был ебланом, и править нужно было не этот маленький кусок кода, а архитектуру компонента в целом.
Аноним 29/06/25 Вск 19:53:07 3487177 227
>>3487172
>FSD - легаси в 2025.
Оно никогда и не было чем-то устаканеным, как бы организаторы этого не хотели. За FSD стоят вполне рабочие концепции, они даже склеены во вполне добротную модель отлично стреляющую в определенных ситуациях. Концепции как база никуда не уходят, вариации как их склеивать остаются на усмотрение архитектора.
Аноним 29/06/25 Вск 19:56:58 3487178 228
>>3487177
Концепции есть, но они про них не рассказывают.

Самое вернее решение это делать уникальную архитектуру под конкретный пример и изучать концепции архитектуры.

Люди начитались FSD и теперь пытаются каждый проект прогнуть под доку FSD. Просто кретинизм.

А в итоге мы имеем разбрызганный понос на 1000 файлов
Аноним 29/06/25 Вск 19:57:32 3487179 229
Аноним 29/06/25 Вск 20:01:03 3487182 230
Аноним 29/06/25 Вск 20:01:27 3487184 231
image.png 63Кб, 1325x321
1325x321
БАЗИС
Аноним 29/06/25 Вск 20:16:56 3487191 232
isay.jpg 65Кб, 500x403
500x403
>>3487184
С позиционированием команда FSD чуток обосралась.

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

Тем не менее команда постаралась и изучать FSD стоит.
Аноним 29/06/25 Вск 20:34:39 3487201 233
>>3487191
>Тем не менее команда постаралась и изучать FSD стоит.
Нет, хайп прошел.
FSD это почти всегда лапша и часовые споры на ревью.
Аноним 29/06/25 Вск 20:37:38 3487208 234
>>3487201
>FSD это почти всегда лапша и часовые споры на ревью.
Бля, если бы у меня на митингах-ревью какой-то уебок часами спорил по поводу того, как скомпоновать классы, то я бы давно поставил вопрос "либо эта хуйня уходит, либо я". Я реально такой пассажир, что не буду хуйнёй заниматься даже за норм зарплату. Может быть потому, что я уже давно сеньор-техлид и могу позволить себе не работать годик-другой — зажрался совсем.
Аноним 29/06/25 Вск 20:45:11 3487212 235
>>3487201
>хайп прошел
Знаешь, я даже рекомендую изучать ассемблер, хотя кто на нем сейчас пишет.

>FSD это почти всегда лапша и часовые споры на ревью.
Почему так пытался сказать выше. Одни не умеют, другие не понимают. Плох ли из-за этого сам FSD?
Аноним 29/06/25 Вск 20:47:59 3487215 236
>>3487170
Ты... Ты нейросеть????7

>>3487174
>Но мне кажется, что сидящие тут нихуя не поняли, о чём он.
Конечно поняли - он ебанавт и работал он в компании ебанавтов. Когда писал этот пост он был ебанавтом который этот кринж высрал всерьёз.

Ты, конечно, можешь сколько угодно фантазировать что на самом деле он не ебанавт и он умный и имел ввиду другое. Но. Нет. Это не так. Они все ебанавты. Они ресайзили элементы и вместо констант для каждого элемента высрали какой-то индусский бред.
Аноним 29/06/25 Вск 21:23:16 3487237 237
>>3487212
Плохо все что нужно не для твоего личного успеха, а для успеха кабана.
Аноним 30/06/25 Пнд 01:40:23 3487370 238
FSD - это фингербокс, сто стёб, это троллинг. Какие-то ноунейм -челики опубликовали бесполезнузную хуиту, а дебичи подхавитили. Причем дальше рунета эта шляпа даже и не выходила. Ни в одной сериезной конторе это не используют и даже слышали об этом.
Аноним 30/06/25 Пнд 06:12:06 3487395 239
>>3482678 (OP)
Сам бекендер, нужно написать фронтенд для своего проекта. Очень давно имел дело с джаваскриптом и ангуляром - не понравилось. Как лучше всего подступиться к фронту в 2к25? Забить на жс и изучать тайпскрипт, а вместо ангуляра взять реакт?
Аноним 30/06/25 Пнд 08:31:40 3487435 240
>>3487395
Забитие на тайпскрипт тебе ничего не даст, только подержку автокомплита и автоматического переименования по проекту потеряешь. Нет никакой необходимости с typescript сложные типы наворачивать, он все равно помогает содержать код в чистоте без особых усилий.
Аноним 30/06/25 Пнд 08:36:39 3487437 241
>>3487435
Другое дело если бы возьмешь фреймворк с поддержкой hotwired turbo (рельсы, симфони) тогда ты будешь все на беке писать, а на фронте микроскопический жс будет, тогда может быть тайпскрипт и не нужон.
Аноним 30/06/25 Пнд 10:25:24 3487507 242
>>3487370
Расскажи нам, как ты структурируешь свои фронтовые проекты.
Аноним 30/06/25 Пнд 16:55:03 3487878 243
>>3487435
>Нет никакой необходимости с typescript сложные типы наворачивать, он все равно помогает содержать код в чистоте без особых усилий.
Расскажи ему больше про "нет необходимости в сложных типах":
https://kyleshevlin.com/typescript-prevents-bad-things-and-good-things/
Нет никаких проблем, если ты вайбкодишь прототипы целыми днями с одними лишь примитивными типами. Но когда у тебя вложенные замыкания, то тут-то начинается пиздец. А это неизбежно будет в большом проекте, даже если ты это оформишь вложенными классами — один хуй нужно будет что-то одно в другое вкладывать и получать длиннющие типы.
И если в компилируемых языках, вроде того же C++, есть перегрузка функций и мономорфизация по типу параметра, то в JS ты всю эту хуйню будешь делать руками, на предикатах или просто безусловных кастах (на свой страх и риск). А всё потому, что TS — это нашлёпка над JS, а не полноценный ЯП.

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

Та же история с Rust — корпорациям он по большей части нужен для того, чтобы автоматически пиздить по рукам джунов, заметающих проблемы под ковёр. Опытная команда на C++ может писать код не хуже (и пишет, в том же Chrome), при всей неоправданной ублюдочности C++ как языка.
Аноним 30/06/25 Пнд 17:03:57 3487888 244
>>3487878
Не хочу с шизами спорить, для которых все или ничего. Нормаьному челу и половина проекта на тс костылях лучше чем просто лапша без костылей для IDE. Я о практической стороне дела говорил, а не о "чистоте" с точки зрения шизоида. Ничего тебе не мешает any внутри структуры написать, если сложно или нет времени. А кто там даун или не даун ты со своим наблюдающим врачем разбирайся.
Аноним 30/06/25 Пнд 18:00:56 3487928 245
Если я курсы смотрю по жс/тс/нод жс за 2022-2023 год я что-то теряю существенное или на начальном-среднем уровне неважно?
Аноним 30/06/25 Пнд 18:24:06 3487944 246
>>3487888
> Нормаьному челу и половина проекта на тс
Ты что-то попутал. Нормальные люди на ТС не пишут.
Аноним 30/06/25 Пнд 18:29:42 3487950 247
>>3487928
Да кому не похуй, главное ты код пиши, а не просто слушай.
Аноним 01/07/25 Втр 09:18:33 3488313 248
Какого осознавать что фронт - ВСЕ ?
Самая конкурентная ниша в 2025
Аноним 01/07/25 Втр 09:48:39 3488328 249
>>3488313
Все кнопки уже покрашены?
Аноним 01/07/25 Втр 10:40:03 3488370 250
>>3488313
Всё в порядке, ещё остался бек. А как напишут GL либу с V8 которая рендерит в gpu - можно будет и натив писать на JS.
Аноним 01/07/25 Втр 12:07:48 3488466 251
>>3488313
До сих пор перспективная хуйня и вкат не сильно сложнее чем в тот же бэк. А если учесть что в бэке пошла тенденция накидывать требования по предметной области, то в бэк вкат может быть даже сложнее.
Аноним 01/07/25 Втр 18:55:25 3488729 252
>>3488466
>>3488370
>>3488328
>>3488313


Ушел с фронта в 2023 на node.js, сейчас учу 1С
Приятель скидывал скрин - 6000 откликов на 1 вакансию за 10 дней, удаленка, мидл, 200к
Аноним 01/07/25 Втр 22:45:12 3488826 253
>>3488729
Лучше бы в блокчейн ушел. Там даже джунов до сих пор набирают. И с 1С ты останешься в РФ навсегда.
Аноним 01/07/25 Втр 22:48:11 3488827 254
>>3488729
Кому нахуй этот 1с нужен, чел, он с каждым годом теряет в процентном соотношении. Этот кал существует потому что всем похуй на российский рынок црм, как только появится достойный конкурент - 1с резко и моментально схлопнется.
Аноним 01/07/25 Втр 22:51:25 3488828 255
>>3488826
> останешься в РФ навсегда.
Можно в Беларусь поехать
Аноним 02/07/25 Срд 01:20:43 3488877 256
>>3488827
Ты не шаришь и пытаешься натянуть свой фронтендерский мир, где новый популярный фреймворк заменяет старый на другую реальность. На 1С работает государство, в 1С электронный документооборот и частники так же повязанны с гос системой. Это в принципе все что имеет значение. Ты никакую отчетность не сделаешь для налоговой, никакой бух отчетности и пр. Тебя госорганы просто пошлют нахуй и скажут делать как заведено.
Аноним 02/07/25 Срд 07:19:40 3488915 257
>>3488877
У тебя магическое мышление. Электронная бумажка от 1с и от скрипта на js ничем не отличается для налоговой. Единственное что там нужно сделать - сертификацию, да и она не особ нужна
Есть тысячи магазинов с встроенными црм которые работают с теми же бумажками что и 1с, создают ту же самую отчётность и выдают полный бухучёт.

И не забывай что 1с это это хуета для микропредприятий. У всех фирмочек крупнее 100 человек свои системы бухучёта и 1с им нахуй не всрался. Это как было решением для быдла, так им и остаётся.
Аноним 02/07/25 Срд 08:17:50 3488923 258
>>3488915
>У всех фирмочек крупнее 100 человек свои системы бухучёта
Хуйни не неси, плз
Аноним 02/07/25 Срд 08:51:14 3488931 259
>>3488915
1С = Отсутствие конкуренции, работа и деньги.
JS = Конкуренция и переработки
Аноним 02/07/25 Срд 09:01:02 3488936 260
>>3488923
Чел, я работал с юрфирмами которые работают с бухучётом. Любая достаточно крупная компания с 1с не работает. Никому нахуй не впёрлось нанимать отдельных долбоёбов с уникальным языком программирования который никуда не конвертируются.
1с всегда позиционировало себя как хуйня для малых и микропредприятий, этим говном оно и останется навечно. Зарплаты там соответсвующие.

>>3488931
>1С
>деньги
Тут ты погорячился. Зарплата будет на уровне дворника или заводчанина.
>JS = Конкуренция и переработки
Как только в 1с вкатятся все долбоёбы - будет так же 6000к откликов на вакансию. Вангую скоро так и будет и все эти люди уж точно останутся с 1с надолго.
Аноним 02/07/25 Срд 10:03:32 3488969 261
>>3488936
>Тут ты погорячился. Зарплата будет на уровне дворника или заводчанина.
Только если предметку не знаешь, а предметка сейчас уже почти везде маст хэв
>Как только в 1с вкатятся все долбоёбы - будет так же 6000к откликов на вакансию.
Не вкатятся. Вкатиться в 1С - это выучить весь бухгалтерский, управленческий учет, пройти кучу экзаменов, которые во франчах буквально длятся годами. Объем всякой хуйни которую там нужно знать гораздо больше чем в тех же фронтендах и нейронка тебе мало чем поможет.
Аноним 02/07/25 Срд 10:28:33 3488981 262
>>3488936
>Никому нахуй не впёрлось нанимать отдельных долбоёбов с уникальным языком программирования который никуда не конвертируются.

Хуйню не неси 2х
Кабану пох на твои анальные боли с языком программирования. Даже немцы одиннаску используют
Аноним 02/07/25 Срд 10:31:12 3488984 263
>>3488981
B даже биткрикс немцы используют
Аноним 02/07/25 Срд 11:37:47 3489039 264
>>3488969
>Не вкатятся. Вкатиться в 1С - это выучить весь бухгалтерский, управленческий учет, пройти кучу экзаменов, которые во франчах буквально длятся годами. Объем всякой хуйни которую там нужно знать гораздо больше чем в тех же фронтендах и нейронка тебе мало чем поможет.
Бесполезная хуйня, чем дальше продвигается автоматизация - тем меньше этот калыч вообще нужен, все эти бесконечные бухгалтера и манагеры нахуй не нужны и с каждым годом кол-во вакансий падает.

>>3488981
>>3488984
Да я не отрицаю что в микропредприятиях 1с часто используется, потому что можно нанять чушек за 50к рублей. Но любая крупная фирма этим просто не пользуется, понимаешь? Не нужно. Даже микрософт ацесс используют больше чем 1с.
Аноним 02/07/25 Срд 11:46:20 3489046 265
>>3489039
Нахуя тогда под линупс запилили 1с, нахуя тогда клиент-сервер запилили, нахуя тогда серверная часть одинас с кластерами постгреса и mssql работает? На шаурмичную со 100 челов файлового варианта стандартного хватило бы по винду.
Аноним 02/07/25 Срд 11:57:51 3489068 266
>>3489039
Не будет никакой там автоматизации блять. Это хуйня специально так уебищно сделана чтобы 1сники (и вообще вся индустрия которая вокруг этого круиится) без работы не сидели. 1сники не дураки в отличии от макак и хоронить свою работу автоматизацией и нейронками не будут.
Аноним 02/07/25 Срд 12:03:37 3489077 267
>>3489046
Чего, блядь? Бизнес делят по размеру не кол-вом клиентов, а кол-вом сотрудников. Микробизнес 100 человек может ебануть какой-нибудь говностартап для миллионов людей, а потом этот стартап покупает яндекс/вк/вб и 1с идёт нахуй.

>>3489068
1с похоронят, ты не понял что ли? Постепенно бизнес будет переходить от всякого низкосортного 1с кала к более производительным и менее затратным решениям, которые ещё и 90% менеджеров и бухгалтеров заменят нейронками. 1с осталось жить лет 5-10, не более.
Аноним 02/07/25 Срд 16:58:51 3489346 268
>>3489077
Да разумеется. Бизнес же думает как айтишник, как бы производительнее было. Сидит такой кабанчик и думает "бля, что-то отчеты у меня непроизводительные, надо все срочно ломать и переходить на сап". Правило тырпрайза: "работает? Не трожь". Никто не будет там ни на что переходить. Давно бы перешли, если б могли/хотели.
Аноним 02/07/25 Срд 17:23:25 3489377 269
>>3489346
>Сидит такой кабанчик и думает "бля, что-то отчеты у меня непроизводительные, надо все срочно ломать и переходить на сап
А ты точно в курсе, что такое SAP? Просто возьми зарегайся у них и открой демку. Ты думал, что ты знал, что такое "тормоза"? Вот там ты узнаешь про них.
Аноним 02/07/25 Срд 17:35:04 3489384 270
>>3489346
В тырпрайзе нету никакого 1с, перестань фантазировать. 1с это исключительно мелкий бизнес. И все мелкие бизнесы никакой проблемы с заменой 1с испытывать не будут, особенно если переход на новую ERP/SAP позволит сократить бухгалтеров, менеджеров и нахуй послать программистов 1с.

И производительность не в смысле слоупочности самих программ, а производительность труда - когда всех долбоёбов увольняют и сажают вместо них одного человека с ИИ чатиком. Чем дальше автоматизация - тем меньше бухгалтеров и менеджеров нужно.
Аноним 02/07/25 Срд 19:07:44 3489456 271
>>3489384
>И производительность не в смысле слоупочности самих программ, а производительность труда - когда всех долбоёбов увольняют и сажают вместо них одного человека с ИИ чатиком. Чем дальше автоматизация - тем меньше бухгалтеров и менеджеров нужно.
Пять лет назад во многих конторах можно было уволить половину штата без заметных изменений производительности. "Долбоебов" не просто так туда набирали, чтобы ты, сука, их потом увольнял.

>особенно если переход на новую ERP/SAP позволит сократить бухгалтеров, менеджеров и нахуй послать программистов 1с.
Это способ проебать $200 млн на игтеграцию, и получить неработающую систему. Прецеденты были, гугли.
Аноним 02/07/25 Срд 19:49:27 3489481 272
image.png 19Кб, 831x288
831x288
image.png 28Кб, 872x344
872x344
Удачи в JS
Аноним 02/07/25 Срд 20:33:05 3489510 273
>>3489456
>"Долбоебов" не просто так туда набирали, чтобы ты, сука, их потом увольнял.
Это верно, но только если фантазировать что текущая экономика будет вечной и бесконечной
>Это способ проебать $200 млн на игтеграцию, и получить неработающую систему. Прецеденты были, гугли.
И? Че ты высрал вообще? Есть куча кейсов успешной интеграции

>>3489481
С JS я могу работать фрилансом на удалёнки за 10-15к баксов. С 1c трястись в ДС за нищую зарплату

Пиздец, 300-400к в 2к25 году в РФ. Кто вообще согласится за такие деньги работать с 1с? Джуны? Нахуя там опыт тогда указан?
Аноним 02/07/25 Срд 21:00:58 3489521 274
>>3489510
>>Это способ проебать $200 млн на игтеграцию, и получить неработающую систему. Прецеденты были, гугли.
>И? Че ты высрал вообще? Есть куча кейсов успешной интеграции
"Успешный интеграции", когда софт введен в строй и приносит пользу — это 10-20% от всех внедрений SAP. 60-70% внедрений классифицируются как "частичный успех", то есть, что-то внедрено, но не всё, ряд областей ещё не интегрировано, несмотря на кучу потраченного времени и денег, или внедрено, но оно делает не то, что нужно, и не так, как нужно.
20-30% — это провалы, просто нихуя не внедрено так, как того хотел заказчик. Это въёбанные в пустоту деньги. 20-30% внедрений.
https://www.panorama-consulting.com/erp-success-and-failure-stories/
https://libres.uncg.edu/ir/uncg/f/V_Gargeya_Success_2005.pdf
https://medium.com/%40davekarpinsky/sap-projects-fail-more-often-than-you-think-heres-why-81775a47903a
https://www.computerweekly.com/news/252435884/Chances-of-success-with-SAP-are-only-50-50

Но так-то 10-20% — это тоже дохуя кейсов успешной интеграции, спорить не буду.
Аноним 02/07/25 Срд 21:25:56 3489526 275
>>3489521
В этом суть. Именно из-за этого говняка крупные компании и не используют всяки 1с - быстрее, проще и надёжнее написать скрипты на питоне и не ебаться с всякими 1с. Не существует нормальных рабочих мест в которых есть 1с.

В будущем системы ERP/SAP будут проще внедрятся и в целом будут проще построены, потому что порог вхождения снизится из-за LLM инструментов, многие модули будут не нужны. И я на 100% уверен что 1с никакие нейроночки внедрять не будет, а просто нахуй вымрет после полутра конкурентов с нейросетками.
Аноним 02/07/25 Срд 21:38:47 3489530 276
>>3489526
>В этом суть. Именно из-за этого говняка крупные компании и не используют всяки 1с - быстрее, проще и надёжнее написать скрипты на питоне и не ебаться с всякими 1с. Не существует нормальных рабочих мест в которых есть 1с.
1С — это прежде всего платформа для построения чего угодно. SAP — это ригидная хуета, в которой каждый чих и пук предопределён, и если твоя компания не вписывается в модель SAP, то это твоя проблема.

>В будущем системы ERP/SAP будут проще внедрятся и в целом будут проще построены, потому что порог вхождения снизится из-за LLM инструментов, многие модули будут не нужны.
Если б да кабы выросли во рту грибы — до "будущего" ещё дожить надо. Многие модули не нужны и сейчас, даже без LLM — я для кого статистику с сылками приводил? Вы с этим LLM хайпом уже доебали, чатгопоте уже 4 года, а революции я нихуя не вижу. Да, выпиздывают на мороз вайтишников, но их в любом расклады бы выпизднули после короновируса.
Аноним 02/07/25 Срд 22:13:41 3489537 277
>>3489530
> 1С — это прежде всего платформа для построения чего угодно.
Это прежде всего кусок кала на никому нахуй не нужном языке для микропредприятий.
> Если б да кабы выросли во рту грибы — до "будущего" ещё дожить надо.
В петельку собираешься через пяток лет? Благое дело.
> Вы с этим LLM хайпом уже доебали, чатгопоте уже 4 года, а революции я нихуя не вижу.
Ты живёшь в стране в которой нет доступа к LLM, в курсе?
Аноним 02/07/25 Срд 22:47:04 3489555 278
Оба, теперь вместо go здесь обсуждают 1с. Кто-то ещё сомневается в универсальности JavaScript? Язык всех языков.
Аноним 02/07/25 Срд 22:58:52 3489564 279
Какой, нахуй, 1С. 1С - это чисто мемтокен, на котором усатый основатель срубил на хайпе бабла, втюхивая мелкокабанам свой кал. Техническая составляющая там говно говна из каловой дрисни

Бухгалтерия будущего - это чатик, который тебе срёт сообщения нейронкой, о том, что оправлен отчёт в налоговую, а ещё надо бы денюжку клиенту перевести, и тяночка-бухгалтер, сидящая в 20 таких чатах
Аноним 02/07/25 Срд 23:20:17 3489579 280
>>3489537
В Северной Корее? Добрый брат китаец ГлубокоСмотрю давать, Иван партия благодарить. Яндекс город Тверь тоже чат делать, злой КГБ туда читать. Спасибо
Аноним 03/07/25 Чтв 08:22:53 3489693 281
>>3489564
Дежурный нейрокалыч отметился
Аноним 03/07/25 Чтв 12:11:07 3489850 282
image.png 18Кб, 835x444
835x444
Почему ничего подобного не описано в официальных доках реакта, да и вообще нигде не говорится о подобном? Без этого же ты просто не ебешь что происходит абсолютно, как можно доки иметь блять без объяснения внутренней работы? Типа я должен сам понять, на каких этапах и что этот реакт ебаный делает?
Аноним 03/07/25 Чтв 12:21:50 3489866 283
>>3489850
Нахуя тебе знать внутреннюю работу среакта? Среакт предназначен для быстрой разработки кусков говн о которых никто и никогда не вспомнит через месяц после релиза.
Аноним 03/07/25 Чтв 12:30:11 3489884 284
>>3489850
Потому что

React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
Аноним 03/07/25 Чтв 23:26:45 3490453 285
image.png 991Кб, 1280x720
1280x720
Что интереснее, бэк или фронт? Смотрю вакансии у себя в городе, JS в несколько раз больше, чем PHP. Стоит учить их вместе или сконцентрироваться только на каком-то одном?
Аноним 04/07/25 Птн 00:52:48 3490478 286
>>3490453
>Что интереснее, бэк или фронт?
Фронтэнд - это работа на глазах. Все видят твою работу. Её сразу хвалят, даже если ты сделал спиннер с картинками. Бекенд - это в основном невидимая работа. Всем срать на твои алгоритмы. Допустим ты реализовал exponential backoff, тебя никто за это никогда не похвалит. А интереснее или нет - это зависит от проекта. Есть неинтересные проекты такие как: маркетплейсы, интернет-магазины по продаже всякого говна, всякие правительственные порталы. Вот мне например не интересно возиться с маркетплейсами. Они заебали. Не интересно делать беттинги/казино/всякие конторы по наёбу людей на деньги/порнуха и проч.

Вообще, я бы не ставил так вопрос. Фронтэнд хорош тем, что ты сразу видишь результат. В беке отдача чуть менее очевидная. Нельзя однозначно сказать что интереснее.
Аноним 04/07/25 Птн 09:18:12 3490555 287
>>3489850

Зачем знать как работает машина внутри?
Ты собрался дорабатывать машину?
Просто крути баранку
Аноним 04/07/25 Птн 09:20:05 3490559 288
17516036808972.jpg 92Кб, 526x529
526x529
Аноним 04/07/25 Птн 09:20:37 3490560 289
>>3489564
>Какой, нахуй, 1С. 1С - это чисто мемтокен
Друг работает в 1С
За месяц ему написало 50+ HR
а теперь сравни с фронтом, в котором сеньеры ищут работу по 7 месяцев
Аноним 04/07/25 Птн 09:22:17 3490561 290
>>3490478
>Ценит похвалу кабанчика

Аноним 04/07/25 Птн 10:11:05 3490587 291
image 264Кб, 1276x673
1276x673
image 318Кб, 1274x665
1274x665
Ты дурачок поня[...].mp4 127Кб, 720x1280, 00:00:02
720x1280
>>3485867
>Почиатл я ваш срач и захотелось выучить другой язык, чтобы не быть как лох очень. Не переживай, это нормально, 80% таких же как ты.
Аноним 04/07/25 Птн 10:12:21 3490589 292
Аноним 04/07/25 Птн 10:45:52 3490605 293
>>3490587
>>3490589
В этом тесте использовался http от ноды, там производительность говна. Если взять uWS, то нода будет быстрее го.
Аноним 04/07/25 Птн 13:26:30 3490775 294
>>3490453
всм интереснее бля. если душа дизайнера то фронт вперед на чистом ксс пишешь себе в кайф и все нет проблем и не надо даж за фреймворками гнаться как скотина
Аноним 04/07/25 Птн 13:36:46 3490786 295
>>3490775
>не надо даж за фреймворками гнаться как скотина
Флешбеки из 2015 года? Последние лет пять нового ничего нет, версии обновляют не более.
Аноним 04/07/25 Птн 15:45:19 3490960 296
>>3490605
> uWS
Это вебсокет на C++
Аноним 04/07/25 Птн 15:50:39 3490967 297
>>3490960
Йеп, но в go это так просто использовать не получится, производительность может даже упасть
Аноним 04/07/25 Птн 15:59:16 3490980 298
>>3490786
а нахуй вы тут тогда срете вечно спорами о каком то реакте, ангуларе, некст и тд определиться долбаебы не можете на чем писать ор. берешь и пишешь нахуй чето искать
Аноним 04/07/25 Птн 17:41:37 3491123 299
>>3490980
Как будто в других языках нет срачей вокруг фреймворков.
Аноним 04/07/25 Птн 18:03:23 3491156 300
>>3491123
В го нет срачей на эту тему
Аноним 04/07/25 Птн 18:45:28 3491184 301
>>3491156
а ты тут что забыл гошник авахах бля ну и тред я ебал все уже собрались
Аноним 04/07/25 Птн 18:54:10 3491188 302
Аноним 04/07/25 Птн 19:38:16 3491203 303
>>3489850
>Почему ничего подобного не описано в официальных доках реакта, да и вообще нигде не говорится о подобном?
Потому что, у тебя на пике кусок галлюцинации нейроговна - в JS нет такого понятия, как macrotask.
Аноним 04/07/25 Птн 19:51:10 3491213 304
image 35Кб, 464x256
464x256
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов