Введение

Curl — объектно-ориентированный язык программирования, предназначенный для создания интерактивных веб-приложений, целью которого является обеспечение более плавного перехода между форматированием и программированием. Он позволяет встраивать сложные объекты в простые документы без необходимости переключения между языками программирования или платформами разработки. Изначально реализация Curl состояла только из интерпретатора, но позднее был добавлен компилятор. Curl объединяет текстовую разметку (как в HTML), скрипты (как в JavaScript) и ресурсоемкие вычисления (как в Java, C# или C++) в единой структуре. Он используется в различных внутренних корпоративных, B2B и B2C приложениях. Программы на Curl могут быть скомпилированы в апплеты Curl, которые просматриваются с помощью Curl RTE — среды выполнения с плагином для веб-браузеров. В настоящее время он поддерживается на Microsoft Windows и Linux, а поддержка macOS была прекращена 25 марта 2019 года (начиная с версии 8.0.10). Curl поддерживает "автономные апплеты" — веб-приложения, которые выполняются на рабочем столе пользователя независимо от окна браузера, подобно Silverlight 3 и Adobe AIR.

Архитектура

Язык Curl призван решить давнюю проблему: различные строительные блоки, составляющие любой современный веб-документ, зачастую требуют совершенно разных подходов к реализации: разные языки, разные инструменты, разные фреймворки, нередко – и совершенно разные команды. Последним и часто самым сложным этапом является обеспечение согласованного взаимодействия между всеми этими блоками. Curl стремится обойти эти трудности, предоставляя единый синтаксический и семантический интерфейс на всех уровнях создания веб-контента: от простого HTML до сложного объектно-ориентированного программирования. Curl – это язык разметки, подобно HTML, то есть обычный текст отображается как текст; при этом Curl включает в себя объектно-ориентированный язык программирования, поддерживающий множественное наследование. Приложения, разработанные на Curl, не обязаны придерживаться разделения информации, стиля и поведения, которое навязывают HTML, каскадные таблицы стилей (CSS) и JavaScript, хотя такой стиль программирования может быть использован в Curl при желании. Несмотря на то, что Curl можно использовать как замену HTML для представления форматированного текста, его возможности простираются вплоть до уровня компилируемого, строго типизированного, объектно-ориентированного языка системного программирования. Как средства разработки (на уровне HTML), так и программные конструкции Curl могут быть расширены в пользовательском коде. Язык спроектирован таким образом, чтобы приложения Curl могли компилироваться в нативный код клиентской машины с помощью JIT-компилятора и выполняться с высокой скоростью. Curl-апплеты также могут быть разработаны для работы в автономном режиме при отключении от сети (периодически подключаемые вычисления). Фактически, Curl IDE – это приложение, написанное на Curl.