Архивы: по дате | по разделам | по авторам

Три кита веб-разработки

Архив
автор : Родион Насакин   29.09.2003

В настоящее время существует множество сред разработки приложений для веб-серверов, из которых несомненными лидерами являются ASP, CGI и PHP.

В настоящее время существует множество сред разработки приложений для веб-серверов, из которых несомненными лидерами являются ASP, CGI и PHP. Есть и другие, но согласитесь, что среди расширений URL’ов со скриптовым контентом чаще всего встречаются именно .asp, .cgi, и .php, и вероятно, что человек, решивший заняться разработкой веб-сервера, воспользуется именно одной из них. Практически на любом форуме, посвященном сетевому программированию, можно отыскать как профессиональные обсуждения, так и эмоциональные споры поклонников той или иной из этих сред1. Вместе с тем часто проскальзывают вопросы на тему: какой из них лучше воспользоваться для решения той или мной задачи. Задачей авторов статьи было не определить «лучшего из лучших», а скорее сделать небольшой обзор достоинств и недостатков каждой из технологий. Выбор начинающий разработчик должен сделать сам в зависимости от поставленной задачи.

CGI

Common Gateway Interface был разработан в NCSA (Центр суперкомпьютерных приложений Иллинойского университета) в 1993 году и своим рождением обозначил новую эпоху в истории WWW. Почему, наверное, объяснять незачем, достаточно напомнить, что все скриптовые элементы от стеков графических гипертекстовых ссылок и встраивания даты в текст документов до форумов, чатов и гостевых книг стали доступны Интернет-сообществу именно с появлением «шлюзового интерфейса».

По своей сути CGI отличается от ASP и PHP, поскольку сам не является языком как таковым и не подразумевает использования ограниченного набора языков. Теоретически скрипт для CGI можно написать чуть ли не на любом из существующих языков программирования или даже на командном. На практике же абсолютное большинство CGI-программистов используют Perl.

Многие могли бы возразить: не такой уж CGI и «лидер». Действительно, славные денечки остались позади, и использование технологии уже считается в некоторых программистских коллективах (может быть, незаслуженно) признаком дурного тона. Однако что может лучше подойти под пример большого Интернет-проекта, чем поисковые системы, а многие из них используют CGI (например, Rambler, Lycos). В сочетании, скажем, с Perl’ом «интерфейс» до сих пор можно назвать одним из лучших средств разработки. Он позволяет легко справиться с простыми узлами с низким уровнем трафика (так как запускается отдельная копия приложения). Неслучайно большинство счетчиков и баннерных сетей написано именно на CGI. Кроме того, CGI часто является единственной скриптовой средой2, разрешенной большинством бесплатных хостеров.

Резюме: Настоятельно рекомендуется (более того — навязывается) на любительских или просто «бесплатных» страницах для разработки счетчиков, гостевых книг, таймеров и других «приятностей».

ASP

В далеком 1996 году корпорация Microsoft во всеуслышание объявила о выпуске принципиально новой сетевой технологии Active Server Pages. Продукт представлял собой новый подход к написанию серверных скриптов. Такие достоинства ASP, как использование сессий вместо запуска отдельной копии приложения (как в CGI), доступ к базам данных с помощью специального объекта ADO (Active Data Object), являющимся надстройкой над OLE-DB, программирование скриптов на относительно «легких» Jscript и VBScript, позволяли Microsoft надеяться на скорую кончину конкурентов-аналогов. Сейчас, спустя семь лет, уже ясно, что этим надеждам было не суждено сбыться. Расширение .asp явно уступает по частоте появления в Сети тем же .cgi, и .php. Тем не менее технология нашла свою нишу среди разработчиков — в частности, благодаря тому, что ASP встроена в (кто бы сомневался!) Microsoft Internet Information Server, начиная с версии 4.0, то есть используется на Windows-платформе. В то же время существует обратная сторона медали: первоначально ASP не поддерживалась серверами на Unix/Linux-платформе, что помешало ее широкому распространению. Созданные позднее версии для других платформ кардинально не изменили сложившуюся ситуацию — ASP осталась технологией только «для своих».

Кроме вышеупомянутых плюсов, ASP на сегодняшний день имеет и другие изюминки. Во-первых, поддержку ActiveX, компоненты которого разрабатываются с помощью отдельно поставляемого Visual Studio, имеющего в своем составе Visual C++, Visual J++ и Visual Basic, и могут вызываться из ASP-кода. Здесь следует отметить особую роль MS Visual Basic, который так активно продвигает Microsoft, используя в качестве инструмента практически во всех своих продуктах. Это один из немногих языков, где простота оптимально сочетается с мощностью. Интегрированная среда разработки (Integrated Development Environment — IDE) Visual Basic, средство контроля исходного кода — Visual Source Safe, а также хороший отладчик делают Visual Basic едва ли не самым мощным языком для создания веб-приложений. Однако нужно учитывать, что при владении Visual Basic освоение его потомка VBScript (который, правда, как утверждают некоторые специалисты, по некоторым параметрам хуже JScript) труда не составит. Во-вторых, наличие средств отслеживания состояния и пользователей в объектах, позволяющее создавать динамические приложения. В-третьих, приложения ASP наряду с другими, входящими в состав Microsoft IIS, способны выполняться в одном адресном пространстве, что повышает эффективность и масштабируемость благодаря отсутствию лишних затрат памяти. Впрочем, последнее достоинство — спорное, так как в определенных случаях глюк в «неизолированном» приложении может вывести из рабочего состояния весь сервер.


