Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Напомните, пожалуйста, нахуй вообще нужен 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-вставками, что можно реализовать на любом ЯП.
>>3483011 >Главный вопрос тысячелетия - почему бекенд на ноде мёртв ? Не мёртв, кто-то даже в СНГ такой хуйнёй занимается, но вакашек на Python/PHP на порядок больше. С развитием Go у ноды объективно очень мало ниш остаётся, даже бессхемовое API на GraphQL можно сделать на куче ЯП, нода не обязательна.
>>3483035 Я бы смотрел на ноду как на средство быстрого прототипирования. Проверка гипотез, моки-хуеки, тому подобное говно. Язык более фичастый чем го, значит писанины ебанины меньше, но есть траблы с перформансом в части сборки мусора, в проде просадки могут делать плохие метрики.
>>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 раз на запрос. И нет, нода так не умеет, потому что нода не умеет выполнять десять воркеров в одном адресном пространстве (чтобы кэш был общим).
>>3483126 >Ну разрабы го в последние годы вроде очухались и начали добавлять фишки по чайной ложке Ну там грамотные архитекторы работают, а не Гвидо, которые в 90-е тащил прямо всё подряд в ЯП. Golang как раз отличается простотой языка, а простота сама по себе является преимуществом.
>>3483065 Просадки отдельных запросов - да. Както раз стресс-тестил графкульную федерацию на ноде, там прямо в htop было видно как сначала при полной загрузке cpu растет выделение памяти, потом вступает в дело gc и загрузка cpu падает почти до нуля, и через некоторое время снова полная загрузка проца и памяти выделено в разы меньше. Тру стори!
>>3483132 >простотой языка, а простота сама по себе является преимуществом. Такой простой,что пакет для работы с массивами и его производных добавили только недавно,а раньше надо было городить кучу кода. И то, не добавили функции reduce filter map ,потому что один и создателей сказал,что НЕ НУЖНО
>>3483130 >Тот же Golang позволяет иметь in-process кэш с околонулевой стоимостью доступа В Nodejs(ORM) позволяет иметь in-process кэш с околонулевой стоимостью доступа
>>3483177 Чел, JS это уже lingua franca на котором говорят буквально все. Пыхера еще найти можно, с рубистами потяжелее, а жсеров бери не хочу. Кому взбредет в голову изучать говна мамонтов, чтобы прототипировать не снимая свитер в режиме забега?
>>3483170 В симфони "реалтайм" из коробки, чел. Через mercure и symfony messenger работает. Не надо ниче делать. только бандл установить официальный. Даже настраивать не надо все само через flex настроится.
>>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, особенности этих функций конкретно используются, они не просто "потому что удобнее" применяются.
>>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 запросов в секунду"?
>>3483204 >тебя list comprehension какие в JS есть? Lodash chain в тыщи раз пижже >Переопределения операторов? Частично, через well known symbols >Дескрипторы свойств? Рефлексия во все поля >Генераторы недавно завезли 10 лет это недавно,лол. Зато async/await завезли быстрее и типизацию
>>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 год).
>>3483224 >ты забыл ".value()" и получил LodashWrapper{...} вместо значения Твоё ебало когда в петухон завезли типизацию, но не научили ей пользоваться.
>>3483262 >Твоё ебало когда в петухон завезли типизацию, но не научили ей пользоваться. В питоне код обычно понятен без типизации. То есть, не нужно превозмогать для того, чтобы вызвать примитивную функцию.
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, с улучшениями в рендеринге и производительности.
Есть смысол вкатываться в next.js или это очередной jqwery, в который ты сегодня вкатываешься, а завтра им уже никто не пользуется и у тебя мозги засраты мусором?
>>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.
>>3483464 >Есть смысол вкатываться в next.js или это очередной jqwery, в который ты сегодня вкатываешься, а завтра им уже никто не пользуется и у тебя мозги засраты мусором? Да какая нахуй разница? Во что бы ты не вкатися — завтра это будет мусор. React уже два раза под корень переписывали.
>>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. Я пояснил всё то же самое, только развёрнуто и на конкретных примерах. Я-то понимаю, что сей чел имел в виду. но простому крокодилу нихуя не понятно, особенно каргокультисту из функциональщины.
>>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
Аноны, я в JS вообще ни в зуб ногой, но по работе хочу сделать расширение для Хрома, которое копирует содержимое определенных элементов в буфер обмена и отдает его обратно. Чатгпт мне выдал код, он работает на Линуксе, но на Вин расширение падает в ошибку "NotAllowedError: Failed to execute 'writeText' on 'Clipboard': Document is not focused." Сам скрипт тут https://pastebin.com/fGhxGyXp.
Что можно изменить, а? Этот Javascript охуенно сложная хуйня оказывается.
>>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; }
Теперь как это выглядит в питухоне на 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 ты прямо с ходу понял.
>>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), которая ни в одном стандарте не принята.
>>3483693 >вот поэтому угараю каждый раз с вас фрейморщиксов. всегда писал на чистом js и никаких проблем. хуйней страдаете как дети С кого "вас"? Дядя, я даже в проекте на Vue половину кода писал на простом JS, без "реактивности". Там ещё нужно постараться не дать фреймворку всунуть свою реактивность туда, где его не просят, а то он лезет во все щёлки, замедляя работу без толку. Перед тем, как уйти из фронта, я угорал по Svelte v3, ны нынче уже есть такие штуки, как Alpine.js и Petite vue, которые куда угодно можно встроить — всё-такие ебаться со сложными взаимосвязями на сухую не очень приятно. Допустим, тот же Prosemirror использует модель реактивности аля React, то есть, построение всего VDOM одним проходом и синхронизация DOM по нему — и какой тут смысл выёбываться "зато у нас не React"?
>>3482729 > 1. Нода быстрая — да, но не быстрее Go/Java/C#; Быстрее, если не писать говнокод > 1. Нода медленнее чем все компилируемые ЯП Медленнее на 20-130% по сравнению с С, это ни о чем > 3. Простота деплоя — смишно, угу. Писать в три-пять раз быстрее это пиздато, потом можно переписать на с/zig/rust, а можно и хуй забить.
>>3483046 >но есть траблы с перформансом в части сборки мусора Только если писать как индус. У меня gc на беке вообще не работает, например
>>3483130 >JS на бэке в хуй не упёрлось именно для прототипирования, потому что есть PHP/Ruby/Python. Чего нахуй? Прототипы пишут фулстек, нахуй нужно два языка когда прототип пишешь? Обезумел совсем?
>>3484186 >> 1. Нода быстрая — да, но не быстрее Go/Java/C#; >Быстрее, если не писать говнокод Напомни мне, сколько ядер процессора в норме может нода использовать? А то я забыл что-то.
>Писать в три-пять раз быстрее это пиздато, потом можно переписать на с/zig/rust, а можно и хуй забить. В три-пять раз быстрее, чем что? Чем Rust? У меня нет других предположений по поводу того, что может быть настолько медленным в разработке.
>Чего нахуй? Прототипы пишут фулстек, нахуй нужно два языка когда прототип пишешь? Обезумел совсем? Если так доебаться, то HTML — это тоже ЯП, и CSS. Это што ж получается, три языка нужно знать? Хотя, я уверен, что ты бездарная хуила (как и все фулстэкеры), которая флексбоксы не умеет правильно организовывать (inb4: нахуй мне знать CSS, когда есть Bootstrap?). Прототип в смысле "кусок говна, внешне похожий на будущий продукт" можно захуярить на Python + strawberry + GraphQL с доступом к БД без какой-либо авторизации и валидации ввода — это будет мало отличаться от духа CRUD-ов на TypeScript + Zod, и больше похоже по духу на express-graphql. Честно говоря, я в настолько хуёвых проектах никогда не работал, так что тут моя компетентность может быть недостаточной.
>>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 система. Я говорю, про то, что подразумевается в БЫТОВОЙ речи.
>У тебя гугл отключили и бесплатные лимиты по всем нейросеткам исчерпаны? Ну кидай ссылку на доку.
>>3484248 >Напомни мне, сколько ядер процессора в норме может нода использовать? А то я забыл что-то. 1ядро-один поток.Но можно спокойно поднять кластер из коробки или добавить PM2
>>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 Безусловно, в питоне можно сделать только кусок говна. Я не спорю.
>>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 хранилища", "таблицы символов", "хэш-таблицы", "деревья поиска"?
>>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-оптимизатора сожрёт больше ресурсов, чем выполнение.
>>3484186 Не, ну ты про то, что node быстрее Go, загнул. Но в целом, да. Дауны до сих пор читаю методички, где у них JAVA - это серьёзно, а JS - нет, хотя, по возможностям выражения мысли TS (TS хейтеры - сосатБ) превосходит JAVA, а по сложности V8 ебёт JVM
Чепухонцы, вы заебали менять скорость языков. Одна только мысль, что вы там сравниваете СКОРОСТЬ ЯЗЫКА, говорит о вашей дегенеративность. Язык выбирается из соображений применимости и фич. Хочешь скорость, бери кресты и не еби мозг, так как они дают максимальное количество возможностей, чтобы, внимание, написать быстрый код, потому, как и на крестах можно наговнякать тормозное нечитаемое говно, похуже школьной поделки на пятухоне
>>3484331 >Все может использовать, дебил что ли? Там и кластер есть и воркеры и атомики. Не так давно введённые в JS инструменты для многопоточности по степени удобства и надёжности находятся где-то на уровне C. Потому я не рассматриваю их всерьёз, как инструменты написания обычного кода на ноде. Просто открой любую либу с интенсивным использованием воркеров и передачей данных между ними, и зацени, насколько там нечитаемый пиздец. Отличие C/C++ в том, что в C/C++ под это дело есть настоящие типы данных, например ЦЕЛЫЕ СУКА ЧИСЛА, которых нет даже в ебаном TypeScript.
>>Ты пизданулся? Откуда инфа? Даже нейросетка >У тебя все знания от нейросетки? Неудивительно. А у тебя все знания с потолка — таблетки не забывай принимать.
>Если ты даун-говноед и никогда не писал на С - у тебя так и будет. Пиши нормально - нормально будет. Таблетки. Не забываем.
>Вот нормальный тест https://github.com/denshade/speedTest С сравним с JS, че-то около 20% что ли. Нормально написанный JS код всегда +/- на уровне С. "Нормальный тест" на десять строчек кода? Что по этому поводу говорит твой психиатр?
>На ноде ты просто берёшь и пишешь говняк который по скорости сравним с С без AVX. Такую хуйню может написать только чел, который не пытался достичь быстрого выполнения программы из более чем десяти строчек на node.js. Там граблей оптимизатора неисчерпаемый запас. Asm.js — это рабочая методика, но код должен быть очень точный, ни про какое "пишешь говняк" речи идти не может.
>Что ты несешь, даун? HTML и CSS это не не язык программирования, это язык разметки и язык стилей. Пиздец ты хуйню высрал конечно. CSS позволяет записывать переиспользуемые вычисления и декларативные шаги анимации. То, что он не Тьюринг полный, не значит, что он не язык и не программирования. HTML — да, сам по себе нихуя не может, но после опредмечивания браузером на его месте появляется DOM из интерактивных элементов. Браузерный DOM не является частью спецификации ECMAScript, это всё сторонние библиотеки-расширения.
>Безусловно, в питоне можно сделать только кусок говна. Я не спорю. Так это ж всё из ноды методики я описывал.
>>3484352 >Роутер для педиков, кста. Нахуй в SPA роутер довны? Бесит, кстати. Раньше в query строке всю эту хуйню делали, а сейчас им весь location давай на растерзание.
>>3484365 Это некрасиво выглядит. Плюс хэштег нужен для скроллинга к конкретному элементу, все браузеры обеспечивают этот функционал. Путь в url всегда отвечал за загрузку нужной страницы, а раз этим теперь занимается spa router, то пусть так и берет данные о выборе страницы из пути.
>>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, и только поэтому платформа всё ещё воспринимается всерьёз.
>>3484356 Быстрее, но не на много. Если брать сервера - нода будет быстрее уже существенно, тому что в голанге ансихронность немного ебанутая. Офк сама нода кусок кала, по этому придётся использовать c++ сервера через napi, либо использовать бан.
>>3484358 Кого ебёт че там у тебя происходит в рогах и копытах? Применимость, че блядь? Ебнулся совсем малютка
>>3484363 >Не так давно введённые в JS инструменты для многопоточности по степени удобства и надёжности находятся где-то на уровне C. Да, хорошая штука. Мне нравится, ничего лишнего. >Потому я не рассматриваю их всерьёз Так ты просто не можешь в С. Твои проблемы. >Отличие C/C++ в том, что в C/C++ под это дело есть настоящие типы данных, например ЦЕЛЫЕ СУКА ЧИСЛА, которых нет даже в ебаном TypeScript. Ебанулся? Для этого есть TypedArray, через них и осуществляется вся работа с многопоточностью. >Про кластер уже ответил Прав в гигабайтах памяти, но если взять bun - будет получше, всего лишь гигабайт. >А у тебя все знания с потолка — таблетки не забывай принимать. >Таблетки. Не забываем. >"Нормальный тест" на десять строчек кода? Что по этому поводу говорит твой психиатр? Сколько бы ты не отрицал реальность она не будет другой - оптимизированный JS работает примерно на уровне C. > Такую хуйню может написать только чел, который не пытался достичь быстрого выполнения программы из более чем десяти строчек на node.js. Там граблей оптимизатора неисчерпаемый запас. Можешь писать сколько угодно строк, главное не писать говнокод. Но для тебя атомики это сложно, С это сложно - ты даже не понимаешь в чем проблема твоих говнотестов. > То, что он не Тьюринг полный, не значит, что он не язык и не программирования. Это язык разметки, дебил, перестань свои определения выдумывать. > Так это ж всё из ноды методики я описывал. Из твоей практики что ли? Так ты говнокод пишешь, потому что дебил.
>>3484372 Зачем ты кидаешь свои говнобенчи? Их писали такие же как ты отсталые дебилы, которые не в состоянии понять что происходит в коде и как работать с нормальной многопоточностью.
Эти бенчи доказывают лишь твою отсталость, что ты говноедище которое не замечает даже в чем проблема.
>>3484465 Двачую. Вангую этот чушок многопоточность никогда вообще не писал, даже не понимает что синхронизация потоков убивает всю многопоточность, да и в целом это нахуй не нужно когда есть системный SO_REUSEPORT.
>>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;
>>3484438 >Зачем ты кидаешь свои говнобенчи? Их писали такие же как ты отсталые дебилы, которые не в состоянии понять что происходит в коде и как работать с нормальной многопоточностью. Типикал двач: — Сотни программ, бенчащих сложные и совершенно разные алгоритмы на двадцати разных языках? — Отсталые дебилы! — Программа с одним циклом на десять строчек? — Профессиональные оптимизаторы из Google!
>>3484465 >Голанг на проде использует 1 ядро тоже. Это хайлоад. Вам не понять. Go размазывает активные горутины по всем ядрам. Если вы написали хуйню, которая имеет только одну активную горутину, то я вам соболезную. Но вас никто не заставлял так писать.
>>3484477 >даже не понимает что синхронизация потоков убивает всю многопоточность Ну так не делай синхронизацию потоков лишний раз, ебаныврот. А то делают HTTP запрос под блокировкой, а потом "чот медленно работает, хуйня ваш голанг". Я сейчас даже не выдумываю пример, потому что в моих дельфийских буднях я какой только хуйни не видел под блокировками.
>>3484498 >Go размазывает активные горутины по всем ядрам Какие "все" ядра, если у тебя в контейнере дали одно ядро 0.125 ? Сразу видно вкатуна, который прод на го не нюхал Я работал на го, нет в современной разработке больше 1го ядра
>>3484501 >Какие "все" ядра, если у тебя в контейнере дали одно ядро 0.125 ? >Сразу видно вкатуна, который прод на го не нюхал У вас микросервисная помойка по распилу инвесторных денег — при чём тут я? У меня на последней работе "прод" был 48 ядер и 192 Гб оперативы — вот это "прод". Это только одна нода, таких десятки. Слава богу, что я при поиске работы просто скипал всю такую новомодную прогрессивную хуйню по перекладыванию JSON-ов из одной коробки в другую..
>>3484487 >>3484488 А ясно, это нейронка. Так вот почему ебанутая чушь вместо аргументов, а рассуждения уровня "пук среньк jit gc бенч врёти"
> Я лишь писал о том, что оптимизация работает далеко не для любого кода на JS Хорошо что даже нейронка признаёт что на JS код по скорости сравним с C. Очередная победа человека в споре с пиздушной машиной.
>>3484498 Любая блокировка и любая синхронизация при запросе это минус производительность, любая рассинхронизация это значительный простой. Зачем проебывать производительность, если это можно не делать? Ведь уже есть системное распределение задач между процессами, притом оно работает без всяких синхронизаций. Зачем потоки в вебе, при запросах? Это же шиза, задумайся, у тебя галлюцинации.
Сейчас нейросеть скажет "да, ты полность прав, я в очередной раз отсосала, многопоточность в проде это галлюцинация с моей стороны".
>>3484603 Если я сделаю один простой веб сервер с парочкой маршрутами и простой обработкой json, то ГО при выполнении загрузит только одно ядро процессора?
>>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. А это как понять?
>>3484626 Пиздец конечно. Неудивительно почему go такой тормозной, если у него в каждом запросе хуячат какие-то горутины и синхронизация между потоками, очереди, блядь. Охуеть просто.
>>3484663 Похуй, всё равно между потоками нужно данные передавать, а значит простой будет. Нахуя это нужно в сетевухе? Чтобы сервер не нагревался сильно? Лолд
>>3484667 Говна поел штоле? В любой нормальной асинхронной либе всё работает через атомики, чтобы данные не гонять и простоя не было. И вопрос не в этом. Вопрос в том нахуя нужны горутины в сетевой либе, если распределением запросов занимается ядро системы.