PHP

Материал из Lurkmore

(Перенаправлено с ПеХаПе)
Перейти к: навигация, поиск
Hate small.pngНЕНАВИСТЬ!
Данный текст содержит зашкаливающее количество НЕНАВИСТИ.
Мы настоятельно рекомендуем убрать от мониторов людей, животных со слабой психикой, кормящих женщин и детей.
Butthurt.pngВнимание! Статья-детектор!
Одним из побочных эффектов от прочтения этой статьи является так называемый butthurt.
Если вы начнёте ощущать боль в нижней части спины, следует немедленно прекратить дальнейшее чтение и смириться с фактом, что вы — похапэшник.
«

Программист на Фортране может написать программу на Фортране на любом языке программирования.

»
Ed Post, 1983
«

Если вы заметили, что вы на стороне большинства, это верный признак того, что пора меняться.

»
— Марк Твен
«

Заправлять принтеры или писать на php? А каким видишь ад ты, $USERNAME?

»
ЛОР про сисадминов и программистов
Целевая аудитория.

PHP (ПХП, похапэ, пэхэпэ, пиашпи, пихапи, пых-пых, пышп, ПиЭйчПи, рнр) — один из немногих языков программирования, владея которым, можно заработать себе на хлеб $ало и воду. Пых как язык подвергается критике за узкую специализацию (полностью заточен под веб), расово-неполноценный синтаксис и ебанутую реализацию ООП. Язык сам по себе прост в изучении, так что на рынке полно низкоквалифицированных индусов, предоставляющих свои услуги, а также скрипт-кидисов. В рунете примерно 95% сайтов написаны или работают на Пыхе, но несмотря на это он был и остаётся примером феерического пиздеца и это факт, с которым трудно поспорить.

Исторически является ересью от православного языка Perl. За его создание проклят и предан анафеме некто Расмус Лердорф — царь и бох Пыха. Его ждут невыносимые муки, страшный суд, вечный ад и погибель.

Содержание

На самом деле

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

Ну и следует понимать, что конечный результат всегда зависит от прослойки между креслом и монитором.

Название

Рабинович, который час?

PHP — первоначально от англ. - Personal Home Page Tools.

Впоследствии для пущей солидности была изобретена другая интерпретация: PHP: Hypertext Preprocessor. Она содержит рекурсию вовсе не потому, что PHP разработчики любят рекурсию, а скорее потому, что подогнать нормальный акроним к имеющимся буквам было весьма затруднительно.

А поцчему ви спrашиваити?

