Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Обучение от Mail.Ru Group.
Онлайн-университет
для программистов с
гарантией трудоустройства.
Набор открыт!
2001 г

Curl

Владимир Тарасов

Что такое технология Curl?

Технология Curl позволяет разрабатывать и интегрировать новое поколение Web страниц и приложений, предоставляя функциональность и возможности полноценной программы. Сердцем технологии является язык представляния содержимого, специально разработанный для использования в Web, предоставляющий функциональность написания скриптов, объектно-ориентированную модель программы и функиональность интерфейса в одной интегрированной среде разработки. Curl может использоваться также с уже существующими технологиями, такими как HTML, CGI и средствами мультимедиа анимации. Поскольку интернет эволюционирует, он должен становится все более и более интерактивным, так же как и приложения на ПК. До текущего момента технологии в этой области развивались практически только в области технологий, исполняемых на Web серверах. Технология же Curl была создана непосредственно для Web приложений, исполняющихся на клиентских ПК.

Curl Corporation предлагает альтернативный подход, когда Web приложение взаимодействует с Web не с помощью статичного документа, но с использованием среды приложений на стороне устройства клиента, например, такого как ПК. Такой подход не нуждается в обращениях к Web серверу. Текст, графика, программный код и элементы ООП объединены и унифицированы, что позволяет минимизировать обращения к содержимому Web и, тем самым, повысить "отклик" на обращения к интерфейсу. Как это происходит? Во-первых, через создание полноценного содержимого Web. Во-вторых, с помощью использования вычислительных ресурсов клиента, который как правило 90% времени проводит в ожидании "отклика" от интернет ресурса.

Преимущества технологии Curl.

Curl Corporation разработала технологию, предоставляющую новые и важные преимущества как для конечных пользователей, так и для разработчиков и провайдеров содержания Web ресурсов.

Предоставляя конечному пользователю более богатый интерфейс, интерактивную и улучшенную скорость передачи информации, технология Curl безусловно обогатит опыт пользователя в сети. С помощью программной платформы Surge, которая включает в себя и plug-in модуль, на своем компьютере пользователь сможет работать гораздо быстрее и эффективнее с помощью использования содержимого Web страниц написанных на Curl. Не рабочие задачи, такие как сбор и поиск информации или игры, станут приносить гораздо больше удовольствия. Что же касается электронной коммерции, то пользователь откроет для себя более динамичный процесс совершения покупок, быстрый и безопасный расчет. Все эти преимущества пользователь получает без всяких дополнительных устройств или ОС, но исключительно с помощью среды Surge и ее компонентов.

Технология Curl освобождает разработчиков от компромиссных решений для содержания и скорости отклика Web-страниц и приложений, а также значительно снижают усилия, стоимость и время требуемое на разработку и поддержку содержания Web-страниц. Используя Surge Lab IDE, разработчики смогут создавать Web-проекты, качество представления содержимого которых будет равняться скорости их загрузки. Они смогут создавать проекты, используя преимущества работы в общей, унифицированной среде разработки, которая может сочетать в себе функциональность HTML с функциональностью скриптов и концепциями ООП.

Технология Curl выдвинет провайдеров содержимого Web на новый уровень доставки содержимого к конечному пользователю, удовлетворяя потребности последнего к наиболее быстрому, лучшему и дешевому доступу в Internet. В мире технологии Curl провайдеры смогут предложить пользователю новые высоты интерактивностии объема содержимого, т.к. содержимое Web созданное с ее помощью является более компактным по отношению к уже существующим технологиям.

Современный Web приложения созданы, как правило, на технологиях, тяжелых для понимания, которые делают процесс создания таких приложений более сложным, чем он мог бы быть. Поскольку интерактивные компоненты Web приложений могут вести себя по разному не только в зависимости от ОС, но и в зависимости от конкретного броузера, разработчикам в большинстве случаев приходится проводить все операции на сервере и формировать исходный результат как HTML документ для броузера, что ведет к появлению следующих проблем:

  • Низкий отклик - для динамического обновления любой новой информации Web сервер должен переслать, а броузер перерисовать заново весь документ, а не только обновленную или новую информацию.
  • Отсутствие гибкости - информация передается от сервера к клиенту. HTML вынуждает объединять при передаче информацию и ее визуальное представление, тем самым увеличивая объем пересылаемой информации.

