Comments 81
С новыми фичами мы лишились конкурентного преимущества — быстро и дешево. С фреймворками вроде Zend и Symfony и заморочками с типизацией время и объёмы кода стали сравнимы с Java и C#, в которых данные фичи существуют давно и реализованы не так костыльно как в PHP. И пока мы изобретаем гибернейт и играем во взрослый язык, конкуренты наоборот становятся проще и более дружественными к вебу.
А на рынке «быстро и дешево» позиции заняли nodejs и go, на подходе kotlin. Спасает ещё популярность laravel, но уровень разработчиков там печален.
p.s. У меня информация о Минских компаниях, который в основном работают на запад. «Диджитал» и Битрикс конторы с дешёвой и некачественной рабочей силой я не считаю.
… у меня информация...
называется невалидная выборка.
… Битрикс конторы с дешевой и некачественной...
цеховой снобизм фронтендщика мечтающего о тотальной победе js?)) очень, знаете ли, много кого вы таким образом "не считаете".) в абсолютном отношении нода даже приблизительно не близка к вытеснению php из реального сектора. и квалифицированные разработчики нормально зарабатывают.
Да и в целом веб рынок сжался с приходом фейсбуков, уже не нужно столько типовых стэнд элон сайтиков и магазинов.
- опытный веб-программист "чистым" не бывает вообще) смещение к фуллстэк это нормально. просто пробить некие очередные планки профессионализма в своей области сложнее, чем добавить фронтовые навыки и, тем самым, меньшими усилиями повысить свой рейт)
- джава царит в банковской сфере и дальше, кажется, не уползет уже никогда, шарп, вообще, где-то в еще более корпоративном секторе. а сотни crm как писали так и пишут на php.
- чтобы веб-рынок сжался, я совершенно не ощущаю. смена проекта (крупных) при необходимости занимает до недели, редко двух.
и это при некой "стагнации", а уж теперь, с "новым дыханием"...) так что не переживайте, коллега.
Раньше веб-программисты почти всегда были фул-стек, но с усложнением требований бизнеса и соответственно разработки стала происходить специализация на фронт и бекенд разработку.
Хоть убейте, но не понимаю, как могут в природе существовать фул-стек разработчики, кроме js-ных.
А у нас в Avito нормальный бюджет. И PHP-шники получают не меньше коллег с других языков. Да и вообще мы стараемся развивать и брать разработчиков-полиглотов.
Дело же не в языке, а в умении решать задачи.
Ну да ну да, сразу все компании, что на рынке, так взяли и инфой поделились. Не городите чушь
— Как, опять?
(с) по мотивам OS/2 FAQ
Даже простая проверка трендов это демонстрирует. trends.google.com/trends/explore?date=all&q=%2Fm%2F060kv
Мне не удалось заставить этот странный инструмент показать Питон и ноду как «язык программирования», возможно у вас получится.
Но вот мой график. Да, питон набирает популярность. Да, у PHP наблюдаются колебания и медленный спад (его долю отжирают другие ЯП).
Но говорить о смерти — преждевременно.
К тому же, если пролистать страницу ниже (и включить только поисковые запросы, а не ЯП), мы увидим крайне любопытную картину.
Китай впереди планеты всей по потреблению новых трендов.
ноду как «язык программирования»
Очевидно, что не получилось. Ведь язык — JavaScript
Впрочем, я ни с Руби, ни с Го не встречался на практике, некомпетентен, потому спорить не буду.
Забавно.
Ну тогда тем более нужно сравнивать. А то получится — «100% опрошенных всё поняли»
Вообще, что старанно, согласно трендам с 2004-ого падают все языки: Java, JS, C, C++, C#, Lisp, Haskell, Ruby.
Чуть иначе в более современных языках — D, Scala, Go, Elixir. Но если их сравнивать с даже упавшей Java — они все находятся в районе нуля.
Какой ужас. "Видим тренд что очередной язык набирает популярность — надо срочно присоединиться!"
А вообще, php конечно имеет много недостатков, но всякие активно пирящиеся nodejs по-моему намного хуже.
Почему? Вакансий стало больше, на международном рынке ценники ползут вверх, в США больший ценник только у Java и совсем немного больший.
Сейчас искал работу: PHP или GOlang. На golang нашлись лучшие предложениЯ на удаленку.
И тут есть неточности: я не говорил про фриланс, я говорил про полный рабочий день (в моем случае, одни предлагают оформлание по трудовой в России, и две фирмы предлагают контракты на представительства в Европе, сроками от года); PHP вроде давно на рынке, но уменьшения удаленных вариантов (кроме прямой работы на США) я не заметил — у вас есть другая информация?
Работник на трудовом контракте — мало свободный работник. Да и фрилансер может работать в офисе, не переставая быть фрилансером.
В любом случае, «почему не go при положительном его тренде» открыт.
Когда я работал удаленно на немецкую контору у меня было аж два контракта — NDA и обычный контракт. И тем не менее, я считался фрилансером по всей отчетности. Контора не имела никакого представительства в СНГ, работал я сам на себя с ними удаленно.
A freelancer or freelance worker is a term commonly used for a person who is self-employed and is not necessarily committed to a particular employer long-term.
While the term «independent contractor» would be used in a higher register of English to designate the tax and employment classes of this type of worker, the term freelancing is most common in culture and creative industries and this term specifically motions to participation therein
trends.google.com/trends/explore?date=all&q=%2Fm%2F060kv,%2Fm%2F09gbxjr,%2Fm%2F02p97,%2Fm%2F07sbkfb,%2Fm%2F0jgqg
Вот сравнение за 5 лет php, nodejs и javascript trends.google.com/trends/explore?date=today%205-y&q=%2Fm%2F060kv,%2Fm%2F0bbxf89,%2Fm%2F02p97
Популярность php уходит и его вытесняют другие языки.
Но даже это не важно, беспокоят именно хорошие проекты с хорошей оплатой, их стало значительно меньше.
Yii в руки и пошёл
В посте я написал о том, что PHP оброс новыми фичами и так называемые специалисты в них до сих пор не разбираются. Порог входа значительно вырос. Найти специалиста, который знает ООП и может спокойно писать на фреймворке уровня symfony невероятно сложно и дорого, потому и теряется конкурентное преимущество.
Быть может это проблема "уровня" Symfony?
Найти специалиста, который знает ООП и может спокойно писать на фреймворке уровня symfony невероятно сложно и дорого, потому и теряется конкурентное преимущество.
Найти толкового специалиста — это всегда сложно и дорого и язык тут на самом деле второстепенен. Знаю достаточно крутых специалистов которые легко после пыхи осваивали и питоны и руби и go. Способность учиться и подстраиваться под рынок — это и определяет специалиста как профи, а не то что он знает symfony или ООП. Всё остальное приходит с опытом.
Нормальные PHP-шники достигли потолка и пробили его, влезли на территорию других языков.
Я писал о том, что получрность и количество хороших проектов на php становится меньше. Если 5 лет назад php-отделы были самыми растущими, то нынче их начали сокращать, требования к знаниям стали выше, требования к коду жёстче.
Сам php становится лучше, более функцинальным, качественным и т.д. Но и вход в него растёт.
Ну вот же. Я об этом же, если требование по знаниям такие же как в шарпах и джавах, то зачем писать на костылях и год ждать новую версию, чтобы в возращаемых типах указывать вариант с нулл.
Так можно сказать про любой язык.
Нормальные PHP-шники достигли потолка и пробили его, влезли на территорию других языков.
JS влез на территорию бекенда и что? Не вижу ничего плохого, это развитие. Каждый язык что-то заимствует у другого.
Я писал о том, что получрность и количество хороших проектов на php становится меньше. Если 5 лет назад php-отделы были самыми растущими, то нынче их начали сокращать
Не стоит судить по себе. Я не вижу чтобы сокращали. Зато вижу что внутри компаний появляются специалисты которых вообще не найти сейчас, типа спецов по го.
требования к знаниям стали выше, требования к коду жёстче.
Это же хорошо. Значит говнокода станет меньше и будет расти кол-во хороших проектов.
Я бежал за вами 5 километров, чтобы сказать, как вы мне безразличны (тм)
Время покажет, но в данный момент мне кажется нецелесообразно тратить ресурсы на разработку мощных штук со сложной бизнес логикой, крудами-шмудами и тд, лучше использовать там где он однозначно силен — к примеру микросервисы, он в этой области показывает и отличную производительность, высокую надежность, прозрачность работы в общем в целом все обычно очень предсказуемо и просто, даже в сравнении с python.
Хотя если откровенно говорить то лично с моей тчк зрения «серебрянной пулей» Go назвать нельзя.
В микросервисах основная проблема как раз не в том, чтобы написать микросервис )
Используется обработчик событий, паттерн обсервер.
Если я обращаюсь к какому-нибудь репозиторию, который описан в другом микросервисе, то подключение ресурсов этого микросервиса произойдет автоматически, есть так же ручное подключение ресурсов, в общем проблемы нет.
По поводу «абсурдности», думаю вы просто ещё не знакомы с приведенной архитектурой. У микросервиса в фреймворке, стеки технологий у каждого остаются свои, но есть некие требования, это использование фреймворка и загрузка ядра, а дальше может быть всё что угодно, любые библиотеки, компоненты подключение в микросервисе. Просто чаще всего нет никакой необходимости писать обработчик запросов для каждого микросервиса свой, работа с данными она тоже везде практически одинакова. Фреймворк хоть и компактен, но в нем есть собственная ORM, DI, логирование, обработка запросов и ошибок.
Возможно к зиме выкачу вторую версию, опишу на хабре, любопытно узнать, что вообще люди думают о таком подходе.
Собственно, по этой причине работаю над второй версией, она будет открытой, и гораздо более доработанной.
Основная идея в том, что если мы работаем с сервисом через HTTP то получаем JSON, если же микросервисы используются в неком существующем сайте на PHP, то отправляя запрос с экшена, мы уже получаем то, что возвращается по существу, а не JSON. При этом м-сервис остается независимым, у него даже может быть собственный хост.
Подобный подход видел в SocialEngine, но там не было микросервисной архитектуры.
«Огрызок» накидал за 5 минут, в нем действительно есть 1 экшен который возвращает объект по id, это как ни странно и есть объявление микросервиса, только без настроек.
Помогает что до этого было 1.5 года разработки и сейчас идет просто обратный реинжиниринг.
Если архитектура будет открытой, то в идеале можно будет разработать какие-то общие микросервисы, сделать некий банк микросервисов…
Разработка пока на собственном гитлабе, в общих чертах что-то работает, на выходных наверно переложу на github, скину сюда ссылку.
github.com/wdforge
Пока только деланы наброски: ServiceManager и EventManager.
Это конечно круто пихать один инструмент во все стеки, но в реальности такой подход попахивает идиотизмом.
Про мемкеш по мне так достаточно очевидное капитанство. Кроме вышеупомянутого, написание враппера побудило так же плавно переехать с memcached на redis.
По адаптации кода — на 90% помогла утилита sstalle/php7cc, на остальных 10% ожидаемо упали unit-тесты (изменения в работе бизнес-логики были самые опасные и неочевидные, в отличие от явных несовместимых с php 7 фрагментов кода, выявленных stalle).
- Legacy и очень старый.
- Зачем менять, пока работает.
2. Лучше поменять раньше, чем позже. Именно из-за такого подхода я в данное время разгребаю и переписываю совсем уж олдовое legacy наследство, времен этак php4, которое никто не трогал очень долгое время, которое как-то работало даже на 5.3, но уже на 5.6 просто начало трещать по швам.
При обновлении на ровном месте образовалась проблема. Пакет php-memcached для 7.1 потянул за собой пакет php-igbinary. Когда поставили PHP 7.1 на один из боевых серверов, с остальных серверов начали сыпаться ошибки, в которых фигурировало слово “igbinary”.
Раз раз и в продакшен делаете?)) Dev серверы не нужны для тестирования, берешь и пишешь «pacman -Syu or etc» и все, гениально, аплодирую стоя xD
Думаю, производители серверов сильно не довольны выходом PHP 7 :)
Удивительно. Половина новостей связана с тем, что в язык/платформу добавляются базовые возможности, которые в языках общего назначения (C++, C#, Java, множество других) есть с рождения и "из коробки".
Взять хотя бы void для возвращаемых значений (хотя идея void уже устарела — в наиболее современных языках используется понятие Unit для void) или добавление статической типизации для аргументов (хотя и тут — оказывается, написанный код не работает, если не добавить в файл некую директиву условной компиляции).
В чем пуля всех этих нововведений? Уж если язык динамический (а динамические языки имеют свои сильные преимущества), то и развивать его стоит именно как динамический.
PHP жив. PHP 7 на практике