А с чего начинается ненависть, пупсик, спросите вы? И толку плакаться, мол?
Или некоторые мне даже посоветуют написать еще один дурацкий генератор html, чтобы на процесс разработки сайта от начала до конца меньше отвлекаться на «тр тыды тыды тр». Или поюзать шаблоны. Или убиться об стену. И каждый такой вариант не будет панацеей, лишь потому, что он борется со следствиями и не решает проблему.
Эх, а ненависть — она аккумулятивная. Вот попросит начальник формочку добавить с аяксами, да табличку к ней. Вроде, чего делов-то? Функция выполняется простая: запись известных данных в известных местах. А потом чтение этих данных из известных мест. Но как это делается? А почему, собственно, так делается?
Вот к примеру, к сложности шаблонизации этого выкидыша, которую все героически преодолевают. Почему эта сложность вообще есть?
Я, конечно, не скажу ничего нового, если замечу, что данные и представление и их встряхивание — это самое отвратительное. Вроде исходная логика не меняется, а сколько труда тратится на перестановку кнопочек?
Вот и получается, что код, генерящий «данные+преставление» должен выдавать отклик на изменение ЛЮБОЙ из двух компонент. А оно надо?
И я уже не говорю о чудесах дизайна, разрезаниях PSD, впихивании флеша, прочесывании плеша, добавлении плясками всяких гроупбоксов с автодополнениями и не говорю о прочем ментальном онанизме, единственная цель которого — добавить в идеологический труп то, без чего сегодняшний тырнет станет таким же серым как и много лет назад.
А, кстати говоря, многие функции, которые все старательно пишут на уродоблских джавах элементарно реализуются средствами ОС. Без плясок. Поэтому единственное верное направление развития уеб-технологий — это не создание самостоятельного велосипеда, который умеет все то же, что и ОС, только без ОС, а умелое использование фишек и плюшек которые УЖЕ сделаны. Т.е. реализация такого языка разметки и представления интерфейса, который будет использовать контролы ОС. Это, кстати, решит многие проблемы с версткой и проектированием интерфейса. Сделать интерфейс при помощи Qt и при помощи веба — вещи, казалось бы разные по сложности. И некоторым кажется, что в вебе это делается проще. Но это, конечно, не так.
Поэтому, если не хочется кусать дырку от бублика интерфейса как сейчас — со стороны клиента и со стороны сервера, то нужно разрабатывать то, что будет использовать уже существующие технологии отображения данных.
Как бы, подводя итоги. HTML без сайтов — не html. По сути, что такое сайт? Все носятся со своими крутыми стартапами и кричат: «ООО!!! КАК ЭТО КРУТО!!! У МЕНЯ ЕСТЬ ИДЕЯ!!!» А вся идея состоит из одной (или в лучшем случае двух) функций. Они, как правило, элементарно реализуются в оффлайн-программировании (я не рассматриваю глупые технологии, вроде стрелялок в браузерах, от которых практической пользы ноль, лишь уничтожители времени). А теперь рассмотрим ту же функцию с точки зрения ее воплощения в вебе:
— принудительное создание дизайна, который состоит из куча формочек, скриптиков, страничек и прочего фуфла
— принудительная идентификация пользователя (а так сейчас почти везде, либо ro)
— функции укрощения анонимуса
— нормальная система логирования
Вот, предположим, хочется нам сделать систему почтовых рассылок по крону, суть которой в доставке сообщения в нужное время нужному человеку. Вроде все просто? Итак, посмотрим как этот процесс выглядит по порядку от юзера до хозяина ресурса:
— юзеру нужно как-то представиться, чтобы можно было отправлять письма, значит нам нужна таблица юзеров, форма регистрации пользователя, подтверждение регистрации, форма изменения личных данных, капча.
— нужно сделать форму добавления новой рассылки, форму просмотра существующих рассылок, форму изменения рассылок
— дальше, наш юзер может использовать сервис во вред остальным, поэтому необходимо реализовать механизм отделения пользователя от всего мира (поэтому складывается ощущение, что веб представляет не столько функции, сколько методы ограничения их использования). Говоря проще, сделать лимит исходящих сообщений в день… за бесплатно в день. Это значит, что нужно еще добавить обработчик исключений.
— нужно реализовать обратную связь внешнего мира с пользователем, в виде кросс-пересылки сообщений мир-юзер и возможности комментирования некоторых сущностей.
— любой ресурс должен по сегодняшней логике вещей иметь хозяина. Это значит, что нужна админка. И весь онанизм с флажками прав доступа.
— логи, обратная связь с арбуз-командой
— место взаимодействия внешнего мира, юзера, администрации. К примеру — форум.
— множество других мелких нюансов, таких как слепая драчка сеорастов за пропихивание кусков говна в глубины веба
— и хостинг, куда ж без него!
Проблема в том, что 90% функций любого сайта либо не нужны юзеру, либо не нужны хозяину. И все эти 90% функций со стороны хозяина, все они всегда одинаковые. То есть эти функции делают одно и то же от проекта к проекту, но по-разному, за счет постоянно изменяющейся модели данных. Вроде бы эту проблему постоянно все решают создавая новые модули, фреймворки, шаблоны, движки, но по ходу еще не решили до конца. И не решат. Знаете почему?..
Все горазды критиковать, скажете вы. Да, это так. Целей поста две:
— собрать интересные комментарии, которые смогут внести нечто новое в несуществующую пока концепцию нового веба
— актуализировать немаловажную тему, которая стала настолько повседневной, что ее перестали замечать — многие воспринимают мир как данность. Я думаю, что многие it-технологии — это произвольные ограничения прошлого, модулирующие будущее в настоящем. Так быть не должно (или так должно быть не всегда), поэтому однажды система должна вырастать вверх, а сейчас она растет вширь.
Или некоторые мне даже посоветуют написать еще один дурацкий генератор html, чтобы на процесс разработки сайта от начала до конца меньше отвлекаться на «тр тыды тыды тр». Или поюзать шаблоны. Или убиться об стену. И каждый такой вариант не будет панацеей, лишь потому, что он борется со следствиями и не решает проблему.
Эх, а ненависть — она аккумулятивная. Вот попросит начальник формочку добавить с аяксами, да табличку к ней. Вроде, чего делов-то? Функция выполняется простая: запись известных данных в известных местах. А потом чтение этих данных из известных мест. Но как это делается? А почему, собственно, так делается?
Вот к примеру, к сложности шаблонизации этого выкидыша, которую все героически преодолевают. Почему эта сложность вообще есть?
Я, конечно, не скажу ничего нового, если замечу, что данные и представление и их встряхивание — это самое отвратительное. Вроде исходная логика не меняется, а сколько труда тратится на перестановку кнопочек?
Вот и получается, что код, генерящий «данные+преставление» должен выдавать отклик на изменение ЛЮБОЙ из двух компонент. А оно надо?
И я уже не говорю о чудесах дизайна, разрезаниях PSD, впихивании флеша, прочесывании плеша, добавлении плясками всяких гроупбоксов с автодополнениями и не говорю о прочем ментальном онанизме, единственная цель которого — добавить в идеологический труп то, без чего сегодняшний тырнет станет таким же серым как и много лет назад.
А, кстати говоря, многие функции, которые все старательно пишут на уродоблских джавах элементарно реализуются средствами ОС. Без плясок. Поэтому единственное верное направление развития уеб-технологий — это не создание самостоятельного велосипеда, который умеет все то же, что и ОС, только без ОС, а умелое использование фишек и плюшек которые УЖЕ сделаны. Т.е. реализация такого языка разметки и представления интерфейса, который будет использовать контролы ОС. Это, кстати, решит многие проблемы с версткой и проектированием интерфейса. Сделать интерфейс при помощи Qt и при помощи веба — вещи, казалось бы разные по сложности. И некоторым кажется, что в вебе это делается проще. Но это, конечно, не так.
Поэтому, если не хочется кусать дырку от бублика интерфейса как сейчас — со стороны клиента и со стороны сервера, то нужно разрабатывать то, что будет использовать уже существующие технологии отображения данных.
Как бы, подводя итоги. HTML без сайтов — не html. По сути, что такое сайт? Все носятся со своими крутыми стартапами и кричат: «ООО!!! КАК ЭТО КРУТО!!! У МЕНЯ ЕСТЬ ИДЕЯ!!!» А вся идея состоит из одной (или в лучшем случае двух) функций. Они, как правило, элементарно реализуются в оффлайн-программировании (я не рассматриваю глупые технологии, вроде стрелялок в браузерах, от которых практической пользы ноль, лишь уничтожители времени). А теперь рассмотрим ту же функцию с точки зрения ее воплощения в вебе:
— принудительное создание дизайна, который состоит из куча формочек, скриптиков, страничек и прочего фуфла
— принудительная идентификация пользователя (а так сейчас почти везде, либо ro)
— функции укрощения анонимуса
— нормальная система логирования
Вот, предположим, хочется нам сделать систему почтовых рассылок по крону, суть которой в доставке сообщения в нужное время нужному человеку. Вроде все просто? Итак, посмотрим как этот процесс выглядит по порядку от юзера до хозяина ресурса:
— юзеру нужно как-то представиться, чтобы можно было отправлять письма, значит нам нужна таблица юзеров, форма регистрации пользователя, подтверждение регистрации, форма изменения личных данных, капча.
— нужно сделать форму добавления новой рассылки, форму просмотра существующих рассылок, форму изменения рассылок
— дальше, наш юзер может использовать сервис во вред остальным, поэтому необходимо реализовать механизм отделения пользователя от всего мира (поэтому складывается ощущение, что веб представляет не столько функции, сколько методы ограничения их использования). Говоря проще, сделать лимит исходящих сообщений в день… за бесплатно в день. Это значит, что нужно еще добавить обработчик исключений.
— нужно реализовать обратную связь внешнего мира с пользователем, в виде кросс-пересылки сообщений мир-юзер и возможности комментирования некоторых сущностей.
— любой ресурс должен по сегодняшней логике вещей иметь хозяина. Это значит, что нужна админка. И весь онанизм с флажками прав доступа.
— логи, обратная связь с арбуз-командой
— место взаимодействия внешнего мира, юзера, администрации. К примеру — форум.
— множество других мелких нюансов, таких как слепая драчка сеорастов за пропихивание кусков говна в глубины веба
— и хостинг, куда ж без него!
Проблема в том, что 90% функций любого сайта либо не нужны юзеру, либо не нужны хозяину. И все эти 90% функций со стороны хозяина, все они всегда одинаковые. То есть эти функции делают одно и то же от проекта к проекту, но по-разному, за счет постоянно изменяющейся модели данных. Вроде бы эту проблему постоянно все решают создавая новые модули, фреймворки, шаблоны, движки, но по ходу еще не решили до конца. И не решат. Знаете почему?..
Все горазды критиковать, скажете вы. Да, это так. Целей поста две:
— собрать интересные комментарии, которые смогут внести нечто новое в несуществующую пока концепцию нового веба
— актуализировать немаловажную тему, которая стала настолько повседневной, что ее перестали замечать — многие воспринимают мир как данность. Я думаю, что многие it-технологии — это произвольные ограничения прошлого, модулирующие будущее в настоящем. Так быть не должно (или так должно быть не всегда), поэтому однажды система должна вырастать вверх, а сейчас она растет вширь.