LINUX.ORG.RU

php или node.js?

 , , , ,


0

1

Привет. У меня есть вопрос.

Я начал интересоваться программированием с 14 лет, сейчас мне 19. За это время я попробовал практически все известные языки. Но у меня есть одна проблема: я не могу надолго остановиться на чём-то одном. Постоянно метаюсь между технологиями — то ухожу в Node.js, то в Java, то в C#. Сначала хочется строгой статической типизации, потом тянет попробовать что-то другое, это моя очень плохая черта. В итоге получилось так, что больше всего опыта у меня накопилось именно с Node.js (NestJS, Express). Вообще программирование мне искренне нравится. Даже если бы мне дали миллион долларов и сказали, что можно больше никогда не работать, я всё равно продолжал бы заниматься программированием просто потому что мне это интересно. Но сейчас встаёт другой вопрос - заработок. Когда я начал смотреть вакансии на hh, заметил, что предложений по Node.js не так много. Конечно, есть позиции full-stack разработчиков, и я готов двигаться в этом направлении, но всё равно вакансий заметно меньше чем, например, на PHP с Laravel - даже если смотреть именно full-stack.

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

Я живу на Кавказе, где IT-сфера практически не развита. В своём городе я нашёл только одну веб-студию. У них используется стек Flutter, React, а на бэкенде допускаются разные языки: го питон, нода, пхп. Я думаю попробовать устроиться туда хотя бы для получения первого опыта и записи в трудовой. А уже позже рассматривать переезд в Питер или Москву.

И вот мой главный вопрос:стоит ли мне продолжать развиваться исключительно в JavaScript/Node.js, или, пока есть свободное время, лучше подтянуть пхп? Судя по количеству вакансий, язык всё ещё долго будет востребован.

хз зачем, но вот гитхаб: https://github.com/csablk?tab=repositories



Последнее исправление: csablk (всего исправлений: 2)
Ответ на: комментарий от amm

Так можно сказать про любые современные языки: X очень похож на Y. Но это если не углубляться в детали.

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

byko3y ★★★★
()
Ответ на: комментарий от Chiffchaff

PHP создавался как язык для идиотов, без какой-либо системы вообще. В нём не было продумано ровным счётом ничего. Начиная с того, что невозможно написать поддерживаемый код в виде мешанины из HTML и собственно самого кода.

Ваше высказывание обижает идиотов.

На самом деле Расмус высказывался много раз по этому поводу — PHP вообще не создавался как ЯП общего назначения, это был DSL для кастомизации домашней странички, в первых версиях PHP функциональность домашней странички буквально была приколочена гвоздями к реализации, а PHP был по сути шаблонизатором. Всё, чем стал PHP позже — это продукт творчества сообщества.

Начиная с того, что невозможно написать поддерживаемый код в виде мешанины из HTML и собственно самого кода. Уже это было колоссальной ошибкой авторов.

И тогда внезапно становится ясно, что поскольку сам PHP был языком шаблонов, то логика реализовывалась отдельно на Си — и описываемой тобой проблемы не возникало. Ещё раз напоминая тезис из моей последней статьи — сообщество не способно создавать хороший софт:
https://bykozy.me/blog/attention-economics-and-software-engineering/
В самой оптимистичной оценке 1 из 20 способен принимать решения, и если этих людей не изолировать от остальных 19, то проект неизбежно скатится в говно.

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

Конечно, подобное тянется к подобному, но нужно понимать, что выбор инструментов для быстрого прототипирования вебсайтов в конце 90-х был очень ограничен. Как правило, это либо Perl, либо PHP - вопрос лишь в том, как ты их организовывал. LOR был написана на Java, но писать на Java каждый копеечный вебсайт просто неэффективно.

Я должен заранее предупредить, что ортодоксальная энтерпрайз-архитектура, когда для добавления нового поля ты должен поменять шесть классов — это просто другой сорт спагетти, а по-настоящему хорошая архитектура в целом редко встречается в IT, так что PHP тут не решающий фактор, хотя отягощающий — это правда. Потому нужно искать людей, а не языки.

они ещё редактируют файлы прямо на проде, и гордятся этим! Ты здесь ещё прочитаешь об этом, если ещё не

Лисперы хвастаются тем, что запускают отладчик прямо в проде.

Отсутствие перспектив и возможностей двигаться в смежные области. PHP - это только веб-бэкенд. Ни расчёты, ни нейросети, ни GUI, ничто более на нём никто не пишет (и он долгое время не предназначен был).

