Синдром Данилы-мастера

Каждый раз, когда я вижу, как прекрасный, лаконичный, функциональный прототип обрастает наслоениями дизайна и вебдванольных рюшечек, я испытываю раздражение. Раздражение вызвано абсолютной ненужностью всех этих вещей, которые к тому же отнимают ужасное количество времени, сил, ресурсов.

Вчера 10кб контента сопровождались 200кб хитро прооптимизированных растров. Сегодня они сопровождаются теми же 200кб JS-библиотек. Разницы, в общем-то, никакой. Просто сменилось поколение веб-людей.

Радикальное веб-движение, безусловно, сыграло свою положительную роль в процессе развития веб-разработок: контент освободился от table’ичных оков, нашел широкое признание публики тот факт, что в мире существует много разнообразных и по-своему неплохих браузеров.

Однако революцией сыт не будешь. Это обстоятельство породило доктрину Web 2.0. И прогрессивная разметка контента, использование CSS для максимального отделения оформления от контента, использование JS-кунштюков для необходимой оптимизации рутинных интерфейсных вещей (например, проверки заполнения форм и т.п.) тут же была дополнена эмуляцией пользовательских интерфейсов в стиле десктопной операционной системы. Тут вам и модальные окна, и драг-н-дропы и инкрементальный поиск и подстановка значений форм. Красиво, слов нет. Кстати, по меткому замечанию одного из наших ведущих разработчиков, на самом деле, Web 2.0 – это «когда у тебя настолько широкий канал, что ты можешь гонять Win32 GUI по сети» :) Между тем, нужно все это богатство только тем Данилам-мастерам, которые, раз написавши код, и смогут его потом поддерживать. Верней найти-то можно и другого Данилу, Дэниела или Даниэля. Но стоить он будет столько же, сколько весь штат ваших наемных ньюсрайтеров. А лично я даже при наличии толстого канала все равно буду загружать фотографии на очередной фото-сервис при помощи Win32 клиента, а не безумно красивого онлайнового интерфейса. С клиентом проще и удобней, и даже на стареньком ноутбуке не тормозит

Нужно четко понимать: красота проекта не является его конкурентным преимуществом и вовсе не ведет к успеху старт-ап. Кстати, обилие AJAX-фишек – это тоже из области красоты. К функциональности это не имеет отношения ровным счетом никакого. Для любого Интернет-проекта существует только две составляющие успеха: 1) контент; 2) функциональность. Причем, контент – это работа ваших журналистов и экспертов, а функциональность реализуется программистами, кстати, 2/3 этой функциональности лежат на стороне сервера и БД.

Я мог бы привести примеры, иллюстрирующие мои слова, но не потружусь этого сделать, потому что каждый пример будет немедленно торпедирован моими противниками множеством контр-примеров. Из любого правила существуют исключения. Скажем, digg.com безусловно хорош интерфейсно в своей вебдванольности, но посмотрите на структуру его рекламы и качество аудитории… Поэтому перейду к выводам. Исходя из своего опыта в отрасли, я считаю:

1. Дизайн в смысле красот, которые прямо и непосредственно не относятся к контенту нужен и необходим только и исключительно корпоративным сайтам и торговым лавкам. Также, как он необходим корпоративному буклету или световому коробу. Изготовление этих вещей – древнее ремесло, имеющее к Интернету весьма опосредованное отношение, что наглядно демонстрирует вектор развития, например, студии Лебедева. На всех прочих проектах графика оправданно может присутствовать только в виде логотипа (в случае, если он являет собой торговую марку) и небольшого количества управляющих элементов интерфейса (например, command button).

2. Чрезмерное употребление JS (никакого AJAX на самом деле нет, есть старый JS) бессмысленно. Использование скриптов возможно только для оптимизации каких-то рутинных процессов ввода пользователем информации в очень ограниченных количествах и с большой оглядкой на вопросы безопасности.

3. Любой, практически любой ресурс должен быть сделан так, чтобы поддерживать его в разумных пределах мог сам заказчик при помощи своего специалиста-эникейщика или, в случае публикации конетента, недорогих девочек-надомниц.

Продолжение следует…

December 8, 2006

