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. |