1(назад) Да что там на форумах! Пока статья писалась, авторы раза два переругались по поводу личных пристрастий, что в конце концов обеспечило (надеемся!) объективность материала. — Р.Н.
2(назад) Есть, конечно, бесплатный хостинг только с PHP или ASP, но его (по крайней мере, в Рунете) несравнимо меньше. — Р.Н.

Резюме: При работе с технологиями MS (скажем, Internet Information Server, ODBC, ActiveX) использование ASP достаточно, но не необходимо. То есть в принципе можно воспользоваться и другими технологиями (например, PHP показывает неплохие результаты как в Apache, так и в IIS), но, разумеется, ASP здесь более эффективен, хотя бы потому, что MS для него — естественная среда обитания; к тому же MS Visual Studio предоставляет огромные дополнительные возможности. Использовать же его на других платформах нецелесообразно (в частности, потому, что при реализации ASP-серверов применялась COM-технология записи в системный реестр — чисто «форточная» особенность говорит о многом). Это довольно четко ограничивает область применения ASP.

Подведя итог вышесказанному, заметим, что ASP можно однозначно порекомендовать для разработки сложных приложений на платформе MS Windows (IIS) с использованием технологий COM, DCOM, ActiveX и т. д.

P.S.Plus

Все перечисленные прелести принадлежат «классическому» ASP, а больший интерес вызывают его эволюционные формы, самая известная из которых — ASP.NET (в девичестве — ASP+). В настоящее время раскрутку этой технологии, как, впрочем, и других под индексом .NET, Microsoft ведет очень интенсивно. По сути дела, от старой доброй ASP осталась лишь некоторая синтаксическая совместимость, а похожа она на ASP.NET не больше, чем Turbo Pascal на Delphi. Появление ASP.NET можно расценить, прежде всего, как удачную попытку интеграции технологии ASP в WSYIWYG-редакторы, открывшей новый спектр возможностей для разработки веб-интерфейса. Примерами таких редакторов могут служить простенький полуторамегабайтный ASP.NET Web Matrix (для работы, правда, необходим еще и NET. Frame Work, а это еще около 20 Мбайт) или Visual InterDev. Релизы редакторов выходят с завидным постоянством и, по всей видимости, пользуются спросом, так как количество Интернет-проектов, выполненных на основе ASP.NET, неуклонно растет.

PHP

Professional Home Page был создан в 1994 году Расмусом Лердорфом как любительский проект для частных нужд, но неожиданно он завоевал популярность и после некоторой доработки и расширения функциональности стал настоящим стандартом среди языков разработки сценариев, внедряемых в HTML. Синтаксис PHP во многом заимствован из C, Java и Perl. Замечательной функцией PHP является работа со многими типами баз данных: помимо ODBC поддерживаются также MySQL, Oracle, dBase, Informix и многие другие. Кроме того, от других языков аналогичной направленности PHP отличается тем, что все его модули выполняются в едином адресном пространстве3, благодаря чему повышается скорость работы приложения.

Родная среда для PHP все же — Linux/Apache. С одной стороны, это позволяет технологии пользоваться всеми преимуществами Open Source — ни одна веб-технология не имеет такой поддержки со стороны юзеров, активно сотрудничающих с разработчиками языка. Возможно, именно поэтому в PHP нет серьезных багов. Но с другой стороны, работа с Unix/Linux требует больше профессиональных навыков, нежели с Windows. Спасением для «нелинуксоидов» является возможность PHP функционировать и под Windows-платформой. Естественно, IIS в чистом виде никакого PHP не поддерживает. Здесь приходится мудрить с дополнительными dll’ами. В Сети лежит множество пакетов, позволяющих решить эту проблему самыми разными способами.

PHP бурно развивается, впитывая в себя все лучшее, что есть в других технологиях, например вслед за ASP в PHP тоже появились «сессии». Триумфальное шествие языка началось с 4-й версии, которая вышла в 2000 году. Сейчас из Интернета можно скачать пятую бета-версию. Вообще, на платформе Unix/Linux самой распространенной является связка Apache+PHP+MySQL (в определенных кругах — даже стандарт де-факто) против IIS+ASP+ ODBC на Windows-платформе.

Резюме: Само название языка — Professional Home Page, казалось бы, однозначно сегментирует область применения этой технологии. Может быть, так и было после выхода первой версии, но сейчас, на наш взгляд, название не полностью соответствует истине. Безусловно, для написания серверных скриптов в своей домашней странице и по сей день язык прекрасно подходит, но последние версии получили гораздо более широкое применение. К примеру, среди разработчиков бытует мнение, что лучше всего чат или сетевой магазин писать на PHP. Характерной особенностью является и то, что по скорости обработки SQL-запросов связка PHP+MySQL выше других технологий на порядок, однако MySQL для хранения достаточно больших объемов данных не предназначен. Для регистрации же пользователей сайта, хранения песен в хит-параде или ведения учета скаченной литературы MySQL’а вполне достаточно.
Приговор: Технология практически идеальна для разработки развлекательного или е-коммерческого проекта (к примеру, магазина).


3 (назад) Причем работа идет быстрее, чем в ASP, так как в последнем работу тормозит использование COM-объектов. — К.А.

© ООО "Компьютерра-Онлайн", 1997-2021
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.