Алекс Рассел: «Мы хотим превратить Web в платформу сборки приложений из многократно используемых компонентов». Источник: www.eclipsecon.org |
«Мы хотим превратить Web в платформу сборки приложений из многократно используемых компонентов в период исполнения», — заявил он. В Google Рассел занимается разработкой браузера Chrome. Он также является автором широко используемой JavaScript-библиотеки Dojo.
Несмотря на свою гигантскую популярность, Web предоставляет лишь довольно примитивные возможности для программирования по сравнению с другими платформами исполнения приложений, такими как Java и Windows, полагает Рассел. По его мнению, один из серьезных недостатков веб-технологий в том, что у них отсутствует единая компонентная модель, из-за чего затруднено тестирование и многократное использование кода.
В Google идет работа над проектами по переносу передовых концепций программной инженерии в Web, сообщил Рассел. Идея этих проектов в том, чтобы внести в веб-разработку элементы низкоуровневого управления, не усложняя стек веб-технологий с точки зрения новичков: «Мы используем опыт разработчиков платформ, которые создавались с самого нижнего уровня».
Одно из главных преимуществ Web это простота использования, полагает Расселл: разработчики могут свободно просматривать код сайтов и повторно использовать его. Браузеры «прощают» ошибки в коде, а технологии вроде CSS предоставляют простые способы выполнения сложных задач наподобие форматирования текста.
Но в то же время эта простота ограничивает свободу самовыражения. «Досадно, что CSS не позволяет нарисовать произвольную линию, какую вам хочется, — заявляет Расселл. — На всех сайтах текст размещен похожим образом. Из-за свойственных веб-технологиям ограничений дизайн везде выглядит одинаковым».
В числе инициатив Google — создание унифицированной компонентной модели, добавление поддержки классов к JavaScript и создание собственного языка программирования для крупномасштабных веб-приложений.
По словам Расселла, унифицированная компонентная модель для веб-технологий позволила бы создавать новые экземпляры имеющегося элемента и манипулировать с ними.
В качестве примера программист показал созданный им элемент под названием commenting. На веб-страницах, позволяющих оставлять комментарии, данный элемент, представленный в виде тега, может автоматически форматировать текст, введенный пользователем, а также добавлять снимок. В реальности такой тег представляет собой программу, у которой есть собственный API, объяснил Расселл. По его словам, при наличии унифицированной компонентной модели язык разметки HTML мог бы быть подклассом более обширной среды, благодаря чему появились бы новые возможности для манипуляции с HTML-кодом.
Инженеры Google также готовят предложение о добавлении классов к следующей версии JavaScript. Классы, важнейшее понятие объектного программирования, служат своего рода черновиками для многократно используемых данных и функций. Сейчас JavaScript не поддерживает классы, наследование выполняется посредством клонирования ранее созданных объектов, а функции одновременно служат методами объектов и используются как их конструкторы. Такой стиль программирования отнимает много времени и затрудняет многократное использование кода.
«Приходится практически все создавать из примитивов, и ничем нельзя поделиться, — полагает Расселл. — Единого языка для платформы Web не существует. С появлением классов в JavaScript можно будет решать те же задачи, что и сейчас, но с возможностью многократного использования компонентов».
Еще одна инициатива Google — язык Dart, представленный Google в прошлом году.
«Языки программирования нынешнего поколения затрудняют разработку сложных приложений для Web, — полагает Дэн Рубел, инженер Google, участвующий в работе над Dart. — Создать качественный инструментарий для построения таких приложений сложно». По его словам, назначение Dart — предоставить простой способ создания малых веб-приложений и в то же время предложить средства построения обширных приложений большой сложности.
Мнение Расселла о том, что разработчикам требуются более развитые инструменты сопровождения и отладки веб-приложений, поддержал исполнительный директор Eclipse Foundation Майк Милинкович. По его словам, в качестве одного из таких инструментов в Eclipse создали среду разработки Orion, которая целиком исполняется в браузере.