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)

Даже если бы мне дали миллион долларов я всё равно продолжал бы заниматься программированием

женица вам надобно барин

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

На хх можно не ориентироваться, там половина вакансий липовые, чтобы хрюшки могли создать видимость своей нужности.[br] Перспектив полно, работать некому. Зарубежное ит уехало, освободилось много свободных ниш. Программисты только нужны не на laravel/spring/nest/react, а с хорошей технической базой.[br] Хотя на крайний случай всегда можно уйти в 1сники. Молодежь от этого морщит нос, толковых кадров не хватает и платят много.

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

Да и тем более, в провинциях никому нет дела до твоих асинхронных, модных супер-языков. В провинциях никому и нет дела до того, что у программистов зарплаты +150к. Можно делать говносайты за 20к на джумале и закончить как милторг, никто же не против. А у меня такая ситуация, что из работы в городе остается галерка Галерка - это можно, но если начнешь гребсти можешь так и остаться гребуном, а дальше см п.1.

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

С другой стороны тот же js более универсален и его прцент стремительно растет.

В эпоху БК-0010 макроассемблер был узко специализированным языком, зато заталкивание в память машинных колов из бейсика было более универсально и быстро росло.

Открой для себя TypeScript и не морочь юношам головы.

Shadow ★★★★★
()

Двигайся в сторону TypeScript и C#. Как научишься программировать, сможешь каким угодно языком пользоваться.

Раз тебе нравится java, то TypeScript/C# тоже понравятся.

А веб-студии, у которой бэк и фронт на ноде/JavaScript, понравится, что ты их будешь делать на TypeScript - потому что потом легче поддерживать будет.

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

Как там рынок специалистов по макроассемблеру на бк-0010? Много вакансий?

А бейсик сейчас на каждом компе* и широко используется в макросах, например.

Я js имею в виду всегда в связке с ts.

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

А, если ts, то нормально. Потому что всратый js довёл программирование до ручки. Ну и его спецификация и принципы перпендикулярны большинству популярных яп.

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

Вот даже соглашусь про сам язык, да! есть косяки как и у всех, но вообщем и целом годен! С нуля писаное на нем да еще и на аккуратном микрофрэймворе в ООП стилистике - даже любодорого! Но вот то, что на нем в ширпотребном вэбе вытворяют – это то, за что надо кары терморектальные проводить! Пальцем на соответствующие CMS показывать не буду, сами догадаетесь…

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

В пхп использование костыля php-fpm - обязательно, потому что один запрос - один процесс

Во-первых, это не костыль, уникальное средство изоляции запросов на уровне VM. Во-вторых, нет, не обязательно. Можно использовать workerman и подобные реактивные платформы.

no-such-file ★★★★★
()

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

Если тебе на будущее и для собственного образования - любыми способами избегай языков, в которых написание программы в основном заключается в перечислении библиотек, модулей, крейтов и т.п., которые проект будет при сборке скачивать из каких-то мутных хранилищ и копировании из не менее мутных источников паттернов, использующих эту скачанную хрень. Программировать ты так не научишься никогда, и даже результат своей деятельности будешь контролировать не ты, а владельцы этих мутных источников. В самом лучшем случае будешь, как выразился давеча один из местных пассажиров, «20 лет кодить сраные перекладывания json из базы в апи».

Так что определись сначала с реальной целью твоего квеста, и только потом озадачивайся вопросом насчёт языка.

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

Но при всем при этом 90% всего пхп это 2-3 основных CMS.

Десятки популярных CMS на пыхе, сотни разных.

Меня даже иногда расстраивает, что нет такого разнообразия CMS на более взрослых стеках типа JVM и .NET

sanyo1234
()

Учи и то, и то. Товарищей, которые отговаривают от пыха не слушай, пока он «устареет», солнце потухнет. Есть куча организаций, которые уже давно на рынке, у которых бек на пыхе, и все бекендеры пхпшники, и никто там никогда не будет все переписывать и нанимать новую команду, не важно насколько новомодна технология. Я чесно говоря вообще не понимаю, как можно гнать на пых, и предлагать как альтернативу куда более угребищный жаваскрипт. Но знать его тоже надо, такие дела.

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

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

