Как стать автором
Обновить

Комментарии 81

PHP всё же умирает.
С новыми фичами мы лишились конкурентного преимущества — быстро и дешево. С фреймворками вроде Zend и Symfony и заморочками с типизацией время и объёмы кода стали сравнимы с Java и C#, в которых данные фичи существуют давно и реализованы не так костыльно как в PHP. И пока мы изобретаем гибернейт и играем во взрослый язык, конкуренты наоборот становятся проще и более дружественными к вебу.

А на рынке «быстро и дешево» позиции заняли nodejs и go, на подходе kotlin. Спасает ещё популярность laravel, но уровень разработчиков там печален.
НЛО прилетело и опубликовало эту надпись здесь
Я говорю о проектах с нормальным бюджетом, где php-шники получают как минимум не меньше коллег c других языков. Такие проекты исчезают. За последних пару лет их количество сократилось в разы, отделы php начали сокращать и переучивать на javascript ± node.
p.s. У меня информация о Минских компаниях, который в основном работают на запад. «Диджитал» и Битрикс конторы с дешёвой и некачественной рабочей силой я не считаю.
Magento будет еще достаточно долго жить. Разрабам М1/2 порой платят и поболе синьер джавистов.
… у меня информация...

называется невалидная выборка.


… Битрикс конторы с дешевой и некачественной...

цеховой снобизм фронтендщика мечтающего о тотальной победе js?)) очень, знаете ли, много кого вы таким образом "не считаете".) в абсолютном отношении нода даже приблизительно не близка к вытеснению php из реального сектора. и квалифицированные разработчики нормально зарабатывают.

Я php-шник, потому хорошо знаю о чём говорю. Среди моих знакомых хороших программистов практически не осталось чистых php-шников, теперь для хорошей зарплаты надо нырять во фронтэнд. Дело не только в джавасрипте, есть ещё джава и шарп.
Да и в целом веб рынок сжался с приходом фейсбуков, уже не нужно столько типовых стэнд элон сайтиков и магазинов.
  1. опытный веб-программист "чистым" не бывает вообще) смещение к фуллстэк это нормально. просто пробить некие очередные планки профессионализма в своей области сложнее, чем добавить фронтовые навыки и, тем самым, меньшими усилиями повысить свой рейт)
  2. джава царит в банковской сфере и дальше, кажется, не уползет уже никогда, шарп, вообще, где-то в еще более корпоративном секторе. а сотни crm как писали так и пишут на php.
  3. чтобы веб-рынок сжался, я совершенно не ощущаю. смена проекта (крупных) при необходимости занимает до недели, редко двух.

и это при некой "стагнации", а уж теперь, с "новым дыханием"...) так что не переживайте, коллега.

Ну раз у вас так хорошо с проектами, может со мной поделитесь? Я с легкостью найду исполнителей за хорошие деньги, которые с радостью согласятся бросить адский легаси.
По поводу пункта №1 не смог пройти мимо =)
Раньше веб-программисты почти всегда были фул-стек, но с усложнением требований бизнеса и соответственно разработки стала происходить специализация на фронт и бекенд разработку.
Хоть убейте, но не понимаю, как могут в природе существовать фул-стек разработчики, кроме js-ных.

А у нас в Avito нормальный бюджет. И PHP-шники получают не меньше коллег с других языков. Да и вообще мы стараемся развивать и брать разработчиков-полиглотов.
Дело же не в языке, а в умении решать задачи.

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

— Здравствуйте, PHP уже умер?
— Как, опять?

(с) по мотивам OS/2 FAQ
Понятное дело, что умирать он будет долго, вон даже Fortran, COBOL до сих пор используются в проде. Но с новыми проектами с нормальными бюджетами уже туго, это сильно бросается в глаза.
Даже простая проверка трендов это демонстрирует. trends.google.com/trends/explore?date=all&q=%2Fm%2F060kv
Полно в Европе новых проектов с нормальными бюджетами, в основном ECommerce.
Простая проверка трендов показывает нам график. Просто ломаную линию. Для сравнения нам нужно эту простую линию сопоставить с трендами других языков.

Мне не удалось заставить этот странный инструмент показать Питон и ноду как «язык программирования», возможно у вас получится.

