Ну вот, началось время интересных историй.
Для начала вспомним, с чего все начиналось. А начиналось все с популяризации интернета. Появилась совершенно новая технология - веб. С кардинально отличающейся от десктопного программирования концепцией. В десктопном программа загружается в операвтивку и живет там долго и счастливо. В веб нужно как можно быстрее выполнить определенные действия и выдать их результат в поток. Сначала это делалось по образу и подобию, потому что не было подходящих для этой концепции инструментов. Были попытки адаптации, та же перловка к примеру, но все не то. Соответственно специалисты-прикладники ценились на вес золота. Именно специалисты, способные написать на сях к примеру то, что работало бы быстро, качественно и не жрало бы память.
Но потом появился PHP. Сначала это был процедурный язык с минимальными возможностями. Но очень низким порогом вхождения. И в него ломанулись все подряд, от домохозяек до голодных студентов.
И интернет запкстрил хомпагами и прочими мало-мальски динамическими сайтиками.
И тут эту тему чухнули бизнесмены. Было выражение, приписываемое Гейтсу (не уверен). Что скоро останется два вида компаний. Представленные в интернете и разорившиеся. Не ручаюсь за точность.
А бизнесмены не программисты. Они хотят вложить деньги и получить прибыль. Соответственно в веб запахло деньгами и туда кинулась толпа десктопщиков. Самым подходящим инструментом как раз и оказался PHP.
А так, как PHP изначально не был расчитан на сложные системы, то он начал бурно развиваться. Есть такое понятие - коньюнктура. Было бы глупо делать упор на тот же императив, потому что куча пришедших прикладников требовали ООП, у них мозг так заточен. Они не мыслят иначе. Как вы сейчас, не можете представить себе программу без сущности.
И вот, в 4-й ветке попробовали внедрить PHP, дальше он бурно попер под радостные возгласы поборников. Появился миф, что без последнего невозможно сделать большое приложение, еще один миф о сложности работы в команде без оного и множество других мифов. Не стану перечислять, но к этим двум вернусь попозже.
Начался бум ООП. Все вдруг решили, что это вершина творения, хотя это просто ответвление в истории развития веб под воздействием обстоятельств. В веб стали активно переносить правила разработки десктопа, а это пошло вразрез с основной концепцией веб - быстро отработать и умереть.
Вы даже примеры всегда приводите из прикладной сферы. Паттерны. Модное словечко. А знаете ли вы, что паттерны изобрела "банда четырех", которые к PHP и веб имеет такое же отношение, как я к миграции антолопы Гну в северной Африке?
Или тот же Фаулер. Сколько он написал сайтов?
Любая, более менее стоящая литература по ООП написана для дестопа. А разные поделки от "специалиста" и прочий желтый ширпотреб типа "ООП в PHP для чайников" как раз для чайников и есть.
Потом прикладникам в веб стало скучно. Заела их ностальгия. И родили они тоже самое по сути десктопное приложение, гордо именованное "фреймворк". Мол чего там люди мучаются, сейчас мы им поможем написать правильно, как пишут тру программисты. В десктопах фреймворк действительно полезен. Он отъедает немного памяти, но дает кучу плюсов. А тут? За любой маленький плюсик приходится расчитываться огромными накладными расходами.
И тут произошел еще один бум. Появилась куча веб-студий. Потому что появился спрос (вспомним Гейтса), а значит должно родиться предложение. Закон рынка.
Но веб-студиями то тоже рулят далеко не программисты, а те же бизнесмены. Они должны поменьше вложить, побольше получить. И вот им наплевать на накладные расходы скрипта, расплачиваться то будет заказчик. А значит фреймворк - то, что нужно. А он на ООП. Значит это тоже то, что нужно. И в вакансиях появилось модное требование - знание ООП.
Но тут еще один момент. Раз появилась куча вакансий разработчиков, их нужно где то брать. Есть несколько путей. Переманить готового у конкурента, но их и у них не сильно густо. А значит либо позвать талантливого десктопщика, дабы он переучился по быстрому, либо вырастить свои кадры. Желающих, слава Богу, полно. Вспомним про домохозяек. Научить, отправив к кому? К тем же десктопщикам. Ибо конкретных специалистов по веб крайне мало. Не к Попову же.
И что в итоге? Мы получили целое поколение (а может и не одно уже), которое невозможно переубедить в том, что веб, это совсем не десктоп. Кардинально. Они (ну то есть вы) по другому вообще не умеют мыслить. Вы мыслите сущностями. А веб, это в первую очередь действие.
А теперь на сладкое.
Представьте на секунду, что обстоятельства сложились бы иначе. И PHP начал бы развиваться по императивному пути. Я доказал, что это лучше? По крайней мере исходя из моего списка?
Так вот, представим, что вокруг одни императивщики, а ООПэшники изредка мелькают в холиварах и причисляются к говнокодерам.
Ну ненадолго представим.
Что было бы.
1. В литературе пропагандировались бы разные способы императивного программирования. Сейчас просто совсем нет толковой информации и негде научиться.
2. Когда этим бы занималась куча народу, появилась бы куча новых способов и тех же паттернов, только не ООП паттернов, а императивных. Такие тоже есть.
3. В интернете была бы огромная куча библиотек, на любой вкус и цвет. НОни и сейчас есть, но недостаточно для промышленного использования.
4. Вместо фреймворков появилась бы куча конструкторов. В чем принципиальное различие? В том, что в продукте, собранном на конструкторе нет ничего лишнего, ни в оперативке ни на диске.
5. Выросло бы поколение специалистов, действительно ответственно относящихся к свей работе, а не как некоторые из присутствующих. Мол чего жалеть ресурсы, есть акселераторы, они пусть разгребают. Мой дед говорил одну фразу, которая стала девизом моей жизни. Всё нужно стараться делать хорошо. А плохо - оно само получится. Сейчас ООПэшники делают все наоборот.
И теперь скажите мне, проанализировав всё вышесказанное в совокупности с тем, что мой код побеждает вариант
cee по всем параметрам, кроме одного. С таким кодом мало кто может работать. Ибо все кругом ООпэшники.
Скажите, положа руку на сердце. В каком случае разработка велась бы быстрее и оптимальнее? Если бы PHP развивался как императив или как ООП?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.