Web-приложения вообще и платформа AJAX в частности имеют немало изъянов, в том числе и с точки зрения безопасности. Необходимо сделать еще очень многое для того, чтобы решить эти проблемы. Так полагает Дуглас Крокфорд, архитектор Yahoo и создатель нотации JSON (JavaScript Object Notation). На недавней конференции Rich Web Experience он провел весьма мрачную презентацию перспектив AJAX и Web, предварив ее рассказом об истории компьютерных интерфейсов — от перфокарт Германа Холлерита и систем разделения времени до Web.
«Грустно, что Всемирная паутина стала шагом назад в том, что касается интерактивности», — заметил Крокфорд.
Казалось, что язык Java мог бы решить проблему с помощью апплетов.
«К сожалению, Java был огромной ошибкой. Он не добился ни одной из поставленных целей», — считает Крокфорд.
По его мнению, обещанный для Java подход — «написано однажды, работает везде» — так и остался обещанием. Он имеет неадекватную модель безопасности и «скучную» модель пользовательского интерфейса. Тем не менее Java оказался весьма успешным инструментом для реализации серверных приложений.
Оставив пока в стороне JavaScript, Крокфорд перешел к разговору о запросах XMLHTTP для связи браузера с сервером данных.
«Именно Microsoft создала компоненты, которые необходимы AJAX», — заявил Крокфорд.
Приложения на платформе AJAX поддерживают высокий уровень интерактивности, они несут большой социальный потенциал, удобны в использовании и обеспечивают высокую сетевую эффективность.
«Огромная проблема состоит в том, что неимоверно сложно писать такие приложения», — вместе с тем подчеркнул он.
«Самым интересным новшеством в разработке программного обеспечения за два десятилетия стали так называемые ‘коллажи’ (mashup), которые демонстрируют преимущества распределенного программирования. К сожалению, коллажи в среде браузера небезопасны», — подчеркнул Крокфорд, поскольку, по его словам, компоненты невозможно защитить друг от друга.
Эта модель в браузере оказалась несостоятельной и ее необходимо исправить.
«Web — это одна большая потенциальная проблема», — считает он.
После этого экскурса Крокфорд прошелся по списку различных Web-технологий.
«JavaScript — язык, переполненный ошибками с непопулярной моделью программирования. Но в его защиту следует сказать, что он действительно работает и прекрасно работает там, где потерпел неудачу Java», — сказал Крокфорд.
В ожидаемой модернизации JavaScript 2 тоже есть свои проблемы.
«Это будет значительно более сложный язык», — заметил Крокфорд.
Что касается HTML, то не ясно, это формат документов или формат доставки приложений. У него скудные графические возможности и отсутствует модель сборки. Применительно к AJAX, HTML должен быть форматом доставки приложений. Предполагалось, что XHTML заменит HTML, но он не нашел своего применения, поскольку оказался слишком неустойчив.
Cascading Style Sheets представляет уровень описания стилей, но он слишком медленный и сложный.
«Для меня просто удивительно, что не слышно призывов его заменить», — с сарказмом произнес Крокфорд.
Также сложен и неэффективен, по мнению Крокфорда, и XML.
«К счастью, вместо XML удалось предложить JSON, — заметил Крокфорд. — Это дает мне определенную уверенность в том, что мы сможем исправить стандарты и методы программирования Web-приложений. Это наш первый успех в данном направлении».
Крокфорд считает необходимым стандартизацию и унификацию браузеров. Но, как он признал, есть компьютеры, которые не могут поддерживать работу новейших браузеров.
Если платформа Web не способна сама себя исправить, то, как считает Крокфорд, можно было бы заменить ее проприетарной системой одного из ведущих производителей, такой как Microsoft Silverlight или Adobe Integrated Runtime.
Проприетарные системы имеют свои сильные стороны; например, у них только один источник новых ошибок и более понятные планы развития. Но пользователям нравятся свободно распространяемые решения, и они, как правило, с большим подозрением относятся к закрытым системам.
По словам Крокфорда, он привык считать, что браузер был самой враждебной из когда-либо созданных сред программирования, но затем первенство в этом смысле было отдано программированию для мобильных устройств.
Мобильная отрасль имеет свою собственную историю неудачных экспериментов с инструментами программирования.
По словам Крокфорда, для того чтобы решить многие вопросы, возможно, придется отказаться от демократии, но собрать в одном месте «правильных» игроков и выработать нужные меры.
«Возможно, и нам нужно это сделать, но кого можно назвать ‘правильными’ игроками и как, по-вашему, они убедят остальных согласиться с ними?», — заметил Крокфорд.
Кевин Хойт из Adobe Systems в своем выступлении на конференции назвал концепцию удобства работы пользователей критически важной для Web-разработок. Он считает, что за существующей экономикой сервисов придет экономика удобства работы.
Он также призвал разработчиков, когда они начинают создавать решения для Web, не пренебрегать тем, чему они научились при разработке настольных приложений. В частности, по его словам, было бы правильно использовать модели, такие, например, как виджеты, применяемые для настольных систем, в Web-приложениях.