Инструменты web-строительства
Создать сайт в 2008 году - проще некуда. И, как говорил один прославленный программист, писать уже ничего не надо. Остается лишь выбрать необходимый набор средств и приступать к творчеству. Предлагаю пройтись по наиболее популярным языкам.
PHP расшифровывается как препроцессор гипертекста. На человеческом русском это звучит, как язык программирования, деятельность которого направлена на генерацию страницы, использующую гипертекстовую разметку. На данный момент это одно из наиболее популярных направлений программирования для интернета: только русскоязычных сайтов десятки миллионов. Подавляющее большинство хостеров по умолчанию включает для своих пользователей интерпретатор. Это довольно простой язык с высокой скоростью выполнения, который позволяет подключать сторонние модули. Используя PHP и дополнения к нему можно работать с криптографическими алгоритмами, графикой, базами данных и даже различными документами. Интерпретаторы PHP на данный момент существуют для всех ОС.
ASP представляет собой страницы на сервере, при вызове которых осуществляется выполнение программного кода. Как пользователь поведет себя, так страница и отреагирует. Технология позволяет создавать сайты, которые на практике являются небольшими приложениями, сродни обычным пользовательским программам. Код на ASP делится на серверную и пользовательскую часть. Последняя отвечает за формирования визуального представления сайта. Серверные страницы выполняют все действия по аутентификации пользователя, работе с БД, сохранением переменных, передачей информации от сервера и обратно. С технической точки зрения – это всего лишь текстовые файлы, в которых содержатся коды со скриптовыми вставками на Джаве (Java) или Бейсике (Basic) и отдельные кусочки HTML-кода.
ASP.NET стало продолжением предыдущей технологии. После значительного рестайлинга перед программистами предстал пакет, схожий с Microsoft ASP, но обладающий значительно большим функционалом. В целом и общем среда стала частью большого проекта по развитию Интернета – платформа .NET. Страницы, написанные на новом языке, отличаются более быстрой компиляцией и выполнением. Для истинно качественного программирования была спроектирована новая среда разработки и отладчик, которые отлавливают подавляющее большинство явных и неявных ошибок еще на стадии написания кода. Кроме того, значительно переработана компиляция и исполнение кода между операторами try и catch. Появились новые элементы управления, что значительно упростило разработку пользовательского интерфейса.
Первоначально Perl позиционировался как язык для создания отчетов на основе извлеченных из хранилища данных. Основное направление деятельности заключалось в работе с большими БД, из которых необходимо выуживать строго определенные материалы и представлять их в читабельном виде. Своего рода талисманом языка стал верблюд, который только с вида неказист и ужасен, но способен долгое время выполнять изнурительную работу. Перл нашел свое призвание в сайтостроительстве, поскольку обладает достаточным набором средств для работы с базами данных и обладает огромным потенциалом в сфере обработки текста. Нельзя сказать, что Перл используется так уж и часто, но многочисленные сайты энциклопедического характера и серверные утилиты для обработки пользовательского текста построены именно на нем.
Python/Zope относится к языкам высокого уровня. Разработчики приложили массу усилий, чтобы программисту было удобно работать с готовыми кодами, а ПО под управлением Питона выполнялось очень и очень шустренько. Питон построен так, что в нем можно найти оттенки объектно-ориентированного и императивного программирования, но ядро языка при этом обладает минимальным набором команд. Создавая классы и функции, можно, в конечном счете, получить несколько модулей. В большинстве своем Питон используется для создания приложений с математическими расчетами и работой с текстом.
JSP представляет собой страницы, написанные на языке Джава, которые выполняются в большинстве своем непосредственно на сервере. Здесь все зависит от компилятора. Если использовать Джаспер, то первоначальное выполнение заключается в создании высоко-высоко оптимизированного байтового кода, который передается Джава-машине на выполнение. Можно воспользоваться услугами Tomcat сервлет-контейнера. Это довольно-таки популярное решение для бизнеса – интернет-магазины, аукционы и тому подобное. Секрет заключается в том, что оптимизированный код может выполняться на сервере или прямо в пользовательском браузере, а язык дает возможность полноценного программирования с классами, разделениями прав доступа к процедурам и прочими вкусностями, любезно предоставленными полноценной Джавой.
Разработка посредством команд Shell является довольно кропотливым делом, хотя сам язык программирования относится к высокому уровню. В подавляющем большинстве случаев командами Шелл или, как ее часто называют Оболочки, осуществляется управление локальным компьютером. В веб-среде локальный компьютер заменяется сервером, а управление – администрированием или удаленной настройкой. При аренде физического сервера клиенту предоставляется доступ к командному языку shell, что позволят удаленно настраивать модули, устанавливать программное обеспечение.
HTML – это пользовательская основа всего Интернета. Можно использовать многочисленные фреймы на различных языках программирования, но именно при помощи Hypertext Markup Language осуществляется графическое представление информации в окне браузера. Сгенерированная страница представляет собой набор тегов, среди которых заключен текст и осуществляется подключение сторонних документов. В большинстве случаев теги являются парными: открывается, содержит в себе размеры, настройки отображения, текст, альтернативные надписи и после закрывается. Некоторые теги являются одинарными. С помощью HTML верстальщик, программист и конечный пользователь получают возможность работать с графикой (в том числе и динамичной), плагинами браузера, различными технологиями программирования, документами, таблицами, шрифтами, фреймами и т.д.
Dynamic HTML использует язык статической разметки HTML, каскадные стили CSS для быстрого изменения внешнего вида страницы и прогрессивного программирования, а также JavaScript, что позволяет изменять представление страницы без ее повторной загрузки. Страницы, написанные с помощью динамической разметки, грузятся весьма и весьма долго, зато потом пользователь может наблюдать переключение между вкладками, подгрузку картинок, изменение положения объектов, обновление содержимого и т.д. без загрузки лишнего байта. А самое положительное заключается в том, что выполнение всех скриптов страницы производится непосредственно на пользовательской машине. Т.о. динамические страницы, несмотря на их вес и красоту, может позволить себе любой сервер.
XHTML является еще одним представителем языков гипертекстовой разметки, но на сей раз, основан он не на тегах, а не иерархическом языке XML. Технически расширяемая разметка мало отличается от своего предшественника, но более читабельна, поскольку сам XML не терпит вольностей: все должно быть строго и по порядку. Версия XHTML 1.1 была принята Консорциумом Всемирной Паутины и проверяется валидатором W3C. Существует несколько направлений языка - XSLT и XPath - и в целом новое решение оказалось более удобным и быстрым. Строгая иерархия избавляет ядро браузера от мучительного хранения временных шаблонов, ускоряет отображение страницы, что позволяет использовать технологию на мобильных устройствах.
CSS используется разработчиками для создания набора стилей на базе облегченного объектно-ориентированного программирования. Суть заключается в описании классов на странице и входящих объектов. Т.о. можно один раз указать шрифт, способ отображения, размер для определенного объекта и несколько раз использовать его в документе без дополнительного описания. Использование каскадных стилей значительно сокращает размер HTML кода, позволяет настраивать внешний вид для разных браузеров и устройств просмотра. Достаточно подключить другой набор стилей и документ преображается без изменения кода. Использование технологии каскадности позволяет объединять множество совершенно разных объектов в один контейнер и задавать одинаковые свойства один раз для всех объектов одновременно.
JavaScript использует специальное веб-расширение Джавы для выполнения функций определения параметров отображения, расчета, предотвращения нарушения правил пользования страницей, динамического изменения содержимого. Текстовые файлы, содержащие набор кодов, подключается к документу и выполняются на клиентской машине. Во многих случаях технология используется для корректной работы органов управления сайта и корректировки действий браузера. На практике очень часто JavaScript используется для обеспечения рекламных помыслов – баннеры, контекстная реклама, которая не засекается поисковой машиной.
SSI переводится как включение с сервера. Это означает, что разработчики выносят часто повторяющиеся действия или просто куски кода в отдельные файлы, которые подключаются к документу по мере надобности. Зачастую технология используется как альтернатива каскадным стилям, но наибольшее применение нашлось в рекламной индустрии. Многочисленные баннеры, которые изменяются при повторной загрузке или посещении страницы, выбираются с помощью cgi-скриптов, которые подключаются извне посредством SSI. Возможность использования технологии предоставляется в основном лишь на платных хостингах из-за потенциальной опасности выполнения вредоносного кода.
Технология AJAX появилась сравнительно недавно, но уже пользуется приличной популярностью. С точки зрения программирования АДЖАКС представляет собой асинхронный JavaScript и XML, которые при работе пользователя со страницей осуществляют обмен информацией с сервером в режиме реального времени без обновления страницы. Т.о. пользователь переходит по вкладкам на сайте, просматривает новые фотографии, видит заголовки личных сообщений по мере их появления, но работает с одной и той же страницей. Это весьма удобно с точки зрения навигации и скорости работы с сайтом. Но есть и несколько жирных минусов. Во-первых, при слабой пропускной способности канала работа AJAX становится весьма заметной. Во-вторых, такие сайты практически не индексируются поисковыми машинами, поэтому основная информация выносится на статическую часть, которая и светится в рейтингах. Кроме того, технология потребляет пользовательские ресурсы, поэтому большой сайт с множеством органов управления значительно ослабляет активность компьютера.
XML представляет собой иерархическую технологию хранения данных в текстовом файле. С некоторой натяжкой написание скриптов на XML можно отнести к объектному программированию. Существует множество объектов, обладающих собственным набором свойств. Это может быть элемент управления, или подключаемый модуль. Настройка каждого отдельно взятого объекта осуществляется описание параметров с учетом вложенности свойств, которые также могут иметь собственные свойства и т.д. XML строгий язык, который поддерживается валидатором. Отдельно он практически нигде не используется – в основном применяется как часть динамических технологий отображения страницы или для создания собственной базы данных.
XSL представляет набор пользовательских стилей, но реализация совершенно иная, нежели в CSS. Серьезным отличием является использование XML, что значительно уменьшает процент вольностей при составлении стиля. Кроме того, готовый документ можно проверить на правильность, чтобы отыскать все ошибки еще на стадии разработки. Строгая система проектирования XML только играет на руку разработчиками, увеличивая читабельность кода и понижая сложность редизайна. Здесь, как и в CSS возможно задание двум разным объектам или множеству клонов одного объекта стиля отображения, но формирование страницы происходит на сервере. С одной стороны, обеспечить легкое вложение объектов друг в друга практически невозможно, поскольку большинство элементов интерфейса существуют отдельно друг от друга, зато можно задать определенные свойства для каждого объекта, что упрощает сложнейшее форматирование.
Чему же отдать предпочтение?
Как видно, современная индустрия высоких технологий предлагает большое количество методов и направлений разработки. И вот наступил долгожданный момент создания собственного сайта, и зловещей пеленой повисла таинственная необходимость сделать выбор. Нет такого предложения-панацеи, чтобы однозначно определиться с технологией, которая будет сопровождать Ваш сайт. Это многофакторная оценка, поэтому в большинстве случаев происходит сопряжение нескольких методов, благо еще разработчики заранее заботятся о такой возможности.
Первоначально необходимо выбрать базу, на которой будет строиться каркас. Безусловно, позиция лидера у HTML, поскольку использование XML и прочих модификаций осложнено подключением технологий объектного проектирования для веб. Да и новый метод всегда долго оттачивается, пока все браузеры обеспечат полноценную поддержку. А пока придется постоянно отлавливать всяческие «глюки» и наблюдать, как сайт по-разному выглядит на разных платформах.
На этом можно остановиться, если проект не подразумевает всесторонней интерактивности, выплывающих картинок и сложного функционала. Для большинства частных проектов достаточно добавить несколько скриптов на JSP, которые будут обрабатываться Tomcat на пользовательской машине. Позитив заключается в том, что конечный пользователь всегда может отключить выполнение скриптов, чтобы не заморачиваться на всяческие баннеры и рюшечки. Стоит отметить, что серьезные проекты пытаются исключить использование скриптов.
Так или иначе, правилом хорошего тона является использование каскадных стилей. Если Вам не требуется супер сложное форматирование, которое и в Photoshop с трудом нарисовать удалось, то достаточно прогрессирующего CSS.
Теперь необходимо определиться, надо ли Вам использование динамических страниц. С одной стороны это очень красиво и эффектно. Вы кликаете по ссылке, а текст вместе с картинкой постепенно набирает прозрачность. Стильно, не правда ли? Вот только для работы такого сайта необходим канал с большой пропускной способностью, как у пользователя, так и в районе сервера. Иначе красивые переходы обернуться ужасными «тормозами». Не любят использование подобных технологий и SEO-оптимизаторы, поскольку поисковые машины практически не индексируют такие сайты. В большей степени это коснулось AJAX. Поэтому наиболее подходящим решением для серьезного проекта является использование HTML в качестве основы представления, подкрепленной AJAX и каскадными стилями. С клиентской частью и оформлением разобрались – осталось определиться непосредственно с серверными страницами.
Использование CGI скриптов, вообще говоря, довольно спорный вопрос. Проблема в том, что технология полезная, вот только используется она в большинстве случаев для нелицеприятных целей – размещение баннеров сомнительного вкуса на бесплатных хостингах. Поэтому у многих сложилось предвзятое отношение к CGI скриптам. Впрочем, некоторые крупные компании используют их на корпоративных сайтах для обеспечения связи с техническими средствами, не имеющими отношения к Интернету.
Для обеспечения аутентификации пользователей, работой с БД и прочими полезностями лучше использовать, или платформу dot.net (ASP, ASP.NET), или PHP. Иногда можно встретить творения на PERL, но сайт большим функционалом обычно похвастаться не может. Выбор между PHP и ASP.NET обусловлен исключительно возможностями хостинга или сервера и знаниями программиста. Стоит отметить, что интерпретатор для платформы .NET в большинстве своем прерогатива собственного или выделенного сервера. На виртуальном хостинге гораздо проще воспользоваться PHP, тем паче уже давно написано несколько систем управления контентом, которые устанавливаются через веб-интерфейс и требуют минимальных знаний в программировании.
Автор: Гуща Александр