PHP гораздо лучше, чем вы думаете

Последнее время PHP гнобят все, кому не лень, даже довольно-таки разумные люди. Когда Jeff Atwood создал свой очередной пост, направленный против PHP, это заставило меня задуматься о хороших сторонах этого языка.

Самая главная проблема всех этих статей в том, что люди, которые их пишут, застряли в старых временах PHP.
Либо это их не волнует, либо они не хотят признавать, но PHP эволюционирует очень быстрыми темпами, и как язык, и как сообщество.
Более того, PHP развивается гораздо быстрее, чем какой бы то ни было другой язык или платформа. Конечно, так было не всегда, но последние 5 лет были воистину потрясающими для PHP…



Прежде чем начинать говорить о достижениях PHP сообщества за последнее время, давайте посмотрим на некоторые интересные цифры: PHP используется как основной язык на 77,9% среди всех сайтов, где язык платформы известен. Wordpress используется в 16,6% среди всех сайтов мира. Если вы посмотрите на топ 3 CMS, Wordpress на первом месте с 54,3%, Joomla на втором с 9,2% и Drupal на третьем с 6,8%. Топ 3 продукта, все написаны на PHP.

Это не спроста: в PHP явно что-то сделано верно, не находите?

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

PHP: Язык


В PHP 5.0 (вышедшем в 2004) ввели стабильную объектную модель… стоп стоп. Я же говорю о чем-то, что было почти 8 лет назад. Давайте-ка вернемся в настоящее.
В современном релизе PHP, 5.4, есть все плюшки, о которых вы могли бы мечтать, пользуясь современным веб языком: да, PHP поддерживает пространства имен; да, PHP поддерживает замыкания; да, PHP поддерживает типажи (traits).

На это ушло время, но PHP 5.4 включает в себя немного синтаксического сахара, который делает процесс разработки лучше: да, PHP поддерживает [] для обозначения массива; да, PHP поддерживает вызов метода на созданном объекте ((new Foo())->bar()); да, PHP поддерживает вызов элемента массива из произвольного выражения ($foo->bar()[1]).

В PHP учатся на своих ошибках: register_globals и magic_quotes убраны с потрохами.

И напоследок, в PHP встроен веб-сервер, упрощающий локальное тестирование… и он запускается в считанные миллисекунды.

Задача на будущее: как «обновить» все гайды по PHP в интернете? Какой лучший способ поддержки вебсокетов в PHP проекте?

PHP: Экосистема


Хороший язык — это круто, но отличная экосистема — это еще круче. И экосистема PHP очень сильно развилась за последние годы.

Git

Я не буду вдаваться в подробности этого пункта. Git повсюду, и в мир PHP он влился довольно быстро. Практически все основные PHP библиотеки, фреймворки и продукты используют Git, включая сам PHP.

Composer

Два года назад мне очень хотелось избавиться от страшного PEAR-хака, который я использовал в symfony 1 для поддержки плагинов. Мне хотелось заменить его на что-то, что могло управлять зависимостями на уровне проекта, а не иметь глобальный установщик как PEAR. Управление зависимостями — не простая задача, поэтому я попытался найти наилучший алгоритм для её решения. Я просмотрел все: от Perl до Ruby, от Debian до RedHat. Ни один не был удовлетворительным — кругом самопальные решения, которые просто работают… эмпирически. А потом я наткнулся на ZYpp. Это было оно. В ZYpp используется SAT анализатор для управления зависимостями. И теперь, благодаря колоссальной работе Nils Adermann и Jordi Boggiano, у PHP есть один из лучших менеджеров зависимостей, Composer.

Да, у PHP сейчас лучший менеджер зависимостей из всех языков.

И благодаря Git, Composer и встроенному серверу PHP скачивать, устанавливать и тестировать PHP проекты еще не было так просто!

Хотите попробовать Symfony (используя PHP 5.4)?

$ composer.phar create-project symfony/framework-standard-edition
$ cd framework-standard-edition
$ ./app/console server:run


Хотите попробовать Silex?

$ composer.phar create-project fabpot/silex-skeleton
$ cd silex-skeleton
$ php -S localhost:8888 -t web/


Не слышали о Composer? А он того стоит. Загляните на Packagist — основной репозиторий для Composer: в нем уже находится более 1900 пакетов и они были установлены более миллиона раз меньше чем за 3 месяца.

Задача на будущее: внедрить Composer в следующую версию PHP?

Сотрудничество

Сотрудничество внутри сообщества — самый важный пункт в этом посте, то, чем я больше всего горжусь. Мы начинам видеть все больше и больше сотрудничества между различными PHP проектами, даже между очень большими, такими, которым, казалось бы, и не надо ни с кем считаться.

