Hop — это новый язык более высокого порядка, разработанный для программирования интерактивных веб-приложений (в основном малого и среднего размера), таких как веб-повестки дня, музыкальные проигрыватели и т. д.

Двойной язык

Хоп - стратифицированный язык. Первая страта, отвечающая за выполнение логики приложения, предназначена для программирования основных механизмов или серверов, а вторая страта, отвечающая за выполнение графического пользовательского интерфейса, предназначена для программирования клиентов. Один программный файл Hop содержит инструкции как для сервера, так и для клиента. Но у этих двух слоев разные возможности. Основной слой предоставляет API для доступа к файловой системе и ресурсам компьютера, но он не может обрабатывать графические пользовательские интерфейсы, в то время как слой GUI предназначен для работы с графическими взаимодействиями, но имеет строго ограниченный доступ к ресурсам компьютера. выполняется на. После запуска программы сервер и клиенты непрерывно обмениваются данными, реализуя обмены с вызовами функций и циклами обработки событий. Возьмем для примера музыкальный проигрыватель с Hop. На клиенте он постоянно отображает прошедшее время песен, которые воспроизводятся на сервере.

Схемоподобный язык

В отличие от документа разметки, такого как HTML, Hop — это язык программирования. Он основан на алгоритмическом языке программирования Scheme и имеет некоторые расширения. Он поддерживает объектно-ориентированное программирование, исключения, модули и многопоточность. Он имеет различные инструменты и библиотеки. Помимо этих функций, которые обычно имеют язык программирования, Hop поддерживает оригинальные конструкции, специально разработанные для программирования веб-приложений. Например, функция with-hop:

(with-hop (service arg0 …)

[(лямбда (h) …выражение успеха…)

[(лямбда (h) …выражение ошибки…)]])

— это специальная функция, делегирующая работу серверу и принимающая два параметра. Первый параметр содержит запрос, который клиент должен отправить на сервер асинхронно. Второй параметр содержит функцию обратного вызова, которую клиент должен вызывать, когда приходит ответ от сервера. Lambda — это анонимная функция, которая также поддерживается Hop.

Заключение и дальнейшая работа

Hop — новый язык для программирования веб-приложений. Он опирается на два слоя: сервер и клиент. Он поддерживает управление коммуникациями как со стороны сервера, так и со стороны клиента. Но, как показано в [1], у него есть некоторые проблемы с безопасностью и некоторые трудности с обработкой сетевых сбоев и т. д. Это то, что следует учитывать при разработке Hop.

Ссылка

[1] Слайд: Hop, язык программирования веб 2.0 https://www.slideshare.net/IMDS2014/hop-a-language-for-programming-the-web-20

[2] Мануэль Серрано, Эрик Галлезио, Флориан Лойч — Хоп, язык для веб-программирования 2.0 OOPSLA’06, 22–26 октября 2006 г., Портленд, Орегон, США.