Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Напомните, пожалуйста, нахуй вообще нужен 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 Говна поел штоле? В любой нормальной асинхронной либе всё работает через атомики, чтобы данные не гонять и простоя не было. И вопрос не в этом. Вопрос в том нахуя нужны горутины в сетевой либе, если распределением запросов занимается ядро системы.
>>3484690 Некоторые алени на дваче руками посты в нейросетку переносят, а потом обратно. Скорее вопрос были именно про это - какой прикол быть прокладкой между человеком и нейронкой?
>>3484759 Вероятнее всего это делают дети или вроде того. Думаю такое поведение какая-то форма бессознательных действий, какая-нибудь дрисня в башке навроде "хихи он спорит с нейронкой"
>>3484554 >Любая блокировка и любая синхронизация при запросе это минус производительность, любая рассинхронизация это значительный простой. Зачем проебывать производительность, если это можно не делать? Ведь уже есть системное распределение задач между процессами, притом оно работает без всяких синхронизаций. У процессов нет общей памяти. Порождение процесса -- это медленно. Для этого и придумали потоки.
>Зачем потоки в вебе, при запросах? Это же шиза, задумайся, у тебя галлюцинации. Я, лично, пишу сложные приложения на дотнете. Запросы бывают тяжёлые. Основное горлышко — это, конечно, БД, и тут достаточно просто асинхронности, но кое-где есть и вычисления, которые неплохо бы распараллеливать, чтобы запрос пользователя выполнялся побыстрее.
>>3484791 >У процессов нет общей памяти. Шаредмемори существует. Но на это похуй, потому что всё равно синхронизация убивает такты. >Я, лично, пишу сложные приложения на дотнете. Ты лично тупая нейросеть. В одном посте пишешь про работу мультипотоком и в этом же посте расписываешься в незнании шаредмемори. > но кое-где есть и вычисления, которые неплохо бы распараллеливать, чтобы запрос пользователя выполнялся побыстрее. Ага, галлюцинируй дальше. Это работает только если это отдельный микросервис который выполняет только один единственный класс задач и только тогда это будет работать нормально. В любых других ситуациях сервер будет тратить до 60% времени на выполнение кода планировщика задач и простои. И кстати благодаря атомикам и шаредмемори JS в принципе ничем отличаться от любого другого языка не будет в такой ситуации. Только если не вспоминать про AVX и указатели, с ними конечно JS сосёт, но кто в наше время может в архитектуру заточенную под AVX
>>3484861 В целом да, но в голанге есть указатели и avx. Используя указатели уже можно ебануть годные алгоритмы которые работают крайне хуёво в js, а если угорить по avx это уже всё, конец. Конечно, для большинства задач это всё смысла не имеет, avx нужен только для каких-нибудь геймсерверов, а алгоритмы с указателями это тёмная магии. Остаются только отличия в простоте и скорости написания и это будет не в пользу го.
>>3484554 >Хорошо что даже нейронка признаёт что на JS код по скорости сравним с C. Очередная победа человека в споре с пиздушной машиной. Ебать, я два или три раза за тред это написал, причём, уточнил, что никакой не абстрактный "JS код", а только написанный в очень специфическом стиле JS код может выполняться со скоростью кода на Си. По сравнению с тобой нейронка хотя бы контекст немножко помнит, нахуй мне такие собеседники.
>Любая блокировка и любая синхронизация при запросе это минус производительность Ебать ты охуеешь, когда узнаешь, что любая смена ссылки на объект в V8 приводит к lock-free передаче сигнала сборщику мусора. То есть, примерно половина строчек в JS синхронизируется со сборщиком. И чо дальше? Синхронизация синхронизации рознь.
>Сейчас нейросеть скажет "да, ты полность прав, я в очередной раз отсосала, многопоточность в проде это галлюцинация с моей стороны". Это новая мода — когда не понимаешь, о чём разговор и встряёшь в неё, то обязательно делаешь отсылку к "нейросетке"? Чисто эмпирически замечаю, что чем тупее собеседник на /pr/, тем чаще он ноет про нейросетки. Ещё бы начал говорить, что гуглом пользоваться нечестно, LOL.
>>3484606 >Если я сделаю один простой веб сервер с парочкой маршрутами и простой обработкой json, то ГО при выполнении загрузит только одно ядро процессора? В Go нет никакого встроенного "веб сервера с парочкой маршрутов", всё зависит от конкретной реализации. Обычно как минимум одна го-рутина на запрос, а дальше планировщик размазывает го-рутины по ядрам.
>>3484665 >Похуй, всё равно между потоками нужно данные передавать, а значит простой будет. Нахуя это нужно в сетевухе? Чтобы сервер не нагревался сильно? Лолд Почему ты не можешь попросить нейросетку тебе объяснить азбуку? Ты просто заваливаешь тред про JAVASCRIPT тупой хуйнёй про то, как ты не понимаешь устройство Go.
>>3484832 >И кстати благодаря атомикам и шаредмемори JS в принципе ничем отличаться от любого другого языка не будет в такой ситуации. JS отличается отсутствием высокоуровневых примитивов синхронизации, которые есть у многих "любых других языков".
>Это работает только если это отдельный микросервис который выполняет только один единственный класс задач и только тогда это будет работать нормально. В любых других ситуациях сервер будет тратить до 60% времени на выполнение кода планировщика задач и простои. Очень сильно зависит от конкретной задачи. В общем случае это разговор ни о чём.
>>3485040 Справедливости ради, многозадачность в современных ЦП выполнена крайне омерзительно, и там дальше уже похуй, какой конкретно ЯП пытается на этой платформе выполниться. С каждым годом разрыв по эффективности вычислений на ЦП и GPGPU только увеличивается. Например, когерентность кэша в современных ЦП, внезапно, выполнена при помощи передачи сообщений. А такой хуйни, как "разделяемая ячейка памяти" в принципе не существует, ячейка с формально тем же адресом может быть одновременно и в RAM, и в нескольких уровнях кэша, и везде у неё будет разное значение, но процессор по прежнему продолжает притворяться, будто это одна ячейка, и пытается скрыть рассинхрон от пользователя. А внеочередное выполнение происходит по event-driven принципу — хуйня, которой в исходной машине Тьюринга вообще в принципе нет. Из позитивных новостей: продолжающийся кризис западной экономики приводит к сокращению расходов на новые технологии, так что с имеющимися технологиями мы застряли надолго, так что усаживайтесь поудобнее, спешить некуда.
>>3485111 > Ебать ты охуеешь, когда узнаешь, что любая смена ссылки на объект в V8 приводит к lock-free передаче сигнала сборщику мусора. То есть, примерно половина строчек в JS синхронизируется со сборщиком. И чо дальше? Синхронизация синхронизации рознь. Тупая нейросетка сравнила синхронизацию процессов на разных ядрах и какую-то хуйню из GC из v8. Хуя галлюцинация!
>>3485116 Так ты же приходишь и объясняешь нам какой Go кал. Вот >>3485112 объяснил что обычно либы на go это многопоточный бред, который проёбывает произвоидтельность по факту своего существования.
>>3485126 >JS отличается отсутствием высокоуровневых примитивов синхронизации, которые есть у многих "любых других языков". Они и не нужны. Если ты не можешь понять атомики - твоя проблема > Очень сильно зависит от конкретной задачи. В общем случае это разговор ни о чём. Задача тут вполне конкретная: вебсервер с каким-то кодом многопотоночсти. Это будет проебывать огромное кол-во процессорного времени на синхронизацию, потому что по времени обработка запроса и обработка любого другого говна различается. Это существенный проеб произвоидтельности > Справедливости ради, многозадачность в современных ЦП выполнена крайне омерзительно, и там дальше уже похуй, какой конкретно ЯП пытается на этой платформе выполниться. С каждым годом разрыв по эффективности вычислений на ЦП и GPGPU только увеличивается. Какой-то бред от нейросети. CPU и GPU это разные задачи, на CPU ядра работают как разные, несинхронные, процессоры, потому что именно этого и ожидают от CPU >Например, когерентность кэша в современных ЦП, внезапно, выполнена при помощи передачи сообщений. А такой хуйни, как "разделяемая ячейка памяти" в принципе не существует, ячейка с формально тем же адресом может быть одновременно и в RAM, и в нескольких уровнях кэша, и везде у неё будет разное значение, но процессор по прежнему продолжает притворяться, будто это одна ячейка, и пытается скрыть рассинхрон от пользователя. А внеочередное выполнение происходит по event-driven принципу — хуйня, которой в исходной машине Тьюринга вообще в принципе нет. Понимаю, сложно для нейросети находится в ситуации подобной неопределённости, но для людей нормально писать алгоритмы с учётом некогерентности, управлять барьерами синхронизации это нормально. Конечно, если ты не даун-дебил который без нейросети не может пост на харчке написать, лолд
>>3485185 >Тупая нейросетка сравнила синхронизацию процессов на разных ядрах и какую-то хуйню из GC из v8. Хуя галлюцинация! Ебать шок, в V8 большой GC и код JS выполняются в разных потоках. "О сколько нам открытий чудных...".
>Так ты же приходишь и объясняешь нам какой Go кал. Вот >>3485112 (You) объяснил что обычно либы на go это многопоточный бред, который проёбывает произвоидтельность по факту своего существования. Бля, чел, учит матчасть, просто какой-то позор обоссатый тут постишь.
>>3485205 >Они и не нужны. Если ты не можешь понять атомики - твоя проблема Понимание прежде всего должно заключаться в том, что lock-free программирование на атомиках — это вообще одна из самых сложных задач в программировании. И я не вижу этого понимания у тебя, я не вижу у тебя опыта аля звонки в три часа ночи "прод второй раз за ночь наебнулся, бегом к компу, платим двойную ставку, логи-стэке в тикете".
>Задача тут вполне конкретная: вебсервер с каким-то кодом многопотоночсти Тебя не смущает сочетание "конкретная" и "каким-то" в одном предложении? Не?
>Это будет проебывать огромное кол-во процессорного времени на синхронизацию, потому что по времени обработка запроса и обработка любого другого говна различается. А, так это ты опять... Но я всё-таки советую подтянуть матчасть.
>CPU и GPU это разные задачи, на CPU ядра работают как разные, несинхронные, процессоры, потому что именно этого и ожидают от CPU Шок, но в GPU тоже много незвисимых исполнителей. Например, моя 3060 содержит 28 процессоров, при том, что весьма "жырный" рузен имеет всего-лишь 6 ядер — всё это ищется в инете без необходимости позориться на дваче.
>для людей нормально писать алгоритмы с учётом некогерентности, управлять барьерами синхронизации это нормально Ещё для людей нормально не знать, что такое когерентность кэша, как я вижу.
>>3485248 >Ебать шок, в V8 большой GC и код JS выполняются в разных потоках. Речь про синхронизацию, к чему тут lock-free gc? Там наверняка CAS везде.
Как блядь, у тебя токены высрались? Ебаная галюционирующая хуйня, блядь, ну невозможно же общаться!
>Понимание прежде всего должно заключаться в том, что lock-free программирование на атомиках — это вообще одна из самых сложных задач в программировании. Только если ты нейросеть или даун-гошник с нейросетью вместо мозгов, лолд
>>3485307 >Речь про синхронизацию, к чему тут lock-free gc? Там наверняка CAS везде. Сериал "аноньчик учит матчасть продолжается" — оптимистичная ветка блокировки представляет из себя один CAS.
>Только если ты нейросеть или даун-гошник с нейросетью вместо мозгов, лолд Расскажи мне больше про "я пишу код без багов". Ох уж эти вайбкодеры.
>>3485316 >Расскажи мне больше про "я пишу код без багов". Всё просто - для этого нужно писать код и посты на харчке без нейросети и думать. Не для всех.
>>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 хранилище, мапы не для этого нужны. Обтекай, маня.
>>3484487 >Вы языке нет целых чисел, но есть целочисленный массив — степень пиздеца понимаешь или нужно ещё развернуть? В языке есть целые числа. ЦЕЛОЧИСЛЕННЫХ ПЕРЕМЕННЫХ НЕТ, ебанашка.
>>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).
>>3485498 >потому пошаговая запись для него является естественной формой. Ну и какие преимущества тогда у го перед нодой? Или че ты вообще высрал, я не понял, цикл for во всех языках программирования одинаковый.
>Так я о том и пишу, что JS — убогий язык, в котором мало того, что нельзя переопределять операторы В питоне тоже нельзя. Ну переопредели мне чтобы плюс складывал поэлементно, вперед, удачи. Код не забудь показать.
>В каком ещё ЯП настолько ебанутая семантика базовых операций? Никто не спорит с ебанутостью джаваскрипта, я не понимаю, почему ты пиздишь про питоне, ведь в нем семантика такая же ебанутая, а перегрузки обещанной нет.
>Что-то я нихуя не вижу знания языка: В глаза ебешься? >ЛИБО объект, либо МОЖЕТ ИМ стать. 5..toString()
>Какое нахуй знание языка, если ты не знаешь про автобоксинг Ты долбоеб? Я тебе ровно это и написал. Ебанат.
>Малолетний долбоеб открыл для себя существование prototype pollution. Спешите видеть.
>Мне нужно пояснять, чем значение отличается от переменной? Да мне поебать на твои значения, пик 2.
>TypedArray — это всратая сишная хуета В чем ее всратость заключается?
>Так-то можно и новый BigInt вспомнить, который вполне себе явно целое число, правда, не совместимое с обычными числами (number). А в питоне-то есть такое, конечно же? Ах да, там же числа любой длины, зачем нам бигинты
>>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
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
>2) Что значит перегрузить оператор? Оператор на типах определяется даже в хаскеле, а не абстрактный в вакууме оператор Оператор - это бинарная функция в данном случае. Перегрузить, значит сделать так, что плюс с этими аргументами ведет себя по-другому. Причем тут типы, епту бля?
>>3485608 >Я написал, что filter/map/flat/reduce — это хуйня из-под коня С хуяли это хуйня? filter и map - это самая база для ежедневных операций. Ну вот надо тебе отфильтровать данные по каким-то признакам и че ты каждый раз будешь for loop c if else костылить?
>Для стандартного list это сделать нельзя, он залочен Очко у тебя, питонодебила залочено. Вот и не пизди, что у тебя че-то там переопределять можно. Переопределять можно, когда я могу сделать что-то типа такого:
Вот это ПЕРЕГРУЗКА СУКА ОПЕРАТОРА. А когда ты, говнюк, >сделать производный класс типа MyList([1,2,3,4]) Это ни хуя не перегрузка, это расширение твоего рабочего очка.
>Ты мне ответишь? Нахуя мне тебе что-то отвечать?
>Всё рано или поздно может стать объектом, если с ним что-то делать. Ок, подскажи каким образом в Java, C#, C++, D да где угодно число автоматически становится объектом при приведение его к строке? Что, нигде? Ну вот и не пизди, потому что там это РЕАЛЬНЫЕ примитивы.
>Другое дело, что изначально примитивные типы не являются объектами. Примитив не может иметь методов, точка. Если примитив неявно превращается в объект - это что угодно, но не примитив.
>В стандартной поставке питоне нет никакой проверки типов, есть только поддержка их объявления. Это значит там нет типов, лол.
>В лучших традициях JS, присвоил одно — получил другое. Додсон, ты понимаешь, что такое Int8? Что ты там блять ожидал увидеть после > a[0] = 200;
> filter и map - это самая база для ежедневных операций. Ну вот надо тебе отфильтровать данные по каким-то признакам и че ты каждый раз будешь for loop c if else костылить? Ебало этого дерьмоеда представили? If для него костыль, да это же эталонный индус нахуй!
Ну и в чем различие? Оператор + не определен в Base для Vector{Int64} ГПТ говорит что в жулии тоже нельзя без хаков переписать операторы из Base если они там определены некоторых для типов.
>Причем тут типы, епту бля? Притом что в типизированном языке ты не можешь никак задать выражение само по себе, не привязывая его к типу. В динамических языках это рантаймом может определятся, когда ты передаешь какую-то структуру в сишную либу и она тебе выдает error если операция неопределена для типа. В твоей жулии + не определен для Vector{Int64}, но определен для строк и чисел. Для поэлементного сложения векторов там вроде есть .+ (точка с плюсом) , так же как в хаскеле и окамле
Нужно приводить в пример руби и котлин тогда уж. Где можно открывать классы для изменения.
>>3485711 >Ну и в чем различие? Оператор + не определен в Base для Vector{Int64} Ты еблан?
>ГПТ говорит что в жулии тоже нельзя без хаков переписать операторы Ебало нейронкодауна, который столкнулся с тем, что нейронка хуево обучена ндля джулии, представили? Ты хоть код, который я тебе скинул, запусти, а потом уже кукарекай.
>Притом что в типизированном языке ты не можешь никак задать выражение само по себе, не привязывая его к типу. Ну, привязал проверяй. import Base: + +(l::Vector{Int64}, r::Vector{64}) = "ty xyi" Или ты от нофапа ослеп и типов не видишь?
> В твоей жулии + не определен для Vector{Int64} Сказочный долбоеб.
>>3485723 Скорее нейронка не пиздит, а в твоем плейграунде какая-то прелюдия подключена определяющая +. Покажи мне код в Base на гитхабе определющий +. Даже я нихуя не зная жулии больше тебя понимаю..
Зы Если там будет женерик, так чем это лучше наследования? Спор же был не статический vs динамический полиморфизм.
>>3485747 >Скорее нейронка не пиздит, а в твоем плейграунде какая-то прелюдия подключена определяющая +. Чтоб ты знал, ебанько, для того, чтобы посмотреть КАКАЯ именно из функций вызывается для твоего кода, есть специальный метод @which, который тебе номер строки показывает.
>>3485766 Ну то есть это дженерик? Идем дальше. Почему >+(l::Vector{Int64}, r::Vector{64}) = "ty xyi" Это переопределение, в твоем понимании >class A(list) ... Это не переопределение оператора + на списке, в твоем понимании
Точно так же можно сказать: c женериком ты уточняешь выражение для конкретного типа (подтипа), которое будет спользовано при применении женерика в другом выражении, а не переопределяешь оператор +
C наследованием от list я получаю список (подтип списка). Только с новым поведением +. Этот мой список пролазиет, там же где используется обычный лист. Недотаток в более вербозном конструкторе A([1, 2, 3]) по сравнению с [1, 2, 3]
>>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);
Просто для справки: 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
>>3485815 >в таком сраче трудно что то понять Самое смешное то, что это ведь я писал про "понимание JS не нужно, предметка важнее". Может быть потому, что я, блять, всё-таки понял язык и занимался дальше предметкой, а не решал философские проблемы плана "писать ли else перед return или нет".
Почиатл я ваш срач и захотелось выучить другой язык, чтобы не быть как лох и шарить во всем написанном тут. Кроме жс ничего не знаю. Что посоветуете? Модный раст или го? Вечный с++? Может жава или с#?
>>3485848 >Ну да, кроме тебя предметкой никто не занимается. Ты единственная надежда всех кабанов, лучик света в темном царстве волчар-философов.. Есть челы-фулстэкеры, которые хуярят новые сайты быстрее, чем понимают, что написали. Я после двух лет во фронте по прежнему понимал, что дохуя не понимаю. Там одни гриды и флексбоксы такие, что ебануться можно. Это без CSS-переменных. Реально, фулстэком может быть только чел, который либо не умеет во фронт, либо не умеет в бэк, но чаще не умеет в них обоих. Написание современного веба в сборе — это крайне сложное занятие, и "упрощение" достигается только снижением требований. Мне тем более смешно слышать про "написать сразу для веба, чтобы подо все платформы было" — ебокляки, у которых я работал, на эту хуйню повелись, и довольно поздно выяснили, что проще было написать тупо три приложения под три платформы, чем "упрощать" разработку до веб-приложения. Причём, браузер ебёт мозги намного больше, из-за бесконечного многослойного груза наследия со времён 1992 года. В бэке ты просто взял и сменил версию PHP на другую, а на фронте у тебя есть то, что есть, никакого выбора нет.
У меня где-то была охуенная презентация, где челы подводили итоги после аналогичной разработке сложного SPA под веб, они тоже повелись на истории про "электрон решает все проблемы" , и тоже поели говна, после чего SPA дропнули и написали нативное приложение.
>>3485867 >Почиатл я ваш срач и захотелось выучить другой язык, чтобы не быть как лох и шарить во всем написанном тут. Кроме жс ничего не знаю. Что посоветуете? Модный раст или го? Вечный с++? Может жава или с#? Мой стэк: Delphi, C/C++, Python, JS, Haskell. Считая что я поел всего самого вонючего говна. Лучше учи Go,можно Rust, но только если думаешь работать на запад. В СНГ ещё долго на C++ будут писать.
>>3485383 >Хочешь скорость, бери кресты и сри себе в штаны UB Шото ты сынок не туда воюешь
1. UB - понятие стандарта C++, что-то в стандарте описано, как должно работать, а что-то нет, то есть не определено, то есть undefined behavior, так как ебанёшься всё описывать, а значит реализация остаётся на усмотрение разработчика компилятора. Бери компилятор, например gcc, смотри, как сделано в нем. На уровне компилятора никакого UB нет, реализация конкретна. Также любые разговоры про UB - без демонстрации другого языка с таким же стандартом и уровнем детализации фич, а, впрочем, иди нахуй, лень объяснять
2. Твой опыт срания в штаны не представляет ценности. Я беру кресты и делаю норм
>>3485867 typescript изучай чтобы понять синтез ооп и типов. Хаскел/окамл изучай для понимания чистого ФП, чтобы ни говорили, мультипарадигмальные языки имеют мало общего с чистым ФП. Всякие там функторы и функциональные обновления не используются, если писать код на том же тайпскрипте. Руби можешь изучить чтобы понять, как с помощью красивых концепций писать запутанный код. Если у рубистов отобрать доку по рельсам, они через месяц уже нихуя не напишут, потому что забудут конвенции, чтобы там ни пиздел DHH про свой фреймворк.
>>3485908 Да, ещё C++98 и последние 26 - это два разных языка. Учи последние фичи. Со всяким unique_ptr придется ознакомиться, а потом понять, что этот мусор ненужОн, потому, что есть контейнеры и поинтеры в редких случаях внутри них используются, а вне нет. Но это по ходу изучения, завадая себе вопросы выяснить. Кстати, нейросети в ряде вопросы не помогут, потому, что они обучены на ранних стандартах, чей код доминирует, а на новых, может просто нужной стать и примера не найти и посоветует дичь
>>3485908 Теперь покажи пальцем какую концепцию спиздили из крестов. Все концепции крестов замыкаются на борьбе с крестовыми нюансами. Общих концепций там раз два и обсчелся. Шаблоны устроены хуже дженериков в других языках, лямбды появились отностительно недавно и не могли быть спизжены у плюсов, constexpr появились отностительно недавно и не могли быть спизжены у плюсов.
>>3485913 =( Думал, буду новые тезисы, а ты просто пересказываешь мне уже известную чушь.
Лямбды не спизжены у плюсов, лямбды более ранняя концепция. В плюсах появились в 2003 в boost. Это был первый язык со статической компиляцией с лямбдами
constexpr в текущем виде впервые появился в крестах. Код, который вычисляется на этапе компиляции, если все его переменные константы или также constexpr. Что-то похожее было в D раньше C++, но он мог только с константами работать и не умел использовать constexpr, вызываемы constexpr
Кстати, сам по себе consexprt говно, язык должен сам определять константы у нас или нет, без ключевых слов, но дауны в других языках об этом но додумались и тупо пиздят концепцию. Что Rust с const fn, что Zig с его compile, что другие
>Шаблоны устроены хуже дженериков Лол. Шаблоны более мощная модель. В шаблонах у тебя есть полиморфизм, благодаря этому, ты можешь в зависимости от выходных данных, по сути генерировать тип. С дженериками это не работает. Опять же, лень пример приводить, который бы тебя разъебал, так как я с телефона, а пример на компе, и твой уровень дискуссии не достоин, чтобы я вставал с кровати
>>3485972 >Это был первый язык со статической компиляцией с лямбдами Ты ебанат совсем? 50 лет семейству ML — а у него, видите ли, лямбды в 2003 году появились. Пиздец, с кем я сижу на одной борде. Может у тебя ещё и асинхронное программирование первым в C++ появилось?
>>3485972 >Опять же, лень пример приводить, который бы тебя разъебал, так как я с телефона, а пример на компе, и твой уровень дискуссии не достоин, чтобы я вставал с кровати Твой уровень дискусии достоен того, чтобы не отрывать тебя от хуя, который ты сосёшь — я бы так сказал.
>>3485775 >Это не переопределение оператора + на списке, в твоем понимании Еще раз возвращаемся к тому, с чего начинали 15 постов назад. Ты вскукарекнул про перегрузку ОПЕРАТОРА, но в примере почему-то высрал КАСТОМНЫЙ класс.
Я тебе привел контрпример из нормального языка программирования, где НЕ СОЗДАВАЯ никаких дополнительных классов ПЕРЕГРУЗИЛ ВСТРОЕННЫЙ плюс. С чем ты споришь, я не понимаю?
>c женериком ты уточняешь выражение для конкретного типа (подтипа) С каким женериком, блять? Где ты в Vector{Int64} женерик увидел, юродивый?
>Что тебе непонятно? Мне все понятно. В питухоне НЕТ перегрузки операторов.
>>3485806 >Отсюда дизайнеры Go справедливо задали вопрос Я очень рад, что дизайнеры Go одиноки в своей гениальности, и во все остальные языки map/filter все-таки добавили.
>тебе никто не обещал стандартные типы переопределять — тут тебе не JS Ебанько, в JS как раз нельзя переопределять стандартные операторы.
>Для невстроенных типов переопределение свободное А что, оно может несвободным? Типа тебе яп запрещает собственным классам определенные методы добавлять, ахах
>Прикинь. Java: Прикинул. Ты разницу улавливаешь между, сука, приведением типов из одного примитива в другой и боксингом, когда у тебя автоматически примитив в объект превращается? У тебя ни в инте, ни в стринге нет своих методов.
>Неявное превращение примитива в объект — это ещё не самое страшное То есть оказывается все МОЖЕТ становиться объектом, как я и написал?
> [] == ![] >true >Расскажешь мне, что тут объект? Причем тут объект? Ты об алгоритме нестрогого равенства вообще слышал? Справа ты отрицанием скастанул массив к булиану, то есть к false, потому что любой объект всегда true. Слева у тебя остался объект, который приводится к примитиву методом toString(), который для пустого объекта возвращает пустую строку.
Ну и да, ебнутое нестрогое равенство считает что пустая строка и false одно и тоже. Объекты-то тут причем?
>валидация во время выполнения Это не валидация, это упавшая программа.
>>3485890 >Я беру кресты и делаю норм Молодец, ручку подарить?
>>3485867 Весь срач это высеры одного шиза который просто хуёню несёт почти всё время, постит всякое говно с нейронки, забей на этот кринж. Непоследовтельная аргументация, постоянно перескакивает с темы на тему, бред шизоидный
Чтобы получше понимать че происходит в программировании наворачивай С, больше ничего не нужно. После С можно ещё Zig навернуть и какую-то часть С++. И твоё понимание скорее зависит от того что ты пишешь и как именно пишешь, если будешь писать игровой движок или гуи фреймворк с упором на производительность - большинство низкоуровневых концепций ты изучишь и с JS.
Я посмотрел какой-то вводный ознакомительный урок с гло академии. Там какой-то усатый бородатый мужик на лекторе сказал, что если учите фронтенд, то надо только его учить, не надо распаляться, из бэкенда достаточно уметь кодить моковый имитационный псведобэк, который джейсоны получает и отдает. И сказал делать по фронтенду побольше петпроектов и рекомендовал поиграться с webgl с графикой.
Эти рекомендации полностью противоречат указаниям полученным на ту си эйч. Здесь на анонимном форуме наоборот всё говорят, что во фронтенд нельзя попасть, только на фуллстек можно. И здесь же говорят, что webgl и three.js нахуй не нужно мол учи лучше фуллстек учи фронт и бэк, без графики типа webgl three.js
>>3486042 Ну ладно. Пример: import Base: + +(l::Array, r::Array) = "ty xyi" Тоже работает в твоей жулии Остается непонятным почему ты монкипатчинг называешь перегрузкой. Перегрузкой в типизированых языках называется доопределение операций для других типов агргумента,а не изменение существующих. Спроси у плюсовика.
>>3486048 Хотя [1, 2] + [3, 4] + [7, 5] остается не работающим. Работает только с двумя аргументами MethodError: no method matching +(::Vector{Int64}, ::Vector{Int64}, ::Vector{Int64}) Получается это все таки "дописывание" определения для конкретной сигнатуры оператора + (с двумя аргументами, но не с тремя и больше), а не манки патчинг
Ну значит в жулии overloading примерно как в С++ а питухоне overriding как в С++ же
>>3485997 >Показывай язык со статической компиляцией и лямбдами до 2003. Ты читать научись, у меня нет лишних слов Да, слов нет, только лишняя сперма на бороде.
fun makeCounter (initial : int) : (unit -> int) = let val count : int ref = ref initial in fn () => (count := !count + 1; !count) end;
>>3486013 >Я тебе привел контрпример из нормального языка программирования, где НЕ СОЗДАВАЯ никаких дополнительных классов ПЕРЕГРУЗИЛ ВСТРОЕННЫЙ плюс. Мне до пизды твой "нормальный язык програмирования". Я прекрасно помню что ты писал — ты писал, что питон та же хуйня, что JS. Я тебя разъебал по перегрузки, которая есть в питоне в каком-то виде, а в JS её нет в принципе, все операторы имеют только встроенное ублюдочное поведение. Причём, настолько ублюдочное, что оператор "==" нынче все линтеры запрещают к применению. Всё остальное мне до пизды, ты свой обсер маскируешь умной, но не относящейся к беседе хуетой.
>Ебанько, в JS как раз нельзя переопределять стандартные операторы. Операторы нельзя — методы можно: Array.prototype.toString = function() { return JSON.stringify(this); };
>А что, оно может несвободным? Типа тебе яп запрещает собственным классам определенные методы добавлять, ахах Я тебе ещё раз повторяю, что модификация заблокирована для отдельных встроенных классов.
>Прикинул. Ты разницу улавливаешь между, сука, приведением типов из одного примитива в другой и боксингом, когда у тебя автоматически примитив в объект превращается? У тебя ни в инте, ни в стринге нет своих методов. Ты мне хотел сообщить, что ты обосрался? Спасибо.
>То есть оказывается все МОЖЕТ становиться объектом, как я и написал? Может, но не всё является объектом.
>Ну и да, ебнутое нестрогое равенство считает что пустая строка и false одно и тоже. Объекты-то тут причем? Тебя не смущает, что язык сделал в двух операциях три превращения типа? Или "это не считается"?
>Это не валидация, это упавшая программа. Исключение в питоне не обязано приводить к падению программы.
>>3486035 >Здесь на анонимном форуме наоборот всё говорят, что во фронтенд нельзя попасть, только на фуллстек можно. И здесь же говорят, что webgl и three.js нахуй не нужно мол учи лучше фуллстек учи фронт и бэк, без графики типа webgl three.js Где "здесь"? Кто "говорят"? Фуллстэк — это обычно говёные краткосрочные проекты "сделал и забыл", всё долгосрочное рано изи поздно делится на фронт и бэк, но туда требуются достаточно опытные разрабы. Сейчас джуном-мидлом вкатиться сложно куда угодно, потому что в сфере кучу джунов выкинуты на мороз. WebGL и three.js — это довольно специфичная хрень, я за два года во фронте к ней не прикоснулся, хотя какой-то небольшой опыт с OpenGL имел.
>>3486059 >Хотя [1, 2] + [3, 4] + [7, 5] остается не работающим. Работает только с двумя аргументами Для трёх и более аргументов нужно сделать трюк как в стандартной либе, с троеточиями.
>>3486065 Молодец. Хорошая попытка подумать, но тупость и оскорбительная спесь тебе мешают. Теперь напиши мне ту же функцию для флоатов. Что ты будешь делать makeCounterFloat? А на дабл? А на другие типы. Ты уже начинаешь видеть где ты смешон?
Поэтому люди, когда проектировали статическую компиляци придумали перегрузку, которую изначально заложили в C++. И статическая компиляция без этого свойства не имеет смысла. ML не подходит под эти критерии
Как я уже выше писал: "лямбды более ранняя концепция.". Она была в ML и в более ранних языках. Первая реализация на статической компиляции была на плюсах в boost, может ещё где-то, не изучал вопрос так детально
Плюсом, учитывай сложность лямбд в C++, одно дело, когда у тебя примитивный язык, другое дело, когда есть шаблоны и развитая система типов. Поэтому пока я плюсах в 2011 году не были выпущены лямбды, остальные статически компилируемым языки даже не брались за эту задачу, кроме D, который я также упомянул в контексте constexpr
Скриптовые же языки, вроде JAVA, C# и прочие без стат компайл выполняются в виртуальной машине и уже в силу этого могут легко реализовать у себя лямбды, поэтому реализовали их ранее, но про них речи не идёт
Так что вытирай бороду, потому, что как ты выше признался, ты любишь думать о городах в жидкостью на ней, и пытайся думать и сравнивать, а не искать в интернете/нейросети и думать, что победил, не разбираясь в вопросе
>>3486076 Фрон и бэк учатся каждый за год - два. Твой лимит обучения на жизнь два года, больше знаний не вмещается что ли? Я эту хуйню слышу только от бездарностей, по сути, рабов, которые не выбирают инструмент, а завязываются на него, становясь придатком к react-станку, а от толковых челиков слышу, что инструмент выбирают, а от Страуструпа слышу, что вообще не надо заморачиваться на программировании, а стоит изучать философию, историю и т.д.
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}; }
как вам мой генератор квантовых чисел для электрона в атоме?
>>3486424 >раз два и обчелся как это раз два? их равно количеству протонов в ядре, для железа их 26, для оганесона 118, вообще не раз два >проще в таблицу занести это мб, но у меня чисто академический интерес. Задача в том, чтобы разобраться, как оно работает, а не в том, чтобы использовать на практике к тому же мой генератор иногда пиздит
>>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# Похоже, тебя ещё и в очко ебут с другой стороны. Бля, зачем я вообще пытаюсь такому вафлёру что-то отвечать?
>>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++. Но я не могу сказать, что в какой-то момент времени я дохуя разбирался в каждой строчке кода — у меня были свои модули на крестах, которые я писал и понимал, всё остальное — это "чужой код, ХЗ что он там делает, но написано вроде правильно".
Как же я заебался. Сделал компилятор в голове, но остановился на управлении всей оболочкой. Пиздец блядь, уже два дня сижу и нихуя не понимаю че делать.
Через стор с сигналами управлять созданием всего ui или через методы?
>>3486546 Все эти фронтендные технологии для тырпрайза чел. А в тырпразе тебя будут нейронки тебя заменять. Поэтому сейчас лучше переходиь на деловские технологии расчитаные на одного чела делающего продукт для мелкобиза. Делаешь все на бекенде, рендеришь шаблонами, а на фронтенде жиленький слой жса, хоть на жиквери, хоть на стимулусе.
>>3486505 >МВП все таки лучше одному многорукому назначить, чем десятку челов. Потому что десять челов будет в десять раз дольше делать. Да, но я не уверен по поводу "одному" — если фич много, то стоит подключать двух-трёх-четырёх. По-хорошему, самые опытные и квалифицированные челы должны этим заниматься, а потом всё, что они написали, будет поэтапно выкинуто и полностью переписано. Это теория. Практика — это проект находится в бесконечном MVP, начальная разработка поручается манагеру, а не кодеру, развитие и расширение поручается джунам-мидлам, при этом сеньоры делают "наиболее важную часть" в условиях, когда "мы архитектуру уже разработали", "не ломалось — не трогай". Может быть это преувеличение, но те или иные проявления подобного подхода я видел неоднократно: я приходил с предложениями и получал от кого-то старшего ответы плана "мы не видим значимых преимуществ твоего подхода, наша слепленная на коленке лапша и так хорошо работает". Причём, даже когда я стал техлидом, то всё равно надо мной стояли экзекьютивы и CTO, которым нужно постараться доказать нужность изменений, при этом у каждого из них самооценка и самоммнение до небес — у меня даже была рабочая теория, что им похую на продукт, им намного важнее показать другим и самим себе какой у них большой член.
>>3486659 > Больше похоже на генератор кода на основе примитивных шаблонов из интерполяции строк. Нет, там строится AST, по AST два прохода и в конце строится исходник. Можно не только DOM собирать, но и WASM из ML похожего на JSX. > Ну раз ты так считаешь, то так оно и есть. Ты просто никогда фреймворки не писал, вот и фантазируешь хуйню. Не существует реальной возможности полностью отделить модель от представления.
>>3486059 >Хотя [1, 2] + [3, 4] + [7, 5] остается не работающим. Работает только с двумя аргументами >MethodError: no method matching +(::Vector{Int64}, ::Vector{Int64}, ::Vector{Int64}) >Женерик! кок-кок КУДАХ!!!!
>>3486048 >Остается непонятным почему ты монкипатчинг называешь перегрузкой.
>>3486074 >Я тебя разъебал по перегрузки, которая есть в питоне в каком-то виде, а в JS её нет в принципе Еще раз, перегрузку плюса в питоне в студию. Так чтобы 2+3 возвращало "ty xyi". Обосралась, Маня? Значит, обтекай.
>Причём, настолько ублюдочное, что оператор "==" нынче все линтеры запрещают к применению. Он никогда и не рекомендовался к употреблению, начнем с этого.
>Операторы нельзя — методы можно Ты долбоеб? Я тебе про операторы.
>собственным >встроенных Сказочный долбоеб.
>Тебя не смущает, что язык сделал в двух операциях три превращения типа? Или "это не считается"? Ты впервые столкнулся с JS или что? Ты внезапно в 2025 году открыл для себя, что это один из худших яп, когда либо созданных? Поздравляю. Ручку подарить?
>>3486880 >Еще раз, перегрузку плюса в питоне в студию. Так чтобы 2+3 возвращало "ty xyi". Обосралась, Маня? Значит, обтекай. Подменяешь понятия — зашиваешь очко. Такие дела.
>Ты долбоеб? Я тебе про операторы. А я тебе про типы в целом отвечал в этой ветке. Ишь какая ты манёвренная тридвараха четвёртого поколения — какой тебе выгоднее контекст, такой ты и выбираешь. Заебись побеждать шизу в своей голове.
>>>Тебя не смущает, что язык сделал в двух операциях три превращения типа? Или "это не считается"? >Ты впервые столкнулся с JS или что? Ты внезапно в 2025 году открыл для себя, что это один из худших яп, когда либо созданных? Поздравляю. Ручку подарить? Ага, то есть контекст беседы ты опять игнорируешь, потому что в нём ты обосрался? А сам несколько постов назад втирал, что неявные превращения — не превращения.
>>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); }
>>3486483 Ахаха. Ты с этим примером серьезно не понимаешь где обосрался? Ты иди изучи, что такое статик компиляция и полиморфизм. Заодно ознакомься с понятием вывода типов.
У тебя твоя параша в случае, когда ты кидаешь в метод makeNumberCounter int возвращает Number, когда Real - тоже Number. У тебя в твоём говне нет вывода типов. В плюсах если я кину int, мне всегда вернётся int
И в C++ нет полиморфных операторов, есть перегрузка. Полиморфизм - говно по своей сути, свойство ООП подхода, благодаря vtable (иди гугли что такое)
Ты не понимаешь, что такое статик компиляция. Твой код на ML не рабочий, там надо фиксануть. С самого начала подозревал, что с нейросетевым высером общаюсь. Хуль ты даже не проверяешь выдачу, бородатый спермолюб?
В эмельках проблема в том что операции числами не полиморфны, для них не выражений с параметрическим полиморфизмом Я могу написать type 't point = { x: 't; y: 't; }
Но функцию let dist p = ? Я не могу статически полиморфной сделать потому что операторы + ★ не полиморфны статически, sqrt функция тоже не полиморфна
В С++ шаблоны сам по себе не явлляются параметрическими выражениями языка С++ это тупо текст который преобразуется в конкретный код при инстанцировании (в месте применения шаблона)
В С++ шаблоны это по сути макроподстановка на стероидах
>>3486946 >не явлляются параметрическими выражениями языка С++ Точнее шаблоны то являются конструкциями С++, но код в них не анализируется на синтаксис до того, как шаблон не будет подставлен в выражение.
Но если бы в С++ были раздельные операаторы для флоатов и целых. То была бы такая же проблема как в ML. Потому что бы при подстановке для целых требовалась операция +, а для флоатов .+
>>3486946 >>>3486916 Ты серьёзно с этим животным что-то обсуждаешь? Правда? Он несёт какую-то настолько ебаную хуйню, что там буквально каждое предложение можно разъебать, это просто какой-то троллинг тупостью, как с яндекс-рефератом спорить.
>>3486979 Это напрямую идёт из принципа single responsibility. Виджет занимается отображением данных, которые ему предоставляет фича через пропсы. Виджет не связан с хранилищем (store), в нем нет логики по упорядочиванию списка, количеству элементов и прочего. Его задача просто нарисовать что дали сверху. Фича наоборот ничего не рисует, её задача извлечь данные и передать в слой ниже. Когда код так разделяется его проще тестировать и менять.
Всё, что ты говоришь, не имеет реального смысла для управления проектом или масштабирования.
Кто-то придумал некий принцип ради самого принципа — но зачем мне его придерживаться?
Всё гораздо проще:
1. Делаешь отдельную самодостаточную фичу (например, топ-треды). 2. Подключаешь стор. 3. Либо пробрасываешь данные, либо фича сама тянет их с сервера по событию или действию.
Код при этом остаётся простым. Все лежит в одном месте и нет никакой путаницы с йоба-ентити и йоба-виджетами
Если менеджер просит добавить сортировку — открываешь эту фичу и добавляешь её туда. Если нужно сделать такую же штуку в личном кабинете абу, но с парой отличий:
Дорабатываешь фичу, чтобы она переиспользовалась (работаешь с версткой, убираешь пару кнопок). Если логика отличается — пишешь новую фичу и шлешь всех нахуй, потому что логика новая.
Если сортировка нужна в десяти местах, ты описываешь её десять раз. Не нужно тратить время на универсальную хрень для всех случаев, чтобы сэкономить 5 строк кода.
>>3486923 Абсолютно. Делай всё по компонентам и будет счастье. Роуты и страницы в принципе прошлый век и шизофрения. Вот эта >>3487003 хуйня просто шизофрения и дрочево.
>>3487055 FSD - это, по сути, легальный способ уволить программиста. Если тебе кто-то не нравится, ты начинаешь давить его на ревью аргументами вроде: «Это не фича, разнеси это на 50 файлов». Человек в шоке и вместо часовой тасочки тратит на неё две недели, а потом его просто увольняют.
Но я благодарен FSD, мы переписывали проект 2 года с этой параши. Удалось оттяпать у кабана более 6 000 000 за это время рефакторинга
>>3487026 >Код при этом остаётся простым. Код как раз становится сложным, потому что в него буквально сложены разные ответственности. Первоначально такой код действительно быстрее писать, но когда дело дойдет до множественных изменений в итоге получится неподдерживаемое хуй пойми что, в обиходе называемое говнокодом. Single responsibility буквально запрещает делать сложные вещи. Больше писанины, но каждый участок кода прост и отвечает только за что-то одно.
> не имеет реального смысла для управления проектом Простейший пример: отрисовка виджета на основе моковых данных. Если бы к виджету был прибит стор, то пришлось их протаскивать через него, а когда отрисовка отделена от работы с данными, то достаточно передать заглушки через параметры.
>>3487076 Все таки не совсем так. В оригинале SRP нужно разделять код имеющий разные причины для изменений. Если же причины для изменений одни и те же, то легче поддерживать такое все вместе.
Простой утрированый фронтендный пример. У тебя задача рисовать на канвасе таблицу. Ты делаешь методы для горизонтальный линий, для вертикальных линий, Методы для вывода текста в сетке. Методы для вывода текста в шапке таблицы. Потом тебе надо делать выделение цветом при клике, на клетку. Ты вносишь изменения в десяток методов, и с каждой задачей еще и еще. Тебе бы проще и эффективнее было держать один метод на несколько экранов, который рисует все в таблице.
Вот старый пост от Дена Абрамова с другим примером https://overreacted.io/goodbye-clean-code/ Там не про SRP а скорее про про надуманное использование OCP (open close principle) Но SRP тоже может приводить к бесполезным абстракциям которые только затрудняют модификацию кода
>>3487076 > Single responsibility буквально запрещает делать сложные вещи. И в итоге делает сложную лапшу, разнесённую на тысячи файлов и тысячи функций. Рот почему в говне?
> достаточно передать заглушки через параметры. Нет, недостаточно. Нужно написать кучу говнокода, лапши и апи. И дай подумать, что же лучше, написать прокси для стора на 10 строчек или написать ВОНЮЧУЮ КУЧУ ЛАПШИ НА ВЕСЬ ПРОЕКТ?
Впрочем, какая разница, работоблядь заставят жрать что дают.
>>3487138 >Рот почему в говне? Потому что ты обосрался с декомпозицией и композицией обратно. Но скорее всего ты даже не пытался и у тебя всё свалено в один большой ком грязи.
>>3487136 >В оригинале SRP нужно разделять код имеющий разные причины для изменений. Разделение на фичи/виджеты в fsd как раз делается на основе причин изменений. Меняем фичу когда меняется верстка, меняем виджет когда меняется логика работы с данными (в данном случае терминология из fsd).
>>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 компоненты. Любой новичок сразу видит, что править нужно только то, что в текущей папке.
>>3487143 >Но скорее всего ты даже не пытался и у тебя всё свалено в один большой ком грязи. Ком грязи состоящий из 1000 строк можно разбить на 4 кусочка говна из 250 строк.
твой код как понос, он повсюду и он разделен на сотни капель говна файлов, чтобы уследить за ними, нужно понимать весь проект и осознавать-помнить 1000 сущностей
>>3487136 >Вот старый пост от Дена Абрамова с другим примером https://overreacted.io/goodbye-clean-code/ Классика говноедов обосранных, ахахах. Один даун не может в стркутуры данных, математику и пишет индусский код, второй даун всё это превращает в набор лапши потому что иди нахуй вот почему. Они даже не понимают че там происходит с рендером, сука!
Очевидно же что этот калыч можно решить одной математической формулой с несколькими константами! Как они не видят?
>>3487143 > >Рот почему в говне? > Потому что ты обосрался И зачем ты съел моё говно, дебилище?
> всё свалено в один большой ком грязи. Буквально любой проект с лапшой и абсракциями - чтобы понять что делает форма нужно 50 файлов открыть
>>3487138 >написать прокси для стора >Просто поднимаешь mswjs.io и работаешь как с настоящим бэком. Вот оно КОСТЫЛЕСТРОЕНИЕ. Лишь бы не раскидывать код по "каким-то выдуманным принцимам".
>>3487148 >этот калыч можно решить одной математической формулой Кстати заметил, что математикоидиоты не умеют в работу с понятиями как гуманитаростарейшены, поэтому спотыкаются на элементарных определениях что такое фича/виджет/сущность/итд.
>>3487162 > фича/виджет/сущность Это и не нужно знать, потому что это термины из FSD. (их придумали в RU) FSD - легаси в 2025.
Фича нормального человека - это бизнес-компонент \ композиция компонентов \ композиция компонентов с натянутой поверх бизнес логикой/ Но никто не запрещает применять тут термин: виджет. Просто нужно договорится с командой 1 раз (да и это лишнее, обычно по названию папки и так все ясно).
>>3487143 >>3487138 Я уже давно сдался и не спорю с ебанатами, которые следуют книжным принципам в качестве самоцели. Самый адекватный тут Дэн Абрамов: >>3487136 >Вот старый пост от Дена Абрамова с другим примером https://overreacted.io/goodbye-clean-code/ Но мне кажется, что сидящие тут нихуя не поняли, о чём он.
Кстати, у меня неоднократно было, что я пытался рефакторить чужой код, приходил к выводу "хуйня получилась", и оставлял код как есть. Дэн прямо-таки по всем пунктам показал, как не нужно делать. Правда, деталей он всё-таке не описывал (NDA), потому вполне может выяснится, что всё-таик исходный кодер был ебланом, и править нужно было не этот маленький кусок кода, а архитектуру компонента в целом.
>>3487172 >FSD - легаси в 2025. Оно никогда и не было чем-то устаканеным, как бы организаторы этого не хотели. За FSD стоят вполне рабочие концепции, они даже склеены во вполне добротную модель отлично стреляющую в определенных ситуациях. Концепции как база никуда не уходят, вариации как их склеивать остаются на усмотрение архитектора.
>>3487184 С позиционированием команда FSD чуток обосралась.
Возможно они хотели продать FSD как универсально применимую серебряную пулю, а это реально не так и вряд ли могло быть. Надо было бы им добавить раздел о границах применимости и дать больше свобод в изменениях модели.
Тем не менее команда постаралась и изучать FSD стоит.
>>3487201 >FSD это почти всегда лапша и часовые споры на ревью. Бля, если бы у меня на митингах-ревью какой-то уебок часами спорил по поводу того, как скомпоновать классы, то я бы давно поставил вопрос "либо эта хуйня уходит, либо я". Я реально такой пассажир, что не буду хуйнёй заниматься даже за норм зарплату. Может быть потому, что я уже давно сеньор-техлид и могу позволить себе не работать годик-другой — зажрался совсем.
>>3487174 >Но мне кажется, что сидящие тут нихуя не поняли, о чём он. Конечно поняли - он ебанавт и работал он в компании ебанавтов. Когда писал этот пост он был ебанавтом который этот кринж высрал всерьёз.
Ты, конечно, можешь сколько угодно фантазировать что на самом деле он не ебанавт и он умный и имел ввиду другое. Но. Нет. Это не так. Они все ебанавты. Они ресайзили элементы и вместо констант для каждого элемента высрали какой-то индусский бред.
FSD - это фингербокс, сто стёб, это троллинг. Какие-то ноунейм -челики опубликовали бесполезнузную хуиту, а дебичи подхавитили. Причем дальше рунета эта шляпа даже и не выходила. Ни в одной сериезной конторе это не используют и даже слышали об этом.
>>3482678 (OP) Сам бекендер, нужно написать фронтенд для своего проекта. Очень давно имел дело с джаваскриптом и ангуляром - не понравилось. Как лучше всего подступиться к фронту в 2к25? Забить на жс и изучать тайпскрипт, а вместо ангуляра взять реакт?
>>3487395 Забитие на тайпскрипт тебе ничего не даст, только подержку автокомплита и автоматического переименования по проекту потеряешь. Нет никакой необходимости с typescript сложные типы наворачивать, он все равно помогает содержать код в чистоте без особых усилий.
>>3487435 Другое дело если бы возьмешь фреймворк с поддержкой hotwired turbo (рельсы, симфони) тогда ты будешь все на беке писать, а на фронте микроскопический жс будет, тогда может быть тайпскрипт и не нужон.
>>3487435 >Нет никакой необходимости с typescript сложные типы наворачивать, он все равно помогает содержать код в чистоте без особых усилий. Расскажи ему больше про "нет необходимости в сложных типах": https://kyleshevlin.com/typescript-prevents-bad-things-and-good-things/ Нет никаких проблем, если ты вайбкодишь прототипы целыми днями с одними лишь примитивными типами. Но когда у тебя вложенные замыкания, то тут-то начинается пиздец. А это неизбежно будет в большом проекте, даже если ты это оформишь вложенными классами — один хуй нужно будет что-то одно в другое вкладывать и получать длиннющие типы. И если в компилируемых языках, вроде того же C++, есть перегрузка функций и мономорфизация по типу параметра, то в JS ты всю эту хуйню будешь делать руками, на предикатах или просто безусловных кастах (на свой страх и риск). А всё потому, что TS — это нашлёпка над JS, а не полноценный ЯП.
В реальности "содержать код в чистоте" оно помогает только безмозглым джунам — которых не так давно массово набрал Facebook и Microsoft, и нормально так поел говна в процессе.
Та же история с Rust — корпорациям он по большей части нужен для того, чтобы автоматически пиздить по рукам джунов, заметающих проблемы под ковёр. Опытная команда на C++ может писать код не хуже (и пишет, в том же Chrome), при всей неоправданной ублюдочности C++ как языка.
>>3487878 Не хочу с шизами спорить, для которых все или ничего. Нормаьному челу и половина проекта на тс костылях лучше чем просто лапша без костылей для IDE. Я о практической стороне дела говорил, а не о "чистоте" с точки зрения шизоида. Ничего тебе не мешает any внутри структуры написать, если сложно или нет времени. А кто там даун или не даун ты со своим наблюдающим врачем разбирайся.
>>3488313 До сих пор перспективная хуйня и вкат не сильно сложнее чем в тот же бэк. А если учесть что в бэке пошла тенденция накидывать требования по предметной области, то в бэк вкат может быть даже сложнее.
>>3488729 Кому нахуй этот 1с нужен, чел, он с каждым годом теряет в процентном соотношении. Этот кал существует потому что всем похуй на российский рынок црм, как только появится достойный конкурент - 1с резко и моментально схлопнется.
>>3488827 Ты не шаришь и пытаешься натянуть свой фронтендерский мир, где новый популярный фреймворк заменяет старый на другую реальность. На 1С работает государство, в 1С электронный документооборот и частники так же повязанны с гос системой. Это в принципе все что имеет значение. Ты никакую отчетность не сделаешь для налоговой, никакой бух отчетности и пр. Тебя госорганы просто пошлют нахуй и скажут делать как заведено.
>>3488877 У тебя магическое мышление. Электронная бумажка от 1с и от скрипта на js ничем не отличается для налоговой. Единственное что там нужно сделать - сертификацию, да и она не особ нужна Есть тысячи магазинов с встроенными црм которые работают с теми же бумажками что и 1с, создают ту же самую отчётность и выдают полный бухучёт.
И не забывай что 1с это это хуета для микропредприятий. У всех фирмочек крупнее 100 человек свои системы бухучёта и 1с им нахуй не всрался. Это как было решением для быдла, так им и остаётся.
>>3488923 Чел, я работал с юрфирмами которые работают с бухучётом. Любая достаточно крупная компания с 1с не работает. Никому нахуй не впёрлось нанимать отдельных долбоёбов с уникальным языком программирования который никуда не конвертируются. 1с всегда позиционировало себя как хуйня для малых и микропредприятий, этим говном оно и останется навечно. Зарплаты там соответсвующие.
>>3488931 >1С >деньги Тут ты погорячился. Зарплата будет на уровне дворника или заводчанина. >JS = Конкуренция и переработки Как только в 1с вкатятся все долбоёбы - будет так же 6000к откликов на вакансию. Вангую скоро так и будет и все эти люди уж точно останутся с 1с надолго.
>>3488936 >Тут ты погорячился. Зарплата будет на уровне дворника или заводчанина. Только если предметку не знаешь, а предметка сейчас уже почти везде маст хэв >Как только в 1с вкатятся все долбоёбы - будет так же 6000к откликов на вакансию. Не вкатятся. Вкатиться в 1С - это выучить весь бухгалтерский, управленческий учет, пройти кучу экзаменов, которые во франчах буквально длятся годами. Объем всякой хуйни которую там нужно знать гораздо больше чем в тех же фронтендах и нейронка тебе мало чем поможет.
>>3488969 >Не вкатятся. Вкатиться в 1С - это выучить весь бухгалтерский, управленческий учет, пройти кучу экзаменов, которые во франчах буквально длятся годами. Объем всякой хуйни которую там нужно знать гораздо больше чем в тех же фронтендах и нейронка тебе мало чем поможет. Бесполезная хуйня, чем дальше продвигается автоматизация - тем меньше этот калыч вообще нужен, все эти бесконечные бухгалтера и манагеры нахуй не нужны и с каждым годом кол-во вакансий падает.
>>3488981 >>3488984 Да я не отрицаю что в микропредприятиях 1с часто используется, потому что можно нанять чушек за 50к рублей. Но любая крупная фирма этим просто не пользуется, понимаешь? Не нужно. Даже микрософт ацесс используют больше чем 1с.
>>3489039 Нахуя тогда под линупс запилили 1с, нахуя тогда клиент-сервер запилили, нахуя тогда серверная часть одинас с кластерами постгреса и mssql работает? На шаурмичную со 100 челов файлового варианта стандартного хватило бы по винду.
>>3489039 Не будет никакой там автоматизации блять. Это хуйня специально так уебищно сделана чтобы 1сники (и вообще вся индустрия которая вокруг этого круиится) без работы не сидели. 1сники не дураки в отличии от макак и хоронить свою работу автоматизацией и нейронками не будут.
>>3489046 Чего, блядь? Бизнес делят по размеру не кол-вом клиентов, а кол-вом сотрудников. Микробизнес 100 человек может ебануть какой-нибудь говностартап для миллионов людей, а потом этот стартап покупает яндекс/вк/вб и 1с идёт нахуй.
>>3489068 1с похоронят, ты не понял что ли? Постепенно бизнес будет переходить от всякого низкосортного 1с кала к более производительным и менее затратным решениям, которые ещё и 90% менеджеров и бухгалтеров заменят нейронками. 1с осталось жить лет 5-10, не более.
>>3489077 Да разумеется. Бизнес же думает как айтишник, как бы производительнее было. Сидит такой кабанчик и думает "бля, что-то отчеты у меня непроизводительные, надо все срочно ломать и переходить на сап". Правило тырпрайза: "работает? Не трожь". Никто не будет там ни на что переходить. Давно бы перешли, если б могли/хотели.
>>3489346 >Сидит такой кабанчик и думает "бля, что-то отчеты у меня непроизводительные, надо все срочно ломать и переходить на сап А ты точно в курсе, что такое SAP? Просто возьми зарегайся у них и открой демку. Ты думал, что ты знал, что такое "тормоза"? Вот там ты узнаешь про них.
>>3489346 В тырпрайзе нету никакого 1с, перестань фантазировать. 1с это исключительно мелкий бизнес. И все мелкие бизнесы никакой проблемы с заменой 1с испытывать не будут, особенно если переход на новую ERP/SAP позволит сократить бухгалтеров, менеджеров и нахуй послать программистов 1с.
И производительность не в смысле слоупочности самих программ, а производительность труда - когда всех долбоёбов увольняют и сажают вместо них одного человека с ИИ чатиком. Чем дальше автоматизация - тем меньше бухгалтеров и менеджеров нужно.
>>3489384 >И производительность не в смысле слоупочности самих программ, а производительность труда - когда всех долбоёбов увольняют и сажают вместо них одного человека с ИИ чатиком. Чем дальше автоматизация - тем меньше бухгалтеров и менеджеров нужно. Пять лет назад во многих конторах можно было уволить половину штата без заметных изменений производительности. "Долбоебов" не просто так туда набирали, чтобы ты, сука, их потом увольнял.
>особенно если переход на новую ERP/SAP позволит сократить бухгалтеров, менеджеров и нахуй послать программистов 1с. Это способ проебать $200 млн на игтеграцию, и получить неработающую систему. Прецеденты были, гугли.
>>3489456 >"Долбоебов" не просто так туда набирали, чтобы ты, сука, их потом увольнял. Это верно, но только если фантазировать что текущая экономика будет вечной и бесконечной >Это способ проебать $200 млн на игтеграцию, и получить неработающую систему. Прецеденты были, гугли. И? Че ты высрал вообще? Есть куча кейсов успешной интеграции
>>3489481 С JS я могу работать фрилансом на удалёнки за 10-15к баксов. С 1c трястись в ДС за нищую зарплату
Пиздец, 300-400к в 2к25 году в РФ. Кто вообще согласится за такие деньги работать с 1с? Джуны? Нахуя там опыт тогда указан?
>>3489521 В этом суть. Именно из-за этого говняка крупные компании и не используют всяки 1с - быстрее, проще и надёжнее написать скрипты на питоне и не ебаться с всякими 1с. Не существует нормальных рабочих мест в которых есть 1с.
В будущем системы ERP/SAP будут проще внедрятся и в целом будут проще построены, потому что порог вхождения снизится из-за LLM инструментов, многие модули будут не нужны. И я на 100% уверен что 1с никакие нейроночки внедрять не будет, а просто нахуй вымрет после полутра конкурентов с нейросетками.
>>3489526 >В этом суть. Именно из-за этого говняка крупные компании и не используют всяки 1с - быстрее, проще и надёжнее написать скрипты на питоне и не ебаться с всякими 1с. Не существует нормальных рабочих мест в которых есть 1с. 1С — это прежде всего платформа для построения чего угодно. SAP — это ригидная хуета, в которой каждый чих и пук предопределён, и если твоя компания не вписывается в модель SAP, то это твоя проблема.
>В будущем системы ERP/SAP будут проще внедрятся и в целом будут проще построены, потому что порог вхождения снизится из-за LLM инструментов, многие модули будут не нужны. Если б да кабы выросли во рту грибы — до "будущего" ещё дожить надо. Многие модули не нужны и сейчас, даже без LLM — я для кого статистику с сылками приводил? Вы с этим LLM хайпом уже доебали, чатгопоте уже 4 года, а революции я нихуя не вижу. Да, выпиздывают на мороз вайтишников, но их в любом расклады бы выпизднули после короновируса.
>>3489530 > 1С — это прежде всего платформа для построения чего угодно. Это прежде всего кусок кала на никому нахуй не нужном языке для микропредприятий. > Если б да кабы выросли во рту грибы — до "будущего" ещё дожить надо. В петельку собираешься через пяток лет? Благое дело. > Вы с этим LLM хайпом уже доебали, чатгопоте уже 4 года, а революции я нихуя не вижу. Ты живёшь в стране в которой нет доступа к LLM, в курсе?
Какой, нахуй, 1С. 1С - это чисто мемтокен, на котором усатый основатель срубил на хайпе бабла, втюхивая мелкокабанам свой кал. Техническая составляющая там говно говна из каловой дрисни
Бухгалтерия будущего - это чатик, который тебе срёт сообщения нейронкой, о том, что оправлен отчёт в налоговую, а ещё надо бы денюжку клиенту перевести, и тяночка-бухгалтер, сидящая в 20 таких чатах
>>3489537 В Северной Корее? Добрый брат китаец ГлубокоСмотрю давать, Иван партия благодарить. Яндекс город Тверь тоже чат делать, злой КГБ туда читать. Спасибо
Почему ничего подобного не описано в официальных доках реакта, да и вообще нигде не говорится о подобном? Без этого же ты просто не ебешь что происходит абсолютно, как можно доки иметь блять без объяснения внутренней работы? Типа я должен сам понять, на каких этапах и что этот реакт ебаный делает?
>>3489850 Нахуя тебе знать внутреннюю работу среакта? Среакт предназначен для быстрой разработки кусков говн о которых никто и никогда не вспомнит через месяц после релиза.
Что интереснее, бэк или фронт? Смотрю вакансии у себя в городе, JS в несколько раз больше, чем PHP. Стоит учить их вместе или сконцентрироваться только на каком-то одном?
>>3490453 >Что интереснее, бэк или фронт? Фронтэнд - это работа на глазах. Все видят твою работу. Её сразу хвалят, даже если ты сделал спиннер с картинками. Бекенд - это в основном невидимая работа. Всем срать на твои алгоритмы. Допустим ты реализовал exponential backoff, тебя никто за это никогда не похвалит. А интереснее или нет - это зависит от проекта. Есть неинтересные проекты такие как: маркетплейсы, интернет-магазины по продаже всякого говна, всякие правительственные порталы. Вот мне например не интересно возиться с маркетплейсами. Они заебали. Не интересно делать беттинги/казино/всякие конторы по наёбу людей на деньги/порнуха и проч.
Вообще, я бы не ставил так вопрос. Фронтэнд хорош тем, что ты сразу видишь результат. В беке отдача чуть менее очевидная. Нельзя однозначно сказать что интереснее.
>>3489564 >Какой, нахуй, 1С. 1С - это чисто мемтокен Друг работает в 1С За месяц ему написало 50+ HR а теперь сравни с фронтом, в котором сеньеры ищут работу по 7 месяцев
>>3490453 всм интереснее бля. если душа дизайнера то фронт вперед на чистом ксс пишешь себе в кайф и все нет проблем и не надо даж за фреймворками гнаться как скотина
>>3490786 а нахуй вы тут тогда срете вечно спорами о каком то реакте, ангуларе, некст и тд определиться долбаебы не можете на чем писать ор. берешь и пишешь нахуй чето искать
>>3489850 >Почему ничего подобного не описано в официальных доках реакта, да и вообще нигде не говорится о подобном? Потому что, у тебя на пике кусок галлюцинации нейроговна - в JS нет такого понятия, как macrotask.