Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
January 23rd, 2014
Он медленный, неуклюжий
Если вы делаете CMS в проекте, которому нужны 100 серверов, вам придётся деплоить CMS целиком на каждый из 100 серверов.
Какие инновации в мире PHP существуют сегодня?
Люди добавляют pthreads, когда в языке нет инструментов для работы с параллелизмом. Для контраста взгляните на Clojure.
Сложная система кэширования кода у Symfony.
В комментарии добавляют аннотации – инструкции, контролирующие выполнение программы.
Список изменений и исправлений, которые необходимо сделать из-за длинной истории противоречивой разработки.
Разбухшее управление памятью.
Ритуальное программирование – куча ненужных инструкций, без преимуществ вроде проверки на этапе компиляции.
declare(strict_types=1); для жаждущих строгой типизации.Любовь к сложности ради сложности.
Никаких настроек для управления и конфигурирования.
Обилие обезьяньих патчей (подмены методов и значений атрибутов классов программы во время ее выполнения). traits похожи на обезьяньи патчи в Ruby, но с traits ещё сложнее работать, а также отслеживать и отлаживать их.
Бесконечное множество функций, введённых для удобства.
Вместо этого Рамус Лердорф говорит вещи навроде
Недостаток глубокого видения у лидеров команды разработчиков PHP ведёт к уродливым проявлениям, в частности, к отсутствию наставлений для начинающих программистов о том, как писать на PHP хороший код.

Список изменений и исправленийbugs.php.net/bug.php?id=50696
We are passing a (possibly uninitialized, or null-valued) variable to the function, in hundreds of places and web pages…И, насколько я понял, это и есть автор этой статьи…
We have number_format in literally thousands of places across 50 or 60 separate products...
Perl – почти так же хорош, как PHP, только без системы управления пакетами.Да уж конечно. Сколько лет прошло, а я до сих пор помню команду perl -MCPAN -e shell ← это и есть система управления пакетами.
Java – лучше, чем С, но всё ещё многословный и долго компилирующийся. Управление зависимостями было сложным делом.
Боюсь что всё неудобстово с языком возникает от неумения его использовать.

С точки зрения «визуальной красоты» — удобнее. С точки зрения практики — однофигственно. Благо достаточно набрать «lowe», что б получить точно такой же список (из 3х функций) для перевода строковых данных в нижний регистр, вместо использования объектного интерфейса.
две строчки из скриншота сократятся до $number = (int)«42»;, что по-моему ещё удобнее и проще.
var number = "42".ToInt();
. Если все строготипизированные развиваются из строгой типизации в более слабую
сверхнизкая стоимость кода
Хотелось бы мне, чтобы люди могли ответить мне на вопрос «почему бы я сегодня выбрал для себя PHP?».
PHP устарел, потому что я на нем писал в 2000 году
Один `[]` заменяет HashMap, HashSet, T[] (т.е. массивы) и прочееИ оттого работает чудовищно неэффективно по памяти.

Двойное двоеточие позволяет визуально определить где обращение к объекту, а где вызов статики:
class OtherClass extends MyClass
{
public function myFunc()
{
parent::myFunc();
echo "OtherClass::myFunc()\n";
}
}
So, word of warning: apparently, some PHP installations will let you use a $instance::method(), while others don't.
Чтоб обосновать выбор стрелочки в качестве доступа к объектам — надо пойти чуть глубже: Распространённая практика использования символа "+" для конкатенации строковых значений.
И нет, не совпадение, а дальновидность дизайнеров языка, которой я поражаюсь.
Вместо этого Рамус Лердорф говорит вещи навроде:
У нас есть защищённые свойства, абстрактные методы, вся эта фигня, про которую ваш учитель информатики вам рассказывал. Мне на всё это дерьмо плевать.
Хозяйке на заметку: PHP в линейном массиве из int-ов отводит где-то по 70-80 байт на элемент.
Почему PHP устарел