Шрифт:
Интервал:
Закладка:
Отказ от контроля не означает отказа от качества. Совсем наоборот. Признавая множество неизвестных моментов, связанных с разработкой дизайна для Интернета, дизайнеры могут создать гибкий и устойчивый дизайн, который будет соответствовать среде.
ский веб-дизайнер Трент Уолтон сначала с опаской относился к отзывчивому дизайну, но вскоре понял, что это более честный, аутентичный подход, чем создание макетов в Photoshop с фиксированной шириной:
«Моя любовь к отзывчивости основана на идее, что мой сайт встретит вас, где бы вы ни находились – от мобильного до полноценного настольного компьютера и в любом другом месте между ними.»
В течение многих лет веб-дизайн диктовался дизайнером. У пользователя не было выбора, кроме как приспособиться к требованиям сайта к экрану определенного размера или сетевому соединению определенной скорости. Теперь веб-дизайн может быть разговором между дизайнером и пользователем. Теперь веб-дизайн может отражать основополагающие принципы самой сети.
В двадцатую годовщину создания Всемирной паутины Тим Бернерс-Ли написал статью для журнала Scientific American, в которой он повторил эти основополагающие принципы:
«Главный принцип проектирования, лежащий в основе полезности и роста Сети, – это универсальность. Веб должен быть удобен для использования людьми с ограниченными возможностями. Он должен работать с любой формой информации, будь то документ или точка данных, и с информацией любого качества – от глупого твита до научной статьи. И он должен быть доступен с любого вида оборудования, которое может подключаться к Интернету: стационарного или мобильного, с маленького экрана или большого.»
Рекомендации
A Dao of Web Design by John Allsopp
The Vignelli Canon by Massimo Vignelli
Openness and the Metaverse Singularity by Jamais Cascio
One Web by Jo Rabin and Charles McCathieNevile
Responsive Web Design by Ethan Marcotte
A Richer Canvas by Mark Boulton
Fit To Scale by Trent Walton
Long Live the Web: A Call for Continued Open Standards and Neutrality by Tim Berners‐Lee
Глава 4: Языки
Джон Постел был одним из
инженеров, работавших над ARPANET, предшественницей Интернета. Он хотел убедиться, что пакеты или "дейтаграммы", перемещающиеся по сети, доставляются наиболее эффективным способом. Он понял, что небрежное отношение к ошибкам имеет решающее значение для эффективной коммутации пакетов.
Джон Постел.
Фотография Ирен Фертик, Служба новостей Университета Южной Калифорнии.
Авторское право 1994, USC.
Если узел в сети получает дейтаграмму с ошибками, но все еще понятную, то пакет должен быть обработан в любом случае. И наоборот, каждый узел в сети должен стараться отправлять хорошо сформированные пакеты. Эта линия мышления была закреплена в Принципе устойчивости, также известном как Закон Постеля:
«Будьте консервативны в том, что вы посылаете; будьте либеральны в том, что вы принимаете.»
Если это звучит знакомо, то это потому, что именно таким образом веб-браузеры работают с HTML и CSS. Даже если в HTML или CSS есть ошибки, браузер все равно попытается обработать информацию, пропуская все фрагменты, которые он не может разобрать.
Объявление
HTML и CSS являются примерами декларативных языков. Автор, пишущий на декларативном языке, описывает желаемый результат, не предоставляя пошаговых инструкций компьютеру, обрабатывающему файл. В HTML вы можете описать характер содержимого – параграфы, заголовки, поля формы и т.д. – без необходимости объяснять, что именно браузер должен делать с этой информацией. С помощью CSS можно описать желаемый внешний вид содержимого – цвета, границы и т.д. – без необходимости писать программу для применения этих стилей.
Большинство языков программирования не являются декларативными, они императивные. Perl, Java, C++ … все это примеры императивных языков. Если вы пишете на одном из этих языков, вы должны дать точные инструкции компьютеру, интерпретирующему ваш код.
Императивные языки предоставляют вам больше возможностей и точности, чем декларативные языки. За это приходится платить. Императивные языки, как правило, труднее изучать, чем декларативные. Кроме того, к императивным языкам сложнее применить закон Постеля. Если вы допустите одну ошибку – одну неправильно поставленную запятую или точку с запятой – вся программа может не сработать. Неправильно написанный тег в HTML или пропущенная фигурная скобка в CSS также могут стать причиной головной боли, но императивные программы должны быть хорошо сформированы, иначе они вообще не будут выполняться.
Императивные языки, такие как PHP, Ruby и Python, можно найти на серверах, питающих Всемирную паутину, читающих и записывающих записи баз данных, обрабатывающих входные данные и выполняющих сложные алгоритмы. Вы можете выбрать практически любой язык программирования при написании кода на стороне сервера. В отличие от неизвестности веб-браузера конечного пользователя, вы можете контролировать возможности своего сервера.
Если вы хотите писать императивный код, который работает в веб-браузере, у вас есть только один выбор: JavaScript.
Скриптинг
Идея выполнения программы изнутри веб-страницы так же стара, как и сам веб. Вот раннее письмо в список рассылки www-talk:
«Я хотел бы знать, расширил ли кто-нибудь WWW так, чтобы можно было запускать произвольные программы нажатием кнопки в WWW-браузере.»
Тим Бернерс-Ли, создатель Всемирной паутины, ответил на это:
«Очень хороший вопрос. Проблема заключается в языке программирования. Вам нужно что-то действительно мощное, но в то же время вездесущее. Помните, что одна из граней Интернета – это универсальная читательская аудитория. Не существует универсального интерпретируемого языка программирования.»
Это было в 1992 году. Универсальный интерпретируемый язык программирования наконец-то появился в 1996 году. Он был написан за десять дней программистом из Netscape по имени Брендан Эйх.
Язык пережил несколько смен названий. Сначала он назывался Mocha. Затем он был официально представлен как LiveScript. Затем в дело вмешался отдел маркетинга и переименовал его в JavaScript, надеясь, что это название подхватит волну шумихи, связанную с новым тогда языком Java. На самом деле у этих языков мало общего. Java для JavaScript – это как ветчина для хомяка.
Характерные черты прогресса
JavaScript дал дизайнерам возможность обновлять веб-страницы даже после их загрузки. Вскоре появились два распространенных способа использования: ролловеры и валидация форм.
Смена изображений при наведении курсора на ссылку может показаться не совсем разумным использованием совершенно нового языка программирования, но в девяностые годы не было другого способа создания эффектов наведения.
До появления JavaScript форма должна была быть отправлена на веб-сервер, прежде чем вы могли убедиться, что все необходимые поля заполнены, или что введенная информация