28 July 2008

Антисемантический CSS и анти-MVC-фреймворк на mySQL для изготовления смысла жизни и бизнеса

CSS
«Однажды я спросил свою супругу — зачем она режет кусок мяса квадратом, обрезая его края, прежде чем положить его на сковородку, а остальное выкидывает?...»

Этот топик не имеет смысла.

Он про философию, не про технологии (хотя и про них тоже). Прекратите его читать, если текст более двух абзацев для Вас слишком длинный. Если Вы уже используете правильные технологии — iMac, Linux, PostgreSQL, MVC-фреймворки и забыли как пишется TABLE — не читайте — Вы уже готовы к жизни, поздравляю!

Однако, если Вы используете технологии, которые кто-то постоянно называет «неправильными» или «плохими» — добро пожаловать в наш «неправильный» мир (адский смех на заднем плане).

Около 10 лет назад, когда я начал создавать сайты, я стал впервые сталкиваться с тем, что то, что я делаю, работало, но оказывалось часто на взгляд многих неправильно работающим. В то время еще существовал список рассылки «banners», где можно было кому угодно, даже простым школьникам, коим я тогда и был, поспорить напрямую с Артемием Лебедевым, Антоном Воскресенским (владельцем LinkExchange.ru) и другими передовиками РуНета.

И я тогда делал сайты самым ленивым для себя способом — во FrontPage (может кто еще помнит такую). Именно тогда мне впервые сказали, что FrontPage — это неправильно, ибо он создает массу лишней разметки, что вместо CELLPADDING=«5» нужно писать cellpadding=5, ибо браузерам уже давно пофиг на кавычки, в т.ч. на этом настаивал и Артемий Андреич. Честно говоря, мне было наплевать на мнение многих тогда, но я это запомнил, что оказывается «правильно» писать надо — как можно меньше и ручками, а не визуальными программами. Ну тогда не было большого выбора тэгов, видимо только к этому придраться и можно было.

Перенесемся в 2006 год на секунду и мы обнаружим что оказывается «правильное» написание HTML не зависит от кавычек, а от того какие тэги ты используешь — TABLE или DIV. И слово «правильное» стало неправильным, поэтому заменено на «семантическое» написание HTML.

Перенесемся в 2008 год — я впервые сделал сайт с базой данных на 100 миллионов записей о 70 миллионах сайтов (и если их нормализовать — получится более миллиарда записей на одном обычном сервере — кажется Pentium 4) и я сделал его на mySQL. Как оказывается, по мнению многих людей — это тоже «неправильная» база данных, использовал я ее «неправильно» и CSS мой «неправильный». Однако, работает.

Окей, вернемся в 90ые. Однажды я наткнулся на интересную статью Юрия Мороза о «предпринимателях и специалистах». (ссылку на именно тот текст — не нашел, но выдержки из него — по ссылки в конце)

«Человек, называющий себя специалистом — это убежденный фанатик потребления.»

Прыгнем еще немного в сторону, вполне возможно Вы пользуетесь Mac или Linux, как своей операционной системой. Если так — закройте эту статью, я же в начале сказал — Вы готовы к жизни и читать здесь нечего. Итак все же если представить теперь что пользователи Мака и Линукса нас не слышат, то представьте что Вы им скажете, что пользуетесь XP. На Вас обрушится масса критики, что это «отстой», «неправильно» и т.п. Дорогие пользователи Маков, ведь так же? Ладно все мы знаем, что вы все равно не закроете эту статью потому что я так сказал.

Однако почему же Вы, дорогие маководы и линуксоиды, считаете что я должен удалить свою любимую операционку только потому что Вы мне так говорите, если Вы не можете даже закрыть статью (а это не потребует от Вас переучиваться)? Отвечать на этот вопрос не надо.

Итак, что же есть общего в пользователях Мака, в верстальщиках «DIV-ONLY-MODE», в Линуксоидах, в приверженцах MVC-фреймворков (Ruby on Rails, Django, etc...), специалистах, и покупателях Lexus?

Они все ищут эксклюзивности. Не важно, сколько стоит Мак или айФон — о них же говорят и если я его покупаю — я покупаю право хвастаться им, точно также, как новым Лексусом, пользованием Ruby on Rails или если у меня на декстопе Linux — я «приобретаю» право стать не таким как «ты». Теперь я «лучше» тебя и тебе надо завидовать. Не важно даже, упростит мне это жизнь или что мне придется писать больше кода, будет ли все инсталлироваться одним кликом или нужно будет бороться с ошибками, которые за меня мог бы исправить другой более широкий продукт (Mac vs Linux desktop).

