Вам любопытно знать, какие технологии и методы будут популярны в ближайшие месяцы и следующие годы? Так вот, наша ударная команда редакторов сайта "dashes.com" (то есть я) составила список тенденции, за которыми вам стоит внимательно следить. Считайте это начальным курсом для тех, кто собирается строить Web второго поколения (Web 2.0).
Некоторые технологии связаны с интеграцией (как всегда) и методами разработки интерфейсов, которые оказывают сильнейше влияние на пользователей. Разумеется, люди не желают платить за сервис или доверять ему, если у сервиса нет надежной платформы, но они будут в сто раз радостнее расставаться с деньгами, если у сервиса имеется привлекательный интерфейс, который хотя бы выглядит удобным в работе.
Вот случайный набор новых тенденций в веб-разработке, к которым надо подготовиться в 2006 году.
Сглаживание и смягчение (Dampening)
Этот набор технологий носит множество других имен, но в общем смысле под "смягчением" мы понимаем прием, в котором смена состояния происходит постепенно, а не моментально. Этот метод используется в пользовательском интерфейсе веб-приложения, но для его реализации может понадобиться внести изменения и на стороне сервера. Самым известным примером этой технологии является метод "медленно исчезающего желтого фона" (yellow fade technique, ссылка 2).
Но в качестве другого примера мы можем привести эффект "складывания" и "раскладывания" блока страницы, когда раньше он просто быстро прятался и показывался.
Здесь на вкусы пользователя оказывает свое влияние ныне популярный iPod (чья подсветка экрана не просто включается и выключается, а делает это медленно), а также мода на медленно закрывающиеся двери в новых автомобилях.
E4X
Название этого пока еще малоизвестного стандарта ECMA расшифровывается как "ECMAscript for XML" (ECMAscript для XML). За кратким описанием скрывается очень мощная концепция: простая и удобная работа с XML в JavaScript. Сейчас J и X в AJAX не так уж хорошо уживаются вместе, уж во всяком случае - не так хорошо, как хотелось бы. E4X обещает, что связка JavaScript и XML станет более гибкой, по крайней мере на современных и мощных пользовательских клиентах. Этот стандарт уже реализован или скоро будет реализован в Flash и в Firefox.
А если изложить вкратце? Например, вы сможете динамически построить форму вот так:
var html = <html/>; html.head.title = "Hello, World."; html.body.form.@name = "hello"; html.body.form.@action = "test.php"; html.body.form.@method = "post"; html.body.form.@onclick = "return foo();"; html.body.form.input[0] = ""; html.body.form.input[0].@name = "Submit";
JSON
Почему при пересылке данных между вашими приложениями вы должны использовать технологию JSON (JavaScript Object Notation)? Потому что она поддерживается множеством языков. Синтаксис прост в чтении и написании. Обмен данными и структурами данных происходит именно в том виде, в каком их понимает ваш любимый язык программирования. Несмотря на все неминуемые сравнения с другими подобными технологиями, не поддавайтесь искушению стать оголтелым фанатом или противником JSON. JSON это всего лишь удобный способ работы с данными, который к тому же хорошо ладит с XML: при необходимости вы легко можете конвертировать структуры данных из XML в JSON и обратно. Если на то пошло, существует даже технология JSON-RPC.
Старый добрый XHTML и CSS
Можете считать меня старомодным, но я полагаю, что главное в жизни - это стиль. Огромное количество сайтов до сих пор еще не перешло на стандарты, и еще меньше веб-приложений сделало это. Точно так же как корпоративные сайты стали медленно переходить на валидную верстку, то же самое будут делать и веб-приложения для внутреннего и общего потребления. В мире, где Вебом будет править Greasemonkey, продуманная и валидная структура страниц будет играть наиважнейшую роль.
Буфферизация (Buffering)
Эффект "буферизации" точно так же, как и "сглаживание", пришел в веб-приложения из обычных прикладных программ. Пользователи, пережившие эпоху сообщений "Buffering..." в RealPlayer и утомленные разглядыванием сообщения "Loading..." Flash на сайтах, снова вспомнят старые времена. Но на этот раз, пока пользователь будет скучать и грызть ногти, погрузкой данных будет заниматься JavaScript в AJAX-приложениях. Прогресс будет заключаться лишь в том, что в отличие от вчерашних страниц пользователю что-то будет показываться, пока скрипты и данные будут загружаться.
Дайте людям возможность побыстрее начать свою работу, пока оставшаяся половина ваших данных будет подгружаться в фоне. И тогда никто не сможет вас обвинить в том, что вы забыли о половине бедных несчастных американцев, которые до сих пор подключаются к Интернету по медленной телефонной линии.
Atom API
Мимо вас наверняка не прошли отзвуки войны форматов обмена данными (feed formats). Но формат Atom примечателен тем, что у него есть API, или Atom Publishing Protocol. Теперь, когда этот формат обмена данными стал официальным стандартом IETF, есть отчего оттолкнуться при создании API на его основе. Так как более двадцати миллионов блогов уже сейчас поддерживают предварительную версию API, и будет очень неплохо посвятить часть своего времени на ознакомление с этим форматом и тем самым обеспечить себя работой в 2006 году. Практически все разработчики заявляют о том, что их приложения так или иначе могут связываться с блогами через Atom, так что очень скоро эта технология попадет в список функций, которые будут обязательны для любого стандартного веб-приложения.
Помогите Ruby
Ruby on Rails нравится всем кроме тех, кто считает, что вокруг этой технологии раздута слишком большая шумиха. Независимо от того, как идут ваши дела, знайте, что над Ruby сейчас идет большая работа, и все больше приложений создается на этой технологии. Но кое-какие важные части у нее пока отсутствуют. Локализация. Интернационализация. Да, с этим у Ruby бааальшие проблемы. Масштабирование до очень больших приложений и решений с высокой нагрузкой? Пока этого еще никто не делал. Связь с другими языками? Пока только с XML.
Пока все сейчас учат этот язык и охают и ахают при виде элегантности его решений, вы можете решить проблемы, что стоят за кулисами этих приложений, и тем самым воспользоваться неплохим шансом.
Маркетинг
Да, это, естественно, не технология. Но нам - спецам - жизненно необходимо овладеть навыками маркетинга: как рассказывать о своих способностях, как подавать преимущества этих способностей и как подавать выгоды для бизнеса от этих преимуществ. Знание дюжины языков программирования не поможет вам, если вы не умеете общаться с людьми, которые хотят нанять вас на работу. А ваша любимая платформа, среда разработки, язык не достигнут успеха, если вы не сумеете их правильно преподнести и "продать" их другим, включая даже тех, кто несведущ в технике.
Во-первых, овладейте технологией. Во-вторых, овладейте навыками объяснения ценности этой технологии другим. Если вы сможете это сделать, не имеет абсолютно никакого значения, какую из упомянутых в данном списке технологий вы выберете для освоения.
В завершение
Если у вас есть друг, мечтающий поменять работу, или вы знаете кого-то, кто ее потерял, а Lou Dobbs убедил его, что во всем этом надо винить индийских программистов, отправьте ему этот список и через несколько месяцев проверьте, выучил ли он хоть что-нибудь новое из перечисленного.
Долой скулёж! Просто возьмите и почитайте про них хоть что-нибудь. Купите несколько книг O'Reilly, покопайтесь в Гугле, напишите несколько строчек кода. Когда вы поднатореете настолько, что будете готовы выдать в свет свое первое пробное приложение, ваши работодатели уже во всю будут искать ваш блог по всему Интернету, чтобы побыстрее нанять вас на работу.
Вы знаете еще какие-то технологии, которые стоило бы изучить? Напишите о них в своих комментариях.