哪个框架更好,Java/GWT还是Scala/Lift?

11

我想开始一个新的web应用程序项目,但是我在GWT(Java)或Lift(Scala)这两个框架之间感到困惑。所以我想知道你的意见,我该选择哪一个?根据我的项目要求,两者都很好。因此,请基于框架比较告诉我哪一个更好?


5
我会选择让我“摆脱”Java的那个选项。只是我的个人看法。 - user166390
2
Java有什么问题吗?您可以使用GWT的Python或Java。 - randomguy
如果您能更清楚地告诉我们您的项目需求,那么我们或许可以提供更好的建议。 - Kevin Wright
5个回答

18

我发现GWT是一种非常有效的客户端技术,而在服务器端则使用Java和Scala的组合。

GWT很有吸引力,因为它允许你从前端到后端都用Java编写你的Web应用程序;你用Java编码,并且可以在Eclipse中调试程序,轻松地从客户端代码跳转到服务器端代码,然后再返回。这确实是件美妙的事情。

Scala是一门优美的语言,像其他人一样,我也爱上了它。如果有一个基于Scala的GWT变体就好了!已经有一些相关工作进行了。渐渐地,我已经将大部分服务器端代码迁移到了Scala,让我感到非常满意。

如果你想使用Lift,你需要做多少JavaScript编程?你对JavaScript感到舒适吗?你的应用程序的客户端行为有多复杂?对于相当简单的客户端逻辑,我相信Lift会证明是令人满意的。如果你想构建一个非常类似桌面应用程序的应用程序,并/或者你特别关心提高应用程序的速度,则选择GWT。无论如何,你不会失望;它们都是值得投资的伟大技术。

还要考虑到,Scala的IDE支持仍然非常初级。坦白地说,我认为使用Scala可能带来的任何生产力提升都在与Scala IDE for Eclipse进行各种浪费时间的斗争中失去了。在IDEA中情况可能稍微好一些,但也不太乐观。

也许你可以自行分配一定的时间去探索Lift和GWT,并根据你所得出的结论做出自己的决定。要有纪律性,坚持你拨出的时间。


4
我个人的经验(我认为我不是唯一的)是,使用IntelliJ进行编码时的IDE体验比使用Eclipse好得多,这不仅仅是微小的差别。 - Kevin Wright
是的,Kevin。我现在已经转到了IntelliJ IDEA,并发现它在Scala支持方面比Eclipse要好得多。 - David

6

不要忘记,你也可以使用Scala与GWT一起使用(在Scala上编写服务器端代码,在Java上编写客户端代码)。

这些组合最擅长的方面也有所不同。例如,Lift具有超级comet支持,而GWT更适合于更丰富的客户端,并可以减少服务器请求的数量。

我会选择Lift,除非你需要非常丰富的客户端或巨大的可扩展性(例如,没有会话,大量客户端缓存等)。


6

个人建议使用Lift框架。但这只是人为的推荐,与两种框架的技术优劣无关。

您提出这个问题表明您已经了解Scala,并且喜欢它,可能希望进一步使用该语言。在这种情况下,如果您被限制在Java中编写应用程序,我想您很快就会感到沮丧。

尽管Scala可以与GWT一起使用,但您会发现Lift对Scala的一些更好的功能(即actors)支持更好。因此,出于这个原因,我倾向于使用Lift。

您还可以调查Scalatra和Play作为Scala的替代Web框架。


5
他们都可以生成web应用程序,但本质上是不同的框架,所以我不明白它们怎么能进行比较。当您说“好”时,您有哪些标准?
编辑:
可扩展性和性能取决于交易类型和数据后端,但在相同情况下,使用Lift / Scala的机会更大。
来自@dpp采访:
- Lift比任何其他Web框架都更支持Comet……这就是Novell选择Lift作为Pulse前端的原因。 - Lift具有出色的Ajax支持。 - Lift是持久性异构的,因此它可以与您现有的Java模型对象和业务逻辑一起使用。 - Lift的REST支持比任何其他JVM Web框架的REST支持更加灵活和安全。

我心目中的标准是哪个框架在性能、可扩展性和稳定性方面最好。 - Rupeshit

4

我即将开始一个Web UI项目,所以我发现这个帖子非常有用。我知道原帖旨在比较GWT和Lift的优点,但您可能还想看一下Vaadin(http://vaadin.com/home)。它使用GWT在浏览器中呈现,但大部分UI结构和逻辑是在服务器端实现的。服务器端代码可以用任何JVM语言实现(因此您可以使用Scala)。所以如果您是Scala粉丝,这可能是一个合适的解决方案。


这是非常好的链接,对我来说使用 Vaadin 是新项目的绝佳机会。 - Illarion Kovalchuk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接