Но вот мой график. Да, питон набирает популярность. Да, у PHP наблюдаются колебания и медленный спад (его долю отжирают другие ЯП).

Но говорить о смерти — преждевременно.

К тому же, если пролистать страницу ниже (и включить только поисковые запросы, а не ЯП), мы увидим крайне любопытную картину.

Китай впереди планеты всей по потреблению новых трендов.
ноду как «язык программирования»

Очевидно, что не получилось. Ведь язык — JavaScript
Мы то говорим о серверных языках. А простое включение ЯП Javascript добавить нам еще и лишние в данном случае данные об использовании на фронте.
Ну я вам не скажу за Go, а на руби написана прикольная имиджборда. Правда задеплоить эту имиджборду мегаквест, проще докером.

Впрочем, я ни с Руби, ни с Го не встречался на практике, некомпетентен, потому спорить не буду.
Своим комментарием я хотел показать, что эти графики не показывают популярность или востребованность того или иного ЯП.
О.о
Забавно.
Ну тогда тем более нужно сравнивать. А то получится — «100% опрошенных всё поняли»
НЛО прилетело и опубликовало эту надпись здесь
На самом деле пик тренда go был летом 2014-ого и с тех пор постоянно падает, так что переходить смысла уже нету.

Вообще, что старанно, согласно трендам с 2004-ого падают все языки: Java, JS, C, C++, C#, Lisp, Haskell, Ruby.

Чуть иначе в более современных языках — D, Scala, Go, Elixir. Но если их сравнивать с даже упавшей Java — они все находятся в районе нуля.

Какой ужас. "Видим тренд что очередной язык набирает популярность — надо срочно присоединиться!"
А вообще, php конечно имеет много недостатков, но всякие активно пирящиеся nodejs по-моему намного хуже.

Это ведь юмор про тренд то, на GO не стоит переходить даже при положительном тренде))

Почему? Вакансий стало больше, на международном рынке ценники ползут вверх, в США больший ценник только у 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
Да сcc..., странные результаты.
Вот сравнение за 5 лет php, nodejs и javascript trends.google.com/trends/explore?date=today%205-y&q=%2Fm%2F060kv,%2Fm%2F0bbxf89,%2Fm%2F02p97
Популярность php уходит и его вытесняют другие языки.
Но даже это не важно, беспокоят именно хорошие проекты с хорошей оплатой, их стало значительно меньше.
Но даже на данный момент это одна из самых простых и популярных платформ бэкэнда
Yii в руки и пошёл
Да ну, ерунду вы пишете. Пыха хоть имеет свои болячки, но количество специалистов и проектов несравнимо больше чем у соседних языков, есть поле для манёвров. Бывает такое что попадаются проекты под которые пыха не подходит архитектурно, но это очень нишевые продукты. Опять же, под каждую задачу созданы свои инструменты, сделать всё на пыхе в крупном проекте несомненно странное решение, но то для чего она была создана — бекенд для веба, с этой задачей справляется на отлично.
Знаете какой самый популярный вопрос по тегу laravel в местном тостере? Про неймспейсы, люди не понимают почему у них не работает как в примерах Foo::bar();

В посте я написал о том, что PHP оброс новыми фичами и так называемые специалисты в них до сих пор не разбираются. Порог входа значительно вырос. Найти специалиста, который знает ООП и может спокойно писать на фреймворке уровня symfony невероятно сложно и дорого, потому и теряется конкурентное преимущество.

Быть может это проблема "уровня" Symfony?

И что? Поэтому пыха говно и умирает? :) То что люди «входят в айти» через пыху напрямую определяет язык как говно? У вас очень странная логика.
Найти специалиста, который знает ООП и может спокойно писать на фреймворке уровня symfony невероятно сложно и дорого, потому и теряется конкурентное преимущество.

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

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

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

Сам php становится лучше, более функцинальным, качественным и т.д. Но и вход в него растёт.
Ну вот же. Я об этом же, если требование по знаниям такие же как в шарпах и джавах, то зачем писать на костылях и год ждать новую версию, чтобы в возращаемых типах указывать вариант с нулл.

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

