Хэллоуин прошел, а страх остался. Страх и ненависть в pcntl_fork(). Боязнь CSQR. И опасения насчет удаленной работы. Если тоже хотите поговорить об этом, встречаемся вечером 21 ноября на Таганке или на этом ютуб-канале (ссылка на эфир появится за 2 дня до ивента).
А пока — есть время познакомиться. Мы попросили докладчиков рассказать про самое страшное событие в их карьерах разработчиков, а также включить нострадамус-mode и дать свой прогноз о развитии языка. У одного докладчика вышла Java. Детали и остальные ответы — под катом.
О чем расскажешь на митапе?
Про форки в PHP, в частности, о pcntl_fork() — как и где стоит применять, какие подводные камни вас ждут и как их обойти.
А о чем с тобой можно поговорить на митапе помимо темы доклада?
Кухни мира, история (особенно Мезоамерика), танки, фантастика — вот это всё.
Расскажи самую страшную историю из своего опыта.
Снес боевую БД игрового проекта. Напрочь. Пришлось восстанавливать из бэкапа. Несколько часов даунтайма было.
Самое лучшее и худшее, что было с языком за то время, что ты на нем пишешь?
Лучшее — выход 7-ой версии. Худшее — JIT никак не докатят :(
Что будет с PHP через 5 лет?
Я уже перешел на Go, но надеюсь, будет JIT, вложенные классы, сопрограммы или модель акторов, нормальный сервер приложений. Хотя стойте, это уже какая-то Java получается ;)
О чем расскажешь на митапе?
Поделюсь выводами из 5 лет опыта работы на удаленке: с разными командами и на разные компании. Какие проблемы бывают, как их решать, какие инструменты помогают и так далее.
А о чем с тобой можно поговорить на митапе помимо темы доклада?
Автоматизация, CI, самообразование, баланс между работой и жизнью, SOA.
Расскажи самую страшную историю из своего опыта.
Как-то раз полтора месяца работал забесплатно — и, как назло, в тот период жизни, когда средства были очень нужны. Толком не проверил работодателя, через пару месяцев у него закончились деньги — ни самоокупаемости, ни инвестиций не было. Зарплату на том месте так и не получил :(
Самое лучшее и худшее, что было с языком за то время, что ты на нем пишешь?
Лучшее — выход 7-ой версии. Худшее — то, что нет развития в сторону асинхронности (но наш товарищ работает над этим — прим. ред.)
Что будет с PHP через 5 лет?
Появится строгая типизация, зачатки асинхронности, произойдет еще один скачок в производительности.
О чем расскажешь на митапе?
Что делать, если Doctrine ORM не справляется с обработкой потока запросов на чтение, а хаки по оптимизации уже кончились.
А о чем с тобой можно поговорить на митапе помимо темы доклада?
С удовольствием пообщаюсь про unit-тестирование и TDD. Составлю компанию в обсуждении зубодробительных архитектурных вопросов, даже если они и не имеют ничего общего с реальными приложениями. С радостью наброшу про целеполагание внутри команды и командную ответственность.
Самое лучшее и худшее, что было с языком за то время, что ты на нем пишешь?
Худшее — трейты. Всегда воспринимал их как полукостыль для реализации подобия множественного наследования. Ну и многие PHP-разработчики ими часто злоупотребляют. Лучшее — постепенное появление приличной системы типов в языке. Глядишь, скоро Union-типы подвезут, будет вообще шикарно.
Что будет с PHP через 5 лет?
Давай попробуем пофантазировать. Вероятным направлением развития может быть функциональное программирование в PHP. Популярность асинхронных фреймворков ReactPHP и AMP растет, а в языке до сих пор нет нормальных методов для функциональной работы с массивами (array_map, array_reduce и подобные не предлагайте, очень уж они «специфические»).
На первом этапе можно было бы протащить в язык какой-нибудь приличный класс-коллекцию (с нормальными map, fold, filter). Этот небольшой шаг потребует приличного времени, за которое система типов разовьется настолько, что можно будет описывать интерфейсы для функций (прямо как в TypeScript). А дальше можно уже тащить в язык сопоставление с образцом, частичное применение, каррирование, композицию и прочие веселые-до-безумия функциональные штуки.
Возможно, кто-то даже пойдет по пути ES*/TypeScript и реализует надмножество языка PHP с кучей функциональных плюшек. А там и до клона Scala, компилируемого в опкод PHP, недалеко :)
Расскажи самую страшную историю из своего опыта.
Как то раз, в канун Нового года, когда действовал запрет на все изменения в проде, понадобилось выкатить обновления по одному из второстепенных сайтов компании.
В то время у нас не было абсолютно никаких средств автоматизации процесса деплоя. Все руками, через SFTP, прямо на сервера. Ну и без плана отката, разумеется. Я, как самый бесстрашный, взял эту почетную обязанность на себя: надо же было порадовать клиентов свежими фичами под Новый год.
Затем: белый экран, чистые логи, вот это всё. Те 30 минут, пока я пытался понять, что с ним не так, и восстанавливал работоспособность, были самыми страшными за всю карьеру.
Еще не без стыда могу поведать о факапах в проектировании отдельных компонентов внутри одной системы и взаимодействия нескольких систем друг с другом. Но это — уже на митапе :)
В общем, приходите 21-го числа, будет хорошо. Или смотрите нас онлайн и в записи.
p.s. Если вы хотите выступать на митапах в Москве и за ее пределами, либо готовы как-то поддержать сообщества, добавляйтесь в открытый список на GitHub или ищите контакты там.
p.p.s. Говорят, если сделать свой прогноз про будущее языка в комментах к этому посту, на митапе будут ждать ништяки.
А пока — есть время познакомиться. Мы попросили докладчиков рассказать про самое страшное событие в их карьерах разработчиков, а также включить нострадамус-mode и дать свой прогноз о развитии языка. У одного докладчика вышла Java. Детали и остальные ответы — под катом.
Влад Сидорин, тимлид в Работа.ру
О чем расскажешь на митапе?
Про форки в PHP, в частности, о pcntl_fork() — как и где стоит применять, какие подводные камни вас ждут и как их обойти.
А о чем с тобой можно поговорить на митапе помимо темы доклада?
Кухни мира, история (особенно Мезоамерика), танки, фантастика — вот это всё.
Расскажи самую страшную историю из своего опыта.
Снес боевую БД игрового проекта. Напрочь. Пришлось восстанавливать из бэкапа. Несколько часов даунтайма было.
Самое лучшее и худшее, что было с языком за то время, что ты на нем пишешь?
Лучшее — выход 7-ой версии. Худшее — JIT никак не докатят :(
Что будет с PHP через 5 лет?
Я уже перешел на Go, но надеюсь, будет JIT, вложенные классы, сопрограммы или модель акторов, нормальный сервер приложений. Хотя стойте, это уже какая-то Java получается ;)
Антон Губарев, тимлид в Skyeng
О чем расскажешь на митапе?
Поделюсь выводами из 5 лет опыта работы на удаленке: с разными командами и на разные компании. Какие проблемы бывают, как их решать, какие инструменты помогают и так далее.
А о чем с тобой можно поговорить на митапе помимо темы доклада?
Автоматизация, CI, самообразование, баланс между работой и жизнью, SOA.
Расскажи самую страшную историю из своего опыта.
Как-то раз полтора месяца работал забесплатно — и, как назло, в тот период жизни, когда средства были очень нужны. Толком не проверил работодателя, через пару месяцев у него закончились деньги — ни самоокупаемости, ни инвестиций не было. Зарплату на том месте так и не получил :(
Самое лучшее и худшее, что было с языком за то время, что ты на нем пишешь?
Лучшее — выход 7-ой версии. Худшее — то, что нет развития в сторону асинхронности (но наш товарищ работает над этим — прим. ред.)
Что будет с PHP через 5 лет?
Появится строгая типизация, зачатки асинхронности, произойдет еще один скачок в производительности.
Дмитрий Симушев, разработчик в РайффайзенБанке
О чем расскажешь на митапе?
Что делать, если Doctrine ORM не справляется с обработкой потока запросов на чтение, а хаки по оптимизации уже кончились.
А о чем с тобой можно поговорить на митапе помимо темы доклада?
С удовольствием пообщаюсь про unit-тестирование и TDD. Составлю компанию в обсуждении зубодробительных архитектурных вопросов, даже если они и не имеют ничего общего с реальными приложениями. С радостью наброшу про целеполагание внутри команды и командную ответственность.
Самое лучшее и худшее, что было с языком за то время, что ты на нем пишешь?
Худшее — трейты. Всегда воспринимал их как полукостыль для реализации подобия множественного наследования. Ну и многие PHP-разработчики ими часто злоупотребляют. Лучшее — постепенное появление приличной системы типов в языке. Глядишь, скоро Union-типы подвезут, будет вообще шикарно.
Что будет с PHP через 5 лет?
Давай попробуем пофантазировать. Вероятным направлением развития может быть функциональное программирование в PHP. Популярность асинхронных фреймворков ReactPHP и AMP растет, а в языке до сих пор нет нормальных методов для функциональной работы с массивами (array_map, array_reduce и подобные не предлагайте, очень уж они «специфические»).
На первом этапе можно было бы протащить в язык какой-нибудь приличный класс-коллекцию (с нормальными map, fold, filter). Этот небольшой шаг потребует приличного времени, за которое система типов разовьется настолько, что можно будет описывать интерфейсы для функций (прямо как в TypeScript). А дальше можно уже тащить в язык сопоставление с образцом, частичное применение, каррирование, композицию и прочие веселые-до-безумия функциональные штуки.
Возможно, кто-то даже пойдет по пути ES*/TypeScript и реализует надмножество языка PHP с кучей функциональных плюшек. А там и до клона Scala, компилируемого в опкод PHP, недалеко :)
Расскажи самую страшную историю из своего опыта.
Как то раз, в канун Нового года, когда действовал запрет на все изменения в проде, понадобилось выкатить обновления по одному из второстепенных сайтов компании.
В то время у нас не было абсолютно никаких средств автоматизации процесса деплоя. Все руками, через SFTP, прямо на сервера. Ну и без плана отката, разумеется. Я, как самый бесстрашный, взял эту почетную обязанность на себя: надо же было порадовать клиентов свежими фичами под Новый год.
Затем: белый экран, чистые логи, вот это всё. Те 30 минут, пока я пытался понять, что с ним не так, и восстанавливал работоспособность, были самыми страшными за всю карьеру.
Еще не без стыда могу поведать о факапах в проектировании отдельных компонентов внутри одной системы и взаимодействия нескольких систем друг с другом. Но это — уже на митапе :)
В общем, приходите 21-го числа, будет хорошо. Или смотрите нас онлайн и в записи.
p.s. Если вы хотите выступать на митапах в Москве и за ее пределами, либо готовы как-то поддержать сообщества, добавляйтесь в открытый список на GitHub или ищите контакты там.
p.p.s. Говорят, если сделать свой прогноз про будущее языка в комментах к этому посту, на митапе будут ждать ништяки.
rjhdby
Дженерики. Сразу за ними подтянутся типизированные коллекции.
Движение в сторону асинхронности. Возможно путем выноса компилятора и VM в специализированные, доступные для запуска из самого PHP, "расширения". И обязательно обмен сообщениями между ними. Как минимум возможность запускать IO в отдельном потоке с возможностью дальше по коду дождаться результата. Вынос GC в отдельный поток(если он еще не там — не уверен)
В совсем далеком будущем — переработка VM. Текущие опкоды довольно костыльны и слишком толсты.
Спецификация на VM. Разные реализации, не прибитые гвоздями к структурам и макросам
zend_*
Расширения можно будет писать на самом PHP, компилить в промежуточный код и в таком виде подключать — дальше пусть JIT работает.
spasibo_kep Автор
Привет, Андрей! Приходи на митап, лови человека в белом свитере с надписью «Лёша», ништяк будет твой)
symbix
Да, дженериков больше всего не хватает.
На втором месте отсутствие аналога public readonly или public final свойств: очень утомляет писать эти дурацкие геттеры для банальных immutable data objects.
EvgeniiR
Если что, psalm (который github.com/vimeo/psalm ) умеет в аннотации immutable и readonly. Как вариант.
symbix
Со статическим анализом и PhpStorm неплохо справляется, но это все… такое.
Я лучше геттеров нагенерю, надёжнее.
EvgeniiR
Ну как сказать… Psalm далёк от идеала и вообще языков в которых это из коробки, но PhpStorm даже с ним с равнение не идёт.
Шторм даже за типами свойств не следит, и не подсветит такую простую штуку как запись в свойство значение неверного типа, или обращение в свойству которое может быть null(и EA extended тоже, по крайней мере в бесплатной версии). Object-like arrays им никак не покрыть, да и дженерики в psalm ± есть.
И билд зафейлить не поможет если кто-нибудь сделает что-то нехорошее.
А вообще неплохо если JB возьмутся таки впилить нормальную поддержку language-server-protocol в IDE( LSP Support plugin работает так себе, впрочем, и пилится одним человеком в свободное время ).
spasibo_kep Автор
Привет! А мы как раз один из следующих митапов планируем с Кириллом Смеловым, разработчик из команды PhpStorm в JetBrains: он готов приехать в Мск. Так что, думаю, в декабре-январе можно будет лично фидбек дать)
symbix
Это у вас че-то плохо настроено, у меня и за типами свойств следит, а уж за null-ами тем более. Может, инспекции отключены, или версия php в настройках проекта не та?
EvgeniiR
Все inspections в PHP > Type Compatibility включены, шторм последний. На код
}
symbix
А, я думал, вы про ситуации типа NPE. С примитивными типами, да, вижу. Не замечал, правда, наверное, потому что стараюсь сразу на входе избавиться от null каким-нибудь default value.
Что касается
@template
: да, без поддержки в IDE от подобных конструкций никакого толку. :(alatushkin
Отток сильных инженеров из php в более востребованные/хайповые языки, снижение популярности.
spasibo_kep Автор
Привет, пессимистичненько( Были тут на выходных в Нижнем на митапе, многие опасаются того же — в том числе потому, что в вузах мало программ от компаний.
alatushkin
Думаю, тут дело не столько Вузах и программа от компаний (в конце концов этого и раньше не было и это не помешало php стать массовым), сколько в том, что да — сильные инженеры переходят на другие стеки, роль языка с быстрым стартом для новичков перехватил js (чтобы начать что-то писать на js и базовая алгоритмика -достаточно браузера) +фактор размера рынка и зарплат + "суть" проектов на рынке.
Но возможно, загляну на митап — вдруг тоже ништяк дадут
spasibo_kep Автор
Ловите меня (человек в белом свитере с надписью «Лёша») — и все будет
symbix
Так и есть. PHP — это либо суппорт уже давно понаписанного, либо когда заказчик требует. Добровольно на PHP новые проекты уже мало кто знающий другие языки начинает. :-)
VolCh
Я вот начну. Вернее PHP будет один из языков в MSA. Основным языком для бизнес-логики
zhulan0v
Да ладно, а на чём начинают?)
symbix
От задачи зависит, ну и от личных предпочтений наверное.
Из того, что вот под рукой: Typescript, golang, ну и вот Kotlin ещё.
zhulan0v
ну такое…
VolCh
Больше оптимизаций и статанализа в компайлтайме, после этого типизированные переменные и дженерики. Вероятно появление понятия пакета/модуля/приложения на уровне языка.
Паралельно нормальная поддержка многопоточности и серверы из коробки.
Основные конкуренты TypeScript и Go.
Shady1010
«Уйдут сильные специалисты» — придут другие. Хайп приходит и уходит, жизнь в IT не раз это показало. Ждём от PHP нормальную многопоточность, коллекции, JIT, переработку колхозных функций таких как: file_get_contents, heredoc.
EvgeniiR
Аргумент так аргумент. Если кто-то говорит что есть технология лучше чем используемая, нужно сказать что это лишь хайп и поставить собеседника в неудобное положение.
Ссылаться при этом на некий опыт — обязательно. Примеры — не нужны.
Как там нынче у Ruby дела, с которого все «за хайпом» на Эликсир бежали?
zhulan0v
Всё зависит от задач. Есть круг задач для которых php и его инфраструктура топ — например небольшие и средней величины проекты в вебе. JS с гошечкой еще долго не смогут конкурировать в этой нише по разным причинам.
EvgeniiR
Доказывать тут лучше PHP или хуже не очень хочется, холивар таки.
Но мой субъективный опыт и наблюдение за происходящим в мире говорит о том, что от задач ничего не зависит в процентах так 99 случаев, и берётся то, во что умеют разработчики, или что там нравится нынче самому авторитетному человеку(читай человеку с самой высокой должностью по технической части). Никакого анализа конечно же не происходит.
Или берётся PHP потому что на краткосрочной дистанции разработчики дешевле, а что там после будет — неважно.
И ещё «небольшие и средней величины» это растяжимое понятие, генерировать backend-CRUDы сегодня очень много вариантов.
Вообще, мне Kotlin весьма нравится. Не монструозный как Java и все фичи которых мне в php не хватает, присутствуют. Ещё C# неплох хоть и с особенностями.
А то что Go подходит для описания бизнес логики приложения — есть сомнения, не берусь утверждать.
zhulan0v
Есть доля правды в ваших словах.
В этом плане JS вообще ничем не лучше. Большой проект на JS/TS имеет не меньше шансов стать тем еще адком, а возможно и больше, учитывая кол-во велосипедов, которые придется написать, так как инфраструктура в целом хуже.
EvgeniiR
А с чем там проблемы?
Мне кажется небольшому проекту много не нужно, а для крупных — PHP, скажем так, тоже не блещет обилием всевозможных инструментов/интеграций etc.
zhulan0v
Да взять хотя бы нормальные фреймворки для бэка, что есть? Несчастный полусырой nestjs и всё.
symbix
Еще как минимум FoalTS и Stix.
А что не так с NestJS?
VolCh
Аналог Hibernate/Doctrine появился какой-то?
symbix
https://mikro-orm.io/
Еще есть typeorm, но он сделан через… В общем, странный.
VolCh
О, появился, спасибо, надо покрутить
afagorn
Не ну если PHP активно развивается и стремится к лучшему, то видимо у разработчиков есть какие-то планы, а значит будущее языка не такое пессимистичное, а может даже позитивное
spasibo_kep Автор
Олег, приходите на митап, дадим вам ништяков за оптимизм)
afagorn
Обязательно приду :)
Eskov
А когда подвезут функцию «Сделать за… сь»?
spasibo_kep Автор
Вы имели в виду «зависимость» же, да?
Eskov
Хм, тоже интересный вариант, но в момент написания я об этом не думал :)
А вообще я только начинаю свой путь в PHP, хоть его и хают, однако посмотрев на то сколько вакансий с ним связанно, решил что лучше синица в руках чем известно что в небе :)
dbelka
Учитывая, что всё больше новых проектов пишутся на go, а не на php, то через 5 лет пхп-кам останется только адовый легаси. Держитесь там… пхп-ик, который уже ушёл в go :-)
zhulan0v
поделитесь источником статистики
dbelka
Источник я, который прошёлся по собеседованиям по крупным компаниям на позицию senior php developer и собрал информацию кто на чём пишет и на чём собирается писать дальше.
zhulan0v
сколько компаний было в списке если не секрет
iparfeon
Двое из 3-х опрошенных, назвали PHP 7 лучшим что было с языком. Не могу не согласится. По моему в подкасте у Вадима Макеева слышал очень хорошую фразу от одного из гостей «PHP очень хороший язык, с очень тяжелым детством». ИМХО PHP будет популярен и востребован если будет развиваться в ногу со временем, а все разговоры что вот вот умрет, все уйдут на GO, Python и прочие Фортраны они будут всегда, нужно людям холиварить.
VolCh
5.3 мне больше запомнился. Можно сказать как раз тогда детство закончилось у него.
iparfeon
Согласен, неймспейсы, closures, позднее статическое связывание, я бы сказал что стало интереснее
spasibo_kep Автор
Круто, что есть разные версии — мы будем делать полушуточную PHP-викторину в перерыве, спросим людей, что они считают более лучшим. Спасибо, что благодаря вам родилась идея!
symbix
Детство закончилось, когда выпилили register global и magic quotes. Дальше уже юность с подростковыми комплексами ;)
rjhdby
register global и magic quotes — это на горшок ходить научился и питаться не из мамы, а не детство закончилось :)