24 responses to Синдром Данилы-мастера

  1. Leonya said:

    Позволю себе не согласиться с выступлением Романа (хе-хе, кто-то ожидал другого?)

    Во-первых, развитие JS играет (с моей точки зрения) такую же положительную роль, какую сыграло в своё время движение веб-стандартов. Т.е. буквально те же самые люди, которые три года назад предлагали всем желающим “верстать правильно”, теперь занимаются “правильным скриптингом”. А так как я прекрасно помню твоё трехлетней давности отношение к “правильной верстке”, то сейчас мне кажется, что ты лукавишь. В частности, ты приводил тот же самый “бронебойный” аргумент против – потребность в дорогостоящих мастерах, для поддержки этого хозяйства. Ну и что? А ничего – появились не столь дорогостоящие мастера верски, появятся таковые и в скриптинге. Либо те же люди, которые сейчас ориентированы на серверный и БД-код, обратят свои взоры на JS и увидят (если смогут и захотят), что JS-то, в общем, не так уж плох, совсем это не древний и противный язык, на котором и написать толком ничего нельзя, а совсем даже наоборот. Повторю – это исключительно вопрос желания и уровня заплесневелости мозгов.

    Во-вторых, я предлагаю вашему ведущему разработчику поскорее забыть бредовую мысль про гоняние Win32 GUI по сети. Неужели он не в курсе, что Win32 GUI архитектурно для этого не приспособлен и никогда таковым не станет? Ну так передайте ему, что весь остальной мир – в курсе, и поэтому этим не занимается.

    Тезис “никакого AJAX на самом деле нет, есть старый JS” не выдерживает критики. И AJAX (XmlHttpRequest) есть (и поддерживается повсеместно совсем недавно), и старый JS – не такой уж старый. Посмотри любой ОО JS-фреймворк – IE5.5 и выше, Mozilla, Safari. Почему? Потому что написаны они с применением фич JS, которые старыми браузерами не поддерживаются. Это только с точки зрения обывателя JS сейчас и 10 лет назад – одно и то же, для разработчика это совершенно разные вещи. Ты мне говорил как-то – “мы AJAX ещё 7 лет назад начали использовать”. Не AJAX вы использовали, а проприетарное расширение от MS!

    Да, безусловно, есть и правда в твоем посте. Конечно, на одного разработчика, понимающего что и как, и использующего технологии по назначению, приходится десяток мальчегов, прибежавших на модный buzzword. Ну и всегда так было, вся история софтвер-девелопмента такая. Совсеи не повод писать изобличающий памфлет. Если бы ты показал конкретный пример сервиса, который ТЫ сделал, и продемонстрировал бы, чем ТВОЙ сервис лучше вебдванольного АНАЛОГА – OK, никаких вопросов. А так – собака лает, караван идет…

  2. terentief said:

    Леня, и в чем твой пост противоречит моему?

  3. Leonya said:

    Разница в том, что я, если вижу сервис с “плохим AJAX” просто им не пользуюсь. Собственно, мне известен только один сервис (Я.П), который без AJAX был хорош, а с ним стал плох – им я перестал пользоваться. При этом я с удовольствием пользуюсь другими – хорошими – сервисами, с хорошим AJAX. Ну и воспринимаю соответственно это не в таких мрачных тонах, как ты.

  4. Leonya said:

    Ты пойми, что конкуренция между вебдванольными деятелями настолько высока, что неудачные проекты вымрут сами, без твоих и моих разоблачений :)

  5. terentief said:

    :) а мне вот нравиццо всякое развесистое, но я им не пользуюсь :)
    причем в основном потому, что я вообще не пользуюсь практически Веб 2.0 сервисами :) Даже ЖЖ пользуюсь в общем-то вынужденно – потому что большинство им пользуется. А во всем остальном мы с тобой вроде как согласны за исключением деталей :)
    На самом деле еще в 97 году было все отлично – верстка была простая, графики минимум. Эхъ, если п вернуццо в 97 год при нынешних скоростях :)

  6. terentief said:

    да, Леня, тут вот мысль какая еще может быть осталась “за гранью”. Веб 2.0 сам по себе не плох и не хорош, плохо то, что чрезмерным употребением характерных для него технологий “данилы” пытаются делать то, для чего ни Веб, ни браузер не предназначены.
    … и получается – раньше гифчики анимированные тщательно рисовали, счиатя палитры, а тепрь прелоадами делают слайдшоу из картинок – вот я собственно о чем.

  7. Leonya said:

    Понимаешь, пока много чего не попробуешь, сложно понять – зашел ты за грань возможностей веба и браузера, или не зашел. А если вообще ничего пробовать не будешь, типа и так тепло – ничего, кроме ярлыка ретрограда, не заработаешь :)

  8. terentief said:

    ну, уж кого-кого, а меня, кажется сложно назвать ретроградом :)
    ты бы приехал на семинар, мы бы подискутировали и я бы обратил тебя в свою веру :) а сейчас, Леонид, я очень хочу спать :)

  9. Leonya said:

    Кстати, я в Ярославле, и свободен все выходные. Можем встречаться.

  10. Андрейка said:

    “Миллионы леммингов не могут ошибаться!” — народная мудрость. (это эпиграф)

    Продолжать тут, собственно нечего, потому что, действительно, как уже Леня заметил, это просто неконкретные замечения человека, который ни сам не пробовал что-то делать “вот так”, ни использует сервисы с применением описанных технологий (что равно “не понимает преимуществ этих самых технологий”).

    Жаль, Леонид меня опередил и уже констатировал, вообщем-то, общеизвестные факты про описанные “феномены” нашего века.

    Я лишь хотел подытожить. Ребята, если делать корпоративные сайты, то там, действительно нет ни вебдваноля, ни аджаксаматьего, ни JSON с XML/XSLT (хотя тут меня ткнут носоом сейчас и скажут: “как же это нет? еще как есть!”). Так я это к чему? А к тому, что все эти “ненужные” навороты, действительно нужно:

    1. уметь использовать
    2. знать когда и как это делать
    3. понимать, зачем это делается
    4. думать головой (это для всего надо делать)

    В итоге имеем, что вебдваноль сам по себе, а вы, парни, сами. И все, конфликта-то и нет. И не надо бросаться какашками в то, что является новым и не таким распространненым. Потому что именно за этим и стоит прогресс… Можно долго и нудно вспоминать много случаев из истории, лишь доказывающих, что несмотря на какашки, прогресс все равно будет идти. Успешно или нет — судить будем мы сами, но немного позже.

  11. Андрей, а использование JS-библиотек расходы на разработку и поддержку сокращает/не меняет/увеличивает/что-то ещё? Сейчас и в перспективе? С учётом цены разработчиков?

  12. Андрейка said:

    JS-библиотеки _значительно_ сокаращают как время разработки, так и время поддержки, тестирования и т.д. (например, в scriptaculous вообще есть поддрежка unit и functional тестов для JS приложения). Конечно, ценой тому — достаточно большой объем библиотек + производительность ниже в ресурсоемких местах.

    Но это тоже самое, как использование XML или нормальной реляционной БД — где-то можно пожертвовать производительностью удобству разработки, где-то наоборот. Все зависит от данного конкретного приложения.

    Далее, в перспективе, синтаксис библиотек настолько прост, что можно тех же дизайнеров (они же кодеры, не рисовальщики) обучить делать простейшие вещи “не для продакшана” прямо в прототипах. Например, чтобы показать разработчикам, что тут должен быть такой эффект, а тут должно прятаться поле, когда нажали кнопку и т.д.

    Цена разработчика пока еще зависит (что очень хорошо) от его способностей. Поэтому этот вопрос я опущу. :) Скажу только одно — если разработчик говорит, что что-то невозможно реализовать из-за существующих ограничений браузеров, например, то цена ему – 1 доллар в час, не больше. Потому что он:

    1. лентяй,
    2. не следит за технологиями
    3. ретроград

    что для любого разработчика очень плохо.

    Еще раз — библиотеки (фреймворки) лишь упрощают разработку и поддержку клиентского ПО. Они не делают чудес, не требуют знаний специфики интерпретатора JS в браузере, помогают разрабатывать под разные браузеры не задумываясь о различиях имплментации JS в них и т.д.

  13. Андрейка said:

    Кстати, есть очень “легкие” библиотеки, которые делают почти тоже самое. Например moo.tools — одна из таких. Основана на том же прототайпе, но при этом весь ее бандл (с эффектами, драг-и-дропми и всем-всем-всем) всего лишь ~80 кб вроде. + есть возможность собрать бандл под конкретные задачи. Например, на http://wildbit.com/ я использовал именно ее, так как сайт из одной страницы (5 КБ) + 200КБ скриптов — действительно перебор. В итоге там для всех тех красот, что я сделал на JS нужно всего лишь около 15 кб доп. скриптов, что, согласись, вполне мало даже для диалапа… Основной объем там — скриншоты проектов.

  14. Leonya said:

    Кстати, про безопасность AJAX-приложений: http://www.whitehatsec.com/home/resources/articles/files/myth_busting_ajax_insecurity.html

    Там много букв, а суть такая:

    * Does AJAX cause a larger “Attack Surface”? No.
    * Does AJAX make the “Attack Surface” harder to find? Yes and No.
    * Can AJAX cause “Denial of Service”? Not really.
    * Does AJAX rely on client-side security? No.
    * Does AJAX lead to poor security decisions? Sort of.
    * Does AJAX make Cross-Site Scripting (XSS) attacks worse? I hope not.
    * Does AJAX change security best practices? No.

    Ну то есть радикальной разницы нет. Как обычно с безопасностью – надо хорошо думать, что ты пишешь.

  15. Nicodim99 said:

    Э, прикольно у вас тут. Лёня злой такой, прямо как я.

    Только хотел поинтересоваться, какие фичи появились в JS за последние годы, которые старыми браузерами не поддерживаются, кроме пресловутого XmlHttpRequest?

  16. Nicodim99 said:

    >гонять Win32 GUI по сети

    Дядя Рома, ну ты мощно задвинул. А мужики, небось, на меня подумали. Гонять Win32 GUI по сети – это Remote Administrator :)

  17. Roman Efimov said:

    ну, это же была художественная гипербола :)

  18. Leonya said:

    > Только хотел поинтересоваться, какие фичи появились в JS за последние годы, которые старыми браузерами не поддерживаются, кроме пресловутого XmlHttpRequest?

    1) DOM Level 1 и 2 прилично поддерживается только вышеупомянутыми IE5+, Mozilla, Opera. А хорошо поддерживается только в Mozilla и Opera.

    2) JavaScript 2.0 скоро будет стандартизован, и первые ростки поддержки уже есть в Mozilla

    3) Ещё один будущий стандарт – Web Applications 1.0 (http://www.whatwg.org/specs/web-apps/current-work/) – тоже начинает поддерживаться Мозиллой.

    4) E4X (ECMAScript for XML) – тоже Mozilla.

  19. Nicodim99 said:

    Я конкретно про JS спросил, а ты мне про браузерный dom, да про какой-то неясное будущее, тем более в Mozilla.

    В IE вон много чего есть, и не в будущем, а уже сейчас, только что толку?

  20. Leonya said:

    Я тебе про JS и ответил — он, к сожалению, в отрыве от конкретных браузеров не существует. И это стандарты, а не MS-овские расширения, которые кроме них никто никогда поддерживать не будет.

  21. terentief said:

    Чудесная дискуссия вышла.
    чем-то напоминает сцену в театре-варьете из М and M Булгакова.
    фокусы и их разоблачения :)
    кстати, кроме нашей публики кто-то читает это блог? читает. господа, был бы рад услышать Ваши голоса.

  22. Sergant said:

    Читаем, Роман, много думаем :)
    Я считаю что все должно быть вмеру. Обилие картинок + отсуствие JS что ведет к постоянному обновлению странички порой даже с современными скоростями приводит в унынье.
    Как вариант можно делать меньше размер страничек что как мне кажется не всегда возможно при использовании всяких CMS рассчитанных на американские T9 каналы (гы. мне на сайт хакеры присалил 1 Терабайт за месяц:) )
    Либо всетаки не пренебрегать JS и AJAX. Кое что без них вообще не сделать. Если посмотришь на одну нашу програмку http://www.http-com.com то увидишь что там это все используется. И попробуй замерить трафик после того как загрузится интерфейс-он будет ничтожный потому как использует JS и AJAX.

    Насчет стоимости разработки. Не силен я в этом деле. Но помоему любого верстальщика можно научить более менее понимать/писать JS код. Это же самое простое что есть. Qbasic разве что сложнее.

    Насчет сложности разработки JS, Css и восприятия ими разных браузеров.
    Раньше заточить под большинство браузеров JS, css код было очень сложно. Приходилось рассматривать разные случаи а кое что вообще не работало. У меня всяких версий браузеров за последние 10 лет установлено около двух десятков, по другому никак. Обычно работало хорошо только в IE. Сейчас, незнаю что случилось но последние версии FireFox, Opera, Netscape, IE понимают JS и CSS практически одинаково и все работает. Кто-то там из них использует общее ядро поэтому и работает.

    Насчет клиентов (для загрузки картинок и т.п) я думаю что оптимальный вариант использовать java апплеты. Во первых их понимают самые распространенные браузеры. Во вторых их можно сделать под любую ОС. В третьих может взаимодействовать с другими элементами странички и сессии.

    Для тех у кого браузер не поймет -можно сделать EXE которая в окне будет показывать тотже апплет.

    Кстати о LiveJournal. Что за клиента ты используешь? это который webphotospro?
    Он кстати на Jаva написан. Но интерфейс его я не осилил. Минут 10 надо как минимум чтобы разобратся:)

  23. Турист said:

    Вот вы спорите по поводу веб 2.0 технологий и критикуете их… а ведь использование технологии ajax в некоторых случаях достаточно оправдана и таких примеров немало…

  24. 1. “Достаточно оправдана” или “Критически необходимо”?
    2. Примеры в студию, пожалуйста.
    3. Мы не отрицаем web 2.0 – технологии, мы, как обычно, интересуемся “сколько это стоит”?

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>