Biblioteca GUI JavaScript que pode ser usada no ClojureScript?
-
12-12-2019 - |
Pergunta
Em um dos meus projetos de desenvolvimento web em andamento, precisamos criar uma página (na verdade, um miniaplicativo próprio) que terá uma interface interativa "Web 2.0", mais parecida com um aplicativo gráfico de desktop do que com uma página web típica.
Espero usar uma linguagem de nível superior que possa compilar em JS para a lógica do lado do cliente, em vez de programar diretamente em JS, e ClojureScript é minha primeira escolha.
Estou procurando uma biblioteca JS GUI que possa ser usada no ClojureScript e que suporte um estilo de programação semelhante às bibliotecas GUI "desktop", como Swing, QT, wxWidgets e assim por diante.Deve me permitir criar pop-up <div>
"janelas", coloque widgets como botões/rótulos/etc.neles, anexe manipuladores de eventos aos widgets e assim por diante.Você conhece algum que funcione?
Solução
Você deve considerar a Google Closure Library.Ele tem todos os recursos que você pede e é definitivamente utilizável no ClojuresScript, eu brinquei com ele.Ver http://closure-library.googlecode.com/svn-history/r1430/docs/index.html
Outras dicas
O Clojurescript ainda é jovem - não acho que existam estruturas maduras desse calibre (ainda?).Dito isto, estou construindo uma UI usando os seguintes componentes:
- Inicialização do Twitter + JQuery para elementos visuais e UI
- Amigo de Chas Emerick para autenticação do lado do servidor
- Compojure + Anel + Molhe para o servidor
- Caixa (Clojurescript Soluço) para geração de html/dom
- Jayq para empacotamento JQuery
- Buscar e/ou Licença de Costacontroles remotos para RPC cliente-servidor
- Mecanismo pubsub de Shoreleave ou Clojure
add-watch
para vinculação de dados
Uma boa característica do Clojure e do Clojurescript é que eles favorecem funções simples em estruturas de dados genéricas.É por isso que você tende a ver várias bibliotecas menores que fazem um trabalho específico, mas funcionam muito bem juntas, em oposição a estruturas monolíticas gigantes com um modelo de objeto que exige que você adote completamente uma maneira de pensar.
Acho que ExtJS se encaixaria melhor no seu caso, mesmo sendo JS puro.Esta é a biblioteca web GUI mais avançada do momento e torna possível criar aplicações web de forma semelhante àquela usando linguagens de desktop e IDEs.Basta verificar o seu demonstrações.Não acho que haverá algo semelhante para o ClojureScript no futuro próximo.