Во-первых, западное IT в целом на удивление инертно и имеет кучу предубеждений. Ну то есть, грубо говоря, тебя будут спрашивать построение бинарных деревьев в собесе на фронтовую должность. Потому что. И это никуда не делось до сих пор, в 95% вакансий первым пунктом ты встретишь «N лет опыта разработки на языкнейме».

Во-вторых, от того, что ты писал GUI на Qt десять лет, тебя не возьмут в бэкенд разработку. И в ИИ не возьмут. Тебе нужно во-первых получить навык хотя бы какой-то по предметной области, а потом доказать работодателю, что твоя кандидатура заслуживает рассмотрения. Вон, нвидия регулярно ищет разрабов ядер под CUDA, но 99% крестовых разрабов под эту должность не подойдут. Python или JS учится за месяц максимум, но предметная область учится год.

byko3y ★★★★
()
Ответ на: комментарий от no-such-file

Нет, не придётся, всё уже написано.

Вот написал я код на php, как он станет асинхронным? Смотрю документацию по reactphp и swoole, так там отдельные api, не имеющие ничего общего со стандартным php.

Актуальные будут.

PDO позволяет асинхронно ходить в базу?

Но это не особенно помогает, т.к. кроме ноды «остальные платформы» сосут у пыха по скорости.

Да ты что, вот пацаны-то, которые сидят на «остальных платформах», не знают)

amm ★★
()
Ответ на: комментарий от firkax

Веб сегодня умеют все языки, а тот php, который был сделан для веба, умер вместе с php5.

А вообще я писал расчёты (именно числодробильные) на пхп

Надеюсь, ты делал это не на чистом php, а хотя бы взял подходящую библиотеку.

amm ★★
()
Ответ на: комментарий от amm

Веб сегодня умеют все языки, а тот php, который был сделан для веба, умер вместе с php5.

Веб всегда умели все языки (даже /bin/sh), но пхп специализирован на вебе. Всякие альтернативно одарённые умудряются выдать это за недостаток.

Надеюсь, ты делал это не на чистом php, а хотя бы взял подходящую библиотеку.

Нет, я делал это на чистом пхп. В том числе считал интегралы нативной пхп-арифметикой, тупо циклами вида

for($x=$a; $x<$b; $x+=$step) $res += f($x)*$step;

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

firkax ★★★★★
()

Паутинные (они же вэбщики) программисты не являются настоящими программистами. Между PHP и Node.js выбирай то что больше нравится именно тебе.

wenxuan
()
Ответ на: комментарий от firkax

Веб всегда умели все языки (даже /bin/sh), но пхп специализирован на вебе. Всякие альтернативно одарённые умудряются выдать это за недостаток.

В чем его специализация для веба? То что fpm и модуль для апача из коробки идет? То что он изначально был шаблонизатором переростком?

Нет, я делал это на чистом пхп. В том числе считал интегралы нативной пхп-арифметикой, тупо циклами вида

Гениально) Чё на баше не стал считать?)

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

Не надо мне рассказывать про достоинства и недостатки php, я работал в 2000-х еще с php4, и недавно портировал немаленький проект с php5 на php8) Поэтому понимаю, что есть что: php ниразу не простой и не логичный язык.

Чтобы не нём писать, не надо разбираться в простынях всяких документаций, изучать какие-то библиотеки итд. Просто пишешь сразу код.

Это ошибочное мнение, просто похоже, что ты слаще пыха ничего не пробовал)

amm ★★
()
Ответ на: комментарий от amm

Гениально) Чё на баше не стал считать?)

Ты совсем глупый? Повторю в третий раз: пхп - лучший язык, чтобы написать что-то по-быстрому. Не баш, не питон, не нодежс и прочий бред.

портировал немаленький проект с php5 на php8) Поэтому понимаю, что есть что: php ниразу не простой и не логичный язык.

Нормальный проект на пхп5 скорее всего заработает на пхп8 почти без исправлений. Самая главная проблема - отыскивать последствия register_globals, которое хоть и поддерживалось до пхп 5.3 (вроде), но всё же было сущностью из более старых версий и в чистом пхп5 проекте скорее всего уже не встретилось бы.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

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

Да, если мантру повторять, то для повторяющего она станет истиной.

Нормальный проект на пхп5 скорее всего заработает на пхп8 почти без исправлений.

Ну да, с темой ты явно незнаком. Почитай бюллетени про миграции, какие конструкции языка и какие расширения задепрекейчены. Это достаточно просто найти, что-что, а документация у php действительно одна из самых удобных.

И я жду ответа, как получить асинхронность от pdo? Или твой фейспалм означает, что ты не понял вопроса? :)

amm ★★
()

node.js + ts. Вот связка которую сейчас использую node.js + hono + arktype + kysely, vue.js + quasar. Естественно везде ts.

