Comments 103
Работаю с обеими языками и получаю удовольствие.
мы не видим истории успеха, начинающие с фразы «Я взял в руки учебник по PHP»
Возможно таких даже не существует
Возможно, вы как-то неправильно ищете, что у вас всего 6-7 вакансий :) Когда я искал новое место работы, ~6 месяцев назад, то я не успевал обрабатывать поток входящих предложений/вакансий
Только что искал вакансии в hh:
по запросу "php" 7.5тыс вакакансий
а по запросу "bitrix" почти 10тыс
Конечно же вакансии пересекаются, но вообще-то должно быть наоборот.
Просто автор категорично говорит — нет конкурентов у php! А они есть. И они постепенно обгоняют.
Machine Learning исключите.
Питон сейчас на взлёте больше из-за ML-AI-DataScience, а не про веб-приложения
Проблема не в языке, а в тех кто на нем пишет. Очень много перешли на пхп после вордпресов, битрексов, прихватив собой культуру и практику.
Пожалуйста, освежите свои знания по новым версиям языка, прежде чем писать холиварную чушь. На дворе 2021 год и фразы о уродливости языка сейчас выглядят как минимум смешно.
Например параметры в функциях для работы со строками и массивами.
Некоторым меняют значения по ссылке, а некоторые возвращают измененное значение.
Наименование самих функций.
(печальный взгляд из гошного лагеря)
7 подряд лет писал на PHP.
Потом переключился на Python.
Назад вернуться не тянуло и не тянет.
Забыл его как страшный сон.
Зы кстати ищу какую нибудь дико умную книжку с объяснением работы потоков/процессов в питоне, поскольку нужно писать приложение с поддержкой вагона подписок.
от классов не осталось вообще ничего(то что осталось трудно назвать классами)
В каком смысле?
Строго говоря, это не совсем так. Условные интерфейсы в питоне есть, называются Protocol. Protected довольно условный, но он есть в виде подчёркиваний перед названиями. Плюс, очень многое можно реализовать через мета-классы. Это, конечно, не php, в котором всё это проще, но тоже совсем не так страшно. Хотя я, с тех пор, как перешёл на питон, скучаю по строгости php
потоков/процессов в питоне, поскольку нужно писать приложение с поддержкой вагона подписок
А использование Питона — непременное условие? Многозадачность — не его сильная сторона.
Если начинать новый проект, причём упирающийся в многозадачность, я бы посмотрел в сторону Go. Он простой, производительнее Питона и многозадачность в нём удобная и из коробки. Если только непривычная модель ООП вас не смутит.
Ага, смутила.
На самом деле достаточно разобраться, чем интерфейсы в Go отличаются от интерфейсов Java/.NET, чтобы стало понятно, что для ООП он более чем пригоден, причём модель получается гораздо более гибкая, чем с развесистыми иерархиями наследования (вы ведь их имели ввиду?)
Это часть идеологии языка: всё должно делаться просто и максимально очевидно.
С другой стороны синтаксис там неплохо продуман, так что бо́льшую часть времени ограниченность не ощущается. Вот дженериков порой не хватает, это правда.
Утиная типизация кстати тоже не доставляет.
Я кстати пытался на go даже начать работать пару лет назад, вот только все драйверы для PostgreSQL таким мусором были (а вот это я писать неумею, да), столько я там глюков нашел, вплоть до повреждения данных, что ну его в лес. Вот с чем с чем а с этим сражаться не хочу, особенно учитывая что я базу использую вовсе не как тупую хранилку.
А меня тянет, так как Python почти не развивается. Но действительно, хайпа в Python больше, поэтому приходится работать на нём, а поет-проекты пилить на PHP чтобы навык не потерять :-)
Bjarne Stroustrup
hsto.org/getpro/habr/upload_files/787/c58/da6/787c58da6fc5fdaf1543d583f188ad93.png
Хотелось бы, чтобы как-то берегли хабр как ресурс, ибо всякие читатели бывают, могут «капнуть» («настучать») и будут штрафы за мат.
Исправьте это, или как минимум одну букву заблёрьте, если без подобных выражений не обойтись вам.
ЗЫ: про пэхапэ ничего не пишу, так как ничего не знаю, ибо не сталкиваюсь ввиду того, что пишу на плюсах и Qt.
Решения для запуска демонов (swoole. demon.io, etc) вообще растут как грибы. Дак почему сразу яву не использовать?
до сих пор нет дженериковhabr.com/ru/post/456466/#bolee-slozhnye-dzheneriki
Нужно подключить статический анализатор.
что доставляет нереальную боль
нет нормальных драйверов для бд
PG и работа с типами из пхп доставляет мне столько болиМожно подробнее?
доктрина это вообще отдельный вид извращений
почему сразу яву не использоватьДоктрина реализована с большой оглядкой на Hibernate с Java. Можете подробней что именно в Doctrine не понравилось и что при этом отсутствует/присутствует в Hibernate?
За ссылку спасибо но очень меня раздражает программирование в коментах 8(
Во первых вы видели как в доктрине реализовано экранирование? она ставит слеш абсолютно под каждый символ, это бывает ну дико весело в некоторых ситуациях.
Во вторых вы конечно можете прописать для доктрины кастомный тип, вот только отныне и вовеки будете его указывать во всех запросах ручками. Это особенно смешно когда передаешь кучу параметров, а потом сидишь и ручками пишешь вот эта переменная класса DateTimeImmutable есть тип DATETIME_IMMUTABLE; Но все это абсолютнейшая чушь на уровне текста запросов ибо не счесть сколько раз я в сложных запросах принудительно кастовал параметры к нужному типу, причем строго через функцию.
Hibernate мне кстате тоже не особо по душе и да я знаю что они им вдохновлялись, что один что другой я запросто заугол заведу сложными отношениями, если говорить о них как об ORM но как раз orm я обычно не юзаю)
И вот как раз третий у меня попрек горла, зачем он нужен когда все параметры уже типизированы? Суньте в параметры DatetimeImmutable и получите object to string coversion exception.
С числами еще интересней бывает. Тип переменной явно определен, у доктрины дополнительно указан тип, но пг о нем ничего не знает, вынуждая меня кастовать (кода нет под рукой).
Вот иногда нужно сделать сайт средней тяжести. Java брать — влом. Пытался поднять на PHP + Laravel — не осилил по гайду. Столько всего надо установить, настроить… Не осилил. Порог входа вырос. И не понятно, как на продакшене правильно поднять демон.
Питон не нравится синтаксисом. И их дзен пайтона дырявый. Явное лучше чем не явное. Ога, есть множество способов сделать одну и ту же работу. А Django вообще считаю устаревшим и полным набором костылей.
Rails — нравится. Но он не популярный и страшно начинать на нем проекты. Хотя в штатах и в Австралии все еще популярен. Новый руби и рельсы вышли недавно.
Но, вы забыли слона в комнате. По мне на данный момент очевидный лидер в веб проектах это — Node.js. Nestjs порадовал. А лучше чем Nextjs для СЕО зависимых, контентных сайтов я не видел. Потому, мой выбор на текущий момент — это Typescript.
Пытался поднять на PHP + Laravel — не осилил по гайду. Столько всего надо установить, настроить…
Так столько всего установит и настроит за вас composer. Вам нужно было установить только его.
Поднимал Laravel для небольшого пет-проекта, работающего в основном из командной строки (т.е. фронтенд был не нужен). Проблем не припоминаю.
А теперь задам вопрос, ты пользователь, или разработчик? Think about it ;)
PHP + Laravelвпервые, то необходим хороший guide ( желательно на англ), а если вы разработчик middle и выше, независимо от языка, — то проблем не должно быть
Сейчас у нас в продакшене версии от 5.5 (2017) до 8 (2020) - ну ничем развёртывание. не отличается, может какие-то нюансы в конфигах nginx, и то вряд ли.
Вот так было 8 лет назад https://github.com/laravel/docs/blob/4.0/installation.md
А homestead появляется в доке 4.1 https://github.com/laravel/docs/blob/4.1/homestead.md как решение для разворачивания готовой рабочей среды в виртуальном окружении.
Лара ставилась и ставится элементарно. А с homestead у меня тоже были проблемы, когда пользовался (да и то с обвязкой, то с виртуал боксом, то с вагрантом, насколько помню), с радостью переехал на докер.
в 90х у пхп было понятие сессии, он на каждый хттп реквест лезла в базу и останавливала контекст пользователя. каждый раз. наверняка же ничего не изменилось.
parallel и fibers откроют для вас дивный новый мир )
обходные пути естьНе обходные, а дополнительные.
то, что должно было бы быть в языке, что бы стать клевым в вебеПочему вы считаете, что ваш выбор парадигмы истинно верный в большинстве случаев и (отдельно) во всех из случаев? Подход «умирать» тоже имеет множество плюсов.
в контексте хайлоад о пхп не слышно на конференциях от слова совсем, я не углублялся в вопрос, но лично мне кажется очевидно, что не встречается из-за подхода с умиранием.
обкладывает себя костылями что бы нивилировать этот недостатокПриведите пример. Я вижу лишь альтернативные реализации. PHP-FPM к PHP гвоздями не прибит, если вы считаете иначе.
противоположный лагерь вытесняет пхпПриведите статистику. В этой же статье указано, что прямых конкурентов не густо.
в контексте хайлоад о пхп не слышно на конференциях от слова совсемОткрываю Youtube канал HighLoad++ (крупнейшая в России профессиональная IT-конференция) с сортировкой видео «от новых к старым» и вижу с десяток видео с конференции.
Все эти споры про «язык X гавно, пускай лучше используют Y» это тоже самое, что молоток гавно, зачем его использовать когда есть шуруповерт.
Хайлоад в большинстве случаев о том как правильно масштабировать и часто не важно на чем все будет написано.
крупных сайтов не видноСайты
Да ладно. Погуглите хорошо эту информацию. Про вк и фейсбук уже говорить не будем они пересели на свои реализации. Но и без них хватает.
github.com/gotzmann/comet
Вот как пример, даже оптимизированные Go-варианты на fasthttp (я уже молчу про NodeJS) отстают от PHP:
www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=query
Можно узнать какую нагрузку держали ваши проекты в контексте хайлоад?
Вот у меня в резюме имеется опыт создания проекта с 30+ млн хитов в сутки. На пхп и первом зенде.
Это достаточный хайлоад или ещё нет?
То, что на каждый запрос он умирает - это не к языку. Это php-fpm, который запускает php-скрипты. Никто не мешает использовать что-то другое.
Все эти споры про «язык X гавно, пускай лучше используют Y» это тоже самое, что молоток гавно, зачем его использовать когда есть шуруповерт.
Я вижу PHP скорее как обычную отвертку. В силу разнообразных причин нет возможности использовать шуруповерт.
Вы считаете 200к (рублей в месяц, я правильно же понимаю?) достойной зарплатой лида? Это хотя бы после налогов?
Начинал с PHP, потом JS, C#, Golang, Python и теперь C++.
PHP лучший язык для mvp. Golang лучший для highload веб сервисов. JS лучший для фулстек / смешанных команд. Python - для работы с данными, CV, ML.
И мне нравятся все, кроме JS =) но там ситуацию спасает TS.
Долго думал, как ответить на вопрос в голосовалке. Ведь на php писал ещё с версии 4.0.6, с ним связано много полезного полученного опыта (да и денег, что уж там). Практичный и полезный инструмент, хорошо решающий свою задачу.
Но вот подумал: если я сейчас буду начинать собственный новый проект, с нуля и без каких-либо внешних ограничений, стану ли я его писать на php. И тут, конечно, однозначно нет. Так что уважаю, но — нет, не нравится.
Я постоянно сталкиваюсь с PHP и в курсе всех новшеств. Без дженериков все равно вся эта типизация разваливается. Да и из-за отсутствия public readonly/final приходится генерировать кучу бойлерплейт кода для банальных DTO, после те же data class-ов в Kotlin это выглядит дико. Тут можно было бы пойти в сторону типизации структуры ассоциативных массивов, например.
Symfony хороший фреймворк, конечно.
Без дженериков все равно вся эта типизация разваливается.Можно подробнее? Статический анализатор не спасает?
Да и из-за отсутствия public readonly/final
@property-read
, @psalm-readonly
, @phan-read-only
.Ну это как вспоминать ecmascript5 c jsdoc аннотациями и всякими closure compiler. Сойдет, если нет ничего лучше, но после тайпскрипта вспоминать не хочется.
Если приходится поддерживать проект на php, так и делаю, конечно.
Все же лучше когда язык изначально предоставляет выразительные конструкции, проверки компилятором, модель памяти и прочие плюшки, работа и взаимодействие которых хорошо документированы в спецификации языка.
на php писал ещё с версии 4.0.6
стану ли я его писать на php. И тут, конечно, однозначно нет.
Проблема большинства хейтеров языка в устаревшем опыте работы со старинными версиями.
php7-8 вот вообще с четвертой версией общего не имеет, это уже другой язык с другими возможностями.
Скучные и очевидные инструменты часто бывают лучшим выбором, чем модные и продвинутые.
Взять, например, меня. Я не совсем программист, скорее веб-мастер. Делаю сайты о путешествиях. Трафик - несколько миллионов просмотров в год.
Выбрал для себя WordPress (php). С нуля написал тему. Работает очень быстро. Нагрузка на хостинг минимальная (хватает самого дешёвого тарифа). Никаких проблем с безопасностью или SEO за уже почти 10 лет у меня ни разу не было.
Когда открываю очередную статью: как выбрать CMS, почти всегда немного смешно от криков "WordPress не безопасен!" Да, в WordPress и php очень низкий порог входа. Поэтому, много и разработчиков уровня "Установлю плагины скачанные с левого сайта. И побольше, побольше их!". Откуда тут взяться безопасности?
Но если правильно выбирать инструмент и всё делать по уму, то и проблем никаких не будет. Ну где ещё за неделю времени и с небольшими знаниями я получу на 100% кастомный, быстрый и надёжный сайт, который будет 10 лет просто работать, почти не требуя времени на поддержку?
Кстати, иногда почитав статьи о веб-программировании появляется желание "написать свой велосипед" или "использовать новую крутую технологию". Но я ни разу не смог ответить себе на простой вопрос: "А что это даст в моем случае?" Кстати, буду благодарен за идеи "а что даст переход с WordPress конкретно для меня?"
Пишу на нём много лет. Этот язык позволяет думать о логике приложения, а не об структуре файлов, синтаксисе и прочих отвлекающих факторов. Тут нет жёстких границ. Может, поэтому и нет такого количества литературы (хотя, я даже и не искал за всё время работы с ним).
Некоторые нововведения 8-ой версии меня смутили, но, возможно, полностью разобравшись, они будут понятнее.
PHP — я бы купил это за доллар