У тебя телега впереди лошади. Эти CMS уже есть и есть кча студентов, готовых их поддерживать ­— потому этим CMS удобны тем, кто хочет создать себе сайт. Сам по себе Wordpress — это чудовищно убогий компок лапши, у которого постоянно что-то ломается, отваливаются плагины при обновлении или находятся уязвимости в старых необновленных плагинах. Особенности его архитектуры можно было бы обсуждать, если бы архитектура была — по факту это просто груда сваленных в кучу фич. Как я пытался начинать пояснять — это типовой результат работы сообщества:
https://bykozy.me/blog/attention-economics-and-software-engineering/
Люди ведутся на красивое-блестящее или поверхностное решение задачи, даже если потом твой софт умрёт от рака. Я когда делал обзоры self-hosted commenting софтин — почти в каждой популярной реализации я находил повреждение данных. Ты ни одного слово про это не найдёшь в интернете — всем остальным просто пофигу, никто даже не пытается читать эти исходные коды. Особенно сейчас, когда массово пошла write-only культура, софт на гитхабе не чинят — его переписывают.

С другой стороны тот же js более универсален

Чего? Не пиши ерунду.

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

Ты сам выше написал: на пхп написано 70% веба. А на гитхабе может быть хоть миллион ненужного мусора который никто не использует, это ничего не значит.

Так разве PHP проекты не выкладывают на гитхаб?

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

Меня даже иногда расстраивает, что нет такого разнообразия CMS на более взрослых стеках типа JVM и .NET

Люди, способные доработать бэк на F# под какие-то нужды, не клепают массовых копеечных говносайтов на CMS для последующего наполнениях этих сайтов домохозяками. Даже если просто по статистике посмотреть — у кодеров на F# один из самых высоких ЗП в среднем по больнице.

Почему я упоминаю F#? Потому что это очень близкий к PHP язык по своему применению.

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

Почему я упоминаю F#? Потому что это очень близкий к PHP язык по своему применению.

Функциональный F# близок к пыху? Я думал, к Scala он близок, не?

И причём тут велосипедостроение и CMS.

Ога, давай такой способный на коленке сделай что-нибудь похожее:

Как вам такие CMS? и почему? (комментарий)

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

Функциональный F# близок к пыху? Я думал, к Scala он близок, не?

Первая моя статья на хабре:
https://habr.com/ru/articles/481782/

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

Если быть точным, то, конечно, F# ближе к питону, потому что строгая типизация как в питоне (нельзя сложить строку с числом), потому что отступы как элементы синтаксиса. Программу с PHP или Python можно написать на F# в том же духе — другое дело, что типовая программа на PHP/Python — это одна сплошная патология, и в том числе поэтому такие плохие программы сложнее писать на F#, он поощряет соблюдение типов и однонаправленные потоки данных.

Тот же Rescript (тоже ML) — это по сути подмножество JS. То есть, конструкции JS один в один записываются на Rescript, там даже ключевое слово «let» одно и то же. Другое дело, что Rescript не любит традиционные изменяемые ассоциативные массивы JS и классы на прототипах — на которых так любят писать говнокод.

Ога, давай такой способный на коленке сделай что-нибудь похожее:
Как вам такие CMS? и почему? (комментарий)

Применять даже для средней руки проекта dotCMS — это безумие. Это как приобретать SAP (пусть даже бесплатную лицензию) для подсчёта домашнего бюджета. Тем не менее, под F# есть Umbraco для любителей «посложнее».

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

экосистемах

Автору темы: если видишь это слово в контексте ИТ - знай, что изрёкший его слабоумен и слушать всё остальное что он говорит тоже не стоит.

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

А зачем ты так зацикливаешься на типизации данных?

IMHO F# — это в первую очередь про иммутабельность и выразительность функионального ЯП аля Scala / Haskell ?

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