Технология Curl позволяет решить эти проблемы с помощью компактного, самоописывающегося языка программирования, использующего вычисления на стороне конечного пользователя:

  • Интеграция программного кода и данных - как и любая программа, Web приложение состоит из программной части и некоего набора данных. HTML технология позволяет только представлять, отображать информацию, но не расчитывать ее или формировать. Технология Curl позволяет не чуствовать разницы между программой и интерактивным документом.
  • Одна общая среда разработки - технология Curl является в равной степени форматом представления информации, таким, как HTML, и языком программирования с элементами ООП, таким как Java, Visual Basic, C++. Дизайнер или программист, использующий Curl, может объединять информацию по форматированию и расположению инфомации и объектно-ориентированный интерфейс в одном общем формате, без труда интерпретируемым с помощью среды Surge. Причем интерактивность и вычисления будут выполняться на клиентском ПК.
  • Маленький размер - при использовании технологии Curl, информация, посланная на ПК пользователя, сразу содержит код, который "знает" как интерпретировать данные. Таким образом количество передаваемой информации будет меньшим, чем при использовании традиционных технологий.

Поддержка кросс-платформенности.

В ближайшем будущем Curl Corporation собирается адаптировать данную технологию под MacOS, а также поддерживать PDA, мобильные телефоны и любые устройства имеющие возможность подключения к Internet. Такой подход во многом облегчит создание ресурсов по принципу "однажды создав приложение, запускай его в не зависимости от той ОС на которой работает пользователь". Компания предоставляет Just-In-Time (JIT) компилятор с помощью которого формируется код, предоставляющий возможность клиентской платформе самой решать в каком виде и на каком устройстве отображать информацию. JIT компилятор интерпретирует код в то, что хочет достичь разработчик и производит необходимые уточнения приводя код в сответствие правилам стандарта.

Поддержка политики Open Source.

Curl Corporation приветствует начинания политики Open Source (открытого кода) и стратегию совместного создания ПО. Однако, Curl Corporation оставляет себе контроль за той частью ПО, которая гарантирует переносимость, устойчивость и стабильность разработки программных проектов.

Поддержка XML.

В среду Surge встроен стандартный XML SAX интерпретатор, позволяющий клиентской части технологии работать как презентационному слою для XML данных совместимых с SAX 2.0 API. Поддержка интерпретатора DOM, так же как и других связанных с XML технологий, будет реализована в новых версиях среды.

Обзор технологий безопасности.

В сравнении с технологиями безопасности, применяемых в Java и HTML, язык Curl является более гибким, простым и защищенным:

  • простота в использовании - конечному пользователю не надо настраивать политики безопасности;
  • большая гибкость - непривилегированные апплеты, написанные на Curl, являются более функциональными и безопасными, чем апплеты, написанные на Java;
  • более защищенный, чем Java - привилегированные апплеты должны использоваться как можно реже;
  • более защищенный, чем HTML - Curl предлагает безопасность для решения проблем идентификации пользователя.

Некоторые примеры синтаксиса языка Curl.

Язык Curl сочетает в себе возможности форматирования текста, сходные с использованием тагов HTML, и программную функциональность. Правила форматирование текста могут определяться как в самом документе, так и быть загружены или импортированы из внешних файлов.

Команды форматирования текста в языке Curl подразделяются на следующие категории:

  • форматирования символов и фрагментов текста;
  • форматирование параграфов;
  • включение в текст изображений и объектов и выравнивание текста

Рассмотрим небольшой пример форматирования текста:

    {curl 1.6 applet}
    || Заголовок текста
    {title
          font-family="Times New Roman",
          font-size=24pt,
          color="green",
          Заглавие текста}
    || Первый параграф
    {paragraph
          Первый параграф Первый параграф Первый параграф }
    || Заголовок, с размером по умолчанию.
    {heading
    	 font-size=14pt,
         color="green",
         Заголовок 1}
    {paragraph
         Второй параграф Второй параграф Второй параграф }
    || Заголовок, с размером 2
    {heading level=2,
    	font-size=10pt,
        color="olive",
        Заголовок 2}
    {paragraph
        Третий параграф Третий параграф Третий параграф }
    

{curl 1.6 applet} - определитель языка Curl, который указывает на то, что файл содержит апплет, написанный на API 1.6, который может исполняться на Surge plug-in версии 1.1.

|| - оператор комментария, данный оператор ставится в начале строки; текст который стоит после него, но до конца строки является комментарием.

{title font-family="Font name", font-size=Npt, color="color", text } - оператор описывающий заглавие текста, где font-family - имя шрифта, font-size - размер шрифта, color - цвет текста, text - текст заглавия; определители font-family, font-size и color являются необязательными и если они неописаны, то будут приняты значения текста по умолчанию.

{paragraph font-style="style", text} - оператор описывающий параграф текста, где font-style - стиль шрифта, text - текст заглавия. Может использоваться со следующими операторами text, italic, bold, itemize.

{heading level = N, font-family="Font name", font-size=Npt, color="color", text } - оператор для описания заголовков, где level - предустановленный тип заголовка, font-family - имя шрифта, font-size - размер шрифта, color - цвет текста, text - текст заглавия.

Ниже представлен результат работы вышеприведенного примера:

