Different Reality

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

    Я занимаюсь клиентской разработкой уже 8 лет и за это время браузеры совершили гигантский скачок вперед. Во-первых их стало очень много. В зоопарке разработчика на данный момент 10(!) основных браузеров — IE6/7/8/9, Fx 3.6/4/5, Opera, Chrome, Safari плюс мобильные и специфические. К счастью, ветеран IE6 уже вскоре окончательно умрет, да и IE7 уже сдает позиции. Firefox поменял свой подход к версионности вслед за Chrome и будем надеяться что в скором времени мы будем работать только с последним релизом, не оглядываясь на цифры. Opera тоже заматерела и движется в сторону автообновления.

    Почему в первую очередь я заговорил именно о браузерах, а не о стандартах? Да потому что компании разработчики браузеров и являются основными разработчиками и евангелистами современных стандартов веб-разработки. Все они являются активными членами W3C и помогают разрабатывать стандарты и внедряют их, зачастую не дожидаясь утверждения спецификации. Это порождает нагромождение избыточного синтаксиса с вендор префиксами, но это временное явление.

    Внедрение стандартов в браузерах похоже на гонку вооружений. Кто быстрее, кто сильнее, кто больше и тд. На самом деле, мы, разработчики от этого только выигрываем. Но как всегда и во всем, иногда происходят перегибы. Когда видишь ссылку на тот или иной showcase с охами и ахами, заходишь на страничку, а там написано «Best viewed at latest Chrome» — сразу вспоминаешь про времена IE6 и начинает подташнивать. Стандарты это отлично, продвижение стандартов — еще лучше, но не таким же способом.

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

    Иногда это абсолютно незаменимая вещь, которая спасает от красных глаз, многочасовой писанины кода и угроз расправы со стороны менеджеров, а иногда заводит в дебри и вылезает боком с совершенно неожиданного направления. Для примера скажу, что такой либой является CSS3PIE, которая эмулирует такие CSS3 свойства как border-radius, box-shadow, RGBA и поддержку градиентов в background для IE6-8. Для простых статических страничек и страничек с маленьким количеством элементов все работает чудесно и разработчики в восторге, но стоит применить PIE к элементам участвующим в анимации либо генерируемым с помощью Javascript, и начинаются танцы с бубном.

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

    Что мы имеем в итоге? Часть браузеров получают красивый, семантичный код и все плюшки, а часть браузеров затыкаются и загружают процессор, либо жрут траффик. За все, как известно, надо платить, но я предлагаю подумать за что именно и стоит ли платить. Старые добрые и проверенные решения еще никто не отменял.

    Кстати, если уж припомнили всякие красивости, такие как закругленные уголки, тени и градиенты, то стоит отметить, что производители браузеров в первую очередь реализовали именно их, частично из-за того что их реализация была не слишком сложной и частично из-за маркетинга. Реализация новой box-model, взамен откровенно устаревшей существующей до сих пор плетется в хвосте. Так же отстают такие части стандартов как local storage, indexed database api, page visibility, Cross-Origin Resource Sharing и еще много других, которые реально важны для разработчиков, но не являются Eye Candy. что напоминает известную фразу о том, что народ требует хлеба и зрелищ. Главное чтоб было красиво.

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

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

    Подробнее
    Реклама
    Комментарии 39
    • +2
      Хорошая статья, со многим согласен, особенно о свистелках-перделках. Но заключение как-то смазано, т.е. сначала идет перечисление фактов, а после них ожидается более глобальный вывод что ли…
      • +18
        image
        Все верно сказал. Главное — подходить ко всему с ясной башкой.
        • +9
          Graceful degradation, на мой взгляд, самый правильный подход. Общая структура сайта должна быть более-менее видна и доступна в осликах и прочих слоупоках. А рюшечки-тенюшечки-градиентики для современных броузеров. Ну не рассматривая пограничные случаи типа супер-пупер-промо-сайтов, где свистеть и пердеть должно всегда и везде.
          Ну и клиентам надо объяснять, что «хватит издеваться над трупами».
          • +21
            Статья ниочем. Основную мысль так и не уловил.
            • 0
              Несколько сумбурно… Я так понял, автор обращается к разработчикам браузеров в конце. Чтобы они работали так, чтобы когда-нибудь в светлом будущем одинаковый код html + css показывался одинаково во всех браузерах.
              • 0
                По-мойму написанное настолько очевидно для любого (грамотного) вэб-разработчика, что не вижу смысла ради этого создавать отдельную статью.
                • 0
                  Сдается мне все чаще и чаще мы будем натыкаться на подобные статьи. Да, прогресс не стоит на месте. И борьба браузеров лишь ускоряет его. Вот бы так же и с операционками…
                  • 0
                    А что не так с операционками?
                  • 0
                    В свое вреая просматрия код больших и звестных нам сайтой все поражался насколько просто делают те на кого мы пытаемся ровняться, и насколько сам себе я все усложняю эти рюшиками. Теперь со временем писать начинаешь все проще и проще, забывая о рюшиках и плюшках, и глядишь как оно все ст ановится лаконично и понятно не только тебе но и окружающим, а главное код работает и работает годами.

                    Я очень рад за развитие браузеров но не гонюсь использовать те рюшики что появляются как грибы после дождя.
                    • 0
                      > которая эмулирует такие CSS3 селекторы как border-radius, box-shadow,

                      Только это не селекторы, а свойства.
                    • 0
                      Может быть оптимистично, но заметил тенденцию: все новые стандарты сразу же применяются иностранными веб-разработчиками, или лучше даже сказать дизайнерами, т. к. в основном в угоду привлекательности. При этом применяются именно так, как говорит автор: сделали чтоб в их браузере работало и радуются.

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

                      Игры, как и многие специфические интерфейсы (далее приложения) какраз подразумевают использование драйверов (читай браузеров) и дабы использовать такое приложение не грех и скачать 30 мб с сети, если не для «поглазеть».
                      • 0
                        Можно конечно «обкатать технологию в более сложных вещах», но какой из этого получится прогресс? Браузер превратится в операционную систему? Может быть. Движения в эту сторону существуют уже давненько. Об этом тоже стоит задуматься.
                        • 0
                          Так он уже есть. Нет только экосистемы для обмена данными между приложениями.
                      • 0
                        Реализация новой box-model, взамен откровенно устаревшей существующей до сих пор плетется в хвосте.


                        Это про что? Флексы? Гриды?
                        • 0
                          Это про box-sizing.
                          • 0
                            Да box-sizing как раз уже почти всеми поддерживается, надо только писать -moz-box-sizing для Firefox и -webkit-box-sizing для Safari, даже IE подтянулся
                            • 0
                              IE было бы совсем стыдно не реализовывать собственную боксовую модель из режима несовместимости.

                              Печален только в Firefox давний баг с min-height/max-height.
                            • 0
                              Тогда это не новая, а хорошо забытая старая.
                          • +4
                            Вы знаете, а я вот даже больше скажу, до сих пор не понимаю, почему стандарт Языка Разметки ТЕКСТА должен использоваться для построения современных веб интерфейсов и веб приложений!? Если проводить параллели, то это как принять за дефакто, что MSWord должен использоваться для создания любых десктопных приложений. А чё… все средства у него для этого есть.

                            Веб давно не статичный текст (думаю многие это заметили). Текущий расклад дел со стандартами как полёт в космос на педальной тяге. Имхо ещё с 2000 года напрашивается стандарт для некоего Web UI Markup Language. А уже как подсущность в таком языке сделать поддержку html для разметки того, для чего он предназначен — для текста. До сих пор в уныние бросает как вспомню, что приходится иногда бороться с типографской сущностью html чтобы создать интерфейс с пользователем с удобоваримым юзабилити. Это нормально? А тут ещё webgl с медиа — и это всё подмножество языка разметки ТЕКСТА?.. Интересно, когда до консорциума дойдёт, что веб ≠ plain/hyper text? Есть текст, а есть приложения. И их надо давно разделить. Или я не прав? =)
                            • 0
                              Всё верно, HTML — для разметки документов, но никак не для интерфейсов приложений. Гляньте на Ample SDK, там есть транслятор XUL в HTML. Наверняка есть и другие решения :)
                              • 0
                                Все проблемы от обратной совместимости. Эта болезнь поедает всё, начиная от процессоров, заканчивая операционными системами. Но самый ад, конечно, в вебе. Даешь уголовную ответственность за использование устаревшего ПО.
                              • 0
                                Самое главное — людей с типографским и бумаговерстальским прошлым не подпускать к инету.

                                ЗАПРЕТИТЕ ИМ! )))
                                • 0
                                  Денис, я не согласен с тобой по поводу игр и веб-приложений в целом. В свое время был крайне против появления HTML5, однако не будь его, уже сейчас веб был бы другим, был бы много хуже.

                                  Я очень поддерживаю мнение моего коллеги по поводу интерфейсов сайтов, которые в большинстве своем сегодня являются веб-приложениями.
                                  • 0
                                    к сожалению запись коллеги не доступна (выдает 503 ошибку), потом еще раз попробую. Паш, на самом деле это вобще отдельная тема на счет веб-приложений, и мое мнение о ней нельзя выразить в одном абзаце полностью.

                                    Есть даже вот такая штука от WHATWG. Были и другие предпосылки об изменении спецификации на язык веб-приложений.

                                    Я против разработки приложений именно в контексте гипертекстового языка разметки. Хоть HTML5 уже де-факто им не является, но официально ничего не изменилось. А так, я очень даже за. Как-нибудь обсудим :)
                                    • 0
                                      Вот реально очень интересная тема. Пожалуй сменю свой доклад на эту тему на WebStandards Days Minsk. =)
                                      • 0
                                        И очень за в ближайшее время обсудить эту тему.
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                          • +1
                                            >Будь я в консорциуме, я бы сказал «С этого момента веб-страница и HTML никак не связаны. Вот вам новый формат»

                                            революции не будед. с XHTML уже пробовали — рубанули топором по гнилому вебу, а отвалился и сдох почему-то не гнилой веб, а пrавельный XHTML.

                                            тут призрак печатной машинки никак из терминала не выгнать, а ты замахиваешся на живое.

                                            >кто-то второпях встроил в язык разметки средства для разметки

                                            а куда их еще встраивать? больше некуда.

                                            HTML — это не более чем точка в приложение, тот же самый манифест и есть, а браузер — не более чем средство доставки этих приложений пользователю.
                                            • 0
                                              >точка в

                                              точка входа.
                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                • НЛО прилетело и опубликовало эту надпись здесь
                                              • 0
                                                xhtml1.1 strict? вы в нашей реальности существуете?
                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                  • 0
                                                    Вы правда видели живые проекты с настоящим XHTML1.1? Кроме всего прочего 1.1 не разделяется на переходный и строгий.
                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                      • 0
                                                        И они правда отдавались браузеру как приложение xml? Можно ссылку?
                                                        • 0
                                                          Кроме того, «живые» = успешные/популярные, а не сделанные для себя любимого и нужные себе же.

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.