|
2001 г
Curl
Владимир Тарасов
Что такое технология Curl?
Технология Curl позволяет разрабатывать и интегрировать новое поколение Web страниц и приложений, предоставляя функциональность и возможности полноценной программы. Сердцем технологии является язык представляния содержимого, специально разработанный для использования в Web, предоставляющий функциональность написания скриптов, объектно-ориентированную модель Модель (фр.modle, от лат.modulus— «мера, аналог, образец»)— некоторый материальный или мысленно представляемый объект или явление, являющийся упрощённой версией моделируемого объекта или явления (прототипа) и в достаточной степени повторяющий свойства, существенные для целей конкретного моделирования(опуская несущественные свойства, в которых он может отличаться от прототипа). программы и функиональность интерфейса в одной интегрированной среде разработки. 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 сервер должен переслать, а броузер перерисовать заново весь документ, а не только обновленную или новую информацию.
- Отсутствие гибкости - информация
Информация (от лат.informatio— осведомление, разъяснение, изложение, от лат.informare— придавать форму)— в широком смысле абстрактное понятие, имеющее множество значений, в зависимости от контекста. В узком смысле этого слова— сведения (сообщения, данные) независимо от формы их представления. Сведения об объектах живой или неживой природы, их свойств и взаимном влиянии друг на друга. передается от сервера к клиенту. HTML вынуждает объединять при передаче информацию и ее визуальное представление, тем самым увеличивая объем пересылаемой информации.
Технология Curl позволяет решить эти проблемы с помощью компактного, самоописывающегося языка программирования, использующего вычисления на стороне конечного пользователя:
- Интеграция
Интеграция (от лат.integrum— целое; лат.integratio— восстановление, восполнение)— в общем случае обозначает объединение, взаимопроникновение. Объединение каких-либо элементов (частей) в целое. Процесс взаимного сближения и образования взаимосвязей. программного кода и данных - как и любая программа, Web приложение состоит из программной части и некоего набора данных. HTML технология позволяет только представлять, отображать информацию, но не расчитывать ее или формировать. Технология Curl позволяет не чуствовать разницы между программой и интерактивным документом.
- Одна общая среда разработки - технология Curl является в равной степени форматом представления информации, таким, как HTML, и языком программирования с элементами ООП, таким как Java, Visual Basic, C++. Дизайнер
Дизайн (англ.design инженер-конструктор, от лат.designare отмерять)— творческая деятельность, целью которой является определение формальных качеств промышленных изделий. Эти качества включают и внешние черты изделия, но главным образом те структурные и функциональные взаимосвязи, которые превращают изделие в единое целое как с точки зрения потребителя, так и с точки зрения изготовителя. Дизайн стремится охватить все аспекты окружающей человека среды, которая обусловлена промышленным производством. или программист, использующий Curl, может объединять информацию по форматированию и расположению инфомации и объектно-ориентированный интерфейс в одном общем формате, без труда интерпретируемым с помощью среды Surge. Причем интерактивность Интерактивность (от англ.interaction— «взаимодействие»)— понятие, которое раскрывает характер и степень взаимодействия между объектами.Используется в областях: теория информации, информатика и программирование, системы телекоммуникаций, социология, промышленный дизайн и других. и вычисления будут выполняться на клиентском ПК.
- Маленький размер - при использовании технологии Curl, информация, посланная на ПК пользователя, сразу содержит код, который "знает" как интерпретировать данные
Данные (калька от лат.data) — это представление фактов и идей в формализованном виде, пригодном для передачи и обработки в некотором информационном процессе.. Таким образом количество передаваемой информации будет меньшим, чем при использовании традиционных технологий.
Поддержка кросс-платформенности.
В ближайшем будущем Curl Corporation собирается адаптировать данную технологию под MacOS, а также поддерживать PDA, мобильные телефоны и любые устройства имеющие возможность подключения к Internet. Такой подход во многом облегчит создание ресурсов по принципу "однажды создав приложение, запускай его в не зависимости от той ОС на которой работает пользователь". Компания Компания: (фр.compagnie — 1) общество, группа; 2) фирма, рота, экипаж корабля, театральная труппа) предоставляет Just-In-Time (JIT) компилятор с помощью которого формируется код, предоставляющий возможность клиентской платформе самой решать в каком виде и на каком устройстве отображать информацию. JIT компилятор интерпретирует код в то, что хочет достичь разработчик и производит необходимые уточнения приводя код в сответствие правилам стандарта.
Поддержка политики Open Source.
Curl Corporation Корпорация (от новолат.corporatio— объединение)— юридическое лицо, которое, являясь объединением физических лиц, при этом независимо от них (то есть самоуправляемо). В широком смысле под корпорацией можно понимать всякое объединение с экономическими целями деятельности. приветствует начинания политики Open Source (открытого кода) и стратегию совместного создания ПО. Однако, Curl Corporation оставляет себе контроль Контроль (фр.contrle, от contrerle — список, ведущийся в двух экземплярах, от лат. за той частью ПО, которая гарантирует переносимость Портирование (англ.porting)— в программировании под портированием понимают адаптацию некоторой программы или её части, с тем чтобы она работала в другой среде, отличающейся от той среды, под которую она была изначально написана с максимальным сохранением её пользовательских свойств. В этом основное отличие понятий порт и форк— в первом случае все пользовательские свойства пакета стараются сохранить, а во втором— это базирующаяся на общей основе самостоятельная разработка с новыми полезными свойствами., устойчивость и стабильность разработки программных проектов.
Поддержка XML.
В среду Surge встроен стандартный XML SAX интерпретатор, позволяющий клиентской части технологии работать как презентационному слою для XML данных совместимых с SAX 2.0 API. Поддержка интерпретатора DOM, так же как и других связанных с XML технологий, будет реализована в новых версиях среды.
Обзор технологий безопасности.
В сравнении с технологиями безопасности, применяемых в Java и HTML, язык Curl является более гибким, простым и защищенным:
- простота в использовании - конечному пользователю не надо настраивать политики безопасности;
- большая гибкость - непривилегированные апплеты, написанные на Curl, являются более функциональными и безопасными, чем апплет
Апплет (англ.applet от application —- приложение и -let— уменьшительный суффикс)— это несамостоятельный компонент программного обеспечения, работающий в контексте другого, полновесного приложения, предназначенный для одной узкой задачи и не имеющий ценности в отрыве от базового приложения.ы, написанные на 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
Второй Второй — второй по счёту альбом песен Владимира Высоцкого в исполнении Григория Лепса, записанный и вышедший в 2007 году параграф Второй параграф Второй параграф }
|| Заголовок, с размером 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 - ширина Длина— физическая величина, числовая характеристика протяжённости линий. В узком смысле под длиной понимают линейный размер предмета в продольном направлении (обычно это направление наибольшего размера), то есть расстояние между его двумя наиболее удалёнными точками, измеренное горизонтально, в отличие от высоты, которая измеряется в вертикальном направлении, а также ширины или толщины, которые измеряются поперёк объекта (под прямым углом к длине). В физике термин «длина» обычно используется как синоним «расстояния» и обозначается L или l. обрамления документа, 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 Документ Документ (от лат.documentum— образец, свидетельство, доказательство) — материальный объект, содержащий информацию в зафиксированном виде и специально предназначенный для её передачи во времени и пространстве .
В узком смысле Документ — облеченный в письменную форму акт, удостоверяющий наличие фактов определенного значения. В широком смысле и книга, и скульптура - документы. - материальный носитель данных
с записанной на нем информацией, предназначенной
для ее передачи во времени и пространстве.}
{item Документы могут содержать тексты Текст (от лат.textus «ткань; сплетение, связь, сочетание»)— в общем плане связная и полная последовательность предложений., изображения,
звуки и т.д. В узком смысле - деловая бумага,
юридически подтверждающая какой-либо факт или
право на что-то.}
}
}
}
{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 ...} до объявления Электронная доска объявлений — первоначально это понятие относилось исключительно к BBS. Однако по мере распространения Интернета появилось множество сайтов, вполне аналогичных обычным бытовым доскам объявлений или же рекламным газетам. Они унаследовали название электронных досок объявлений (однако аббревиатура BBS в отношении подобных русскоязычных ресурсов употребляется редко). Их содержимое представляет собой набор объявлений коммерческого и/или некоммерческого характера и размещается как на платной, так и на бесплатной основе, в зависимости от конкретного сайта. Многие рекламные компании, имеющие бумажные издания и работающие в сфере теле- и радиорекламы, создают и поддерживают также собственные электронные доски объявлений. {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]} - оператор, отображающий горизонтальную линию в документе.
Рассмотрим операторы Оператор (позднелат.operator— работник, исполнитель, от operor— работаю, действую)— то же, что отображение в математике., работающие с таблицами - {table ...}, {row...}, {cell ...}. Структура вложенности этих операторов эквивалента аналогичным тэгам языка HTML.
{table ...
{row ...
{cell ...}
{cell ...}
}
{row ...
{cell ...}
{cell ...}
}
}
{table ...} - оператор, задающий таблицу.
{row ... [colspan = n]} - оператор, задающий столбец таблицы, где colspan - команда Команда (слово заимствовано в конце XVII века из исп. и португ. comando «командование, управление», исп. слияния 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 JavaScript— объектно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript. - в единое целое и дает возможность Возможность — направление развития, присутствующее в каждом явлении жизни; выступает и в качестве предстоящего, и вполне объяснимо рациональным путем: в каждой возможности присутствует вероятная невозможность, «возможность невозможного». Возможность не определяется познанием того, что может быть. Познание вероятностей, возможностей не всегда влияет на нашу возможность. На изучении возможности основывается, главным образом, исследование бытия и события. удобно работать в единой среде разработки. Исполнение же документа через plugin на компьютере пользователя это не что иное как отображение Функция— математическое понятие, отражающее связь между элементами множеств. Можно сказать, что функция это «закон», по которому каждому элементу одного множества (называемому областью определения) ставится в соответствие некоторый элемент другого множества (называемого областью значений). любой из стандартных технологий броузером. Т.о. популярность данного языка напрямую зависит от того, насколько скоро появятся броузеры со встроенной поддержкой этого нового стандарта.
Литература
"Surge Lab Documentation. Developer's Guide"; Curl Corporation; Cambridge, Massachusetts; 2001
Ссылки
Сайт разработчика: www.curl.com
|