В статье "PHP: a fractal of bad design (http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-de.../)" представлен подробный и обстоятельный обзор проблем в дизайне языка программирования PHP. Автор показывает исключительность PHP как одного из наиболее непроработанных языков, проблемы в котором носят систематический характер. В частности в статье продемонстрированы проблемы в самом языке, функциях, структурах, экосистеме, средствах отладки. Указаны на недоработки в безопасности, надёжности, целостности и предсказуемости.URL: http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-de.../
Новость: http://www.opennet.me/opennews/art.shtml?num=33619
Эту статью уже все кому не лень обсудили...
А про PHP и без неё было многое понятно.
Даже бывший тех. директор и инженер Facebook отказались от PHP когда начали работать над своим проектом Quora и таких случаев много.Хотя кому я рассказываю... Здесь и так все это знают)))
В подобных статьях хочется видеть примеры более достойных языков лишенных указанных недостатков.Снова удивляет почему (наверно) самый кривой язык в своей области приобрел наибольшую популярность. Многие CMS да и просто сайты на нем, тысячи веб девелоперов знают только его и успешно на нем работают. Его просто многие умеют и им проще делать свои проекты на нем, даже если это просто веб морда к другой критически важной программе. Эффект масштаба, известности и привычки в действии.
> Снова удивляет почему (наверно) самый кривой язык в своей области приобрел наибольшую
> популярность.так тыщу раз уже поясняли: низкий порог вхождения обеспечил хороший начальный пинок.
Этот директор тоже не умеет отключать register_globals и т.п. вещи известные даже школярам?
Да очень много народу торчит от пыхпыха, и пытаться из пересадить на что то другое бессмысленно и бесперспективно
Они не торчат, просто не осилили ничего другого. Sad, but true.
Дай угодаю, ты осилил яву или сишарп? Я пишу коммерческие продукты на PHP/JS/SQL, C/C++, Python и Java. Знаком с еще большей кучей языков, включая три вида ассемблера и использую их для своих нужд время от времени. Хочу заметить, что для веб-приложений и сайтов PHP наиболее удобный, удачный, быстрый, функциональный и надежный язык с моей точки зрения. Эта позиция сформирова на основе личного многолетнего опыта. Не потому, что PHP такой хороший, у него есть проблемы. Просто остальное еще хуже.
>три вида ассемблераэто как? один еще один и еще один?
Он, вероятно, имел ввиду "11 видов ассемблера".
>Я пишу коммерческие продукты на PHP/JS/SQL, C/C++, Python и JavaБла-бла-бла... Рассказывай сказки, деточка!
Про си и пых - поверю; возможно чутка знаешь жабу (вряд больше: жабовцы получают столько, что состоявшемуся жаба-кодеру вовек не захочется писать на пыхе), а вот про питон НЕ ВЕРЮ! (с) Станиславский. Тот кто кодит веб-проекты на питоне НИКОГДА не будет писать на пыхе. Это все равно, что человек привыкшему к ухоженному и чистому дому начать плевать на пол!
Это точно. Хорошо знаком с PHP и Python. От PHP меня тошнит, но иногда "надо", потому что быдлохостинги частенько только php поддерживают. Порочный круг "венды"...
Какой у вас ЧСВ. Не зашкаливает еще?
подозреваю что коммерческие проекты это
homepage статический за 5тр ?если бы вы делали хотя бы один крупный проет на java на другие языки у вас бы времени не осталось.
и вы конечно вкрурсе что такое : spring jstl jsp ?
> подозреваю что коммерческие проекты это
> homepage статический за 5тр ?
> если бы вы делали хотя бы один крупный проет на java на
> другие языки у вас бы времени не осталось.
> и вы конечно вкрурсе что такое : spring jstl jsp ?Очевидно это ваятель на каких-нибудь вебсферах, жабабот...
> если бы вы делали хотя бы один крупный проет на java на
> другие языки у вас бы времени не осталось.Должен вас огорчить. Одним людям языки даутся другим нет. (мне кстати - нет) Люди первые их осваивают быстро и владеют несколькими без пафоса. Люди вроты учат один язык всю жизнь и знают неплохо, но не более того. Еще какие-то люди умудряются зарабатывать сотни тысяч на ровном месте (без блата, собственными силами: талантами, трудом и силой убеждения (последнее подчеркнуть)), а другие какие-то копейки на нескольких работах. Такова жизнь.
Сегодня немало времени убил, пока не вспомнил, что empty($a), принимает даже строку '0' как пустую строку. И ещё три косяка сегодня нашёл. Плохо.
> '0' как пустую строку. И ещё три косяка сегодня нашёл. Плохо.Конечно плохо. Мог бы не тратить время, а сразу на http://phpsadness.com/ _прочитать.
Я на это поведение ещё лет 7 назад наткнулся. Просто забыл. :(
> empty($a), принимает даже строку '0' как пустую строкузамечательно.
для защиты от инжекции сразу приводим входящие данные к набору '0'..max_int
и в теле программы просто if(!empty($var)){code()}
не ломая голову над типом. очень удобно> И ещё три косяка сегодня нашёл. Плохо.
нормально. тренируйтесь
Бэйсик, в его первоначальном виде, тихо помер.
Подождите немного :)
> Бэйсик, в его первоначальном виде, тихо помер.
> Подождите немного :)Вряд ли PHP помрет в обозримом будущем. Тенденция не та, к счастью, PHP становится(пытается) лучше со временем.
да, php он как виндовс, каждая версия лучше предыдущей [sarcasm]
Основной язык PHP, но я его не люблю, хоть и пишу на нем с 2005 года.
Каждой задаче - свой инструмент, для facebook использовать PHP нонсенс. Скорее всякие руби\питоны etc.
Но т.к. порог вхождения у PHP низкий, то и использовать его дешевле, а на не слишком больших проектах и не заметно разницы между PHP и Python.
Вы же не сажаете картошку экскаватором? Но и не кукольной лопаткой.
Нифига не дешевле, потому что потом, если нормальный проект, всё это переписывается на другом языке за другие деньги. Двойная оплата получается, скупой платит дважды.Ну и зная обычную квалификацию среднего PHP программиста, встаёт вопрос о сохранности данных. Если таковой не волнует, и не волнует будущее проекта, то да, дешевле :-)
> Нифига не дешевле, потому что потом, если нормальный проект, всё это переписывается
> на другом языке за другие деньги. Двойная оплата получается, скупой платит
> дважды.
> Ну и зная обычную квалификацию среднего PHP программиста, встаёт вопрос о сохранности
> данных. Если таковой не волнует, и не волнует будущее проекта, то
> да, дешевле :-)Ну, если не взлетит, то потеряете точно меньше.
Тут речь о компромиссе. Преждевременное масштабирование - смерть. Непредусмотренное масштабирование - смерть..
А в целом, кадры решают все. Дебил пишущий на C и архитектор 10тью годами опыта на PHP - дадут разные результаты.
Про "дебилов и архитекторов" исчерпывающе сказано в посте, который мы обсуждаем.
Я не о масштабировании, а о том, что кривой язык - кривой проект, как правило.
здесь более уместным будет вспомнить про танцоров и яйца;)
> Дебил пишущий на C и архитектор 10тью годами опыта на PHP - дадут разные результаты.На C дебил не напишет ничего даже с виду работоспособного, существенно длиннее хелловорда.
Архитиктор и PHP - в одном предложении звучат как повод поржать над резюме.
>> Дебил пишущий на C и архитектор 10тью годами опыта на PHP - дадут разные результаты.
> На C дебил не напишет ничего даже с виду работоспособного, существенно длиннее
> хелловорда.Я лет 6 назад писал с нуля полностью и веб-сервер и обёртку, и прочее. Интернет к нам в деревню приходил редко, и я не знал про фреймворки. А в итоге получилось примерно то же самое, только куда более гибкое для меня. :)
Причём даже не на C :)
>порог вхождения у PHP низкийэто миф, писать на питоне не сложнее, и после php он воспринимается как глоток свежего воздуха
>>порог вхождения у PHP низкий
> это миф,хз-хз. PHP я за неделю изучил в основе, еще неделю практиковался затем получил работу быдло-кодера :)
> писать на питоне не сложнее, и после php он воспринимается как глоток свежего воздуха
питон - моя страсть, но я до сих пор хорошо не могу на нем писать.. возможно сказывается нехватка времени.
я о том что быдлокодить на питоне можно так же через неделю изучения =)
> хз-хз. PHP я за неделю изучил в основе, еще неделю практиковался затем
> получил работу быдло-кодера :)Бутылку можно изучить за полтора часа, главное, хотя бы немного понимать html. И можно на нём жарить всякие вещи, как пирожки, а python изучать уже в процессе. При этом ты на php таких вещей и через полгода не напишешь. Или напишешь так, что уж лучше не надо.
btw, этож кто тебя такого красивого взял? Явно не за знание php. :)
>> хз-хз. PHP я за неделю изучил в основе, еще неделю практиковался затем
>> получил работу быдло-кодера :)
> Бутылку можно изучить за полтора часа, главное, хотя бы немного понимать html.
> И можно на нём жарить всякие вещи, как пирожки, а python
> изучать уже в процессе. При этом ты на php таких вещей
> и через полгода не напишешь. Или напишешь так, что уж лучше
> не надо.А что такое "бутылка"?
> btw, этож кто тебя такого красивого взял? Явно не за знание php.
> :)Чтобы писать сайты-визитки и красивым быть не надо.. а там пошло-поехало.
>Бутылку можно изучить за полтора часа, главное, хотя бы немного понимать html. И можно на нём жарить всякие вещи, как пирожки, а python изучать уже в процессе.
>а python изучать уже в процессе.Вот так и появляются на свет быдлокодеры на питоне, которые кроме вебни ничего не умеют.
> Вот так и появляются на свет быдлокодеры на питоне, которые кроме вебни ничего не умеют.Они тебе мешают? :)
Да, потому что они создают в глазах общественности представление о питоне как еще-об-одном-веб-языке-который-непонятно-зачем-нужен-ведь-есть-php.
и ведь правы, чертяки!
> питон - моя страсть, но я до сих пор хорошо не могу на нем писать.. возможно сказывается нехватка времени.Страсть к языку где один случайно нажатый бэкспейс может всё сломать. Спасибо насмешили.
>> питон - моя страсть, но я до сих пор хорошо не могу на нем писать.. возможно сказывается нехватка времени.
> Страсть к языку где один случайно нажатый бэкспейс может всё сломать. Спасибо
> насмешили.а в PHP случайный пробел после ?> сломает сессию, отправку хедеров, куки.. ужас-ужас ;)
и именно потому в конце файла их (скобок) присутствие теперь необязательно
> и именно потому в конце файла их (скобок) присутствие теперь необязательноверно, и это полезно, но ищущий всегда найдет свои грабли..
Это верно для всех языков.
В том же perl это девиз: "есть всегда несколько способов сделать это", читай "выстрелить в ногу"
А уж не от грабель с нулевыми указателями в C и иже с ними то тут то там находят уязвимости.
Ну ка hello world на питоне в контексте web?
Параличь? google://python+web+hello-web ~~ About 47,600,000 results
Не холивара ради, просто замечание. Осваивал питон после перл. Отличный язык питон, но опыт программирования на перл восстает, когда питон генерит исключение при обращении к отсутствующему ключу в ассоциативном массиве и прочих строгостях в динамически типизированном, в общем-то, языке. Да еще и постоянно париться -- хз, что за переменная, без sigils... Так что легкость и глоток свежего воздуха -- понятие относительное...
А в отношении nonlocal в третьем питоне так вообще смешно. Все-таки function scoping не всегда лучше block scoping...
> Не холивара ради, просто замечание. Осваивал питон после перл. Отличный язык питон,
> но опыт программирования на перл восстает, когда питон генерит исключение при
> обращении к отсутствующему ключу в ассоциативном массиве и прочих строгостях в
> динамически типизированном, в общем-то, языке. Да еще и постоянно париться --
> хз, что за переменная, без sigils... Так что легкость и глоток
> свежего воздуха -- понятие относительное...Мне тоже после perl было с python тяжело. Языки семантически похожи, но и во многом отличаются - это сбивает с толку.
> Не холивара ради, просто замечание. Осваивал питон после перл. Отличный язык питон,
> но опыт программирования на перл восстает, когда питон генерит исключение при
> обращении к отсутствующему ключу в ассоциативном массиве и прочих строгостях в
> динамически типизированном, в общем-то, языке. Да еще и постоянно париться --
> хз, что за переменная, без sigils... Так что легкость и глоток
> свежего воздуха -- понятие относительное...Чистый python вообще ужасен, особенно для веба :)
Но обёрток хватает.
В php "свежее мясо" привлекает обилие готовых коробочных решений, устанавливающихся за 5 кликов на вебсервер а ля "денвер", который ставится за 4.Лет 5 назад пробовал подобный финт проделать с одной CMS на Perl, не прошло.. Тупо не хватило навыков, чтобы хотя бы установить. В последствии разобрался, но и понял, что прямота рук тех разрабов ушла недалеко от того, что тут называется "школобыдлокодер".
Ruby, Perl, Python - программисты. РАДУЙТЕСЬ, что ПОКА это школоло начинает с PHP и там остается!
>Ruby, Perl, Python - программисты. РАДУЙТЕСЬ, что ПОКА это школоло начинает с PHP и там остается!Чему радоваться-то? Оно там остается, и количество внедрений перла и питона в итоге в десятки раз меньше. Искал работу недавно (php или perl или python, с упором на последние два), получил предложений - php: 40+, perl: 2, python: 1.
Проблемы, лол. Их нет только у тех языков, которые никому не нужны.
> Проблемы, лол. Их нет только у тех языков, которые никому не нужны.Когда PHP станет никому не нужен, от его проблем это не исправит.
>КогдаНу и?
На самом деле, профессионально писать на РНР - можно.
Из этой статьи мы просто видим, насколько __СЛОЖНЕЕ__ писать профессионально на таком г**ноязыке, как пых.
В отличие от, скажем, перла/питона/С/жавы, где есть чёткая и понятная документация (и пускай в жаве она размером с большую советскую энциклопедию), где всё в общем предсказуемо и логично, количество усилий, затрачиваемых на пыхокодинг, больше в разы. И только тот, у кого железные нервы, отличная память и чётко обозначенная цель, может написать на пыхе что-то серьёзное, работоспособное и полезное. А это и есть настоящий профессионал :)
> И только тот, у кого железные нервы, отличная память
> и чётко обозначенная цель, может написать на пыхе что-то серьёзное, работоспособное
> и полезное. А это и есть настоящий профессионал :)Именно. Это очень скучно, очень нудно, но возможно. :)
ггг авторша же предупреждаетDo not tell me that “good developers can write good code in any language”
открыть бутылку пива можно и задницей, но настоящий профессионал все-таки возьмет открывашку.
> открыть бутылку пива можно и задницей, но настоящий профессионал все-таки возьмет открывашку.Гм. Наличие спроса --> профессионалы открывают и... пыхпыхом.
Если они удовлетворяют спрос на язык, а не на решения ....
Речь не о том, что любой, кто профессионал в С (например), может взять РНР в качестве "открывашки". А о том, что человек, "открывший"-таки бутылку с помощью пыха, однозначно профессионал. Ну и, кстати, (к аналогиям всегда можно придраться) открыть бутылку задницей - банально круто. =))
Естественно, на вопросы "почему пых" и "а зачем ваще" в каждом случае ответ свой.
> А о том, что человек, "открывший"-таки
> бутылку с помощью пыха, однозначно...извращенец.
> Do not tell me that “good developers can write good code in any language”
> открыть бутылку пива можно и задницей, но настоящий профессионал все-таки возьмет открывашку.Фразы какие-то бессмысленные. Что имелось ввиду?
Good PHP developers can write good code in PHP.
Good PHP developers hardly write good code in C.Настоящий профессионал (специалист) _по_ _открыванию_ бутылок с пивом откроет бутылку и задницей.
Настоящий профессионал (бармен, профессия) откроет бутылку открывашкой.
Настоящий профессионал (специалист) _по_ _пользованию_ открывашкой откроет ей не только бутылку.
https://www.destroyallsoftware.com/talks/wat
если уж решили сказать А, то говорите и Б
breaking news! у php был дизайн!
Какие могут быть вопросы к Personal Home Page, это же всего лишь большая домашняя страничка. Какая безопасность, Господа, Вы о чём???