Friday 6 August 2010

О веб-технологических котлетах

Давайте сразу разложим все котлеты по своим тарелкам - рыбные, мясные, прочие.

В нашем веб-общепите есть стабильный набор очень популярных ингредиентов из которых готовят веб-котлеты. Меню стандартизировано, хотя есть незначительные различия, но, в целом, у всех одинаковый ассортимент.

MySQL, PHP - серверные приложения, они готовят котлеты, ТОЛЬКО серверные котлеты (для приготовления этих котлет используются и другие приложения, но эти - самые распространенные). HTML, CSS, JavaScript - клиентские технологии и готовят только клиентские, такие рыбные котлеты. Здесь я немного слукавил. HTML это зразы, такие особые котлеты, которые готовятся на серверной стороне, но для клиентской стороны.

Если проводить другую, более правильную аналогию, то...

База данных это библиотека, хранилище информации, PHP, Perl, ASP - архивариус, он подготавливает новые данные к хранению и извлекает старые для показа. Веб-сервер - библиотекарь на абонементе, который просит архивариуса принять запрос, выполнить и вернуть отчет о выполненной работе. "Отчетом" может быть сообщение о том, что новые данные помещены в библиотеку, список данных, извлеченных из библиотеки или сообщение об отсутствии запрашиваемой информации. Браузер - клиент, которому данные понадобились или который доставил новые данные (альтруист, который готов поделиться своей информацией). Информацию клиент получает в стандартизированной форме - книга, определенного формата, состоящая из сшитых тетрадей, обернутых в обложку, либо это набор свитков, либо пачка каменных скрижалей -стандарт HTML работает во всех браузерах, но у каждого есть свои маленькие особенности.

Однажды было решено, что каждый клиент библиотеки должен получать нужную ему информацию в определенном стандартизированном формате. Поэтому, чтобы все данные выглядели одинаково - красивый iPod, с красивыми обоями, любимыми рюшечками и с обязательным гламурным тачскрином - придумали способ, чтобы все это разнообразие облагородить и анимировать - CSS, JavaScript. CSS призван сделать из книги, свитка и скрижалей единообразный iPod, JavaScript придуман и облагорожен для того чтобы каждый iPad и iPaq и даже самый первый, простейший коммуникатор чувствовали себя iPod'ом.

Был придуман набор правил для каждой книги и скрижали, но не учли всех книг всех нестандартных форматов и всех скрижалей выше двух локтей в высоту и тяжелее пуда. А еще позволили каждой типографии и каждому резчику по камню иметь свое представление того, как должен выглядеть этот iPod на самом деле. Отсюда и пошли разногласия в представлении каждой стрижали и каждого свитка как Слово Божие должно представляться и анимироваться. Но не все так плохо, появились кудесники (дизайнеры с верстальщиками, и программистами), которые нашли способы, чтобы заставить каждую скрижаль и свиток показывать (CSS-hacks) и анимировать (JavaScript-frameworks) единообразно. Да так, что большинство и не задумывается о ма-а-аленьких различиях. В основном... Но если приглядется... то как не чисть рыбу а кости-то все равно в котлету попадут.