Почему браузер может стать универсальной ОС? 10 причин

Google-Chrome-OS-May-Be-Landing-in-Early-November-2

… в 1995 году Брендан Айк, Марк Андрессен и другие из Netscape взглянули на Всемирную сеть – как тогда казалось, мир статической информации, бесперспективную для программистов область IT-сферы.

Но они взглянули на нее с другой стороны: они понял, что пиксели, отображающиеся в прямоугольном окне браузера ничем не отличаются от пикселей любого GUI-интерфейса. И они решили дать программистам возможность наполнить страницы динамическим контентом. Так появился JavaScript.

Сначала гуру-сишники лишь усмехнулись в ответ на появление такой детской игрушки, годной лишь для написания окошек с сообщениями в браузере. Однако Айк сумел найти способ для обмена информацией по всей сети, заинтересовавший программистов – был создан XMLHttpRequest.

Через 13 лет, т.е. почти через восемь лет после ребрендинга, в ходе которого появился AJAX, когда-то «язык для малышей», скоро становится доминирующим почти во всех областях. Вместе HTML, CSS и JavaScript применяются на серверах, стационарных компьютерах и ноутбуках. Не является ли эта, по сути, стандартная платформа новой операционной системой?

Технически, браузер не обладает тем набором средств, которые мы привыкли ожидать от традиционных операционных систем. Пуристы могут заявить: Создавала ли когда-нибудь команда разработки браузера драйвера? Следит ли браузер за сохранностью файловой системы компьютера? Решает ли браузер проблему распределения нагрузки между ядрами? Да взглянуть даже на Chrome: это может показаться смешным, но он лишь отображает содержимое страниц, всю остальную работу за него выполняет ОС.

Но несмотря на все эти справедливые консервативные замечания, браузер является основной прослойкой, способной связать большое количество программ. Все, что ему нужно от ОС это только прямоугольное пространства для вывода информации, немного дискового пространства и TCP/IP. Идеология браузеров основывается на кросс-платформенности, что, если все сделано качественно, сводит почти до нуля вероятность появления багов.

В обмен на это он снижает нагрузку на ОС, о которой, в свою очередь, ожидается лишь минимальная техническая поддержка. Например, пользователю может вздуматься использовать старое оборудование, но, согласитесь, это бывает редко. А в целом пользователь хочет, только вбив URL в адресную строку, работать со средой JavaScript, пользуясь одной только мышкой. А это, пожалуй, не так сложно реализовать: штат организации Mozilla насчитывает не так уж много людей, но между тем им удалось выпустить Firefox OS.

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

1. Рынок серьезных веб-приложений активно растет

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

Gmail – один из тысяч представителей полноценных веб-приложений, область применения растет с каждым днем. Сейчас можно найти и облачные среды разработки, и средства обработки изображений, и огромное количество HTML5-игр.

Какое-то время назад пользователи десктопных приложений для проверки почты и т.п. могли спросить: «А ваш браузер так может?» Теперь ответ очевиден: да.

2. Огромное количество плагинов

Большинство браузеров имеет свою собственную архитектуру дополнений. Если вы хотите делать что-то стоящее в своем браузере, то механизм плагинов к вашим услугам: пишите код на JavaScript и браузер расширит свою функциональность за счет созданного вами приложения. И в пользу использования браузера в качестве инструмента для выполнения повседневных задач говорит следующая особенность: использование браузера, очевидно, гораздо безопаснее, т.к. ресурсы операционной системы будут использоваться минимально. Во всяком случае, меньше, чем при выполнении задач средствами самой ОС.

3. Браузеры являются опенсорсными проектами

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

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

4. Метапрограммирование

Опенсорсность означает не только открытой исходного кода: метод обработки веб-страницы в каждый отдельный момент ориентируется на состояние обрабатываемых данных. Например, такой пакет, как Greasemonkey, способен изменять код для оптимальной работы с ним. Это работа с кодом в режиме реального времени, т.е. практическое применение преимуществ открытого кода.

Было несколько попыток внедрить такой метод в работу с традиционными ОС, но, очевидно, получение доступа к исходному коду десктопных приложений связано с некоторыми трудностями, и подход на подобие Greasemonkey становится нереализуемым.