phpBB, Drupal, ez Publish, Symfony, phpDoc, PHPUnit, Behat, Zikula, Propel, Doctrine, Midgard и многие другие имеют совместный код. Да, они «конкуренты», но они все поняли что интероперабельность — это круто. И Composer в этом большой помощник.

Задача на будущее: убедить еще больше проектов влиться в тренд?

Напоследок:


PHP, возможно, не лучший язык в мире, и я далеко не первый, кто пытается говорить о его плюсах, но PHP — это лучшая веб платформа… и точка.

P.S. Это перевод статьи PHP is much better than you think, написанной Fabien Potencier. Честно пытался отметить топик, как перевод, но так и не нашел где.
Поделиться публикацией
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама
Комментарии 428
  • +66
    Сразу вспомнилось:

    • +38
      чуть глаза не сломал от вашего комментария… пора отдыхать)))
      • +9
        Похоже, у нас с вами одинаковые браузеры и операционки.
        • 0
          У меня, похоже, другая ось. Какая у вас и почему сглаживание даёт такое размытие?
          • 0
            Дело не в оси. Если реже глаз, значит, один LCD монитор RGB, а другой BRG. Отсюда и цветной вырвиглаз.
            • 0
              Как влияет монитор на файл скриншота?
              • 0
                Субпиксельное сглаживание зависит от последовательности пикселей.
                От монитора зависит система, которая и сглаживает.
                Если увеличить скриншот, то видно, что буквы не чёрные, а красно — синие.
                Вот тут ru.wikipedia.org/wiki/ClearType сказано, почему ClearType не работает на ЭЛТ.
        • +99
          я звизда!
          • +31
            Вот и повелитель Хабра!
            • –9
              скорее очередной актер похапэ
              • +2
                Судя по профилю (пункту «О себе» и карме) — я бы даже сказал «Чёрный властелин»
                • 0
                  Не, Чёрный властелин вроде еще до этого пытался захватить хабр.
                  • +1
                    <голосом рассказчика длинной поучительной истории>
                    … но попытка была неудачной… Карму ему слили, комменты минусовали, топики критиковали… Он расстроился и ушел на имиджборды.
                    </голосом рассказчика длинной поучительной истории>
            • +4
              Опасно вешать такой коммент в конце дня пятницы!
              • +1
                • 0
                  Я знаю, как Deffe может исправить ситуацию.
                • 0
                  Я тоже сначала пост по вашей ссылке прочитал, а потом здесь
                • –2
                  Зачет!
                  • 0
                    Написал, что статья зачетная — заминусовали. Как вас понять?
                • –27
                  > Да, у PHP сейчас лучший менеджер зависимостей из всех языков.
                  говорить так и менеджере зависимостей, который был inspired by npm — это по крайней мере смешно

                  > PHP все еще является наипростейшим языком для изучения не-техническими людьми
                  и именно это же является одной из его слабых сторон

                  > Давайте я вам рассскажу маленький секрет успеха PHP
                  нет, спасибо
                  • +8
                    именно это же является одной из его слабых сторон

                    Это преимущество, а не недостаток. То, что таким образом появляются «непрофессионалы» — проблема их самих, а не языка.
                    нет, спасибо

                    Аргументируете? Сами-то на чем пишете? Чем оно лучше? Оно успешнее РНР?
                    На последний вопрос сам и отвечу: как видно из предоставленной в статье статистики — нет.
                    • +3
                      > PHP все еще является наипростейшим языком для изучения не-техническими людьми
                      > и именно это же является одной из его слабых сторон

                      когда простота была «плохой»?
                      • –3
                        Простота плоха тем, что привлекает в область много профанов, которые считают, что научились программировать после того как сделали свой первый сайт. Этим же плохи современные доступные по цене зеркалки.
                        • 0
                          А вам то что до них? Ну профаны и профаны, конкуренцию специалистам они не сощдают, заполняя те ниши, которые те самые специалисты считают для себя недостойными.
                          • 0
                            Я же не писал, что переживаю из-за них. Просто таков сам факт и это в свою очередь формирует представление о языке и навыках, необходимых для разработки того или иного продукта.

                            (написано по просьбе 1999)
                    • +29
                      Если вы говорите, что PHP быстро развивается, то точно не видели Ruby и Python. Эти языки чуть ли не на прорядок быстрее развиваются.
                      • +24
                        Гиперболы в разговорах о PHP, как я вижу, не редкость, а норма.
                        • +1
                          Я ещё меньше года назад программировал на PHP… не успел я ещё гиперболизироваться.
                          • +3
                            Чтобы не быть голословным…

                            > Загляните на Packagist — основной репозиторий для Composer: в нем уже находится более 1900 пакетов и они были установлены более миллиона раз меньше чем за 3 месяца.

                            rubygems.org/
                            725,855,681 downloads
                            of 41,114 gems cut since July 2009

                            Ещё стоит учитывать, что Ruby разработчиков меньше, чем PHP…
                            • +10
                              маленькая особенность: since July 2009

                              3 месяца vs 3 года
                              • +2
                                Надеюсь, что зависимость не линейная от времени. Composer понравился :)
                              • +2
                                Я не совсем понял, вы сравнили количество скачанных ruby пакетов с количеством добавленных php пакетов?
                                • 0
                                  725 млн. вс 1 млн
                                  41114 вс 1900
                                  3 года вс 3 месяца
                                  • –2
                                    Так и не понял, что вы хотели сказать этими цифрами. Что за 3 года ruby пакетов добавили больше, чем php за 3 месяца?

                                    Судя по твитам Фабьена, следующая его статья будет о том, чем, собственно, composer лучше bundler'a ;)
                                    • +1
                                      Что сравнивали не количество закачек гемов с количеством пакетов композера.
                                      • 0
                                        Бандлер работает. Чем composer может быть лучше вещи, которая просто работает?
                                        • +1
                                          Тем, что он работает лучше? :)
                                  • +15
                                    Одна тонкость — для руби это официальный и едва ли не единственный источник?
                                    Для PHP же — это одна из множества альтернатив, о которой ещё далеко не все знают, поскольку неофициальная.
                                    Сравнение некорректно.
                                    • +6
                                      Это не тонкость, а сила языка. Нормальные программисы просто так делятся нормальным кодом.
                                      А в PHP-мире каждый второй сидит со своей CMS или велосипедом, боится показывать… иногда правда показывает и просит не малую цену.
                                      • 0
                                        С другой стороны как-то нет на слуху CMS на языках отличных от PHP. Фреймворки есть, CMS нет.
                                        • –1
                                          Те, кому нужны были CMS на Ruby, знают хотя бы парочку. Причем больная часть CMS — это надстройка над ROR.
                                          • 0
                                            Обычно людям нужна (если формализировать их требования) просто CMS, может несколько кастомных модулей к ней. Почему-то выбирают CMS на PHP и заказчики, и исполнители. Сам не знаю почему выбираю :) Может мало документации?
                                            • 0
                                              В 2000-2005 году рынок был переполнен дешевыми китайскими велосипедами с кучей перделок и все их покупали. Сейчас не один нормальный человек за такую кучу стали не сядет.

                                              Надеюсь и web-программисты образумятся.
                                              • 0
                                                Лучше плохо ехать, чем хорошо идти. Дарёному (почти) коню в зубы не смотрят. И т. п. Нормальных людей больше интересует соотношение цена/качество, а не качество само по себе.
                                                • 0
                                                  > Лучше плохо ехать, чем хорошо идти. Дарёному (почти) коню в зубы не смотрят.
                                                  Вообще не понял, о чем вы…

                                                  > Нормальных людей больше интересует соотношение цена/качество
                                                  У нас множество людей интересует только халява =)
                                                  • 0
                                                    Что-то мне подсказывает, что китайские велосипеды дешевле своих «оригиналов» были. Причём в цену оригиналов была и заложен т. н. интеллектуальная собственность и прочий НИОКР, на который китайцы не тратились.

                                                    Я это заметил и потому больше «финансовую подушку» не создаю, иначе встречу интересную задачу и буду приплачивать за возможность её решить :)
                                                    • 0
                                                      Ещё китайцы не тратились на прочность, плевали на материал (сталь вместо алюминия)… в общем все самое дешевое.

                                                      До ларька за пивом сьездить можно, но что-то серьёней и он разваливается. В общем не удачно сравнение выбрал, возможно не у всех есть такой транспорт.
                                                  • 0
                                                    Понятие «качество» — это очень вместительный латексный мешок. Для одних качество — это сайт с градиентами, а для других — это сайт, который конкуренты ддосили, ддосили, да не выдоддосили (говорю из личного опыта).

                                                    И вдвойне хорошо, когда сайт сам в себе сочетает все эти плюшки.
                                                    • 0
                                                      Люди выставляют «ТЗ», я уточняю неясные моменты и предлагаю ценник и сроки. За интересные задачи — скидка. Что они считают за качество мне не интересно, вся инфа (плюс-минус лапоть) у них есть.
                                                      • 0
                                                        Да ну глупость говорят и те, и другие. Все пускаются в обсуждение каких-то дебрей, которые не имеют отношения к PHP вообще никакого. Ни к PHP как языку, ни к PHP как к платформе. А так хотелось конструктивного общения.
                                                        • –1
                                                          Я предлагаю на выбор сайт на симфони и на рельсах, на рельсах в 1,5 раза дольше и в 1,5 раза дешевле. Никто не выбрал на рельсах!
                                                          • 0
                                                            «У меня есть негритянка и бурятка… негритянка 5000, а бурятка 3000… негритянка — просто огонь, но ее придется 8 часов подождать, а бурятка вот она». Уж простите мне что приходится общаться понятными для всех категориями.
                                                            • 0
                                                              Просто «бурятку» нужно дольше заводить до состояния «огня». Но это приятно, вот и скидка :)
                                                              • 0
                                                                Тьфу, негритянку.
                                                                • 0
                                                                  Ну нет, оплата у нас по часам )))
                                                                  • 0
                                                                    Час работы с положительными эмоциями стоит много дешевле чем с отрицательными. За костыль я беру больше денег чем за возможность покрыть тестами, отрефакторить и нормально внедрить фичу.
                                                                    • 0
                                                                      А я думаю о заказчике. О том, как он будет зарабатывать деньги не без помощи сайта. Он же не ради «потусить» пришел…
                                                              • +1
                                                                На рельсах в 2-3 раза быстрее получается, если сравнивать ROR и Symfony.
                                                                • 0
                                                                  Быстрее что?
                                                                  • +1
                                                                    Разработка.
                                                                    • 0
                                                                      Блин… ну почему все делают только тесты производительности выполнения компом фреймворков? Почему никто не сделает тесты производительности команд, разрабатывающих сайты на этих фреймах?
                                                                      • 0
                                                                        Я делаю. В среднем на рельсах в 1,5 раза дольше чем на симфони. Слышал и противоположные мнения.

                                                                        Производительность команды субъективна.
                                                                      • 0
                                                                        У одних быстрее на RoR, у других — на Django. Почему все сравнивают все только с PHP?
                                                                        • +9
                                                                          Ни что не объединяет Ruby и Python разработчика так, как затролить PHP =)
                                                                          • 0
                                                                            Это точно.
                                                                            • 0
                                                                              Вообще неправда. Случалось мне встречать такие сайты, к которым и хотелось бы придраться, да не получится. Все стройно и красиво. Да, они на PHP, но все очень прозрачно и легко доделывать. Прям низкий поклон их создателям!
                                                                    • 0
                                                                      У вас быстрее, у меня медленнее. На рельсах у меня быстро прототипы получаются, решения в лоб и т. п. Когда начинаются нестандартные сценарии, то предпочитаю переходить на симфони.
                                                                      • 0
                                                                        Вот!!! Нестандартное — для RoR равносильно экзекуции… А что касается меня, я предпочитаю облегчать бекенд и больше нагружать фронтенд. Для меня RESTful — манна небесная (ух, не надо мне писать про индексацию, я знаю о ней все). Так что, мне, по большому счету, вообще параллельно, на чем все это писать. Лишь бы не на батниках.
                                                                        • –1
                                                                          > Когда начинаются нестандартные сценарии, то предпочитаю переходить на симфони.
                                                                          Пример, пример пишите. Никогда у меня такого не было, все гладко списывается.
                                                                          • 0
                                                                            Может у вас более глубокие знания Ruby и/или RoR чем у меня. А может у меня более глубокие symfony2. И уж точно production окружение для php на голом debian/ubuntu я быстрее разверну раз в 100 чем рельсовое, лезть в ману или гуглить не потребуется.
                                                                            • –1
                                                                              Есть такие решения как capistrano и подобные. На голом сервере все само разворачивается одной командой.

                                                                              Руками приложение я разворачивают 5-10 минут… и то большая часть времени качаются пакеты и гемы.
                                                                              • 0
                                                                                Замечательно, что есть холивары. Вот был бы PHP полным бесповоротным отстоем — ну зашли бы мы, поплевались бы и вышли. Как в топике про Михалкова… скучно. А так — тренируем мозги, спорим.
                                                                                • 0
                                                                                  capistrano я пользуюсь чтобы разворачивать php приложения :)
                                                                                  • 0
                                                                                    Кажется мы уже где-то общались…
                                                                                    • +1
                                                                                      Конечно, я ни одной такой темы не пропускаю :)
                                                                                • 0
                                                                                  Смотрите, ставите…
                                                                                  — nginx
                                                                                  — postgres
                                                                                  — rvm

                                                                                  Дальше создать пользователя в базе, подправить конфиг. Качаете гемы и запускаешь unicorn… все…
                                                                                  • 0
                                                                                    Это я умею (только мускул предпочитаю, вроде же в рельсах есть DBAL), правда не нравится что при установке rvm приходится осуществлять лишние разумные действия — не заскриптуешь.

                                                                                    А кроме единорога есть ещё 100500 способов запустить рельсы. Мне почему-то пассажир ближе, а там тоже заморочки… Причём вроде есть deb пакет, но он совместим только с дебиан, а под убунтой не разрезолвить. И вообще само «качаете гемы» предполагает большее взаимодействие с сервером чем закачка файлов по scp.
                                                                                    • 0
                                                                                      > И вообще само «качаете гемы» предполагает большее взаимодействие с сервером чем закачка файлов по scp.
                                                                                      bundle install
                                                                                      


                                                                                      > Мне почему-то пассажир ближе, а там тоже заморочки…
                                                                                      Если использовать passenger, то ограничиваете себя одной версией Ruby.
                                                                                      • 0
                                                                                        Именно, доступ к серверу к серверу на исполнение нужен. Можно, наверное, обойтись обойтись копированием файлов по всей ФС, о как-тов туториалах такой путь не освещается и не освяается.
                                                                              • 0
                                                                                Я предпочитаю ровно наоборот. Максимум нагрузки на бэкенд. И да, через RESTful. :)
                                                                                • 0
                                                                                  Как же у вас это выходит? ))))
                                                                                  • 0
                                                                                    PUT /hubs/123/posts/15678/comments/56689['carma' => '+1']
                                                                                    • 0
                                                                                      Вообще лучше сделать просто…
                                                                                      PUT /comments/56689['carma' => '+1']

                                                                                      Иначе Rails сделает 3 запроса вместо одного.
                                                                                      • 0
                                                                                        Путь обеспечивает выбор нужного представления для редиректа.
                                                                                        • 0
                                                                                          Обычно такие запросы посылаются асинхронно… тут это не нужно, надуманно.
                                                                                          • 0
                                                                                            Так они и посылаются асинхронно. Просто в разных ситуациях разное представление.
                                                                                            • 0
                                                                                              Не понимаю о каком вы представлении. Ответ должен быть в виде JSON с кодом выполнения (успешно или нет) и вспомогательной информацией типа нового значения кармы.
                                                                                              • 0
                                                                                                Ответ может быть в любом виде. Технология AJAX подразумевает, что ответ в XML виде. Если вы называете «аяксом» технологию возвращающую не XML, то это ваши трудности. 'X' в 'AJAX' означает именно XML, а не JSON или HTML.
                                                                                                • 0
                                                                                                  AJAX уже давно не подразумевает XML. Да, изначально подразумевал. Сейчас — это общее обозначение таких вызовов, и пофиг, что там назад возвращается.
                                                                                • 0
                                                                                  Простите, а что такого нестандартного на RoR равно экзекуции, а на Symfony/Yii/etc — нормально?
                                                                                  • 0
                                                                                    Скорее самого языка касается, а не фреймворков. Проблемы составляет реализация бизнес-логики сложнее чем CRUD. Мне (почти) очевидна её реализация на PHP или C, а на Ruby я постоянно удивляюсь, если получается нагуглить решение.
                                                                                    • 0
                                                                                      Возможно вы плохо знакомы с языком? Метапрограммирование довольно хитрая вещь.
                                                                                      • 0
                                                                                        Я этого не отрицаю. Книги по метапрограммированию читал, но счёл, что большей частью оно схоже использованию отражений в PHP, то есть годится для библиотек или фреймворков с тщательно и подробно документируемым поведением. Я избегаю «магии» в коде.
                                                                                        • 0
                                                                                          В Ruby магия сплош и рядом. И при длительном изучении все получается очень просто. Такое поведение заложено в философии…

                                                                                          Язык следует принципу «наименьшей неожиданности»: программа должна вести себя так, как ожидает программист. Однако в контексте Ruby это означает наименьшее удивление не при знакомстве с языком, а при его основательном изучении.
                                                                                          • 0
                                                                                            Я сомневаюсь, что любой программист на Ruby сможет понять мой код не изучая код моих переопределений операций типа сравнения. Могу гарантировать что он будет удивлён сначала неожиданным поведением, потом тем что я поменял местами операции равенства и неравенства…
                                                                                      • +1
                                                                                        Вы скорее всего гораздо лучше знаете PHP, только и всего. Github на рельсах написан, а логика там явно за рамками CRUD. Да и Ruby позволяет такое, чего я на PHP даже не представляю (это уже со своей колокольни) :-)
                                                                                        • 0
                                                                                          Приведите пример того, что вы представляете на Ruby, ни не представляете на PHP?
                                                                                          • 0
                                                                                            Большая часть метапрограммирования, блоки, все, благодаря чему можно писать лаконичный и красивый код. попробуйте на php написать гем (ну ладно, PEAR модуль или что там сейчас в моде), который будет предоставлять такой синтаксис:
                                                                                            every 3.hours { awesome 'task', option: 'value' }
                                                                                            
                                                                                            • 0
                                                                                              Задача «предоставлять такой синтаксис» заведомо не корректна. Сформулируйте какую функциональность этот синтаксис предоставляет и как часто она встречается в проектах, написанных с нуля.
                                                                                              • 0
                                                                                                Функциональность? Писать лаконичный и понятный код, это для многих уже достаточный аргумент. Встречается во всех хороших проектах :-) Если знакомы с рельсами, должны были увидеть что различные DSL распространены довольно широко. Да, все это можно написать и на php, но будет гораздо уродливее (даже Yii сравнить с RoR, видно что ребята старались соответствовать, но сам язык подвел).
                                                                                          • 0
                                                                                            Я так подозреваю, что гитхаб всё же основан на какой-то СУБД и/или плоском хранилище. Какие операции доступа к внешнему сервису позволяет руби и не позволяет пэхэпэ?
                                                                    • +2
                                                                      Обычно людям нужно решить опеределенную задачу. И они обращаются к специалистам. А специалистам задачу решать не нужно. Специалистам нужно зарабатывать как можно больше денег, тратя на это как можно меньше времени. Отсюда и CMS. Которые, как известно, пишут только на PHP. :)
                                                                      • 0
                                                                        Я предпочитаю решать задачу заказчика наиболее эффективным из известных мне способов. Я считаю деньги заказчика, чтоб за как можно меньшее число часов ему мне пришлось платить. Если задача интересная, то ещё и скидку делаю.
                                                                        • 0
                                                                          А говорите ли вы себе «СТОП», если понимаете, что возможностей CMS для решения задачи явно недостаточно?
                                                                          • 0
                                                                            Даже немного раньше :) Мне интересней разрабатывать под фреймворками или даже с нуля.
                                                                            • +1
                                                                              Часто бывает такое, что у CMS куча возможностей, но ни одна из них не подходит для решения поставленной перед тобой задачи. И понеслась генерация говнокода. Лично я за использование фреймворков и полное уничтожение CMS как класса.
                                                                              • +1
                                                                                По личному опыту CMS (вкупе с популярными модулями/плагинами/...) решают задачи процентов на 90.
                                                                                • 0
                                                                                  Господи-боже… какие же это задачи?
                                                                                  • 0
                                                                                    Управление контентом, как ни странно :)
                                                                                    • +1
                                                                                      Ясно… тогда ТЗ должно звучать так: создать сайт, который бы позволял управлять контентом сайта для компании «Водка-Селедка Консалт». Да? Ведь задачи-то глубже. Нет?
                                                                                      • 0
                                                                                        Глубже конечно. Но беглое знакомство даже с малознакомой CMS как правило показывают, что модули уже есть.
                                                                                        • 0
                                                                                          К сожалению, это только если бегло с ними знакомиться. Если знакомиться подробно, то грузчики покраснеют, если я выскажу свое мнение.
                                                                                          • 0
                                                                                            Субъективно быстрее откастомить.
                                                                                            • 0
                                                                                              Субъективно? У меня, иной раз, дефицит матерных слов случается, когда открываю откастомленное такое… произведение. И это не смешно, между прочим. Это грустно. Благодаря таким вот товарищам, заказчики ненавидят всех сайтоделов как класс. Они думают, что задача сайтодела в том, чтобы срубить побольше бабла и создать побольше проблем.
                                                                                              • 0
                                                                                                Мои заказчики ни разу за 10+ лет моего программирования на PHP не высказывали недовольства моим кодом.
                                                                        • 0
                                                                          На всякий случай, чтобы вы случайно не приняли меня за злобного тролля… Я каждую неделю трачу значительное количество своего рабочего времени на сопровождение корпоративного сайта. Так получилось, что сайт сделан на CMS (Bitrix). И вот честно, че-то мне не кажется, что CMS — это именно то, что нужно людям. Bitrix помог исполнителям заказа быстро срубить хорошие деньги, да. Но тем, кто сейчас занимается поддержкой этого супа с топором — поверьте, CMS нифига не кажется воплощением наших пожеланий.
                                                                          • 0
                                                                            Значит вы (сайт я как понял ваш?) не смогли сформулировать свои требования. Я, как исполнитель, в случаях когда «ТЗ» заказчика допускает двоякое трактование всегда уточняю все нюансы. В частности интересует заказчика ли заказчика стоимость поддержки. Верите — нет, но мне зачастую проще и экономически выгоднее накидать костылей на CMS, я уточняю у заказчика и если его это устраивает делаю ему скидку.
                                                                            • 0
                                                                              я уточняю у заказчика и если его это устраивает делаю ему скидку
                                                                              Пожалуйста, попробуйте у меня уточнить это…

                                                                              Я недавно оказался в славном городе Подольске. Первый вопрос, который мне задала девушка, был «на какой ЦЭМЭЭСКЕ работаешь?» Прямо как в СИЗО (не дай бог) побывать…
                                                                              • 0
                                                                                Встречный вопрос — вас интересует качество или скорость?
                                                                                • +1
                                                                                  Я правильно понимаю, что вы лично только что косвенно подтвердили, что CMS — средство для быстрого создания некачественных сайтов? :)
                                                                                  • 0
                                                                                    Браво!
                                                                                    • 0
                                                                                      Нет. CMS средтсво создания сайтов близких к оптимому качество/себестоимость.
                                                                                • 0
                                                                                  Нет, я лично писал ТЗ, и все важные моменты там были оговорены. Но у меня не было полного контроля над процессом принятия решения «быть, или не быть». В результате, ТЗ реализовано где-то на 60% (формально — т.е., 60% оговоренного функционала как-бы доступны, но логикой в способе доступа к ним даже не пахнет).

                                                                                  Сайт не мой — я всего-лишь сотрудник близкого ИТ-партнера крупной компании.
                                                                  • +18
                                                                    Ребят, неужели вас так легко затроллить? :)

                                                                    Понятно что Fabien в некоторых моментах приукрасил, просто чтобы привлечь внимание (что, кстати, явно удалось :D). А внимание он (ну и я, как переводчик) хотел привлечь к тому что PHP — уже давно не то, что вы пробовали в школе в 2005 году.

                                                                    Теперь это полноценный язык, который очень быстро развивается и с очень активным коммюнити. И прежде чем писать очередной пост ненависти в сторону PHP — посмотрите что нового произошло. Вполне может быть что вам даже понравится.
                                                                    • +2
                                                                      Я знаю, сам пишу движок под PHP 5.4, и будьте уверенны, в курсе, как он развивается.

                                                                      Просто это мой субъективный взгляд со стороны на статьи об PHP. Одни хотят унизить PHP посильнее, а вторые вознести к небесам. Мне нравится язык, но объективность точки зрения в статьях часто страдает.
                                                                      • 0
                                                                        Действие рождает противодействие. Если не возносить к небесам, то унизят и общая картина объективна не будет. А так минус на плюс даёт ноль и общую картину можно считать объективной. :)
                                                                        • +2
                                                                          «средняя температура по больнице — комнатная».
                                                                        • 0
                                                                          Какой смысл в движке конкретно под PHP 5.4. Поясните, пожалуйста.
                                                                          • 0
                                                                            Движок пишется не под PHP 5.4, а с его использованием. То есть с использованием тех особенностей, которых не было в предыдущих версиях. Не совсем корректно выразился изначально.

                                                                            Например, поведение $this в замыканиях, вызовы типа

                                                                            echo (new Class())->{'some crazy function with spaces'}($value)[0][1];
                                                                            

                                                                            И тому подобное.
                                                                            Просто такие конструкции в определённых ситуациях сильно пригождаются, позволяют писать более компактный и быстрый код. А ещё чаще это просто удобно.
                                                                            • 0
                                                                              За одну возможность писать [...] вместто array(...) я был готов продать душу дьяволу, но обошлось без этого. Жду предложения по типизации выражений и…
                                                                          • 0
                                                                            Я чуть меньше года назад ушел с PHP, но слежу за всеми новостями из этого, копаюсь в новых фреймворкам. Иногда просят что-то подправить на PHP-сайтах.
                                                                          • +2
                                                                            Вы не правы. О быстром развитии — это вовсе не гипербола. Гиперболы в разговорах о PHP чаще всего только в разговорах о недостатках этого языка. Мало кто знает о его реальных возможностях. Чаще всего люди под влиянием всех этих «критиков» уходят из PHP раньше, чем успевают изучить его, а потом рассказывают о преимуществах других языков и недостатках PHP.
                                                                          • 0
                                                                            Ага, развиваются: python3wos.appspot.com/ :)
                                                                            • 0
                                                                              Изменения в PHP пока что по большому счёту были обратно-совместимыми. Разве что выпиливание отдельных элементов типа register_globals.

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

                                                                              Возможно, разработчики PHP просто поступают осторожнее, внося изменения аккуратно.
                                                                              • 0
                                                                                Экзистенциализм же
                                                                                • +1
                                                                                  Ну я как бы и не утверждал обратного.

                                                                                  Это просто ответ на комментарии «PHP недостаточно быстро развивается» и «другие языки развиваются быстрее».

                                                                                  Есть разница между развитием и переделыванием. Python как раз переделали — получили 2 активно используемые, но практически несовместимые версии и сообщество, которое вот уже 4 года не могут заставить перейти на новую ветку.
                                                                                  • 0
                                                                                    У меня огромный проект перешел с 5.2 на 5.3 вообще без никаких проблем.

                                                                                    Да, с переходом с 4 на 5 версию были бы проблемы, но время 4 ветки ушло еще в 2005 году, сегодня наверняка прощелучше переписать приложение, будет и быстрее и более поддерживаемее.
                                                                                • 0
                                                                                  Вспоминается притча о двух музыкантах. Один музыкант перебирал струны, брал аккорды, а другой, постарше, дергал за всего одну струну и брал только один аккорд. Мораль такова: первый только ищет, а второй уже нашел.
                                                                                  • 0
                                                                                    Я бы сюда ещё C# приплел, угнаться за ним многим сложно.
                                                                                  • +7
                                                                                    Главная задача на близкое будущее — чтобы поддержка 5.4 появилась в услугах виртуального хостинга, а не только при ручной настройке сервера. Многие рядовые пользователи пользуются именно такой услугой, а там только 5.3, да и то не так давно появился.
                                                                                    • +23
                                                                                      А Руби-то с Питоном на виртуальных хостингах завались, конечно.
                                                                                      • +1
                                                                                        Есть не мало решений типа heroku.com, есть дешевле.
                                                                                        • +3
                                                                                          Про Руби не знаю, но Питона, вообще-то, завались.
                                                                                          • 0
                                                                                            Шо ви говорите?
                                                                                            Вот я прям щас попытался найти хостинг с поддержкой Python 3.2 и не нашел ничего на первой странице выдачи + рекламе. (Если точнее, ни на одном хостинге «с поддержкой Python» я не нашел указания версии совсем.)
                                                                                            • +4
                                                                                              обычно у заказчика требующего python/ruby найдётся 10-20уе/мес на нормальный VPS…
                                                                                              хотя если вы намекаете, что ниша РНР — малонагруженны сайты на 1 долларовых недохостингах, тогда вопросов не имею)

                                                                                              ну и про «хостинг» (хостинги в том виде, в котором они есть в РНР, малопопулярны в других языка) с py3.2 — docs.webfaction.com/software/python.html
                                                                                              • +3
                                                                                                Зато хостинги в таком виде популярны у заказчиков, не имеющих в штате грамотных сисадминов. Установить приложение по ftp может чуть ли не секретарь.
                                                                                              • +3
                                                                                                А что, много проектов есть на Python 3.2?
                                                                                                • +2
                                                                                                  Думаю, примерно как на PHP 5.4
                                                                                                  • +1
                                                                                                    С питоном немного другая история. Насколько я знаю, сообщество до сих пор саботирует переход на python 3.x, т.к. обратной совместимости нет, а пользы от него мало. Полезные нововведения дублируются в ветке 2.x. Главный фреймворк — Django — только еще анонсирует экспериментальную поддержку Python 3.3. Какой смысл держать на хостинге Python 3? Для крутых программистов, которые хотят экспериментировать? Так вирутальный хостинг им не подходит по многим другим причинам.
                                                                                                    • 0
                                                                                                      Я как бы в курсе :)
                                                                                                      Ветка началась с жалобы на то, что развитие PHP задерживает отсутствие 5.4 на виртуальных хостингах.
                                                                                                      Ну так вот, с актуальными версиями Питона и Руби (да и вообще с хостингом Питона и Руби) всё куда как печальнее. А про node.js я вообще молчу.
                                                                                                      • +1
                                                                                                        Всё так, но актуальная версия Python — 2.7.3.
                                                                                                        • –5
                                                                                                          А PHP — 5.0 ;)
                                                                                                          • 0
                                                                                                            Я понимаю, что вы шутите, но нас читают дети.
                                                                                                            Для них я на всякий случай напишу это:
                                                                                                            PHP 5 was released in July 2004.
                                                                                                            Python 2.7.3 — 11 April 2012.
                                                                                                            • –1
                                                                                                              Я не понял смысла вашего ответа.
                                                                                                              «Актуальная» версия PHP — это 5.2.17, выпущенная 6.01.2011
                                                                                                              Именно оно и стоит на большинстве хостингов, потому что ветки 5.0-5.2 практически не отлисаются в плане обратной совместимости.
                                                                                                              5.3 и 5.4 — совсем другая песня. Не того, конечно, масштаба, что Python 3.x или Ruby 1.9, но что-то рядом. Его пока ставят неохотно — оно и понятно.

                                                                                                              Так что ситуация, в общем-то, очень похожая у PHP и у Python/Ruby
                                                                                                              • 0
                                                                                                                Да, люди часто друг друга не понимают. Есть такая проблема.
                                                                                                • 0
                                                                                                  Ну вот у меня 3.1 есть (и в тарифах написано). Нужен 3.2? Не проблема — никто не спрашивал. Может на следующей неделе и сделаю. diphost.ru
                                                                                                  Вообще странно про «ни на одном». В РФ практически три хостинга когда-либо позиционировавшие себя как хостинги с Python — netangels, мы и каким-то боком jino.