Curl | |
---|---|
Класс языка | мультипарадигменный: объектно-ориентированный, разметка |
Появился в | 1998 |
Автор | Стив Уорд, MIT |
Разработчик | Curl, Inc. & Sumisho Computer Systems Corp. |
Выпуск |
RTE 8.0.12 (1 июля 2021 CDE 8.0.12001 (1 июля 2021 ) ) |
Система типов | строгая |
Испытал влияние | HTML, JavaScript |
Лицензия | проприетарная |
Сайт | curl.com |
ОС | кроссплатформенность, Windows, Linux и macOS |
Curl — рефлексивный объектно-ориентированный язык программирования, созданный для написания интерактивных веб-приложений. Объединяет возможности разметки текста (как у HTML), написание сценариев (как JavaScript), а также достаточно мощный вычислительный механизм (как у Java, C# и C++), причём внутри единого унифицированного фреймворка. Используется главным образом для решений внутрикорпоративных задач, B2B- и B2C-приложений.
Является языком разметки как HTML, то есть обычный текст показывается именно как текст; но в то же время, язык включает средства объектно-ориентированного программирования, среди которых — поддержка множественного наследования. Curl-приложения не требуют соблюдения разделения информации, стиля и поведения, как это сделано для HTML, CSS и JavaScript, хотя этот стиль программирования вполне может быть использован в Curl в случае необходимости.
С одной стороны язык может использоваться как замена HTML для представления форматированного текста, с другой стороны — близок по возможностям к компилируемым, строго типизированным объектно-ориентированным системным языкам программирования[1]. Как средства разметки (HTML-уровень), так и программные конструкции языка могут быть расширены в пользовательском коде.
Язык проектировался так, чтобы Curl-приложения могли компилироваться в родной код клиентской машины за счёт использования JIT-компиляции, и благодаря чему выполняться на достаточно высокой скорости.
Апплеты Curl можно просматривать при помощи Curl RTE — среды выполнения с дополнениями для веб-браузеров; поддерживаются платформы Microsoft Windows, Linux и Macintosh. Язык обладает возможностью независимой работы апплетов в течение нескольких лет[уточнить], то есть веб-апплет, исполняющийся на рабочем столе пользователя, не зависит от окна браузера, как это сделано в Silverlight 3 и Adobe AIR. Curl-апплеты также могут быть написаны таким способом, чтобы они выполнялись офлайн при отключении от сети (вычисления с редким подключением или occasionally-connected computing). Фактически, Curl IDE — это приложение, написанное на самом Curl.
Является гомоиконным языком, то есть использует общий синтаксис для кода и данных.
Простой Curl-апплет «HelloWorld» может выглядеть так:
{Curl 5.0, 6.0, 7.0 applet}
{text
color = "blue",
font-size = 16pt,
Hello World}
Данный код выполнится, если пользователь имеет установленный Curl по крайней мере одной из версий 5.0, 6.0 или 7.0.
Язык обеспечивает поддержку и макросов, и обработку текста в дополнение к безымянным процедурам и методам именования.
Альтернативой использованию текстовой процедуры paragraph
может являться:
{paragraph
paragraph-left-indent=0.5in,
{text color = "red", font-size = 12pt,
Hello}
{text color = "green", font-size = 12pt,
World}}
Этот стиль разметки был взят на вооружение «построителями» (builders) в языке Groovy для JVM, что весьма удобно и для пользователей, привыкших к CSS или Tcl/Tk. Большинство возможностей RIA, созданных за счет комбинации библиотек JavaScript + HTML + CSS, уже давно реализовано в языке Curl, включая такие возможности, которые обычно ассоциируются с Prototype + Scriptaculous, как например, набор вкладок (accordion panes).
Curl выполняет обратные вызовы в том же стиле, что принят в Groovy:
{CommandButton width=100pt,
height = 50pt,
label = {center {bold Invokes an event handler when clicked}},
control-color = "orange",
|| Attach the following event handler to this CommandButton
{on Action do
{popup-message
title = "Ваше сообщение",
"Это сообщение диалога с пользователем."
}
}}
Для комментирования кода используется вертикальная черта в нескольких вариантах, например:
{text A comment can be on a line by itself,
|| Строчный комментарий на отдельной строке
or it can be at the end || Комментарий на той же строке, что и код
of a line.}
Язык разрабатывается компанией Curl, принадлежащей японскому конгломерату Sumitomo, штаб-квартира — в Кембридже (Массачусетс). Наибольшее число из 400 коммерческих пользователей языка находится в Японии и других азиатских странах, но определённое распространение язык получил и на Западе.
Curl бесплатен для некоммерческого и ограниченно коммерческого использования. Существует также и платная профессиональная версия, поддерживающая дополнительные возможности для корпоративных заказчиков.