【问题标题】:A good alternative to GWT for ClojureClojure 的 GWT 的一个很好的替代品
【发布时间】:2011-01-09 06:30:16
【问题描述】:

我正在用 Clojure 编写一个 web 应用程序。

我几乎想在前端使用 Google Web Toolkit —— 因为我可以只编写 Clojure/Java 代码,并让库自动生成 Javascript/AJAX。

但是,出于某种原因,GWT 在现实世界中似乎并没有得到太多使用。

是否有与 Java 类似的东西(如 GWT)但更受欢迎?

谢谢!

【问题讨论】:

标签: ajax gwt clojure


【解决方案1】:

我知道这个问题是很久以前提出的,但现在有一个直接的答案 - ClojureScript。它可以让你直接将clojure代码编译成javascript,并且支持大部分常见的clojure成语。

【讨论】:

    【解决方案2】:

    您可能还想查看我的支持使用 Clojure/Ring/Compojure/lib-noir 堆栈开发 AJAX 应用程序的微框架:

    http://ganelon.tomeklipski.com

    它不复制 GWT 的执行模型,而是像 Vaadin 或 Weblocks 一样工作(但没有会话状态或复杂的 UI 组件):它只是让您的 XHR 处理程序返回副作用以通过以下方式应用于页面客户端薄(且可扩展)的 JavaScript 层。

    例如:来自 XHR 处理程序的响应可以通过#id 更新页面的一部分或显示 Bootstrap 的模态或将浏览器重定向到新的 url - 但您可以很容易地添加自己的操作。

    【讨论】:

      【解决方案3】:

      现在ClojurescriptOne 是替代 GWT 的好方法。到目前为止,我发现缺少的是完整的源代码优化,当然还有一些定制的库。

      此外,例如 clojurescriptone 仅将 javascript 编译为一个文件,还没有像 GWT 那样创建缓存的 html 文件以进一步加快加载时间。

      对 Google Closure 的支持尚未完全封装,因此您必须使用互操作。也就是说,与 GWT 中的 java 编程相比,我仍然认为这是一个相当好的替代方案。

      【讨论】:

        【解决方案4】:

        GWT 对 Clojure 不是特别有用,因为它 (GWT) 使用一个自定义编译器来读取 Java 源代码(不是字节码)。除非您想用 Java 编写所有用户界面代码,否则 GWT 不会帮助您。

        【讨论】:

        • 是的。完全可以在 GWT 中编写 UI 部分并让它调用 clojure 服务。 GWT 有一种适用于这种情况的模式。见code.google.com/webtoolkit/doc/latest/…
        • 嗨@Allen。我在链接页面中找不到您的意思。请您更新您的链接或解释要阅读的部分...也许 GWT 不再非常适合与 clojure 服务一起使用...我想知道...您呢?干杯;)
        【解决方案5】:

        GWT 在现实世界中使用!!!很多!谷歌正在用它做一些相当大的事情,所以我认为受欢迎程度不是一个有效的问题。

        我不想挑起一场火焰战争,所以我不会再详细说明这一点。

        另外,请记住 GWT 是一个 java - javascript 编译器。客户端上不会运行任何字节码。因此,在编写客户端代码时,您只能使用 java,而不能使用 clojure 代码。

        【讨论】:

        • 基本上,Google 使用 GWT 构建其所有新应用程序:youtube.com/user/GoogleDevelopers#p/c/0C2E1DEFBC90E546/0/… 您已经提到:客户端代码必须用 Java 编写,但服务器端代码必须在同一个 GWT 模块中编写可以使用任何 JVM 语言(Scala、Clojure、Groovy、...)。
        • Google 也经常使用 Google Closure 工具包(javascript to javascript),所以它不仅仅是 GWT。
        【解决方案6】:

        JWT

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-09
          • 1970-01-01
          • 2011-08-23
          • 1970-01-01
          • 2011-01-26
          • 2013-09-20
          • 2010-10-04
          • 2011-01-06
          相关资源
          最近更新 更多