5. Мультиплатформенность

Мобильные устройства поставляются сразу с браузерами. На телевизорах есть браузеры. Холодильники и те уже с браузерами бывают. И неудивительно: каждый отдаст предпочтение JavaScript, HTML или CSS для использования на дисплее своего устройства, потому что такой код легко адаптируем. Экран вашего устройства короткий и широкий? Или длинный и узкий? Не имеет значение, потому что содержимое HTML-страницы все равно займет все свободное пространство, которое будет выделено. А уж какое пространство будет выделено, выяснит CSS-движок.
Конечно, кто-то может справедливо отметить, что страницы могут отображаться на вычурных экранах некоторых мобильных девайсов так, будто их машиной к стене прижало. Элементы хаотично разбросаны по экрану и неприятно на чем-то даже взгляд задержать.

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

6. Чистый слой абстракции

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

Демократичность браузера позволяет хорошим идеям быстро засветиться и получить широкое распространение. Во многом это обеспечивается благодаря HTML и CSS, опыт работы с которыми доказывает, что объединение усилий и программистский труд во имя программирования очень плодотворны.

7. Удобная схема обмена библиотеками

Библиотеки всегда были головной болью для разработчиков. Одно приложение хочет использовать библиотеку версии 3.4.666, а другое 3.4.667, и обращение к одной из них операционная система обязательно посчитает ошибочным.

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

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

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

8. Рынок с серьезной конкуренцией

Когда-то был только NetScape. Затем доминировал Internet Explorer. Сейчас, создается впечатление, каждый может создать свой конкурентно-способный браузер. Chrome, Firefox, IE, Safari и Opera – это только начало. Существует огромное количество не таких популярных браузеров, а уж сколько существует приложений для просмотра веб-страниц для мобильных приложений, и представить сложно.

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

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

9. Мощные графические средства

Первые веб-страницы смотрелись довольно тускло, что было связано с тем, что программисты еще не додумались оживить такие свойства CSS как DIV или SPAN. Теперь же объекты могут вертеться, крутиться, поворачиваться, светиться, гаснуть и т.д.

Вам этого мало? Что ж, многие браузеры теперь используют средства видеокарт и потому позволяют с помощью JavaScript делать почти все. В то время, как разработчикам игр приходится писать нативный код для того, чтобы расплавить видеокарты геймеров, все их трюки в той или иной форме доступны JS-программисту. Анимированный SVG, простая геометрическая фигура или небольшое видео могут сделать все, что необходимо. Существуют даже средства создания 3D-графики – WebGL. Конечно, браузер никогда не сможет соревноваться с консолями или десктопными играми, но если графика не слишком сложная, то JS явится вполне себе приличным средством создания игр.

Все это в целом говорит о том, что создание графического интерфейса средствами JavaScript гораздо проще, чем создание GUI для самого простого приложения. Очевидно, что работа с HTML, CSS или JavaScript гораздо проще, чем с C++, Objective-C или Java. Именно поэтому более простой способ программирования – программирование веб-приложений – привлекает все больше программистов.

10. Node.js

Возможно, основной аргумент в пользу браузеров как универсальной платформы – это Node.js, серверный фреймворк, позволяющий JS-программистам работать с серверами, не обладая знаниями PHP или Java.

Пакет разработки предоставляет широкий набор инструментов для различного вида работ. Node.js активно использует механизм обратного вызова (callback), одну из идиом веб-программирования, позволяющую творить настоящие чудеса. В умелых руках она позволит программисту избежать опасностей и создать корректно работающий механизм для быстрого обмена данными с сервером. И это серьезное продвижение JavaScript’а, т.к. многих отпугивают возможные трудности.

Осталось ли еще что-нибудь, что еще не покорено JS, HTML или CSS? Если PhoneGap колонизирует рынок мобильных приложений, браузеры захватят декстопы, то последнее сможет произойти в большей степени благодаря Node.js.

Кроме того, многие ЭВМ от IBM работают на Linux, что также означает, что на них используется Node.js.

Перевод статьи Питера Вейнера (Peter Wayner), с сайта itworld.com