JavaScript GUI-библиотека, которая может использоваться с ClojureScript?

В одном из моих текущих проектов веб-разработки нам нужно создать страницу (на самом деле это мини-приложение), которое будет иметь интерактивный интерфейс "Web 2.0", более похожий на графическое настольное приложение, чем на обычное веб-приложение стр.

Я надеюсь использовать язык более высокого уровня, который может скомпилировать JS для клиентской логики, а не напрямую программировать в JS, а ClojureScript - мой первый выбор.

Я ищу библиотеку JS GUI, которая может использоваться из ClojureScript и которая поддерживает стиль программирования, подобный "настольным" графическим библиотекам, таким как Swing, QT, wxWidgets и т.д. Это должно позволить мне создавать всплывающие окна <div> ", добавлять виджеты, такие как кнопки/метки/и т.д. в них прикреплять обработчики событий к виджетам и т.д. Знаете ли вы о том, что будет работать?

Ответ 1

Вам следует рассмотреть библиотеку Google Closure. Он имеет все функции, которые вы задаете, и определенно можно использовать с ClojuresScript, я играл с ним. См. http://closure-library.googlecode.com/svn-history/r1430/docs/index.html

Ответ 2

Clojurescript еще молод - я не думаю, что есть зрелые рамки этого калибра (еще?). Сказав это, я создаю пользовательский интерфейс, используя следующие компоненты:

  • Twitter Bootstrap + JQuery для визуальных элементов и элементов пользовательского интерфейса.
  • Chas Emerick Friend для аутентификации на стороне сервера
  • Compojure + Ring + Jetty для сервера
  • Crate (Clojurescript Hiccup) для генерации html/dom
  • Jayq для обертки JQuery
  • Fetch и/или Shoreleave удаленные клики для клиент-серверного RPC
  • Механизм pubsub Shoreleave или Clojure add-watch для привязки данных

Хорошая особенность Clojure и Clojurescript заключается в том, что они предпочитают простые функции на общих структурах данных. Поэтому вы склонны видеть несколько небольших библиотек, которые выполняют одну конкретную работу, но работают очень хорошо вместе, в отличие от гигантских монолитных фреймворков с объектной моделью, которая требует, чтобы вы полностью приняли один способ мышления.

Ответ 3

Я думаю, что ExtJS подойдет лучше всего в вашем случае, хотя это чистый JS. Это самая передовая веб-библиотека графического интерфейса на данный момент, и это позволяет создавать веб-приложения так же, как с использованием настольных языков и IDE. Просто просмотрите демоверсии . Я не думаю, что в предвзятом будущем в ClojureScript будет что-то похожее.