Так что меня убедили заняться блогом для Sitepoint, и это мой первый пост. Я буду писать в основном о PHP, так как это моя основная сфера компетенции, но, вероятно, затрону смежные темы.
В любом случае, пытаясь не превращать это в еще один «Hello World», я решил немного задуматься о том, что особенного в PHP.
PHP ничего не делает
Это в основном сводится к одной вещи; PHP ничего не делает для вас.
Взглянув на орды расширений, которые поставляются с PHP по умолчанию — или подавляющий массив основных функций — может показаться, что PHP делает очень много вещей, но это не так. На самом деле, нет. Эта функциональность в основном пассивна; Когда вы смотрите на языковое ядро, оно делает очень мало предположений о приложении, которое вы собираетесь создавать. Вместо этого он предоставляет инструменты для этого.
Это традиция открытого исходного кода. Linux славится наличием множества настольных сред, интерпретаторов оболочек и прочего. PHP следует той же организации. У него есть одна точка разворота; Сам язык имеет только одну официальную реализацию. Ну, на самом деле два, но, надеюсь, это будет исправлено в конце концов .
PHP не имеет основы ..
В наши дни рамки приложений все в моде. Проще говоря, фреймворк — это свод правил написания приложения, поддерживаемый набором библиотек для поддержки этого конкретного способа. Правила помогают вам при создании приложения, а библиотеки лучше интегрируются, потому что они могут делать предположения о вашем приложении.
Именно Rails превратил его из увлечения в шумиху, которой он стал, но у PHP есть своя собственная доля. Не удивительно, учитывая разнообразие расширений и библиотек для PHP, что в отличие от большинства конкурентов PHP нет единой определяющей среды. Это небольшая проблема, так как фреймворки имеют тенденцию быть взаимоисключающими — по крайней мере, до некоторой степени.
.. и этого тоже не будет!
Некоторые могут сказать, что это вопрос времени, прежде чем один будет управлять ими всеми. Я скорее верю, что уникальная природа PHP заключается именно в его разнообразии. Это разнообразие обеспечивается отсутствием единой прикладной среды, тесно связанной с языком.
Нельзя сказать, что для рамок нет места, но это всегда будет во множественном числе. Это делает их принципиально отличными от монолитов Ruby или .NET. Поднимает ли это настроение или угнетает, это вопрос личного характера, но это неоспоримо.
Теперь, это должно побудить некоторые комментарии.