Pascal Server Pages

Нестандартный подход к web-приложениям

Если выловить в коридоре мехмата БГУ студента и спросить его, на чём пишут web-приложения, то он начнёт вам перечислять такие языки, как PHP, Java, C#, Perl... Если же спросить, пишут ли web-приложения на Паскале, то он, наверное, только покрутит пальцем у виска.


Зачем это нужно?

С одной стороны, существует множество технологий, претендующих на звание стандарта де-факто в области создания web-приложений. С чисто меркантильной точки зрения, они явно предпочтительнее, чем не слишком популярные решения, созданные отдельными энтузиастами или их группами. Популярные технологии имеют, как правило, поддержку со стороны крупных компаний, занимающихся разработкой программного обеспечения. Для них есть масса готовых решений, куча справочной информации, по ним пишут книги, проводят семинары и тренинги. А ещё они безумно скучны, как скучны сходящие с конвейера автомобили, какими бы хорошими и удобными они ни были.

Разработки, которые сделаны "на коленке", конечно, не могут похвастаться большим сообществом использующих их людей. Они не гремят, как детища корпораций, и специалистов по ним не найдёшь среди тех, кому готовы платить баснословные зарплаты ИТ-компании. Но, вместе с тем, каждая из таких разработок буквально дышит тем энтузиазмом, с которым её создатели (или один создатель) подошёл к её написанию. Если продолжить сравнение с автомобилями, то это, наверное, созданные талантливыми "самоделкиными" машины с турбинами из пылесосов и корпусами, сделанными из найденных на свалке деталей других автомобилей. Они, конечно, не подойдут для ежедневной езды менеджеру среднего звена, однако тем, кто постоянно работает с автомобилями, посмотреть на них будет интереснее, чем на широко распространённые серийные машины.

К чему я это всё пишу? К тому, что программный продукт (вернее, даже два программных продукта), о котором мы с вами сейчас будем вести речь, конечно, не так полезен для большинства разработчиков, как PHP, JSP, ASP.NET и иже с ними. Однако ИТ-шникам, которые постоянно работают с этими технологиями, взглянуть на него будет наверняка интереснее, чем на приевшиеся средства создания web-приложений, названия которых многим, наверное, даже ночью снятся.


Два приложения под одним названием

Честно говоря, собираясь вам рассказать о Pascal Server Pages, я и не думал, что под этим названием существуют два очень разных программных продукта. Но мне повезло: забыв адрес официального сайта того из них, о котором я хотел первоначально вам рассказать, я обратился к Google, и поисковик услужливо подсунул мне статью на FreePascal.ru, в которой рассказывалось о втором продукте с тем же названием. Впрочем, наверное, сначала стоило всё же сказать о том, что именно это за продукты и чем они друг от друга отличаются.

Первый Pascal Server Pages (я буду и дальше называть его первым, потому что именно о нём первоначально намеревался рассказывать) - это интерпретатор скриптового языка, который наподобие PHP внедряется в HTML-код страниц и служит для выполнения скриптов на стороне сервера. Как несложно догадаться, главное отличие Pascal Server Pages от других подобных языков, которых существует далеко не малое количество, состоит в том, что все скрипты пишутся на паскалеподобном языке.

Второй Pascal Server Pages - это продукт совершенно иного рода, предполагающий совершенно иной подход к разработке приложений. Это библиотека для написания CGI-приложений на Free Pascal. Напомню, Free Pascal - это свободная кросс-платформенная реализация Obect Pascal, совместимая со старыми версиями Delphi и Borland Pascal. Ну а что касается CGI-приложений, то, думаю, большая часть наших читателей о них кое-что слышала, а потому подробно на них останавливаться не имеет смысла.


Первый Pascal Server Pages

Итак, давайте поговорим теперь о каждом из упомянутых выше программных продуктов подробнее. И первым делом речь, конечно, пойдёт о том продукте, где Pascal выступает в роли интерпретируемого языка. Найти его можно по следующему адресу: npascal.sourceforge.net. Как видите, сайт располагается на площадке SourceForge, а это означает, что программный продукт полностью свободный, то есть его можно не только бесплатно использовать, но и модифицировать программный код, ежели вдруг возникнет такая необходимость. Забегая вперёд, замечу, что и второй Pascal Server Pages также является свободным программным продуктом.

Pascal Server Pages, конечно, может предложить вам меньшее количество всяких возможностей, чем его именитые конкуренты вроде PHP или, тем более, ASP.NET. Однако, несмотря на это, создавать приложения с его помощью можно. Код HTML-страниц при этом будет выглядеть примерно следующим образом:

<html><body>
Hoy es :<% Date %>
<p> La raiz cuadrada de 24 es <% sqrt(24) %> </p> <hr>
<% begin
 if DateTimeToStr(Now) = '01/01/2001 08:00:00' then
  Result := 'Ya es complicado conseguir esto!';
 else
  Result := 'Esto es lo normal que se deberia ver';
