>>2245458Еще вопрос: есть ли возможность писать не как обычно когда скрипты на каждый запрос исполняются заново, а как на питоне когда есть рабочий цикл и он обрабатывает весь HTTP?
>>2245462Можно. но в пхп это нетривиально и нераспространено. Роль аппликейшен сервера выполняет менеджер процессов php-fpmОн создает пул php воркеров, принимает запрос через сокет и посылает на обработку воркеру. Если я не ошибаюсь пхп воркер не отрабатывает и умирает как в cgi, а работает между фазами инициализации php, в начальной фазе все данные в глобальных переменных стираются, очищается скоуп и тд и тп. Когда воркер сожрет слишком много памяти, php-fpm его гасит, и запускает новый процесс. Сейчас появляются новые менеджеры для пхп процессов. Например на голанге roadrunner, с ним пхп воркер способен сохранять свое состояние между запросами.
>>2245467мне хоть и нравится php, но вот это вот мне не нравитсяэто порождает выкрутасы для нормального роутинга и жрет ресурсы наверное больше чем могло быnode js норм или слишком зумерская хуйня?сам js неплохой язык, но вот хочу узнать как он в сравнении с php в реальном использовании
>>2245471>>2245467алсо, что по тестированию скажешь?>>2245458что лучше всего использовать и как вообще пишут тесты?
>>2245471>js неплохой язык, но вот хочу узнать как он в сравнении с php в реальном использованииjs - создавался для кручения дерева в браузере, php - создавался для бекенда. В контексте чего ты их сравнивать хочешь?
>>2245467Наверно непонятно сказал. Нетривиально и нераспространено запускать скрипты через CLI и чтобы скрипт работал как нода или приложение на питоне обрабатывая запросы. В сам пхп встроен сервер чисто для разработки, запускаемый через CLI. Для прода используется менеджер процессов php-fpm.
>>2245471Почему нельзя написать приложение на пыхе, а скажем вебсокеты, шлюз для раббита, редиса, и т.д написать на ноде? Будет у тебя нода пхп апишку дергать кода сообщение от редиски придет. Мне кажется это лучше чем на код пхп, там где надо контролировать, чтобы он не сожрал всю память, как редис консумер например.Чтобы все писать на ноде? Это дело вкуса и наличия умения написать что-то сложное на ноде. Обычно же человек хорошо знает что-то одно, а остальное как вспомогательное осваивает.
>>2245487>Обычно же человек хорошо знает что-то одно, а остальное как вспомогательное осваивает.Ты умеешь кушать или какать? Что из этого ты умеешь, а что вспомогательное?
>>2245492Какать это вспомогательное! Кушают долго с чувством наслаждения, а какают хорошо что не на бегу...
>>2245496Вот рили ты изучишь симфони и нестжс, ты их собираешься попеременно применять или как? На проекте у тебя основным будет одно, ты его лучше изучишь. При поиске следующей работы ты снова выберешь, что лучше знаешь, чтобы зепка была.
>>2245462>>2245471https://laravel.com/docs/8.x/octaneВ ларавеле давно есть хуйня, которая меняет принцип работы на рабочий цикл с один раз инициализированным приложением, которое дальше лежит в памяти и не создаётся каждый раз при запросе. видел проект, где это использовалось, но сам ещё не трогал
>>2245555Вот, собственно, анон писал >>2245467 про один из вариантов того, что в Octane может под капотом быть, roadrunner на go.
>>2245474бампАлсо, какой фреймворк выбрать из тех чтобы работать за деньги?Нужен такой, чтобы можно было просто кидать в htdocs на хостинге.
>>2245448>И как работодатель оценит твой код без тестовогоДля этого существует возможность открывать репозитории на гитхабе.>>2245471>сам js неплохой язык'2' + '2' - '2' =? 20 КАРЛ! Охуенный язык-костыль
>>2245754Нахуй ты со строками арифметику делаешь? Приводи типы и у тебя всё будет нормально, на бекенде вообще в последнее время typescript везде, а он тебе не даст говнокод написать
>>2245837Любой статический. Ипизированный язык трансдируется в то, где в раетайме нет никаких проверок и там может быть такая лапща из маш или байткожа, что ты не прелставляешь.
>>2245837А сишка это фреймворк для исправления машкода... Когда уже сделают процессор с поддержкой Хаскеля?!
>>2245803>фреймворка Это диалект js, принцип подобен указанию типов в пхп начиная с 7 версий, принцип точно такой же - костыль для исправления косяков языка https://habr.com/ru/post/259497/ которым все пользуются, я в том числе когда на пыхе писал
>>2245879Ты дилетантишка, для которого языки программирования это магия, работающая сама по себе. Поэтому ты и не понимаешь, какую дичь ты несешь.
>>2245879>Это диалект jsДиалект это это например camelCase || snake_case, а TS попросту ебаная заглушка для языка который запилили на коленке, а потом на его поддержку либо забили хуй, либо сами не знают как исправлять эту поебень под названием JS. В прошлом треде всё ясно расписывал анон, что можно просто ошибиться в наименовании свойства и засеттить какое то новое свойство, а жабаскрипт не то, что ничего не скажет, а сделает вид, что так и надо.Когда запилят адекватный ЯП для фронта с типизацией и куртизанками - JS сдохнет.>https://habr.com/ru/post/259497/Статейка от еблана сравнивающего через == и удивляющегося почему динамический язык при нестрогом сравнении ведёт себя так.Или ты сравниваешь как человек используя тождество или идёшь нахуй с говнокодом своим ебаным, ибо адекватные языки вообще посылают нахуй когда видят '2' - '2' или же 2 == '2'.Ещё и статья 2015го года... Только вот почему то пыха делает всякие прикольные вещи в своём языке каждый патч, а для JS пилят фреймворк который латает дыры в костыле ведь JS не обновляется.>я в том числе когда на пыхе писалЕсли бы ты работал в интерпрайзе, то с такими сравнениями как: ==Тебя сразу посылают нахуй из компании.
>>2246002Под твои запросы скорее подпадает роадраннер или php-pm, не путать с пхп-фпм. Почитать - в гугле.
>>2245458Думаю, надо читать книги по тестированию. А так, у нас есть вводный урок, который в общих чертах рассказывает про автоматическое тестирование: https://gist.github.com/codedokode/a455bde7d0748c0a351a>>2245462Да, есть. Ты можешь открыть порт и принимать соединения. В этом случае PHP запускается не из-под менеджера процессов вроде php-fpm, а из командной строки. Ты можешь написать код полностью сам или использовать библиотеки вроде ReactPHP.
>>2245978>Диалект это это например camelCase || snake_caseХоть бы статья почитал в Википедии для приличия, чтобы отличить нотацию от диалектаhttps://ru.m.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%BB%D0%B5%D0%BA%D1%82_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)>потом на его поддержку либо забили хуй, либо сами не знают как исправлять эту поебень под названием JSПоинтересовался бы для начала как на его поддержку хуи забивают, новая версия ноды и v8 2 раза в год выходит, ts вообще постоянно обновляется. Сама спецификация языка в последнее время не обновляется это да. >Когда запилят адекватный ЯП для фронта с типизацией и куртизанками - JS сдохнет.Уже можно, хоть на плюсах, хоть на расте, хоть на го, wasm уже везде поддерживается, на расте даже пилится фреймворк yew типа реакта >Только вот почему то пыха делает всякие прикольные вещи в своём языке каждый патч, а для JS пилят фреймворк который латает дыры в костыле ведь JS не обновляется.Собственно в пхп к 8.0 довели типизацию до уровня typescript, потихоньку делают джавашарп из языка и взяли из раста аннотации и оператор match, плюс ещё куча всякой хуйни, просто тупо заваливают синтаксическим сахаром, оставив всё легаси для обратной совместимости, ладно хоть jit прикрутили. собственно одна из причин почему я ушёл от пыхи
>>2245467Не надо вводить в заблуждение. Что значит "нетривиально"? В PHP есть сокеты, и более того, они могут работать в асинхронном режиме. Код получается такой же, как например, если бы его писали на Си. >>2245471> это порождает выкрутасы для нормального роутинга и жрет ресурсы наверное больше чем могло быНаоборот. Так как PHP очищает память после каждого запроса, это позволяет избегать утечек памяти. В то же время на других платформах (вроде Ноды, Го, Java, Питон, Руби) такой возможности нет и там очень часто происходят утечки памяти. Погугли и ты найдешь вопросы "у нас сервер на языке X постоянно потребляет память, что делать" и советы вроде прибивать его каждый час по крону. Вот так высокие технологии! У них нет ни инструментов для поиска утечек, ни средств борьбы с ними и все, что остается незадачливым разработчикам - лепить костыли.
>>2245476То есть, написать в командной строке node app.js это "тривиально", а если мы команду заменим на php app.js то это сразу же становится "нетривиально". >>2245487> Мне кажется это лучше чем на код пхп, там где надо контролировать, чтобы он не сожрал всю память, как редис консумер например.А что такого магического есть в ноде, что защищает от утечек памяти? Ты просто хочешь написать что-нибудь плохое про PHP без всяких оснований.>>2245559Это небезопасно, выкладывать весь код в публичную папку. Забудь про хостинги и осваивай основы администрирования Линукс.
>>2246056> Уже можно, хоть на плюсах, хоть на расте, хоть на го, wasm уже везде поддерживается, на расте даже пилится фреймворк yew типа реактаЯ сталкивался с приложениями на Дарт (по моему, они использовались в какой-то админке Гугла для управления рекламой), это выглядит как 6 или больше мегабайт яваскрипта, стиль Material Design и жуткие тормоза, как при загрузке, так и при работе если только ты не купишь самый дорогой макбук.С тех пор я скептически отношусь к идее использовать что-то, кроме JS, для фронтенда.Конечно, в теории WASM не обязывает тебя делать 6-мегабайтные бинарники. Но на практике выйдет именно это. Это как препроцессоры CSS, вроде хорошие задумки, но на практике на них пишут только нечинаемую уродливую лапшу с 8 уровнями вложенности. Без них код бы получился лучше, хоть это и потребовало бы чуть больше времени.В общем, эти макбук-технологии это дрянь. Покажи мне фреймворк на WASM который весит менее 50 Кб и не перерисовывает весь DOM на каждый чих и тогда я соглашусь что это хорошая технология.
>>2246061Память на пхп нормально не очищается для cli скриптовПыху никто как питон скрипт не запускает, за исключением случаев использования асинхронных reactphp, amphp и т.д и там надо следить памятью костылямиОбычный режим работы пыхи через процесс менеджер типа fpm
>>2246080Вспомнил распостраненный запуск пыхи в cli на проде - это очереди в ларке. Но это какой-то уровень сайта для чебуречной.
>>2246056>ts вообще постоянно обновляется>новая версия ноды и v8 2 раза в год выходитОхуеть, фреймворки обновляются, а сама основа нет.Ты без упоминания TSа и дня прожить не можешь?>Сама спецификация языка в последнее время не обновляется это даМог бы до этого ничего не писать...>Уже можноС танцами по типу скачай установи скомпиль в JS. Нахуя они мне нужны если нативно не поддерживаются браузером?>Уже можно, хоть на плюсах, хоть на расте, хоть на гоУж лучше на нормальных языках, чем на надстройке\фрейморке JSа которые только раздувают код like as TS>просто тупо заваливают синтаксическим сахаромИ от этого сахара почему то пыха работает всё быстрее из патча в патч.>собственно одна из причин почему я ушёл от пыхиНе смог в тождественное сравнение, Enum'ы или матчи?
>>2246002А дело в том, что НИГДЕТрадицию так легко изменить невозможно. Проще свичнутся в питон. Этих чебуречных в мире миллионы.
>>2246089>Не смог в тождественное сравнение, Enum'ы или матчи? Не смог видеть как такие как ты этим пользуются) Плюс всякие уебищные конструкторы и прочие мелочи жизни, которые добавили в 8.
>>2246105И что же такого уебищного в новых конструкторах? Чем хуево писать __construct(public readonly string $azaza) и иметь маленькие дтошки без ебли с геттерами и сеттерами?
>>2246138>писать __construct(public readonly string $azaza) и иметь маленькие дтошки без ебли с геттерами и сеттерами?Бля может ну его нахуй этот ПХП тогда и все на Жаву пересядем?
>>2246264>шаред хостингКогда ты начинаешь писать public __construct(public readonly string $azaza), то часто там уже не до шаред хостинга и уже другие материи. По наблюдениям естественно.
>>2246080> Память на пхп нормально не очищается для cli скриптовЗачем ты вводишь в заблуждение. В PHP есть и подсчет ссылок, и сборка мусора. Ровно то же самое, что в Питоне и в Node.JS.>>2246002Чтобы разобраться, как работают асинхронные фреймворки вроде ReactPHP, тебе сначала надо почитать про сокеты (не вебсокеты, а сокеты Беркли), потом про асинхронные вызовы и poll/select, потом про промисы и дополнительно поковырять документацию или исходники ReactPHP или аналогичной библиотеки.>>2246138Лучше бы конечно DTO сделали как в Питоне dataclasses.
>>2246472Зачем ты вводишь в заблуждение https://divinglaravel.com/avoiding-memory-leaks-when-running-laravel-queue-workersПокеж пример уровня питоновской фляги на пхп или пример нодовского экспесса, где сел и поехал на аппликейшен сервере, а не лисапеды которые ты предлагаешь. Так то селект и епол везде можно вызывать, как и любое апи на сишке.
>>2246105>Плюс всякие уебищные конструкторы>Хнык хнык, пачиму так сложнаВ 8ую пыху наоборот добавляют плюшки упрощающие жизнь, размер кода и производительность. Хотя наоборот радует, что из года в год пыха становится типизированнее и из неё бегут всякие макаки которые сравнивают не тождество или не знают как работает их код.>>2246138>И что же такого уебищного в новых конструкторах?То что им сложна, а когда им сложна их на работу не берут и приходится уходить туда где попроще.
>>2246064>Это небезопасно, выкладывать весь код в публичную папку. Забудь про хостинги и осваивай основы администрирования Линукс.НАМ НУЖЕН САЙД НА МОДНОМ СРАЛАВЕЛЕ@ОК, ПОКУПАЙТЕ ВПС@ОЙ ДОРАХА, ДАВАЙ ТОГДА ВОРДПРЕС ХУЙ СНИМ
>>2246677Ебало тимлида представили, когда мидл новый проект с таким кодом принесет, вместо круда на ларевеле. А когда эта хуйня начнет активно с орм работать и всю память в контейнере выжрет мидла ногами будут пинать или только обоссут?
>>2246757На скрине обыкновенный код, который не вызовет удивления ни у мидла, ни у адекватного джуна.
>>2246766Теоретик, спок. Я тебе написал причину почему твой код не будет работать в сложном приложении на пхп. Ты писал когда-нибудь долгоиграющие джоб воркеры на пхп? Предположим ты хочешь реквесты обрабатывать на манер экспресса и хранить какие-то данные в глобальном объекте для простоты. например статистику запросов. Тебе придется твой воркер перезапускать потому что пхп библиотеки не спроектированы для работы в CLI режиме. Глобальные данные придется сохранять и восстанавливать после перезапуска воркера. Короче костыли костылики
>>2246757Представили ебало тупорылого пориджа, который кроме круда нихуя не видел в своей никчемной жизни? Никто в здравом уме и не будет тащить асинхронщину в обычное крудоподелие. А тот кто потащит будет знать, зачем ему это нужно и наверняка озаботится поиском асинхронного клиента для БД и борьбой с утечками памяти. И, кстати, пыха сама по себе давно уже не течет.
>>2246793Так зачем оспаривать начали, что в пыхе менеджеры процессов используются как апп сервер, которые пыхины воркеры перезапускают, а работа в cli нетривиальная и нераспостраненная практика? Может не ты может другой анон, а ты влез без контекста.
>>2246787А ты не пробовал писать воркеры, которые не протекают? Говорят, что это охуенная тема. А если не судьба, то периодическое прибитие воркеров и перезапуск их супервайзером с временным хранением данных в каком-нибудь редисе вполне себе нормальный подход, хоть и немного компромиссный. И уж точно не какой-то там невероятный костыль. Я кончил
>>2246805>>а работа в cli нетривиальная и нераспостраненная практикаНу это ты загнул. Лично мне на всех моих работах приходилось лепить что-то консольное. От простых команд до любимых тобой воркеров, так что это точно не экзотика
>>2246818Чел, контекст. Вопрос был: "Хачю кок в ноде", впрос не стоял можно ли запустить комманд на пхп. Как в ноде - экотика. Если пойти по этому пути, то придется долго докладывать Кобанычу, что ты все еще борешься с трудностями а не решаешь бизнес задачу.
>>2246818Чел, контекст. Вопрос был: "Хачю кок в ноде", впрос не стоял можно ли запустить комманд на пхп. Как в ноде - экотика. Если пойти по этому пути, то придется долго докладывать Кобанычу, что ты все еще борешься с трудностями а не решаешь бизнес задачу.
>>2246581Ты пишешь ерунду. Такие же утечки могут быть (и бывают) в приложении на Ноде или Питоне. Только в отличие от Ноды или Питона, в PHP у тебя есть выбор - отсутствие утечек и перезапуск скрипта на каждый запрос или более высокая производительность, но требующая более высокого качества кода.Возможность есть, хочешь - пользуйся, не хочешь - не пользуйся. Тебе просто хочется что-нибудь плохое написать про PHP, но так как ты не разбираешься в предмете, то начинаешь придумывать субъективные причины уровня "мне цвет логотипа не нравится".> пример нодовского экспесса, где сел и поехалРаз уж мы перешли на субъективные оценки, то твой Express это детская игрушка в сравнении с тем же роутером в Симфони, который поддерживает и YAML-конфиги и аннотации в отличие от Express в котором ты руками каждый коллбек прописываешь. Аналогично, популярные шаблонизаторы в JS тоже примитивные в сравнении с тем же Twig.
>>2246787Ну и бред. Перечитай свой пост. Ты пишешь: если мы будем "хранить данные в глобальном объекте" в PHP, то память будет тратиться. Также, данные надо куда-то сохранять. Поэтому PHP якобы непригоден (?) для работы из CLI.А что, в Питоне и JS это работает как-то по-другому? Данные можно хранить в памяти, и при этом память не тратится и магическим образом сама куда-то сохраняется? Ты же пишешь ерунду полнейшую. >>2246790Неправда. Не скажу за любую ORM, но в той же Доктрине есть метод clear(), например. Успешно используется и ничего никуда не утекает.>>2246805Если ты неграмотный, то для тебя все, что сложнее чем нажать кнопку на экране, будет "нетривиальным".
>>2247043Ты читаешь жопой. Я не сказал что память будет течь из-за того что ты данные глобально хранишь. Я сказал, что предположим у тебя есть причина использования php через cli. Ты хочешь сохранить данные между запросами. Из-за того, что библиотеки не приспособлены для таких условий, у тебя будет течь память и тебе придется перезагружать скрипт и сохранять свои глобальные данные вне скрипта, как это было при работе через cgi.
>>2247043Ты сам пробовал писать на пхп скрипты, которые месяцы живут без перезапуска, при этом интенсивно ворочают данными?
>>2247107Делал кучу постоянно работающих скриптов на пхп, но они работали как кронжобы с стейтом в дб. Крон от минуты, но можно много процессов пускать каждую минуту как раз.Процесс, работающий месяцами это тупость, даже если он не течет. Мало ли что случится.
>>2247164Воркеры постоянно тасуются, как и следует. Что там делает мастер я хз, но соменваюсь, что он годами висит без перезапуска.
>>2247029>и YAML-конфиги и аннотацииХотя если быть правдивым давно пора от них отказаться и переходить на атрибуты, ямли это очень старый подход к роутингу или как описание для сущностей, аннотации чуть моложе, но всё равно костыль какой то.>>2247137>Хочу опыта больше иметь с разными технологиями.>нодаПХП макаки ничего сложнее жабаскрипта или пэхапе не в состоянии обуздать? Нахуя нам после пыхи Шарп В решётку вообще на изи перекатиться т.к пыха много ООП плюшек переняла у джавы как и шарп, ГО, раст или же любой ЯП со строгой типизацией?! Неее мы не хотим расти как погремисты, всё что мы хотим это писать говнокод не понимаючи как он работает...
>>2247180>ничего сложнее жабаскрипта или пэхапе не в состоянии обуздать?Что необходимо по работе - то и изучается. Никому в голову не придёт дрочить левый язык на выходных радо того, чтобы тебе что-то там доказать, мань.Пыха вообще язык не для дроча и показухи всем - кокой ты у мамы погроммист, а для работы. И остальные подходы дальше такие же идут.
>>2247101Вот, ты уже вместо "php не приспособлен" пишешь "библиотеки не приспособлены". Давай уточнять дальше - не все библиотеки не приспособлены, а какие-то отдельные. Мог бы сразу писать какие именно, а не ходить вокруг да около. Опять же, нет гарантий что в Питоне или Ноде не окажется такой же проблемной библиотеки. И, кстати, если библиотеки опенсурсные, то можно просто исправить их.>>2247180YAML имеет тот плюс, что ты можешь просмотреть все роуты в одном месте и увидеть какие-то конфликты, что с аннотациями затруднено.
>>2245559Работа за деньги бывает разная. Можно пилить сложную систему на Симфони, можно менять цвет кнопок в шаблоне для CMS. И за то, и за другое платят деньги.Ты можешь зайти на сайт поиска работы, сделать поиск по желаемому уровню дохода и посмотреть, что там требуется.