Теперь понятно почему они будут настаивать, что Вы «неправильные» вещи используете? Эксклюзивность их продукта. Лучше он или хуже — другой вопрос.

Итак, но что у них общего со специалистами? Специалист чаще всего узнал о том, как что-то надо делать от другого «специалиста», а тот у третьего и т.п. Первый же — не специалист, а «творец» (идея Ю.Мороза, его же терминологию используем)

Творец точно знает зачем надо ему что-то.

Кто творец? Стив Джобс, к примеру, точно знает зачем ему нужно чтобы его продуктами пользовались, Баллмер, Торвальдс и т.п.

Но моя главная забота не в том, что кто-то пользуется чем-то. Хотите верстать только DIVами — верстайте, только не надо меня грузить тем, что это семантическая верстка, потому что в ответ я буду грузить Вас тем, что мои TABLE может прочитать человек в костюме снежного человека. Сейчас вероятность, что Ваша «семантическая верстка» пригодится — примерно равна тому, что человек в костюме снежного человека будет читать HTML. Ну нету никаких «семантических» браузеров, семантических пауков и семантической сети. Если Вы почитаете внимательно спец.HTML то вообще может быть обнаружите, что это слово использовалось там, чтобы объяснить что HTML язык с тэгами, которые могут быть вложены внутрь других тегов, тем самым помечая разметку документа. А можете и не найти. Не про это статья.

Я сейчас еще немного понаезжаю на CSS (хотя мог бы и прикола ради понаезжать на TABLE, дальше объясню к чему это все). Верстаете только DIVами — пожалуйста, это правильно, так же правильно как и верстать таблицами, javascriptом, или BLOCKQUOTами. Вы отделяете представление от данных? Тогда вся Ваша верстка должна быть без тэгов. Тэг, это же, о Боже, представление! Вы используете DIV (который указывает, что это блок текста) вокруг текста? Это же смешивание данных и представления! Как можно!

Вернемся к примеру с моим сайтом. По результатам разработки сайта, я опубликовал немалое количество статей, в которых описал процесс обхода ~100 мил. сайтов с одного сервера, базы, структуры и т.п. Писал — так, для себя, чтобы не забыть и не пробовать снова.

Статьи получили распространение в популярных соц.сетях. (см.сноску [2] чтобы понять почему я не публикую каких и что за проект) И я получил массу критики. При этом многая критика была бессмысленной «у него не получилось использовать молоток и он винит в этом молоток», хотя я писал ровно обратное — что у меня не получилось использовать молоток и мне надо его как-то по-другому использовать.

Это меня ввело в ступор. Почему люди пишут так, как будто и не читали мою статью, а отвечают клише. И внезапно мне попались две статьи на глаза — буквально на следующий день. Одна из них на Хабре (ссылку потерял — надейте отпишите в каментах) про то, что люди потеряли способность вдумчиво читать и вторая Виктора Доценко «Пятое правило арифметики или радиус Земли равен 10 миллиметрам».

В общем-то, здесь до меня кое чего начало доходить. В последней статье пишется о том, что французские студенты думали, что 3/6 равно 1/3, как выяснилось, потому что «их так научили». Они не задумывались о причинах или что это может быть не так — они просто слышали, что это так и повторяют. Студенты Доценко — это те же специалисты Мороза. Система образования способствует заучиванию, а не обдумыванию.

Ровно те же специалисты пришли ко мне с заученными фразами «не работает молоток», ровно те же люди критикуют верстальщиков TABLE, пользователей Windows, или тех, кто смешивает PHP и HTML в маленьких проектах. Ну нафига мне в проекте из 1 страницы делать 1 представление, 1 модель, 1 шаблон, 1 файл настроек, 1 css файл, 1 javascript файл, и т.п?.. На этот вопрос тоже отвечать не нужно.

Когда-то я был математиком и считал что все можно понять логикой и словами, потом я понял, что восточная мистика с пониманием через ощущение — куда ближе к реальной науке и их метод ломания стереотипов — способ заставить человека думать.

Итак, есть ли смысл в верстке только CSSом? Есть и нет! А только таблицами? Есть и нет! А смешанной? Есть и нет! А покупать Мак? Есть и нет! Остаться на винде? Есть и нет!

