views:

351

answers:

5

Hi folks, I wanted to start a new web application project and I am confused between two frameworks that is GWT(Java) or Lift(Scala). So I want your opinion which one I choose? Both are good according to my project requirement. So on the basis of frameworks comparison please tell me which is good?

+3  A: 

They both produce a web app, but are different frameworks in nature, so I don't see how they can be compared. When you say "good," what criteria do you have in mind?

Edit:

Scalability and performance depends on the type of transactions and data backend, but all things equal, you'd have better chance with Lift/Scala.

From @dpp's interview:

  • Lift has better support for Comet than any other web framework... and that's why Novell chose Lift for the Pulse front-end.
  • Lift has excellent Ajax support.
  • Lift is persistence agnostic, so it works with your existing Java model objects and business logic.
  • Lift's REST support is far more flexible and secure than REST support in any other JVM web framework.
eed3si9n
The criteria in my mind is which framework is best performance wise,scalable and very stable.
Rupeshit
+5  A: 

Don't forget you can also use GWT with Scala (server side code on Scala and client side on Java).

There is also some difference in what these combos are best at. For example, Lift has uber comet support and GWT is better for richer clients and can reduce number of server requests.

I'd chose Lift unless you need really rich client side or enormous scalability (e.g. no sessions, lots of client caching etc).

Oleg Galako
+2  A: 

Personally, I'd advise Lift. But it's a purely human-driven recommendation and nothing to do with the relative technical merits of the two frameworks.

The fact that you even know to ask this question suggests that you already know Scala, like it, and probably want to use the language further. In this case, if you were constrained to then write an application in Java, I imagine you'd get quickly frustrated.

Although Scala can be used with GWT, you'll find that Lift has much better support for some of Scala's nicer features (i.e. actors). So for this reason I'd favour Lift.

You might also want to investigate Scalatra and Play as alternative web frameworks for Scala.

Kevin Wright
+5  A: 

I have found GWT to be an extremely effective technology for the client side, and use a combination of Java and Scala on the server-side.

GWT is attractive because it allows you to write your web application in Java from front to back; you code in Java; and you debug your program in Eclipse, seamlessly stepping from client code to server-side code and back again. It truly is a wonderful thing.

Scala is a beautiful language, and I'm in love with it like everyone else. If only there was a GWT variant based on Scala! Some work has been done in that direction already. Gradually, I've migrated most of my server-side code to Scala, to my great satisfaction.

If you were to use Lift, how much JavaScript coding would you need to do? Are you comfortable with JavaScript? How complex is the client-side behaviour of your application to be? For fairly straight-forward client-side logic, I'm sure that Lift will prove satisfactory. If you want to build a very desktop-like application, and/or you are particularly concerned to squeeze the last drop of speed from your app, go with GWT. Either way, you'll not be disappointed; they are great technologies to invest in.

Consider too that IDE support for Scala is still very nascent. Frankly, I think that any productivity gains that I might have seen from using Scala have been lost on various time-wasting struggles with Scala IDE for Eclipse. The story may be marginally better in IDEA, but not by much.

Perhaps you might allocate yourself a fixed amount of time to exploring Lift and GWT, and make your own decision based on what you are able to conclude in that time. Be disciplined and stick to the time box you've set aside.

David