JS влез на территорию бекенда и что? Не вижу ничего плохого, это развитие. Каждый язык что-то заимствует у другого.
Я писал о том, что получрность и количество хороших проектов на php становится меньше. Если 5 лет назад php-отделы были самыми растущими, то нынче их начали сокращать

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

Это же хорошо. Значит говнокода станет меньше и будет расти кол-во хороших проектов.
PHP умер для меня с появлением Go ;-) А кто говорит, что на Go нельзя так же быстро создавать web приложения, как на Symfony (или аналогичных фреймворках) просто не умеет грамотно кодить ;-P

Да ёмаё. Успокойтесь со своим Go уже, мы уже вроде говорили ведь на эту тему один раз с вами.

Ну таки сегодня лучше всего из всего перечня бэкэнд задач Go себя показывает в микросервисах, а вот всякие Симфони подобные штуки на нем выглядят громозко, ну как минимум сегодня. Как я понял жизнь скорректировала изначальные планы развития языка и возможно он станет примерно как php/python, но только Go.
Время покажет, но в данный момент мне кажется нецелесообразно тратить ресурсы на разработку мощных штук со сложной бизнес логикой, крудами-шмудами и тд, лучше использовать там где он однозначно силен — к примеру микросервисы, он в этой области показывает и отличную производительность, высокую надежность, прозрачность работы в общем в целом все обычно очень предсказуемо и просто, даже в сравнении с python.
Хотя если откровенно говорить то лично с моей тчк зрения «серебрянной пулей» Go назвать нельзя.
Позволю не согласиться с Вами, всё зависит от программистов и от их навыков.
Подходя к задаче массовых микросервисов, написал с коллегами специальный фреймворк, для построения микросервисов, вот пример построения на нём микросервиса, согласитесь не выглядит громоздким.

В микросервисах основная проблема как раз не в том, чтобы написать микросервис )

Вы наверно намекаете на меж-микросервисное взаимодействие,. так оно тоже реализовано на стороне фреймворка.
Используется обработчик событий, паттерн обсервер.
Если я обращаюсь к какому-нибудь репозиторию, который описан в другом микросервисе, то подключение ресурсов этого микросервиса произойдет автоматически, есть так же ручное подключение ресурсов, в общем проблемы нет.
НЛО прилетело и опубликовало эту надпись здесь
Ну, речь то про PHP шла, конечно, если если вы написали отдельный сервис на Go при его использовании на стороне микросервиса необходим некий дополнительный инструмент, что-то вроде API адаптера, пока таких задач не возникала, но была обратная задача. Скажем так некая среда сайта не PHP, использовала мои микросервисы через API которое работает по умолчанию.
По поводу «абсурдности», думаю вы просто ещё не знакомы с приведенной архитектурой. У микросервиса в фреймворке, стеки технологий у каждого остаются свои, но есть некие требования, это использование фреймворка и загрузка ядра, а дальше может быть всё что угодно, любые библиотеки, компоненты подключение в микросервисе. Просто чаще всего нет никакой необходимости писать обработчик запросов для каждого микросервиса свой, работа с данными она тоже везде практически одинакова. Фреймворк хоть и компактен, но в нем есть собственная ORM, DI, логирование, обработка запросов и ошибок.
Возможно к зиме выкачу вторую версию, опишу на хабре, любопытно узнать, что вообще люди думают о таком подходе.
НЛО прилетело и опубликовало эту надпись здесь
К сожалению разработка фреймворка была в рамках коммерческого проекта, согласно договору не могу делиться кодом.
Собственно, по этой причине работаю над второй версией, она будет открытой, и гораздо более доработанной.
Основная идея в том, что если мы работаем с сервисом через HTTP то получаем JSON, если же микросервисы используются в неком существующем сайте на PHP, то отправляя запрос с экшена, мы уже получаем то, что возвращается по существу, а не JSON. При этом м-сервис остается независимым, у него даже может быть собственный хост.
Подобный подход видел в SocialEngine, но там не было микросервисной архитектуры.
«Огрызок» накидал за 5 минут, в нем действительно есть 1 экшен который возвращает объект по id, это как ни странно и есть объявление микросервиса, только без настроек.
НЛО прилетело и опубликовало эту надпись здесь
Да, так и сделаю, у меня есть цель вообще привлечь кого-то ещё к этому проекту, так как, сил одного разработчика для такого проекта маловато.
Помогает что до этого было 1.5 года разработки и сейчас идет просто обратный реинжиниринг.
Если архитектура будет открытой, то в идеале можно будет разработать какие-то общие микросервисы, сделать некий банк микросервисов…
Разработка пока на собственном гитлабе, в общих чертах что-то работает, на выходных наверно переложу на github, скину сюда ссылку.
Проект будет доступен по адресу
github.com/wdforge
Пока только деланы наброски: ServiceManager и EventManager.
Go не для web создавался и в качестве бекенда держать его можно чисто как микросервис.
Это конечно круто пихать один инструмент во все стеки, но в реальности такой подход попахивает идиотизмом.