end; %>
</body></html>

Пример, взятый мною с официального сайта разработчика, содержит, конечно, много испанских слов, однако, несмотря на это, общий смысл, зная Delphi, понять можно.

Может, кому-то и покажется странным писать web-страницы на Паскале, но, по моему мнению, это отличный вариант рассказать школьникам о том, что такое web-программирование и в чём именно заключается его суть. Можно, конечно, использовать для этого и PHP, но здесь придётся рассказывать ещё и о самом языке программирования. В то время как Pascal Server Pages предоставляет знакомый молодому поколению язык со знакомыми конструкциями и операторами, а потому можно будет посвятить время исключительно аспектам web-программирования, а не того языка, на котором пишется программа. Конечно, использовать Pascal Server Pages имеет смысл именно на каких-то факультативах или кружках для школьников, увлекающихся информатикой и программированием, но, быть может, недалёк уже тот день, когда и в программе базовой школы появится такой раздел, как изучение web-программирования.

Можно, конечно, рассказывать об этой разработке ещё долго, но если вы ею заинтересовались, то будет гораздо полезнее скачать и покрутить её самостоятельно. Скажу только немного о поддерживаемых HTTP-серверах - благо, автор программы не поленился обнародовать их список. В него входят Apache 1.X и Apache 2.X, Sambar Server v5.3, Xitami Web Server v2.4d9 и Savant Web Server v3.1.


Второй Pascal Server Pages

Что ж, самое время, как мне кажется, перейти к разговору о втором программном продукте с тем же самым названием. Как я уже говорил, он отличается от первого тем, что здесь предлагается не пользоваться скриптовым языком, а писать бинарные CGI-приложения с использованием компилятора Free Pascal.

Я уже могу представить себе, как вы читаете это и кривитесь. CGI-приложения?! Бинарные?! На дворе, слава Богу, двадцать первый век, какие бинарные CGI-приложения?! Что ж, действительно, всё прогрессивное человечество давно перешло на совсем другие технологии, однако это вовсе не означает, что за ним следует идти во всех случаях. CGI-приложения, конечно, не так просты в написании и в отладке, как скрипты, однако в плане выигрыша в скорости им есть что сказать популярным сегодня скриптовым языкам программирования. Удивительно, но до сих пор далеко не все приложения могут довольствоваться производительностью интерпретируемых языков, что бы не говорили о скорости современных компьютеров и качестве реализации современных интерпретаторов.

Конечно, нельзя сказать, что Free Pascal - лучшее средство для написания приложений, которым критична скорость выполнения, но у него есть свои пользователи и поклонники, а, значит, и библиотека Pascal Server Pages для написания CGI-приложений вполне имеет право на существование. Располагается, кстати, она по следующему адресу: sourceforge.net/projects/pascal-webdev. А если вы заинтересуетесь этой библиотекой, то более подробно на русском языке о ней можно прочитать здесь: www.freepascal.ru/article//raznoe/20060127073733. Это та самая статья, благодаря которой я и узнал о существовании второго Pascal Server Pages.

В общем-то, нельзя сказать, чтобы Pascal Server Pages как-то коренным образом изменил процесс создания CGI-приложений для тех, кто создаёт их с помощью Free Pascal, - всё-таки, CGI-приложения есть CGI-приложения, и с этим ничего не попишешь. Но, тем не менее, загрузка файлов, работа с протоколом SMTP, MD5-кодирование и многое другое становится куда более простым, нежели без использования Pascal Server Pages.

Стоит заметить, что, хотя большая часть библиотек для объектно-ориентированных языков программирования являются библиотеками классов, Pascal Server Pages - исключение из этого удобного правила. Её авторы объясняют это тем, что они старались не использовать "тяжёлые" и сравнительно медленные классы там, где можно было обойтись более быстрым и легковесным процедурным кодом. Решение, конечно, на мой взгляд, довольно спорное, но им, конечно, во время разработки библиотеки было виднее.


Резюме

Что ж, пора подвести итоги разговора о двуликом Pascal Server Pages. Сложно сказать, какой из этих двух продуктов, имеющих одно и то же название, больше нужен пользователям. Наверное, сейчас, когда Паскаль, мягко говоря, не в почёте, оба не слишком нужны. Об этом весьма красноречиво свидетельствуют и даты последних обновлений обоих продуктов. Единственное, конечно, различие состоит в том, что у первого Pascal Server Pages (того, который интерпретатор) больше шансов быть полезным на традиционном для языка Паскаль образовательном поприще. Впрочем, и здесь применение этого программного продукта, надо признать, вызывает некоторые сомнения. Но, в общем-то, если говорить о необычных способах разработки web-приложений, то здесь Pascal Server Pages (оба) занимают далеко не последнее место.

Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by

Версия для печатиВерсия для печати

Номер: 

15 за 2009 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!