PHP является наиболее широко используемым языком в мире (для разработки веб-сайтов) А также он – самый ненавистный из всех языков программирования.
Но почему так много разработчиков так ненавидят его? Давайте попробуем разобраться.
Не трогай мой PHP
Если я говорю, что PHP ненавидит весь мир, это не мое личное мнение. Не так давно разработчики со всего мира поместили PHP в топ-5 самых страшных языков. В последнем опросе Hired он попал прямо в топ-2 самых ненавистных . Мы уже даже не говорим о том, что происходит в Reddit . Если вы 20 лет разрабатываете на PHP и пришли сюда, чтобы распять нас на алтаре Symfony, пожалуйста, расслабьтесь. Мы здесь, чтобы поговорить, опустите пистолет. И обратное: если вы ненавидите PHP, возьмите немного попкорна и сядьте удобно.
Итак, почему так много ненависти к этому языку?
PHP-проблемы прошлого
Для начала нам нужен контекст. Для этого перемотаем кассету назад.
Идет 1994 год, и Расмус Лердорф быстро разрабатывает набор инструментов для С. Этот набор инструментов используется для управления его личным сайтом. Расмус делает это только для своих нужд. Он не хочет превращать это все в язык программирования. Ничто в этом наборе инструментов не предназначено для этого. Год спустя Расмус выпустил этот набор инструментов с открытым исходным кодом, под названием PHP / FI.
Это очень далеко от того, что вы используете сегодня, в огромной среде PHP7. Но начало идет оттуда. Дальше все просто: код перешел к команде разработчиков, а PHP / FI2 был выпущен в 1997 году. В 1998 году часть была переписана, и выпущен PHP3. В 1999 году ядро PHP было полностью переписано для производства Zend. Дальше выходит PHP4, а PHP5 выпущен в 2004 году вместе с Zend2. PHP6 был отменен, потому что разработка превратилась в ад на земле. Наконец, пережив еще одну переписку языка, в 2015 году выпущен PHP7.
Но изначально Расмус просто написал что-то для себя. В 2003 году он дал интервью и рассказал невероятные вещи.
«Я действительно не люблю программирование. Я создал этот инструмент, чтобы меньше программировать, чтобы я мог просто повторно использовать код… Я не знаю, как это остановить, никогда не было никакого намерения писать язык программирования […]. Я вообще не знаю, как писать язык программирования, я просто продолжал добавлять следующий логический шаг».
Несоответствие и плохой дизайн
Так что же так бесит всех в языке? Ну если кратко, это отвратительный синтаксис PHP. Как язык не набирается. Как язык непредсказуем. Будь то использование операторов или невероятные несоответствия в именовании функций. Если перечислять весь список технических проблем, эта статья займет у вас целый день.
Разработчики ненавидят PHP, потому что это технически несовместимый язык с плохим дизайном. При сравнении с другими языками контраст очевиден.
Используя PHP, очень легко создавать плохой код. Другие языки имеют гораздо больше ограничений. Мы также видим много проблем с безопасностью.
С помощью PHP очень легко создавать плохой и небезопасный код. Но PHP – это не сплошное уродство и дырка, если вы все правильно пишете. Разработчики ненавидят PHP, так как вы с большей вероятностью сделаете ошибки, потому что пишете на языке, который дает такую большую свободу.
Жертва успеха
Есть еще один важный фактор в этой ненависти. Разработчики ненавидят PHP, потому что он используется везде. Этот сайт работает на PHP7. Как и большая часть Интернета. Ведь просто нужно разместить динамическую страницу, которая затем кэшируется. PHP делает эту работу. Да, сам язык не самый лучший. Да, можно использовать супер-пупер языки. Но кого это волнует? РНР отвечает потребностям разработчиков и бизнеса, быстро и доступно. По этой же причине 80% Интернета работает на PHP.
Большинству веб-разработчиков, какой бы язык они не любили, приходится работать с уже готовыми сайтами. Угадайте, какой язык всегда появляется на этих сайтах? Так что всем часто приходится что-то менять в PHP.
С появлением WordPress, который буквально доминирует в Интернете, каждый разработчик будет играться с PHP долгое время.
Кстати, не только блоги и сайты работают на РНР. Facebook, Wikipedia, Yahoo, Flickr, Tumblr — все эти сайты работают на PHP и принимают миллионы пользователей каждый месяц, не поведя глазом. PHP справляется с работой очень хорошо и делает это в течение долгого времени.
Наглый старичок
В течение 10 лет то там, то тут всплывают сообщения, что PHP умрет. И все же он все еще здесь, с нами. Несмотря на время и новейшие технологии, он никуда не девается. Разработчики ненавидят PHP, потому что он противоположен развитию. В профессии, где все быстро инвестируют в новейшие разработки, PHP — это старик, который не хочет продавать свою землю. Старик, который продолжает нагло выращивать помидорки на участке, в окружении высоток.
PHP развивается, но не его репутация
По мнению многих разработчиков, PHP остался в версии 4. Когда язык был нестабильным, с катастрофической производительностью и отсутствием ООП. Разработчики ненавидят PHP, потому что они верят, что язык застаивался в течение 20 лет. Если вызнаете современный PHP вы в курсе, что он далек от PHP4.
PHP7 быстрее, чем Python и Ruby. Язык может следовать строгим правилам, если хотите. Инструменты также развиваются: например, в последние годы появились статические парсеры. Такие фреймворки, как Symfony или Zend, требуют хорошей практики: новая версия выпускается каждый год. Более того, вышел PHP7.4 с еще большей производительностью. Еще раз, я не буду перечислять все, что происходит в современном PHP ради количествазнаков в статье. Если вы хотите знать все, я предлагаю вам прочитать эту статью . Пришло время изменить свое видение этого языка, который не имеет ничего общего с тем, что было раньше.
Разработчики ненавидят PHP, потому что это здорово — ненавидеть PHP. Этот язык продолжает иметь действительно плохую репутацию из-за этого.
Эпилог
Большинство разработчиков, которые ненавидят PHP, ненавидят его из-за элитарности или невежества. В любом случае это глупо. Вы должны выбрать технологию, основанную на том, что вам нужно. PHP очень полезен и мощен во многих сценариях. И брать это из уравнения только из-за его репутации не очень хорошая идея.
0 комментариев