Технология Curl
Сегодня еще очень мало конкретных решений и стандартов для Интернет-2. Можно лишь с уверенностью сказать, что пока новый стандарт предполагает более высокую скорость доступа, широкое использование стандартов bluetooth и wap. Но самое главное, что нововведения должны коснуться основного - языков программирования. Предполагается создание общего, стандартного для всех платформ языка отображения вебстраниц и программирования, упрощающего работу программиста и ускоряющего работу браузера. За такую разработку взялись многие фирмы, обещаний много, но реальных решений пока очень и очень мало. Одним из таких решений является новый язык программирования Curl.
Знакомьтесь, язык программирования Curl - разработан Curl Corporation (www.curl.com), основанной 12 сотрудниками MIT в Кембридже в 1998 году. Язык разрабатывался специально для применения в Интернете и в частности в World Wide Web. Разработка проводилась при финансировании и участии Массачусетского Технологического Института (Massachusetts Institute of Technology (MIT)). Curl Corporation "за разработку программного языка нового поколения для компьютеров и коммуникаций" получила гранд, учрежденный World Wide Web Consortium (W3C). По утверждению администрации компании, технология Curl универсальна и обеспечивает явные преимущества, как для конечных пользователей, так и для разработчиков и интернет-провайдеров.
На вопрос "Зачем создавалась технология Curl?", основатель Curl Corp. Дэвид Кранз (Dr. David A. Kranz) отвечает: "Когда пользователь запускает различные программы на локальном компьютере, они работают быстро и надежно. Но ресурсы большинства компьютеров позволяют дополнительно запускать на этих ПК еще какие-нибудь программы, а возможно и игры. Однако прогресс не стоит на месте, компьютеры становятся все мощнее и мощнее, а пользователи ожидают от такого роста увеличения количества функциональных возможностей. Чего нельзя сказать об Интернете. Поэтому мы и решили создать новый язык, отвечающий новым требованиям и соответствующий новой эпохе".
Проблематика WWW
Наверное, все уже понимают, что World Wide Web это только начало, первый шаг на пути освоения виртуального пространства. Благодаря www, люди имеют доступ к множеству документов размещенных в разных частях мира, и для этого им нужно лишь знать уникальный адрес вебстраницы. В www используется три составляющих:
- http-протокол, благодаря которому происходит обмен данными,
- html - язык, описывающий формат документов и имеющий функции гиперсвязей с другими документами,
- программы просмотра вебдокументов (браузеры), которые отображают html-страницы и ведут диалог с помощью http.
Однако при всех плюсах такого подхода существуют и отрицательные моменты www. Прежде всего, html был создан явно для пассивных документов, и поэтому не предусматривает взаимодействия с различными источниками информации, страницами, базами данных и не имеет встроенного контроля над формированием документов для правильного и адекватного их отображения в различных браузерах. Множество дополнительных технологий и языков программирования (JavaScript, DHTML, DOM, CSS) было создано специально для того, чтобы устранить эти недоделки и обеспечить дополнительное удобство во взаимодействии человека и Сети. Но и этот подход проявил свои недостатки, главный из которых - невозможность объединения приложений написанных на разных языках, что делает задачу программирования более трудной (и соответственно более дорогой), чем должно быть. Так как интерактивные компоненты в различных браузерах (и на различных платформах) каждой программой или апплетом отображаются по-разному, разработчикам приходится специально дорабатывать файлы под конкретные цели, браузеры, программы. А отсюда и медленная загрузка страниц (вызванная постоянными обращениями к серверу за изменениями и обновлениями на странице) и плохая гибкость, связанная с неэффективной передачей данных от сервера к клиенту (слишком большие объемы данных в передаваемых пакетах). И все эти недостатки в конечном итоге ведут к завышенной стоимости использования www пользователями.
Технология Curl была задумана, как альтернатива имеющемуся положению дел. Основная идея создания такого языка заключалась в его универсальности для всех типов браузеров, которые на основе полученного кода могли бы автоматически "подгонять" страницы под формат браузера (self-describing format), чтобы сам язык был компактным, понятным и удобным в использовании.
По уверениям разработчиков, язык Curl более гибкий, легкий, простой и безопасный в использовании, чем та же Java или Html. Причем, апплеты написанные на Curl, могут быть более функциональными и иметь больший уровень безопасности, чем написанные на Java. Кроме того, по уверениям разработчиков, Curl предлагает более надежные и безопасные решения, чем cookie и другие подобные решения в области секретности и безопасности. Понимая, что всего этого не достаточно для массового распространения языка, разработчики Curl сосредоточились на поддержке существующих стандартов. Уже сейчас есть поддержка XML, в котором Curl работает на стороне клиента и исполняется, как layer для XML data. Технологии Curl могут использоваться совместно с существующими веб-технологиями, например, с html-файлами, cgi-скриптами и мультимедийными приложениями. И естественно, если посетители ваших вебстраниц уже имеют поддержку Curl, то вы можете заменить все эти фалы исключительно Curl-файлами. Кстати, уже сейчас есть плагины для Internet Explorer и Netscape Navigator, которые можно установить себе и рекомендовать для всех посетителей сайта.
Все это так, но что конкретно может дать применение Curl? Вот те преимущества, которые декларируют создатели языка Curl:
Преимущества Curl для пользователей: язык обеспечивает более высокую скорость и эффективность загрузки файлов, удобную визуализацию и отображение вебстраниц. С применением Curl, за счет внедренного использования 2-D и 3-D графики, игры и графическая информация получили визуально более привлекательный вид и меньшее время загрузки. Более удобные решения, высокую скорость и интуитивно понятную навигацию получили сайты и веб-порталы, работающие в области e-commerce. Но самое главное, все эти и другие удобства, конечные пользователи получают не с появлением новых версий программ, операционных систем и прогрессом компьютерной техники, а просто установив необходимые plug-ins и компоненты Surge softwareв на своем компьютере.
Преимущества Curl для разработчиков и веб-дизайнеров: технология Curl облегчает создание вебстраниц и приложений, упрощает работу с контентом, сокращает расходы средств и времени на разработку и поддержку сетевых ресурсов. Может быть, впервые разработчики получили язык, совмещающий в себе объединенные возможности: функций языка отображения, функциональность скриптов и возможности объектно-ориентируемого программирования.
Преимущества Curl для провайдеров: быстрый доступ к веб-ресурсам, поддержка различных платформ, позволяют провайдерам понижать цену и улучшать качество доступа к сети Интернет.
Многоплатформенная поддержка: разработчики языка верят в будущее Интернета, и считают, что в скором будущем Интернет охватит гораздо больше коммуникационных инструментов, нежели привычный браузер на рабочем или домашнем ПК. Сейчас разработчики языка ведут работы по интеграции Curl с различными операционными системами помимо Windows (Apple, Macintosh, Linux) и различными устройствами, такими, как, например, PDA, мобильные телефоны с WAP-браузерами и любые устройства, имеющие выход в Сеть. Технология Curl позволяет применять однажды созданную разработку на всех этих устройствах без дополнительного согласования и переработки файла.
Помимо всего прочего, Curl Corp. поддерживает тактику открытых кодов и приглашает всех желающих принять участие в разработке и внедрении этого универсального языка. Единственное, на что обращают внимание разработчики языка, что корпорация сохранит контроль над той частью языка, которая отвечает за его мобильность, надежность и стабильность. О деталях инфраструктуры открытых кодов корпорация сообщит на www.curl.com в 1 квартале 2002 года.
И перед тем, как перейти к простейшим примерам, я хотел бы еще рассказать о том, что, например, такой известный брэнд, как Siemens уже использует этот язык в собственной Intranet сети. Причем в Siemens EIS (Executive Information System) язык Curl используется по полной программе, совместно с XML, 3-D графикой, базами данных и т.п. Думаю, авторитет этой компании и еще с десяток других (мало известных у нас, но знаменитых в США), создадут хорошую платформу для распространения Curl.
Ну а теперь, немного практических примеров. Все документы созданные с помощью этого языка сохраняются в виде *.curl . Как и в любом языке программирования, любой Curl-апплет начинается с определения, что данный апплет надо читать с помощью Curl.
{curl 1.7 applet} {applet license="development"} Здесь текст, который будет отображен в браузере. Других тэгов не надо.
Как видите, для отображения обычного текста понадобилось всего две строчки кода, никаких других тэгов использовать не надо. Следует лишь обращать внимание на заглавные и прописные буквы, Сurl к этому очень чувствителен. Например, если вы начнете апплет с указания {CURL 1.7 applet} браузер сообщит вам об ошибке. Специальный параграф-формат позволяет изменять размер отображаемого шрифта, выделять заголовки, так же, как это сделано в html-документах с помощью тэгов <h1> - <h6>. В Curl такие изменения делаются с помощью тэга Level=n. В Curl'е существует четыре Level-уровня:
- Level=1 - 2 см
- Level=2 - 1,5 см
- Level=3 - 1,3 см
- Level=4 - 1,2 см
Curl допускает и написание Level=10, но отображать он будет все равно Level=4. Вот пример того, как описывает заголовки текста Curl:
|| headings.curl (этот параметр отображает название файла) {curl 1.7 applet} {heading license ="development"} {heading level=1, Здесь текст, который надо отображать в браузере } {br} {heading level=2, Здесь другой текст }
Если же надо нумеровать строки, то пишется это так:
|| numbered.curl {curl 1.7 applet} {applet license ="development"} {number-heading level=1, Здесь текст }
Этот апплет будет отображаться так:
1 Здесь текст
Когда надо получить под-нумерацию, например, получить такой текст:
1 Здесь текст 1.1 Какой-то текст, пишут такой код:
|| numbered2.curl {curl 1.7 applet} {applet license ="development"} {number-heading level=1, Здесь текст } {number-heading level=2, Какой-то текст }
Существуют и другие модели отображения текста (типа: заголовок, нумерация, под-нумерация), но все они построены на основе этих кодов. Также есть возможность автоматически маркировать и нумеровать строки, по аналогии с html (<ul>,<ol>,<dl>):
Что в html выглядит так:
- пункт 1
- пункт 2
- пункт 3
В Curl'е пишется так:
{itemize {item пункт 1} {item пункт 2} {item пункт 3} }
Если в первой строке этого кода сделать такое изменение
{itemize marker="bullet type", {item … то можно определить форму маркера.
Выделение цветом в Curl'е не труднее сделать, чем текст написать:
{definition-list color="blue", {term ЗАГОЛОВОК} {definition Здесь текст} }...
В этом случае весь текст будет синего цвета. Если же надо выделить цветом заголовок, надо об этом сделать дополнительное указание:
{definition-list {term color="blue", ЗАГОЛОВОК} {definition Здесь текст} }...
Для таблиц в Curl есть тоже свои обозначения:
- row - линии
- header-row - титульная линия (где обычно пишут параметры)
- сell - столбцы
- header-cell - титульный столбец (где обычно указываются показатели)
Структура таблицы описывается так:
{table ... {header-row {header-cell} {header-cell} } {row {cell} {cell} } ... }
В этом случае будет построена таблица без отображения границ и выделения цветом. Чтобы таблицу отобразить графически, Curl использует специальные тэги:
- Cell-border-width - определяет ширину линии столбца в пикселях
- Cell-border-color - определяет цвет линии столбца
- Cell-border-style - один из шести возможных стилей, который может определять линию, как плоскую, рельефную, затененную и т.п.
- Cell-margin - определяет расстояние между текстом и границей столбца
Использование опций таблицы позволяет получать любые удобные формы отображения, вплоть до внедрения в таблицу 3-D графических элементов. Вот пример кода и графический вид полученной таблицы:
||table.curl {curl 1.7 applet} {applet license="development"} {table cell-border-width=1, cell-border-style="raised", cell-border-color="green", cell-margin=4, {header-row {header-cell background="pink", Люди} {header-cell background="pink", События} } {row {cell Иванов} {cell font-style="italic", Позвонить} }row {cell Петров} {cell font-style="italic", Зайти} } }
Curl немного похож на популярные С++, Java, Perl, Html. Самым удобным, простым и надежным редактором языка остается все тот же стандартный блокнот, входящий в пакет Windows, хотя, конечно, со временем появится множество удобных редакторов, позволяющих создавать страницы легко и быстро. Как мне кажется язык интересен и имеет право на жизнь, но вот приживется он у нас или нет - вопрос времени.
Оставить комментарий
Комментарии
Попробуем заглянуть в будущее...
Даже если вся планета когда-нибудь будет юзать браузеры с чистой курлой, когда все веб-дизайнеры его освоят, когда умрет жаба (как расширение, а может и совсем)... ActiveX умрет, но его функции возьмет на себя курла...
Юзеру останется запустить только браузер и смотреть, смотреть, смотреть великолепно сгенеренные страницы с 3Д-графикой и остальными наворотами...
Так вот, даже при этом раскладе CURL окажется в той же ситуации что и HTML сегодня! Каждый обладатель компьютера знает, что ничто не устаревает так быстро как компьютеры и еже с ними сети и сетевые технологии. CURLовцы будут шлепать релиз за релизом дополнения к клиентскому софту, а между тем найдется группа прогеров которые возьмут да и пришлепают апплету какую-нить (типа седня жабы). Welcome back, в прошлое!
Я совсем не против технологии как таковой, и даже более - крайне счастлив буду, ежели CURL осилит возложенные на него задачи, и с превеликим удовольствием возьмусь за его изучение (щас допишу, пойду мануалку рыть :) )... Вот только готов ли курл к этому? Просто страшно за будущее - пока что сабж - просто запутка лишняя, как для кодеров, так и для юзеров, а что дальше? Задача курла - полная стандартизация (я так понял высказывания Dr. David A. Kranz`a) того что сегодня уже стандартизованно, и как следствие - сметрь HTML`a... А кто может поручиться что не найдется еще команда прогеров которые возьмут да и разработают CURL-2 (может и совсем по-другому назовут). Итог: HTML умер, CURL оказался не готов (или не совсем готов) его заменить. ХАОС! Да и тем более: судя по отрывкам кода, это действительно просто извращенный HTML (если не касаться программинга - еще не видел кодов). А поддержка CSS, DOM и т.д... - уже реализовано? Если нет - то смерть курле... Нет ничего удобнее чем загнать стили в один файл, приаттачить к странице и вызывать классы.
Нееееееее... так не надо делать! Какие бы громкие заявления не кричались и какие бы благие цели не преследовались, надо следовать заветом Кузьмы Пруткова - "Зри в корень". Ведь на самом деле корень проблемы - разобщенность компьютерных технологий и языков. Не надо забывать про великий и могучий MustDieMocrosovt. До тех пор пока он на рынке, будет такая фигня: всё мировое сообщество стандартизирует, улучшает, дорабатывает, а Мокросовт - возьми да изобрети сверхновый ActiveXXX-rev.xx (для примеру), итог - опять все похерено!
P.S. Еще бы насичот безопасности че-нить почитать... архиинтересьненько... )))
(автоматически как HTML или программы надо!)
1. html не менее универсален для всех типов браузеров.
2. а как быть дизайнерам, если каждый браузер будет по своему подгонять!? С хтмлом сейчас уже возникают проблемы из-за того, что каждый браузер показывает их спецефически. Кому это нужно?!
3. Посмотрел я примеры, не сказал бы, что язык удобнее и понятнее в использовании...
"Чтобы таблицу отобразить графически, Curl использует специальные тэги:
Cell-border-width - определяет ширину линии столбца в пикселях
Cell-border-color - определяет цвет линии столбца "
А чем это лучше css !?
Короче, один вопрос - ЗАЧЕМ!? ))
и вообще... совсем не ясно из статьи чем все-таки лучше и какие преимущества.
примеры - измененные теги хтмл...
Примеры СОВСЕМ не похожи ни на C++, ни на java, perl... Разве что на хтмл, только в извращенной форме...