Есть ли во мне смысл, если я не могу объяснить почему тот метод которым я пользуюсь хорош и почему плох? Нет во мне смысла. Я специалист. Я продукт массового обучения. Бездумная медленно гниющая масса. Все мы медленно умираем.

Однако, в тот момент, когда я наконец задумываюсь «Почему верстка только CSS лучше? Почему она хуже? Работает ли это только для меня? Что именно вложено в смысл слова 'семантическая'? Что вообще это слово значит?» — вот тут в моей жизни появляется смысл («семантика» — раздел семиотики — наука о «смысле»). И даже если Вы наконец задумались о том, что «Я верстаю CSS чтобы как-то выделится из толпы» — в вашей жизни уже больше смысла, чем в жизни тех, кто повторяет стопятидесятый раз что «надо отделять данные от представлений».

«Однажды я спросил свою супругу — зачем она режет кусок мяса квадратом, обрезая его края, прежде чем положить его на сковородку. Она сказала, что так жарила мясо ее бабушка. Я пошел к ней, чтобы узнать. Оказалось, что у бабушки была бедная семья и не было денег на посуду, у нее была слишком маленькая сковородка, чтобы на нее влез весь кусок мяса и она обрезала края. У нас же была большая сковородка, но моя жена продолжала обрезать мясо, не зная зачем?» (Цитата неточная и неправильная, возможно не из «Думай и Богатей»)

Так вот если я повторяю что надо отделять данные от представлений, но не могу сказать какая конкретно ошибка в моей жизни заставила меня теперь отделять данные от представлений — в моей жизни нет смысла. Я не думаю. Я повторяю. Я обрезаю мясо и выкидываю куски.

Ровно из той же серии загуглите «обезьяны, потому что здесь так принято» — вы будете очень удивлены, если не читали этого раньше.

Поскольку до этого места все равно никто не дочитает, поиграем в судьбу? Если этот топик станет популярным — то хотя бы один комментарий будет «бред человека, который не знает как делать CSS», хотя бы один будет в духе «маки круче винды», кто-нибудь скажет, что я «ошибся в какой-нибудь цитате» (естественно не заметив леса за деревьями — смысла статьи за буковками) и конечно будет извечное «какой-то неудачник занудствует о жизни» :)

Так вот если Вы подвергаетесь постоянной критике, что вы делаете что-то «неправильно», но Ваш выбор — не результат случайности, а жестокой ошибки в прошлом или потому что Вы сравнили оба пути на своем опыте и один из них — быстрее, вызывает меньше ошибок или удобнее для Вас — В вашей жизни есть смысл — Вы из тех, кто думает и не станет писать больше кода или менее надежный код только потому что этот язык «не крут», эта платформа «не молодежна», но Вы сталкиваетесь со «специалистами», когда Вам говорят про «семантику» (как вы помните при стачке со словом «правильно» — оно выиграло войну и заменило его, потому что гораздо более непонятное многим слово, но его используют «передовые специалисты» — те, кто быстрее всех начинает повторять).

Хотите хотя бы попробовать поучиться думать? Я этому не научу, сам не научен толком. Почитайте книгу «Истина в тезисах» (дабы не считали, что это реклама — эта книга в инете бесплатно лежит, помоему она даже вышла уже бесплатной).

А главное, что Вы понять сможете, что «своего мнения» ни у кого почти нет. У вас по-настоящему «свое мнение» только в одном из миллиардов случаев бывает, может быть один раз в жизни.

— 1. shsd.ru/biblioteka/article-moroz/podgotovitel-kurs-shsd/pk9
Статья про специалистом, Юрий Мороз

2. Я не публикую что это за проект и сети, потому что статья не имеет к этому отношения, а если это опубликовать — Вы отвлечетесь и не поймете к чему все это. Вы даже сейчас уже забыли, что один абзац назад я предлагал Вам книгу почитать :)

А если уж Вы и правда задумались над тем, что я сказал — подумайте над главным вопросом: «Зачем надо думать над тем, почему я что-то делаю?»


Йои Хаджи,
вид с Хабра
Tags:думай
Hubs: CSS
+60
386 39
Comments 193
Senior JS developer on Block-Based editor
from 3,000 to 3,500 $Nimbus WebRemote job
Frontend-разработчик
to 150,000 ₽Reliable systemsУльяновскRemote job
Senior JavaScript Developer (Playable Ads)
from 1,500 to 3,000 $AllcorrectRemote job