PHP маст дай
Давно хотел написать пост на эту тему, но сегодня как никогда, увидел статью Котерова.
Все три шага, приведенные в ней, имеют место быть. Именно поэтому пхп-программистов большое количество, причем многие из них далеко не программисты. Снизив порог вхождения, мы имеем, что имеем: кучу некачественного кода, движки форумов/галерей и их многочисленные уязвимости. Это обратная сторона медали. Меня порадовала фраза в статье:
профессиональные программисты на PHP не используют embedded-синтаксис, а предпочитают разделять код и шаблон страницы. Таким образом, очевидно, что embedded-синтаксис — средство завлечения новой аудитории, а не инструмент языка.
Лично у меня тут возникают несколько вопросов.
Профессионал, зачем тебе использовать PHP, если все фишки пхп не используются?
MVC – это убийца PHP как такового, зачем тогда его использовать?
Может быть для того, чтобы написать свой "пхп" на С++, оставив php-шные урлы как Facebook и/или ВКонтакте?Что такое PHP? Это миллион функций и никакого синтаксического сахара, никакой гибкости, все просто и тупо, все просто, чтобы сделать несложный сайт. Даже консольные скрипты не попишешь на нем, потому что будет через ж*пу :)
PHP – это крутой embedding-синтаксис, который "профессионалы" не используют, это простые формы, который "профессионалы" не используют, это ошибки в браузере, которые "профессионалы" не могут позволить себе использвовать, и это у*бищный синтаксис в неймспейсах (назову я его windows-like), который обсуждают "профессионалы" и индексируют мега-профессионалы :)Если ты профессионал, или хочешь им быть, тебе это не нужно, тебе не нужен PHP!У меня есть две цитаты по поводу PHP:
На пхп программируют только лохиПхп как шансон, никому не нравится, но все слушают
От слов к делу. А именно к коду.Я столкнулся с пхп-скриптом, который постит треки из ротации на Last.fm. Да-да, именно Last.fm Ыubmission. Ко мне обратились как профессионалу в этом деле :) (напомню, я автор Net::LastFM::Submission)Итак, это был консольный скрипт на PHP, который читал данные из файла и постил их на Last.fm.
Код из разряда говнокода, написан так – лишь бы работал. Тут я сразу вспомнил формулировку write-only, которую прекрепили к Perl.
Если на сегодня есть write-only язык программирования, то это PHP!Почему-то сразу решил расставить ворнов, чтобы разобраться как скрипт работает. Тут я столкнулся с тем, что PHP и warnings не совместимы :) Сначала я нашел очень интересное решение писать сообщения в STDERR – через php://stderr. От самой конструкции я очень долго смеялся (URI-схема php – это сильно). Затем я написал функцию warn для PHP (real Perl PHP warn):
Всем пхп-профессионалам рекомендую использовать такую функцию :)Далее я решил сделать глобальную переменную, куда планировал вынести все настройки скрипта. Но не тут-то было, в PHP глобальные переменные не так работают как в Perl без use strict. Чтобы сделать ее видимой, например, в функции, надо использовать global. Ааа, как все сложно :)Затем я поразился от синтаксиса создания хеша: array( key => value, ... ). Даже в JavaScript проще можно.
Конечно, может быть я в PHP чего-то не знаю (а я и не знаю), но такое решение – полный п*здец, его, наверно, используют 99% новичков. "Профессионалы", вы видели как это делается в Perl? :)Очень позабавили функции работы с датами и с таймзонами.Зато есть функция trim – на Perl это максимум 3 регекспы, причем простых, очень простых.
Насколько мне известно, большинство пхпшников боятся, очень боятся регекспов. Я даже знаю почему: это жутко неудобно в PHP!
Проще и круче, чем в Perl, регулярных выражений не найти. "Профессионалы", а вы используете регекспы?Добило меня: включение класса работы с Last.fm в исходник скрипта, зато все коменты автора класса и права сохранены.
И тут новая волна говнокода.Количество переменных поражает глаз, такое ощущение, что все из переменных, а где код?
Чтобы сделать GET-запрос используется мега-функция file_get_contents, а чтобы сделать POST-запрос используются сокеты, чистые сокеты. Это что получается, чтобы сделать POST-запрос в PHP я должен быть "профессионалом"? Это очень сложно, это очень write-only, это п*здец, PHP – это п*здец. Извините, "профессионалы".Аналогичный код на Perl пишется на много проще, поверьте мне :)ЗЫ: Для меня Дмитрий Котеров когда-то был иконой веб-разработки, с денвера, форума на dklab.ru и куроводств я начинал, я делал так же: "Generation time: 0.04 s GZip enabled: 9516/23684 (60%)". Затем я забыл про него, научился программировать на Perl, вспомнил про его модули CGI::WebIn / WebOut, посмотрел исходники и офигел, такого говнокода на Perl от него я не ожидал, это ужас. Потом я понял, что Дмитрий увлекся PHP, мне стало все понятно. Он выпустил пару книг, сделал МойКруг. Он профессионал, не спорю.Но! PHP – это зло!use Perl or die;Just F*cking Do It
UPD: Придумал новую цитату:
Любишь себя, не пиши на пхп
Original post http://sharifulin.livejournal.com/48745.html
Все три шага, приведенные в ней, имеют место быть. Именно поэтому пхп-программистов большое количество, причем многие из них далеко не программисты. Снизив порог вхождения, мы имеем, что имеем: кучу некачественного кода, движки форумов/галерей и их многочисленные уязвимости. Это обратная сторона медали. Меня порадовала фраза в статье:
профессиональные программисты на PHP не используют embedded-синтаксис, а предпочитают разделять код и шаблон страницы. Таким образом, очевидно, что embedded-синтаксис — средство завлечения новой аудитории, а не инструмент языка.
Лично у меня тут возникают несколько вопросов.
Профессионал, зачем тебе использовать PHP, если все фишки пхп не используются?
MVC – это убийца PHP как такового, зачем тогда его использовать?
Может быть для того, чтобы написать свой "пхп" на С++, оставив php-шные урлы как Facebook и/или ВКонтакте?Что такое PHP? Это миллион функций и никакого синтаксического сахара, никакой гибкости, все просто и тупо, все просто, чтобы сделать несложный сайт. Даже консольные скрипты не попишешь на нем, потому что будет через ж*пу :)
PHP – это крутой embedding-синтаксис, который "профессионалы" не используют, это простые формы, который "профессионалы" не используют, это ошибки в браузере, которые "профессионалы" не могут позволить себе использвовать, и это у*бищный синтаксис в неймспейсах (назову я его windows-like), который обсуждают "профессионалы" и индексируют мега-профессионалы :)Если ты профессионал, или хочешь им быть, тебе это не нужно, тебе не нужен PHP!У меня есть две цитаты по поводу PHP:
На пхп программируют только лохиПхп как шансон, никому не нравится, но все слушают
От слов к делу. А именно к коду.Я столкнулся с пхп-скриптом, который постит треки из ротации на Last.fm. Да-да, именно Last.fm Ыubmission. Ко мне обратились как профессионалу в этом деле :) (напомню, я автор Net::LastFM::Submission)Итак, это был консольный скрипт на PHP, который читал данные из файла и постил их на Last.fm.
Код из разряда говнокода, написан так – лишь бы работал. Тут я сразу вспомнил формулировку write-only, которую прекрепили к Perl.
Если на сегодня есть write-only язык программирования, то это PHP!Почему-то сразу решил расставить ворнов, чтобы разобраться как скрипт работает. Тут я столкнулся с тем, что PHP и warnings не совместимы :) Сначала я нашел очень интересное решение писать сообщения в STDERR – через php://stderr. От самой конструкции я очень долго смеялся (URI-схема php – это сильно). Затем я написал функцию warn для PHP (real Perl PHP warn):
function warn($msg) { fwrite(STDERR, substr($msg, -1) == "\n" ? $msg : $msg.' at '.__FILE__.' line '.__LINE__.".\n"); }Конечно, может быть я в PHP чего-то не знаю (а я и не знаю), но такое решение – полный п*здец, его, наверно, используют 99% новичков. "Профессионалы", вы видели как это делается в Perl? :)Очень позабавили функции работы с датами и с таймзонами.Зато есть функция trim – на Perl это максимум 3 регекспы, причем простых, очень простых.
Насколько мне известно, большинство пхпшников боятся, очень боятся регекспов. Я даже знаю почему: это жутко неудобно в PHP!
Проще и круче, чем в Perl, регулярных выражений не найти. "Профессионалы", а вы используете регекспы?Добило меня: включение класса работы с Last.fm в исходник скрипта, зато все коменты автора класса и права сохранены.
И тут новая волна говнокода.Количество переменных поражает глаз, такое ощущение, что все из переменных, а где код?
Чтобы сделать GET-запрос используется мега-функция file_get_contents, а чтобы сделать POST-запрос используются сокеты, чистые сокеты. Это что получается, чтобы сделать POST-запрос в PHP я должен быть "профессионалом"? Это очень сложно, это очень write-only, это п*здец, PHP – это п*здец. Извините, "профессионалы".Аналогичный код на Perl пишется на много проще, поверьте мне :)ЗЫ: Для меня Дмитрий Котеров когда-то был иконой веб-разработки, с денвера, форума на dklab.ru и куроводств я начинал, я делал так же: "Generation time: 0.04 s GZip enabled: 9516/23684 (60%)". Затем я забыл про него, научился программировать на Perl, вспомнил про его модули CGI::WebIn / WebOut, посмотрел исходники и офигел, такого говнокода на Perl от него я не ожидал, это ужас. Потом я понял, что Дмитрий увлекся PHP, мне стало все понятно. Он выпустил пару книг, сделал МойКруг. Он профессионал, не спорю.
UPD: Придумал новую цитату:
Любишь себя, не пиши на пхп
Original post http://sharifulin.livejournal.com/48745.html