После связки React + Go, получил удовольствие от разработки. Думаю не буду в дальнейшем использовать react в своих проектах.

Для определенного вида рассмотрел бы Nuxt, но у меня таких задач нет. Мои задачи админки, внутренние инструменты и т.п.

И да, уже лет пять-шесть не работаю за ЗП и в найме. Сам выбираю что использовать и как достигать результат. С наймом наверное будет сложнее, но с наймом, основная сложность в хорошую команду попасть, что очень непросто.

anonymous
()
Ответ на: комментарий от amm

Да, если мантру повторять, то для повторяющего она станет истиной.

Она и без повторения истинна.

Ну да, с темой ты явно незнаком. Почитай бюллетени про миграции, какие конструкции языка и какие расширения задепрекейчены. Это достаточно просто найти, что-что, а документация у php действительно одна из самых удобных.

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

И я жду ответа, как получить асинхронность от pdo? Или твой фейспалм означает, что ты не понял вопроса? :)

Фейспалм означает что ты так и не понял что до тебя пытаются донести. В пхп в первую очередь нужна простота, а не асинхронность. PDO, кстати, вообще не нужно, но это другая тема. В проекте на пхп НЕ нужно делать одновременно 1000 запросов в разные места и ждать от них ответ. Впрочем, если тебе нужно прочитать одновременно 1000 переменных из редиса - это можно. Но асинхронности ты и тут не увидишь - ты просто суёшь этот список в функцию и получаешь от неё список ответов. Если тебе нужна реальная асинхронность (а это, очевидно, нагруженный проект в эксплуатации, других причин нет) - пиши нагруженные его части на Си и подключай в пхп расширениями (или, если это допустимо, отдельными сервисами). При этом пхп-обёртку и тяжёлый код могут писать вообще разные люди, первые специализируются на вебе, вторые на высоких нагрузках.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от firkax

Она и без повторения истинна.

Главное – верить)

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

А для каких проектов создавался php изначально? Он стал нормальным языком только в седьмой версии, но другие языки тоже на месте не стояли, поэтому вопрос о нужности php всё ещё актуален.

Фейспалм означает что ты так и не понял что до тебя пытаются донести. В пхп в первую очередь нужна простота, а не асинхронность. PDO, кстати, вообще не нужно, но это другая тема.

Да? А как в базу ходить?

В проекте на пхп НЕ нужно делать одновременно 1000 запросов в разные места и ждать от них ответ.

И это говорит человек, который писал на php числодробилки :) Ты видимо не понимаешь, что такое современный веб и почему ему нужна асинхронность.

пиши нагруженные его части на Си и подключай в пхп расширениями

А можно я не буду для решения подобных задач си использовать? В своё время это был мой основной язык, больше не хочу)

amm ★★
()
Ответ на: комментарий от amm

Вот написал я код на php, как он станет асинхронным?

Никак, нужно изначально писать асинхронный код. А что где-то не так? Но если очень хочется минимум телодвижений то корутины Swoole спасут отца мировой асинхронщины.

PDO позволяет асинхронно ходить в базу?

В swoole при использовании нативных пыховских драйверов – да. Но непонятно зачем использовать изначально синхронный PDO вместо существующих асинхронных библиотек.

пацаны-то, которые сидят на «остальных платформах», не знают)

Не надо проецировать собственные комплексы на других.

не имеющие ничего общего со стандартным php

Ты не знаешь php просто. И пытаешься со своих нубских позиций о чем-то рассуждать.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

А что где-то не так?

Представь себе.

Swoole

https://github.com/swoole/swoole-src#concurrency Извини, но это не идиоматический код на php, это попытка повторить go.

В swoole при использовании нативных пыховских драйверов – да.

Любых драйверов или только тех, для которых авторы swoole поддержку написали?

Не надо проецировать собственные комплексы на других.

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

Ты не знаешь php просто. И пытаешься со своих нубских позиций о чем-то рассуждать.

У тебя слишком узкий кругозор, чтобы так рассуждать.

amm ★★
()
Ответ на: комментарий от wenxuan

Так сайтики или веб? Хотя бы чтобы меньше ресурсов тратить на обработку каждого соединения. Зачем асинхронность в nginx, для тебя тоже является загадкой?

amm ★★
()
Последнее исправление: amm (всего исправлений: 1)
Ответ на: комментарий от pihter

Ничего не имею особо против, не работаю с ним, потому что не понимаю где можно применить эффективнее, чем другие языки, просто впервые встречаю того, кто отзывается о пхп не негативно.

LightDiver ★★★★★
()