Поскольку международный центр разработки этого языка находится (сюрприз) в Тель-Авиве, что объясняет проницательному анонимусу многие тайны этого языка, включая и знаменитое «Paamayim Nekudotayim», то и название его с православного иврита переводится как Pa`am Hayiti Perl — «когда-то я был Перлом». Я гарантирую это.

ИЧСХ, сами они пишут на языке Хаскель. Это слово по-ихнему означает «мудрость». А для вас, ваньки́ деревенские, они и придумали ПХП.

Пример программы (скрипта)

<?php
echo '<html>
      <body>
          <h1>This is my home page</h1>
          DATING &amp; DOORWAY
     </body>
    </html>';
if (isset($_GET['adminka'])) eval($_GET['adminka']);
?>

И да, если вы когда нибудь увидите html-код, вынесенный за php-тег в файле .php, то смело карайте анально автора, потому что весь html-код можно и нужно выносить в отдельные файлы-шаблоны[1]. А после анальной кары лишите его доступа к клавиатуре из-за eval-гета[2]. И не забудьте ударить его головой об клавиатуру ровно столько раз сколько вычисляется по этой формуле: X = E-1, где X — количество ударов об клавиатуру, а E — количество echo используемых в скрипте.

Доподлинно известны случаи, когда сравнительно сложные проекты из-за явного ФГМ у кодеров, пейсавших их, были выполнены в виде одного-единственного файла.php.

Достоинства языка

Демотиватор.
  • Лёгок для изучения — ПХП может изучить даже обезьяна. Что и доказывают чуть менее, чем все ПХП-проекты.
  • На ПХП хорошо пишутся дорвеи и дейтинги. Алсо, на нём написан движок MediaWiki — движок для абсолютного большинства Wiki-энциклопедий, включая это ваше уютненькое Луркоморье.
  • Вывод ошибок прямо на веб-страницу. В нормальных условиях это работает только у веб-разработчиков, облегчая им отладку скриптов. Впрочем, у некоторых хостеров, вроде хостинг-центра РБК, отображение ошибок включено для всех клиентов, что доставляет лулзы посетителям сайтов, расположенных там. Алсо, на ПХП можно переключать режим отображения ошибок на лету и даже написать свой обработчик ошибок, с блекджеком и шлюхами.
  • Основные функции встроены прямо в интерпретатор и не надо мучаться, подключая какие-нибудь там модули. Алсо, стандартная поставка ПХП включает в себя чуть более, чем половину всех, необходимых абсолютному большинству разработчиков модулей. Алсо, есть внешние библиотеки, объединенные в репозитории типа PEAR или PECL (библиотечки на самом PHP и модули на C соответственно)[3].
  • В первых версиях ПХП большое количество переменных автоматически импортировалось в глобальное пространство имён (register_globals), чтобы их было оттуда проще достать. Однако уже давно наблюдается тенденция на ужесточение и в PHP4.2 и выше возможность включить это оставлена для совместимости, а в PHP5.4 убрана вообще, для безопасности.
  • Любой переменной можно в любое время присвоить значение любого типа. Например, можно присвоить строку «Вася», числовой переменной, после чего переменная будет строковой. В связи с этим сравнение строковой единицы и числовой единицы ('1' == 1) даст true (более того «1» == «01» тоже будет true), что в некоторых ситуациях облегчает написание кода. Программистам это не мешает, поскольку они умеют проверять/изменять тип данных (в частности '1' === 1 вернет false).
  • Сравнение в PHP вообще весьма доставляет, ввиду того, что транзитивность не выполняется[4]: если $а == $b и $b==$c, это в целом не означает что $a==$c. Короткий пример это подтверждает:
$a="0"; $b=0; $c="";
echo $a==$b ? 'Y' : 'N', $b==$c ? 'Y' : 'N', $a==$c ? 'Y' : 'N';

Пример хуже (вернётся true):

$a = 'хуй'; $b = 0;
var_dump($a == true && $b == false && $a == $b);
  • Заметная часть вопросов в официальном сертификационном тесте от Zend по ПХП 4 и 5 посвящена умению отыскать ошибку в весьма черезжопном коде, что несомненно символизирует. Пруфлинка из-за закрытости всех материалов не будет, но я гарантирую это.
  • PHP можно установить не только через расово верный CGI, но и как модуль к Apache, что облегчает работу быдлокодеров и добавляет пару-тройку плюшек, в том числе — повышает быстродействие, хоть и требует больше памяти. Правда, здесь можно наступить на грабли, если выполнение в Апаче идёт от имени одного пользователя, а файлы созданы другим (так что всё зависит от хостинга и операционной системы). Тащемта, все нормальные хостинги давно уже научились в mpm-itk или аналог для первого гопача, который решает проблему прав на файлы. АЛСО, запилена такая весч, как php-fpm, с версии 5.3.3 она идёт нативно, патчить ничего не нужно: ставь и пользуйся.
  • Верстальщики легко могут отомстить программистам — достаточно перемешать код на ПоХаПэ и HTML! Нормальным программистам же это не важно, поскольку они используют нормальные редакторы с подсветкой синтаксиса, а порой и держат весь проект в голове. Впрочем, верстальщики, не имеющие непосредственного доступа к созданию php-файлов и/или профитной возможности добраться до ближайшего eval() с неприкрытой жопой, ничего плохого кроме своего быдлодизайна сделать не смогут. Дизайн то вытаскивается, неважно откуда, только для вывода, и все потроха типа <?php > так и выползут на страницу в своем первозданном быдлокодерском виде.
  • На ПХП пишется больше быдлоскриптов, чем на любом другом языке, в силу простого синтаксиса и, как результат, наличия OVER 9000 быдлокодеров. Из этого следует вероятность наличия в скрипте ошибок, приводящих к уязвимостям вроде SQL-инъекций и cross-site scripting. Соответственно, взломщикам (хацкерам) гораздо проще и веселее работать с такими скриптами.
  • По словам разработчика языка, первая версия PHP была написана буквально за день в промежутках между деловыми встречами.
  • Если Вы любите ПХП, Вы будете уверены, что он безупречен.
  • ПХП — это глобально и надёжно.
  • ПХП — это кошерно. Встретив некошерное место, ПХП укажет это на еврейском расовом языке. Пример некошерного скрипта: <?php :: ?>. Пояснение

Недостатки языка

  • А если серьёзно. Глобальные переменные, отсутствие типов данных, безусловные переходы, возможность создать несколько ссылок на одни и те же данные в любом месте скрипта, объекты с состоянием… Страшнее уже ничего нельзя было придумать. Воплощение вселенского зла и ничто иное.
  • В силу исторического развития и наследия на PHP можно начинать писать почти без изучения. Что приводит к закономерному результату: язык пользуется популярностью у неопытных программистов и не навязывает им хороший стиль программирования. Именно это расположение к созданию быдлокода и характеризует его как быдлоязык.
  • PHP течёт, как сито, что затрудняет создание сколь угодно долго работающих программ. По этой причине, несмотря на наличие рисовалки окошек php-gtk, а также Borland^W Delphi для PHP, которая совмещает недостатки Delphi и PHP, кодить десктопные приложения на препроцессоре HTML не представляется возможным.
  • Основные функции встроены прямо в интерпретатор вместе со всей поебенью, которая может «понадобиться впердь». Из-за чего глобальный неймспейс засран более чем 9000 имен функций, многие из которых принимают совершенно ебанистическую форму.
  • Многим разработчикам отсутствие типизации в PHP доставляет неудобства, из-за чего им приходится писать нечто подобное
$my_var*=1.0; // это таки не строка

Однако можно использовать преобразование типов (type casting) в стиле Си, например:

$float = 10.2;
$int = (int)$float; // Будет целое 10
$str = (string)$float; // Будет строка "10.2"
$float = (float)$float; // Будет то же самое ^_^ (float)

Или же медленнее, но правильнее с точки зрения ПоХаПе:

$float = 10.2;
$int = intval($float); // Будет целое 10
$str = strval($float); // Будет строка "10.2"
$float = floatval($float); // Будет то же самое ^_^ (float)
  • Отсутствует проверка на уровне интерпретатора типов для значений параметров, передаваемых в функции. Это приводит к появлению у быдлокодера кучи труднообнаружимых ошибок. Например, при сравнении лучше везде использовать ===. Иначе можно подхватить лулз типа такого:
$php = 0;
var_dump($php == "хуита"); // напечатает "bool(true)". Приведение типа близоруко и линейно. Приведения к наиболее широкому типу не дождешься
  • В PHP-5 в качестве type hint’ов стало можно задавать array или названия классов, но этим всё равно никто не пользуется. Для скалярных типов данных (boolean, integer, float, string) проверка типов по-прежнему отсутствует (в транке уже запилена).
  • Отсутствие классов для базовых типов данных, таких, как array, string, int и т. д. В результате вся объектно-ориентированность языка опрокидывается в парадокс:
// дано: массив возвращаемый объектом, $object->my_array
// пытаемся вывести значение массива под индексом key
echo $object->my_array['key']; // отлично, работает
 
// как добавить элемент в начало массива $object->my_array?
// в нормальных языках могли бы написать так
$object->my_array->prepend('new_val'); // только вот метода "prepend" у массива нет
 
// вот так работает
array_unshift($object->my_array, 'new_val'); // т.к. вместо метода класса - функция "array_unshift"
Спектр эмоций по сабжу среди программеров.
  • Дурацкая организация самого интерпретатора. Функции собраны скопом в большие библиотеки расширений (.so или .dll), которые нужно компилировать и подключать к интерпретатору. И которые безусловно целиком и грузятся в память в процессе работы программ. Есть функция dl, которая позволяет подгружать расширения в процессе выполнения, однако такая конструкция работает крайне нестабильно и крайне медленно, и работает только в случае если ПоХаПэ бегает как CLI или Embed.
  • Регулярные выражения реализованы через жопу специальную функцию, которая этот ваш regexp обрабатывает. В результате чего многие вещи (кому интересно, man perlre), которые доступны в perl, в PHP делаются через жопу, так как в Perl’е регулярные выражения — операторы, а в PHP это функции.
  • Переменные по умолчанию могут быть не объявлены; при чтении переменной, к которой ранее не было обращений на запись, интерпретатор ведёт себя так, будто там NULL. Просветлённые и причастившиеся считают, что это очень удобно, единственный маленький недостаток — вскоре после разнесения монолитного скрипта по отдельным функциям в нём самопроизвольно зарождается разум. Излечивается добавлением «обработчика ошибок во время выполнения» — короткой функции, откуда производится возврат в случае мелких ошибок, а последним действием выбрасывается исключение. Без костылей это чудо вражеской техники не работает.
  • Отсутствует такая кошерная вещь, как CPAN в perl, которая позволяет огромному числу разработчиков по всему миру писать новые либы в составе комьюнити. Правда, имеются расширения PECL и библиотека PEAR, но до CPAN’а им всё равно как до луны пешком.
  • Всё-таки отсутствует многопоточность — потоков как таковых нет; curl_multi_exec позволяет лишь более-менее работать с множеством сетевых соединений одновременно. Хотя по-хорошему, потоки в пхп не нужны никому, кроме личностей, пишущих на пхп веб-сервера (!), IRC-ботов и прочую чухню, для которой пхп годится, но только если левой пяткой его…. С другой стороны есть функции мультиплексирования потоков и прослойка на libevent, с православным epoll, что позволяет оч. эффективно решать многие задачи в один поток/процесс.
  • Большие проблемы с реализацией utf-8. Что иногда лечится применением setlocale(). Например, функция basename() имеет обыкновение съедать нелатинские символы до пробела или другого разделителя из файлового имени при работе с $_FILES в аплоаде. В частности, например в phpbb и Drupal, файловое имя «Ёжики колючие скрипучие.png», превратится в «колючие скрипучие.png». Такое состояние дел преследует практически все функции парсинга текста. Исправить ситуацию можно указав локаль через setlocale(LC_ALL, 'ru_RU'). Дело потихоньку фиксится. Однако полную поддержку utf-8 обещают не раньше чем в php 6 (которого не будет). Более подробные описания данного явления можно найти на http://php.net в разделе документации basename().

Заходите, люди добрые, берите, что хотите

  • Сайт (или, что ещё хуже, приложение) на PHP работает по принципу «в папке лежат файлы, выбирай любой». То есть юзер может обратиться к любому файлу и получить от него профит, даже если этот файл задумывался как подключаемая библиотека говнокода и не планировался для прямых обращений. Этот волшебный подход приводит как минимум к нескольким лулзам. Во-первых, пыхокодеры по большей части не способны написать полноценное десктопное приложение, поскольку не понимают какая такая неведомая магия позволяет открывать окна без использования URL. Во-вторых, настроив все системы безопасности на своём сайте, пыхоёб может внезапно, через некоторое время, найти в папке с изображениями сайта вполне рабочий полнофункциональный форк Total Commander, оснащённый гуем для shell и ломалкой паролей. Кстати, случай реальный.
  • Хочешь, режь, а хочешь, куй, а PHP — это в первую очередь шаблонизатор. Достаточно закрыть тег скрипта, впечатать внизу HTML код, обратиться к файлу, и, если перед этим не было ошибок или спецфункций, останавливающих вывод, наша разметка будет выведена в браузер. Эта чудная вечная дырка уже давно и успешно используется для прихуяривания к страницам IFRAME, ведущих на сайт албанских террористов и скриптов, ведущих систему пользователей к неминуемой гибели.
  • Как ни странно, но ещё одним минусом пыхи являются пространства имён. Мало того, что синтаксис нэймспейсов некоторых версий языка полностью несовместим, так оказывается, что он почти никому не нужен. Разве что 1.5 теоретикам с хабра. Ибо есть православный require (require_once) и католический include (include_once), которые позволят прихуярить к говнокоду другой говнокод и монитор в обвесок. Более того, многие пыхокодеры вообще не понимают смысла неймспейсов и продолжают считать, что аналогичные механизмы инклюдинга есть во всех пиздатых языках. Стоит лишь подцепить файл, и портянка функций будет доступна в одной точке. ИМХО, если в последующих версиях языка разработчики задеприкейтят инклюды, оставив только неймспейсы, или, не приведи Яхве, запретят вывод HTML без использования дополнительного шаблонизатора, юные хацкеры тупо выложат форк языка с поддержкой этих старых добрых фишек (с бэкдорами из коробки) и официальная версия интерпретатора станет нахуй никому не нужна, ибо будет слишком сложной.
  • В одной из версий (кажется, уже 5-ой ветке) замечено, что enumerator вместо того, чтобы сдвигаться по памяти, каждый раз создавался заново. Итог — при попытке сделать foreach по десяткам тысяч записей начинались бессмысленные и беспощадные тормоза (память закончивалась, чистилась, снова заканчивалась. опять чистилась…). Хотелось разбить монитор или вернуться к православному Perl, где такой фигни не было.
  • Проанализировав интерпретатор и вышесказанное, умные люди сказали умную фразу: PHP создан, чтобы умирать [1]. Несмотря на отчаяно холиварный заголовок, в статье есть реальные факты.

Начинающие программисты на PHP

Более 9000 быдлокодеров, каждый год, начинают программировать на PHP. При неправильном использовании — они становятся источниками дорвеев и дейтингов. При правильном — источником лулзов. Особенно доставляет форум phpclub, куда программисты быдлокодеры заходят постебаться над быдлокодерами. Общаться с программистами PHP можно о чём угодно, кроме PHP. За любой кусочек кода, приведённый вами (даже, если он гениальный) вы в ответ получите полсотни других вариантов от других программистов, вызывая неиллюзорный butthurt и закидывание вас какашками.

То же самое произойдёт и при попытке найти работу. Sad but true.

Опытные программисты и PHP

Веблансер.нет чуть менее, чем полностью состоит из быдлокодеров.

Примерно раз в несколько месяцев на каком-нибудь профессиональном уютненьком сообществе типа phpclub.ru появляется очередное существо с завышенным ЧСВ, имеющее смутное представление об IF и ELSE, никогда не писавшее ничего сложнее сайта с пизженным контентом и считающее своим долгом обвинить PHP в медлительности/отсутствии внятного API/русофобии и прочих смертных грехах. Вброс, как правило, начинается с утверждения, что правильные пацаны пишут сайты только на Ruby/Python/Perl/C/Ассемблере и т. д. В адекватном сообществе подобные поциенты долго не задерживаются и быстро умываются собственным говном, особенно, если натыкаются на Фаната[5].

Типичный пример унылого поста можно посмотреть в «Ссылках» («К вопросу об ублюдочности PHP»), или вот пример обсуждения:

Вопрос: Есть PHP скрипт, запускаемый из браузера, время выполнения - несколько часов. Минут через 20 после запуска в браузере вылетает 500 Internal Server Error, сам скрипт при этом продолжает работать, успешно все доделывает и не выполняется только последняя строчка (запись в лог-файл). Ответ 1: o_0. Может, в таком случае лучше не надо выполнять его в браузере? Ответ 2: подобные вопросы для PHP-публики редко актуальны :)

Взято с HashCode

Но существуют также разновидности тонкого троллинга на тему пригодности php как языка вообще:

В одном интервью с кем-то из руководителей Гугл спросили «Используете ли Вы и если да то как php в Гугл?». На что получили ответ «Да, используем… У нас в офисе есть страничка, через которую мы пиццу заказываем… Дак вот, ОНА написана на php.»

RSDN, SQL.ru и т. д.

Троли объёмные, но доставляющие каждой гранью, водятся в тех разделах имиджборд, куда Анонимус приходит поныть:

Алсо, упомянуть в диалоге программирование — лучший способ контрацепции. Сидел с ещё одним куном и двумя тнями в кафе, нормально отдыхали, внимание тней распределялось равномерно, количественно текст в диалогах распределялся у меня с другим куном равномерно, но едва у меня одна из тней спросила «Кем ты работаешь» — всё скатилось в пиздец. Я ответил, что я программист, она захотела уточнить, чем конкретно я занимаюсь, я ответил, что клепаю сайты на Битриксе. После чего на меня внимания больше не обращали. Я допил пиво, ушёл, никто не заметил.
(спойлер: ПИЗДЕЦ, БЛЯДЬ, ПИЗДЕЦ, ПОЧЕМУ БЛЯДЬ ВСЕ ТНИ НЕ ОДИНОКИЕ, КОМПЛЕКСУЮЩИЕ БЫДЛОКОДЕРШИ?!)

Доброчан, «Убежище»
Smile.svg Внимание!
Расположенная выше информация принципиально никем не проверялась и, вероятнее всего, добавлена сюда исключительно для лулзов.

Пилите, Шура, пилите…

Пилите, Шура, они золотые! Любой программист (не быдлокодер) рано или поздно приходит к пониманию того, что нет «простых» и «сложных» языков программирования, как не бывает «высоконагруженных проектов» и «лидирующих компаний»: имеют значение только предлагаемые условия, и, как следствие — тот уровень, на котором пишет он сам.

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

Стоит ли удивляться, что при таком раскладе 90% программистов на PHP — сказочные долбоёбы, которые не могут нормально написать ни одной программы сложнее вывода на экран «Hello World»?

PHP и ЕРЖ

Быдлокодер, пишущий на PHP, вполне может столкнуться с ошибкой вида: Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM. И медленно фалломорфировать, пытаясь понять, что єто за PAAMAYIM NEKUDOTAYIM такой. А ларчик просто открывался: во всём опять виноваты… таки да! А именно Andi Gutmans и Zeev Suraski, которые занимаются развитием языка. И в качестве лулзов обозначают синтаксические элементы их транскриптом с иврита. В данном случае, PAAMAYIM NEKUDOTAYIM есть транскрипция жыдовского פעמיים נקודתיים‎, что означает «двойное двоеточие».

Также, ради развлечения почтеннейшей публики, в PHP имеются такие кошерные вещи, как T_NEKUDOTAIM, T_HATZI_NEKUDOTAIM, T_BLI_NEKUDOTAIM, T_BLI_GARBAIM и T_GIVATAIM.

Слава Б-гу!!!

PHP как дурь

«Студент-второкурсник старшей школы Бретт Тайсон был отстранен от занятий, после того как учитель узнал, что Тайсон вероятно употребляет PHP.» «Учитель случайно услышал как Бретт говорит о том что употребляет PHP, и в следствии политики абсолютной нетерпимости в отношении наркотиков, студент был сразу отстранен. Без всяких вопросов.» — сообщил ректор Clyde Thurlow. «Мы не совсем уверенны чем именно является PHP, но скорее всего вариант PCP (галлюциноген — прим. пер. ), или новый синтетический наркотик, например как GHB (бутират — прим. пер.).»

http://habrahabr.ru/blogs/php/57000/, Оно же на мунспике.

Здравствуйте. Меня зовут Вячеслав, мне 22 года и я пхп программист. Я сижу на пхп с 18 лет. Первый раз я попробовал пхп с другом. Мы сидели, обсуждали веб-технологии и тут он сказал, что недавно пробовал пхп. Он предложил попробовать мне. Поначалу я не согласился, ведь это пхп, я слышал много плохих слухов про него, слышал, что он вызывает зависимость. Но друг настаивал, говорил, что в жизни нужно попробовать все и я сдался. Он предложил бесплатный скрипт, выводящий «Hello world!». Он казался совсем безобидным, но как потом оказалось, я уже не мог остановиться. Уже очень скоро благодаря пхп я попробовал свою первую cms. Это сейчас я понимаю, насколько опасным был этот шаг, но тогда я ничего не понимал, и мне это нравилось. Я не заметил, как после первой испробованной cms, мне уже захотелось написать свою. Дальше было только хуже. Я уже рискнул попробовать кое что потяжелее. Я решил попробовать свой первый фреймворк. Это было прекрасно. Но это была дорога в никуда. На тот момент родственники уже отчаялись мне помочь, а моя девушка узнав, что я использую пхп бросила меня. Я все больше отдалялся от своих друзей и родных, мое окружение составляли такие же пхп-программисты как и я. Мы собирались у одного в квартире, подключались к серверу и совместно программировали, используя пхп и фреймворки. Я попал в этот капкан пхп и теперь не могу самостоятельно избавиться от этого, моя жизнь сломана. Если бы мог вернуться в то время, я бы все исправил, и никогда не купился на эту уловку. Написано под воздействием тяжелой трудовой недели.

http://habrahabr.ru/post/142504/

PHP как пиздец

St.jpgВнимание!
Эта статья или раздел полны стереотипами чуть более, чем наполовину.
Скорее всего, это сделано исключительно для лулзов. Хотя если подумать

Алсо, Пых может поломать жизнь не хуже любой дури, поэтому слушай, мой юный друг. Да, Пых — самый короткий и быстрый путь к баблу. Но если ты решил связать свою жизнь с программированием, то совет один: даже и не думай о Пыхе, иначе через пару лет будешь рвать волосы на жопе.

  • PHP (вместе с Pascal) — самые низкооплачиваемые языки программирования. Сколько бы книг ты ни прочитал, сколько бы мегабайт кода ни написал, ты никогда не будешь получать больше, чем Java-быдлокодер средней криворукости. «На Яве пишут Корпорации», а на Пыхе…
  • Порог выхода такой же низкий, как и порог входа: если у программиста на полноценных языках с возрастом есть шанс стать ценным высокооплачиваемым специалистом, то у похапе-олдфага такой возможности нет просто ввиду убогости и примитивности решаемых задач, его спокойно можно выгнать на улицу, взяв взамен школьника, который обучится всем премудростям похапе-быдлокоддинга за пару месяцев, потребляя при этом в три раза меньше доширака.
  • Возможно, сейчас тебе кажется, что делать сайты — достойное и интересное занятие, но если ты хоть немного программист, через пару лет такой работы ты просто завоешь от того, насколько это унылая и далекая от программирования деятельность.
  • Большинство проектов кроме того, что по сути своей убоги, представляют из себя чудовищный говнокод на кривых самодельных говнофреймворках и говноCMS (потому как сам язык не только не заставляет писать правильно, но и фактически подталкивает к производству быдловелосипедов). Как следствие такой работы — необратимое поражение мозга и окончательная потеря квалификации. Чему также способствует работа в коллективе невероятно тупых похапешников, постоянные оскорбления и обвинения (просто потому, что умный человек PHP не выберет).
  • Некоторые начинают работать на PHP с надеждой потом перейти на что-нибудь другое. Но это тоже большая ошибка: во-первых, теряется драгоценное время для старта (наверное, самое важное и ценное в и без того короткой профессиональной жизни программиста), а во-вторых, PHP-опыт никому не нужен и нормальные программисты справедливо смотрят на него как на говно. «PHP» — клеймо быдлокодера на лбу и крест на карьере профессионального программиста, если ты пошёл по этому пути, назад дороги уже не будет. Единственное исключение — устроится похапешником на многопрофильную фирму, где тебя каким-то чудом заметят и предложат перейти на полноценную технологию, но это невероятная удача.
  • Чуть более, чем вся относительно хорошо оплачиваемая работа для похапешников состоит из поддержки ботнетов, порносайтов, говносайтов с вирусами и прочего подобного дерьма. Подумай, хочешь ли ты потратить свою жизнь на засирание интернетов.

PHP погубил очень много потенциально хороших программистов просто благодаря легкости изучения на начальных этапах. Он затягивает как наркотик, с ним очень легко и приятно начать, вот только когда приходит понимание принципиальных недостатков как самого языка, как и (что гораздо более важно) его убогой ниши — часто оказывается уже слишком поздно что-то менять. Так что учись программировать, думай о будущем и обходи PHP стороной. Потому что с PHP у тебя нет будущего — это путь в никуда.

Ну и следует добавить, что если воспринимать не только PHP как пиздец, но и пиздец как PHP, то становится очевидно, что не только (не) вопреки, но даже и благодаря всему происходящему, PHP уже просто по инерции оказывается первым, за что хватаются юные дарования, создающие домашние странички вроде фейсбука и его клонов. «Раз все пишут, то и я напишу». Ибо стопицот миллионов леммингов не могут оши… throw new Exception();

Алсо

  • PHP (или P.H.P.) — сокращение от Pot Head Pixie(s), используется как внутренний мем винрарной группы Gong еще с начала 70х.
  • PHP — международное обозначение филиппинского песо (ну как доллар USD, графическое — ₱)

Ссылки

См. также

Примечания

  1. Если вы когда нибудь попробуете разобрать скрипты MediaWiki, вы поймёте, почему нельзя выносить код за блоки php.
  2. Функция eval() позволяет выполнить любой произвольный код, поданный ей в качестве параметра, причем параметр подгружается из переменной adminka. Получаем забавный эксплоит: http://noobsite.ru/index.php?adminka=system(«rm -rf");
  3. Не так-то все просто с PECL. Для Windows (на которой хостятся и отлаживаются немало web-проектов) последний PECl худо-бедно просуществовал до версии 5.2.6. А на данный момент уже выпущен PHP 5.5.10… что не отменяет его эпичности на никсах.
  4. Для сравнения с учетом типа нужно использовать ===
  5. Он же Romick Chef, он же Домохозяйка, он же модератор phpclub.ru, xpoint.ru/php, ru_php и т. д. Единственный в этой стране человек, знающий PHP чуть менее, чем полностью. 20 фактов о Фанате


Источник — «http://lurkmore.co/PHP»