Про мемкеш по мне так достаточно очевидное капитанство. Кроме вышеупомянутого, написание враппера побудило так же плавно переехать с memcached на redis.


По адаптации кода — на 90% помогла утилита sstalle/php7cc, на остальных 10% ожидаемо упали unit-тесты (изменения в работе бизнес-логики были самые опасные и неочевидные, в отличие от явных несовместимых с php 7 фрагментов кода, выявленных stalle).

На самом деле я удивился, что кто-то в таких объемах использует memcache(d), когда есть Redis.
  1. Legacy и очень старый.
  2. Зачем менять, пока работает.
1. Тут надо было сработать на опережение, а лучше даже, в случае мемкеша, сериалайзить в php. У Redis, опять же, сериалайзер можно выбрать, я в свое время во многом из-за этого и перешел на него.
2. Лучше поменять раньше, чем позже. Именно из-за такого подхода я в данное время разгребаю и переписываю совсем уж олдовое legacy наследство, времен этак php4, которое никто не трогал очень долгое время, которое как-то работало даже на 5.3, но уже на 5.6 просто начало трещать по швам.
сериалайзить в php

Что? Зачем?


Лучше поменять раньше, чем позже

Лучше решать проблемы по мере их поступления.


Вы рассматриваете проблему, как разработчик, а я как менеджер.

php не мёртв, он всегда так пахнет
При обновлении на ровном месте образовалась проблема. Пакет php-memcached для 7.1 потянул за собой пакет php-igbinary. Когда поставили PHP 7.1 на один из боевых серверов, с остальных серверов начали сыпаться ошибки, в которых фигурировало слово “igbinary”.

Раз раз и в продакшен делаете?)) Dev серверы не нужны для тестирования, берешь и пишешь «pacman -Syu or etc» и все, гениально, аплодирую стоя xD
Для каких-то вещей у нас ещё нет стейджинга, полностью повторяющего боевую инфраструктуру (для большинства сервисов, к слову, есть). Эту неприятность поймали как раз из-за расхождения боевых и дев-серверов.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
SOAPUI Вам в руки, на случай если вдруг не в курсе. Куда легче чем придумывать велосипед на похапе.

при чем тут soapui вообще

Графики впечатляют!
Думаю, производители серверов сильно не довольны выходом PHP 7 :)
Думаю им глубоко пофик, они гребут свое бабло с энторпрайза на жабе, а не с нищебродов на пыхе :D
Думаю, производителям всё равно.

Удивительно. Половина новостей связана с тем, что в язык/платформу добавляются базовые возможности, которые в языках общего назначения (C++, C#, Java, множество других) есть с рождения и "из коробки".


Взять хотя бы void для возвращаемых значений (хотя идея void уже устарела — в наиболее современных языках используется понятие Unit для void) или добавление статической типизации для аргументов (хотя и тут — оказывается, написанный код не работает, если не добавить в файл некую директиву условной компиляции).


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

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

В каком смысле "пофиксили"?


В плане


"1e8" == "01e8" => true

?

да там полно адища.
"1e" == 1 // true
"1e1" == 1 // false
(float)"0.00" => 0
(bool)"0.00" => true
НЛО прилетело и опубликовало эту надпись здесь
применение строгого сравнения никак не умаляет адища с тайпкастом.

Это не адище, а неявное преобразование, почитайте PHP Internals Book.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий