Ich schreibe eine Webapp in Clojure.
Ich möchte fast das Google Web Toolkit für das Frontend verwenden - da ich einfach Clojure / Java-Code schreiben kann und die Bibliothek das Javascript / AJAX automatisch generieren lässt.
Aus irgendeinem Grund wird GWT jedoch nicht häufig in der realen Welt verwendet.
Gibt es etwas, das ähnlich in Java eingebunden ist (wie GWT), aber populärer ist?
Danke!
GWT wird in der realen Welt verwendet !!! Viel! Und Google macht einige ziemlich große Dinge damit, also glaube ich nicht, dass Popularität eine gültige Sorge ist.
Ich möchte keinen Flammenkrieg beginnen, deshalb werde ich nicht mehr darauf eingehen.
Denken Sie auch daran, dass GWT ein Java-Javascript-Compiler ist. Auf dem Client wird kein Bytecode ausgeführt. Daher können Sie beim Schreiben von clientseitigem Code nur java, nicht clojure code verwenden.
GWT ist nicht besonders nützlich mit Clojure, weil es (GWT) einen benutzerdefinierten Compiler verwendet, der Java-Quellcode (nicht Bytecode) liest. Wenn Sie nicht Ihren gesamten Benutzerschnittstellencode in Java schreiben möchten, hilft GWT Ihnen nicht.
ClojurescriptOne ist ein guter Weg zu einer Alternative zu GWT. Die Dinge, die ich bisher vermisst habe, sind die vollständige Quellenoptimierung und natürlich einige angepasste Bibliotheken.
Zum Beispiel kompiliert clojurescriptone nur Javascript zu einer Datei, erzeugt noch keine zwischengespeicherten HTML-Dateien, um Ladezeiten wie GWT zu beschleunigen.
Die Unterstützung für Google Closure ist nicht vollständig umschlossen, Sie müssen also Interops verwenden. Trotzdem denke ich, dass dies eine äquivalent gute Alternative zu Java-Programmierung in GWT ist.
Sie können auch mein Micro-Framework ausprobieren, das die Entwicklung von AJAX-Apps mit Clojure / Ring / Compojure / lib-noir-Stack unterstützt:
Es kopiert nicht das Ausführungsmodell von GWT, sondern funktioniert wie Vaadin oder Weblocks (aber ohne Session-Stateful oder komplizierte UI-Komponenten): es lässt einfach Ihre XHR-Handler Nebenwirkungen zurückgeben, die auf einer Seite clientseitig angewendet werden dünne (und erweiterbare) JavaScript-Ebene.
Zum Beispiel: Antwort vom XHR-Handler kann einen Teil einer Seite mit #id aktualisieren oder Bootstraps Modal anzeigen oder Browser umleiten zu einer neuen URL - aber Sie können wirklich sehr einfach eigene Operationen hinzufügen.
Mir ist klar, dass diese Frage vor langer Zeit gestellt wurde, aber es gibt jetzt eine direkte Antwort - ClojureScript . Es ermöglicht Ihnen, clojure code direkt in Javascript zu kompilieren, und unterstützt die meisten gebräuchlichen clojure idioms.