我想开始一个新的web应用程序项目,但是我在GWT(Java)或Lift(Scala)这两个框架之间感到困惑。所以我想知道你的意见,我该选择哪一个?根据我的项目要求,两者都很好。因此,请基于框架比较告诉我哪一个更好?
我想开始一个新的web应用程序项目,但是我在GWT(Java)或Lift(Scala)这两个框架之间感到困惑。所以我想知道你的意见,我该选择哪一个?根据我的项目要求,两者都很好。因此,请基于框架比较告诉我哪一个更好?
我发现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,并根据你所得出的结论做出自己的决定。要有纪律性,坚持你拨出的时间。
不要忘记,你也可以使用Scala与GWT一起使用(在Scala上编写服务器端代码,在Java上编写客户端代码)。
这些组合最擅长的方面也有所不同。例如,Lift具有超级comet支持,而GWT更适合于更丰富的客户端,并可以减少服务器请求的数量。
我会选择Lift,除非你需要非常丰富的客户端或巨大的可扩展性(例如,没有会话,大量客户端缓存等)。
个人建议使用Lift框架。但这只是人为的推荐,与两种框架的技术优劣无关。
您提出这个问题表明您已经了解Scala,并且喜欢它,可能希望进一步使用该语言。在这种情况下,如果您被限制在Java中编写应用程序,我想您很快就会感到沮丧。
尽管Scala可以与GWT一起使用,但您会发现Lift对Scala的一些更好的功能(即actors)支持更好。因此,出于这个原因,我倾向于使用Lift。
您还可以调查Scalatra和Play作为Scala的替代Web框架。
我即将开始一个Web UI项目,所以我发现这个帖子非常有用。我知道原帖旨在比较GWT和Lift的优点,但您可能还想看一下Vaadin(http://vaadin.com/home)。它使用GWT在浏览器中呈现,但大部分UI结构和逻辑是在服务器端实现的。服务器端代码可以用任何JVM语言实现(因此您可以使用Scala)。所以如果您是Scala粉丝,这可能是一个合适的解决方案。