Сам по себе Wordpress — это чудовищно убогий компок лапши,

А я качество вордпресса не оценивал, я оценивал пхп. Но давай взглянем с другой стороны. Некто смог написать вордпресс, не особо заботясь о всяких изыскав, и получил работающий, и очень успешно применяющийся продукт. Если бы этот кто-то пытался писать свой продукт не на пхп а на жс или ещё каком новомодном языке - его проект бы постоянно падал (как с рантайм ошибками так и с синтаксическими), спамил стектрейсами и занимался прочими непотребствами. Автор бы скорее всего расстроился и забил на это дело. Итого, цель (получить работающий и успшный продукт) не была бы достигнута. Достигнута она оказалась именно благодаря пхп. Хочешь сделать продукт? Бери пхп. Хочешь изыски и модность? Бери жс и прочее.

Так разве PHP проекты не выкладывают на гитхаб?

Какие-то выкладывают, какие-то не выкладывают. Но считать их там незачем. Количество написанных проектов это бесполезный показатель, а количество опубликованных - бесполезный вдвойне.

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

Очень поверхностно знаком с этими вещами, мы по большей части свои собственные CMS делали на разнородных библиотеках — потому тут я так-себе эксперт. Лично мне, как разрабу, огромные чёрный ящик в проекте доставляет дискомфорт.

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

А зачем ты так зацикливаешься на типизации данных?
IMHO F# — это в первую очередь про иммутабельность и выразительность функионального ЯП аля Scala / Haskell ?

Ну дык в PHP ты можешь возвращать из функции новое значение вместо модификации глобальной переменной — просто это мало кто делает в PHP. Я со Scala не дружу, а вот Haskell какое-то время изучал — так вот нет, Haskell вообще не из той оперы. Если в F# ты можешь объявить переменную mutable, то в Haskell такой возможности нет. Совсем. Вообще.

F# поощряет хороший код, но на нём можно писать один в один как на Питоне. Один в один как на PHP, наверное, не получится, потому что таких всратых базовых типов в F# нету. Но всё равно мне нравится идея «F# — аналог PHP», потому что люди часто не подозревают, как близко на самом деле F# к тем задачам, что они пишут сейчас на PHP. Они на PHP решают проблему валидации данных, модуляризации, борьбы с глобальным состоянием — а оно уже есть готовое на F#. То есть, они пытаются писать на PHP в стиле F#. Но, да, некоторые пишут на PHP в стиле Java — тут я просто промолчу, наверное...

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

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

Это старый парадокс: если манька дала за бутылку пива, то зачем вообще париться с карьерой?

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

Ты точно знаком с JS? Это очень близкий к PHP язык в плане обработки ошибок и неявному приведению типов.

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

плане обработки ошибок

Да ну. В нём на каждую сомнительную штуку вылезает исключение, распространяющееся вверх по стеку вызовов, которое в итоге ломает всю работу скрипта, если его не обработать. В пхп же, по крайней мере в том что был когда делали вордпресс, всё намного проще: вернём false везде где можно, остальное непонятное по возможности просто сделаем вид что его не было, выдав варнинг в stdout или stderr. То есть почти любая ошибка остаётся локальным делом кода, её вызвавшего. Да, есть некоторые фатальные которые тоже крашат скрипт целиком, но их мало.

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

Ты дос-атакер что ли пишешь?

Сделать это на пхп разумеется можно, через stream_socket_client+stream_socket_select (оно работает поверх ssl). Но в подавляющем большинстве случаев не нужно. Пхп предназначен быть простым, а алгоритм «делаем кучу запросов, где-то их запоминаем, а потом по мере поступления разбираем ответы» скорее всего не уместится в голове начинающего скриптописателя, а значит не надо ему этим голову засорять. Те, кто считают себя умными, используют описанный выше способ через stream_ (но опять же - непонятно зачем), остальным дали file_get_contents('https://...') (самое желательное), или на случай чего-то сложного - апи курла с примером как его запускать. Кстати, возможно через курл тоже можно это сделать.

firkax ★★★★★
()