{italic text} - оператор, устанавливающий на текст атрибут курсива.

{bold text} - оператор, устанавливающий на текст атрибут увеличинной толщины символов.

{text font-style="style" text} - оператор, устанавливающий на текст определенный стиль.

{itemize {item text1} {item text2} {item text3}} - оператор, позволяющий отформатировать текст как список.

{center object} - оператор, выравнивающий объект по центру документа.

{image source={url "image.jpg"}, width=Nin, height=Min} - оператор, включающий в документ файлы с изображениями.

{hrule color="color", height=Npt} - оператор, отображающий в документе горизонтальный разделитель

При форматировании документов можно использовать специальный оператор {set-document-properties margin=Npt, background={url "image.jpg"}, border-width=Mpt, border-color="color"}, где margin - отступ слева, backgroud - фон документа (вместо файла с изображением как параметр может использоваться и цвет фона), border-width - ширина обрамления документа, border-color - цвет обрамления документа.

    {curl 1.6 applet}
    {set-document-properties
        margin=0.2in,
        background="beige",
        border-width=5pt,
        border-color="olive"
    }
    {title
        font-family="Times New Roman",
        font-size=24pt,
        color="green",
        Документ}
    {paragraph
        Определение: от латинского documentum - свидетельство.
    }
    {text }
    {paragraph
        {text font-size=8pt,
            {itemize
                {item Документ - материальный носитель данных
                      с записанной на нем информацией, предназначенной
                      для ее передачи  во времени и пространстве.}
                {item Документы могут содержать тексты, изображения,
                      звуки и т.д. В узком смысле - деловая бумага,
                      юридически подтверждающая какой-либо факт или
    право на что-то.}
            }
        }
    }
    {hrule color="olive", height=2pt}
    {center {italic Статья из \"Советского Энциклопедического Словаря\"} 
    

Результат работы примера:

Для форматирования документа можно также использовать специальные предопределенные стили. Данная операция производится с помощью оператора {document-style style}. Этот оператор должен предшествовать оператору {set-document-properties ...}. В качестве значений параметра style могут выступать DefaultDocument - содержимое документа отображается на простой странице с белым фоном, этот же стиль применяется по умолчанию, если данный оператор не задан, TocDocument - задает вид страницы с автоматически сгенерированным окном содержания документа, PlainDocument - отображает один объект в отдельную область (Frame) без линеек прокрутки, дополнительные объекты вызывают ошибку, а текст самого вернего уровны игнорируется; данный стиль нужен для отображения графики.

Если вы создаете простой документ, то обычным является перезначение стилей в начале файла, иначе правильным будет создание внешнего файла со стилями и подключения его к документу. Создание стиля осуществляется с помощью оператора {define-text-format ...}.

    {define-text-format H1 as heading with
    	level = 1,
    	font-size = 14pt,
    	color = "olive" }
    

Если нам необходимо подключить внешний файл со стилями, то это можно осуществить с помощью оператора {include ...} до объявления {document-style ...} и {set-document-properties ...}.

Рассмотрим возможности среды Curl по форматированию текста. Эти возможности можно подразделить на следующие категории: работа с символами, работа с параграфами, работа с таблицами и работа с ссылками и изображениями. Основным оператором форматирования для символов является оператор {text ...}, а для параграфов - {paragraph ...}. Приведем небольшой пример использования этих операторов.

    {paragraph Я не хочу форматировать весь текст;
         {text color = "green" только этот текст будет выделен зеленым
    	 цветом,} а этот уже не будет. }
    
    Я не хочу форматировать весь текст; только этот текст будет 
    выделен зеленым цветом, а этот уже не будет.
    

Каждый из этих операторов имеет свой собственный синтаксис, который приведен в данной таблице. В некоторых случаях атрибуту оператора может соответствовать предопределенный оператор-эквивалент. Например, оператору {bold ...} соответствует {text font-weight = "bold" ...}.

Форматирование текста{text ...}ColorЦвет
Font-familyШрифт
Font-sizeРазмер шрифта
Font-styleСтиль шрифта
Font-weightШирина символа
Text-underline?Текст подчеркнут
Text-line-through? Текст зачеркнут
Text-vertical-alignРасположение текста
Text-breakable?Одной строкой?
Text-preserve-whitespace?Работа с пробелами
Форматирование параграфа{paragraph ...}Paragraph-first-line-indentОтступ для 1-й строки
Paragraph-justifyВыравнивание
Paragraph-line-spacingМежстрочное расстояние
Paragraph-left-indentЛевый отступ
Paragraph-right-indentПравый отступ
Paragraph-after-spacingОтступ до параграфа
Paragraph-before-spacingОтступ после параграфа
Форматирование таблиц{table ...} Cell-border-widthШирина рамки ячейки
Cell-marginОтступ до содержимого ячейки
Cell-border-colorЦвет рамки ячейки
Cell-border-styleСтиль рамки ячейки
Форматирование изображений Border-widthШирина рамки
Border-styleСтиль рамки
Border-colorЦвет рамки
WidthШирина
HeightВысота
MarginОтступ
BackgroundФон
HalignВыравнивание по горизонтали
ValignВыравнивание по вертикали

К операторам, форматирующим текст, также относят следующие операторы:

{trademark} - символ TM.
{registered-trademark} - символ ®.
{copyright} - символ ©.
{degrees} - символ .
{em-dash} - символ —.
{en-dash} - символ –.
{bullet} - символ .
{br} - оператор принудительного переноса текста на следующую строку.
{page-break} - оператор принудительного переноса текста на следующую страницу.

Предопределенные операторы-эквиваленты стандартному оператору {paragraph ...}:

{left-justify ...} - выравнивание по левому краю.
{right-justify ...} - выравнивание по правому краю.
{center ...} - выравнивание по центру.
{blockquote ...} - одинаковые отступы по правому и левому краям.
{pre ...} - вывод блока тескста шрифтом фиксированной ширины.
{heading ...} - заголовок.
{numbered-heading ...} - заголовок с соответствующим номером.
{itemize ...} - ненумерованное перечисление.
{enumerate ...} - нумерованное перечисление.
{item ...} - элемент перечисления.
{definition ...} - элемент описания.

Рассмотрим специальные операторы форматирования:

{title ...} - установка названия документа в окне броузера.

{link [target = browser-string, ] href = {url destination-string}, link-display} - оператор, описывающий ссылку, где browser-string - окно броузера куда будет загружен ресурс загруженный по ссылке, destination-string - адрес ссылки в формате URL, link-display - текст, к которому будет "привязана" ссылка.

{destination name = name-string, [, display]} - оператор, описывающий имя ресурса, на который можно сослаться с помощью оператора {link ...}, где name-string - название ресурса, display - текст.

{link source = {url image-file-string}, [width = width,] [height = height]} - оператор, описывающий изображение, где image-file-string - адрес изображения в формате URL, height и width - высота и ширина изображения.

{hrule [height = distance-value,] [color = color-value]} - оператор, отображающий горизонтальную линию в документе.

Рассмотрим операторы, работающие с таблицами - {table ...}, {row...}, {cell ...}. Структура вложенности этих операторов эквивалента аналогичным тэгам языка HTML.

    {table ...
    	{row ...
    		{cell ...}
    		{cell ...}
    	}
    	{row ...
    		{cell ...}
    		{cell ...}
    	}
    }
    

{table ...} - оператор, задающий таблицу.
{row ... [colspan = n]} - оператор, задающий столбец таблицы, где colspan - команда слияния n строк.
{cell ... [rowspan = n]} - оператор, задающий строку таблицы, где rowspan - команда слияния n столбцов.

Приведем пример работы данной группы операторов:

    
    {table background="beige",
         margin=1cm,
         border-color="red",
         border-width=2pt,
         cell-margin=0.5cm,
         cell-border-width=4pt,
         cell-border-color="brown",
         {row cell-margin=0.5cm,
               {cell color="magenta", I don't really garden}
               {cell color="purple", I putt around}
         }
         {row color="green",
               cell-margin=0.5cm,
               {cell I don't use a table saw}
               {cell I use my teeth}
         }
    }
    
    

Заключение

Данный обзор не в коем случае не претендует на полноту описания всех возможностей языка Curl. В нем я постарался описать основные конструкции языка, которые касаются исключительно отображения данных в броузере, и которые можно сравнивать с конструкциями языка HTML и его расширения CSS. В данном обзоре не затрагивались такие возможности языка как, например, работа со стандартными средствами программирования (циклы, условные и безусловные переходы), работа с классами, обработчиками ошибок, библиотеками 2D и 3D графики, анимацией, интеграцией с XML и многим другим.

На мой взгляд, Curl является той средой, которая объединяет вместе все популярные на сегодняшний день WEB технологии - HTML, CSS, JavaScript - в единое целое и дает возможность удобно работать в единой среде разработки. Исполнение же документа через plugin на компьютере пользователя это не что иное как отображение любой из стандартных технологий броузером. Т.о. популярность данного языка напрямую зависит от того, насколько скоро появятся броузеры со встроенной поддержкой этого нового стандарта.

Литература

"Surge Lab Documentation. Developer's Guide"; Curl Corporation; Cambridge, Massachusetts; 2001

Ссылки

Сайт разработчика: www.curl.com

 

Новости мира IT:

Архив новостей

Последние комментарии:

Релиз ядра Linux 4.14  (7)
Среда 22.11, 11:59
Loading

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...