View difference between Paste ID: xaUxDYTz and u7rvgnEp
SHOW: | | - or go back to the newest paste.
1
Вины php:
2-
1. Специальный синтаксис для переменных. Делает код более читаемым и позволяет реализовать несколько интересных возможностей, в частности вин №2.
2+
1. Современный php поддерживает как лучшее чем в java ООП (за счёт хотя-бы traits и позднего статического связывания) так и уже неплохие лямбды & функции высшего порядка.
3-
2. Метапеременные. Слепящий вин, который обязан быть в любом языке поддерживающем eval. Позволяет писать:
3+
2. Метапеременные AKA первоклассные методы и типы:
4
- $object = new $my_class();
5
- $object->$my_method()
6-
3. Универсальные коллекции - array(). Абсолютный вин. Один синтаксис для словарей, массивов, списоков, кортежей (list keyword), стеков, очередей и деревьев, с приемлемой (и даже высокой) скоростью доступа.
6+
7-
4. Возможность конструировать объекты "на лету" и преобразование в массив и обратно: (object)array(), (array)$object. Лучше только в javascript.
7+
8-
5. Динамическое включение файлов - include.
8+
1. Специальный синтаксис для переменных. Эдакая недовыпиленная венгерская нотация.
9-
* Кроме того, современный php поддерживает как лучшее чем в java ООП (за счёт хотя-бы traits и позднего статического связывания) так и уже неплохие лямбды & функции высшего порядка.
9+
2. Универсальные коллекции - array(). Один синтаксис и одинаковые характеристики для словарей, массивов, списков, кортежей, очередей и всего прочего. Впрочем, софт на PHP всё равно все данные хранит и обрабатывает в СУБД. Да и пыхообезьянку не могут в амортизационный анализ.
10
3. Возможность кастить любую хуету во что угодно: (object)array(), (array)$object. Хлеще только в javascript.
11
4. Динамическое включение файлов - include. Позволяет фанбою, только-только узнавшему про метапрограммирование, превратить программу в монолитный кусок говна одним коммитом.
12-
1. Неоднородное именование и неоднородность между классами и функциями в стандартной библиотеке. Не то чтоб большой фейл, скорее досадное неудобство по началу. К этой же категории относится необычный синтаксис пространств имён.
12+
5. Неоднородное именование и неоднородность между классами и функциями в стандартной библиотеке. Не то чтоб большой фейл, скорее досадное неудобство по началу. К этой же категории относится необычный синтаксис пространств имён.
13-
2. Некоторые странности с приведением типов вроде count(false) == 1. Остаётся надеяться, что это скоро поправят.
13+
6. Обилие legacy синтаксиса. Впрочем, это неизбежность для настолько хуево спроектированного языка.
14-
3. Обилие legacy синтаксиса. Но это не недостаток, а неизбежность для языка такого возраста.
14+
7. Lexical scoping. Nuff said.