Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8531145
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 11, 20262026-06-11T09:25:00+00:00 2026-06-11T09:25:00+00:00

I used play2 before with java. It felt a little bit like boilerplate especially

  • 0

I used play2 before with java. It felt a little bit like boilerplate especially if you used akka with java. But that is not the fault of the framework.

Yesterday I read “Scala for the impatient” and I really enjoy the language.

Now I looked at both frameworks Lift 2.5 and Play 2.0.3. I think lift has a higher learning curve and I could not just do something with lift. This is not a con for me. From what I saw, Lift has a very nice and clean design.

But for me it is hard to tell what the main differences are. I think both frameworks are great.

  • The Views First approach doesn’t allow you to code in your templates, instead you have to code in snippets. I like this a lot because it looks more organized to me. It also lets you use a normal html editor.
    (I have not much experience, this is just my first impression)

  • For the security I don’t think that is the job of the framework.

  • Stateless/Stateful : It is hard to tell where the main differences are. I only know that play has also a state if you use web sockets.

  • Both frameworks are able to compile after you press F5. I like this feature a lot.

  • Both frameworks are using sbt

  • Lift comes with authorization but I think there is a play2 scala plugin that does the same thing

  • Lift has a ORM mapper for mongoDB. Because I want to use noSQL, this looks cleaner to me.(Again not much experience) Edit There is a ORM mapper for scala mongodb in play2 https://github.com/leon/play-salat

  • Async – Play 2 uses Akka. Don’t know what lift uses but they also have something similar.

  • Lift ships with CSRF support. Play2 has a modul for CSRF but this adds a boilerplate to your code.

  • Stateless authentication seems to have some security vulnerabilities. Both frameworks have the stateful authentication. (play2 stateful/stateless , lift stateful)



  • What are the strengths of each framework?
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-11T09:25:01+00:00Added an answer on June 11, 2026 at 9:25 am

    Posting this after spending a week or two with Lift doesn’t really
    serve anybody’s interests. However, I want to spend some time correcting
    some mistakes and mis-perceptions.

    • For the security I don’t think that is the job of the framework.

    You’re dead wrong. Security is the job of the framework. It’s critical that security
    is done by default rather than relying on each developer to understand every
    security vulnerability and make sure every line of code takes that into account.

    All we have to do is look at what happened to GitHub
    to understand that even the best coders using well known technology
    can make a critical mistake.

    Lift gives a solid security layer on top, so by default, there’s no XSS, CSRF, etc.
    but the developer can dig down as deep as he wants to the HTTP request and deal
    with the bytes on the wire.

    • Stateless/Stateful : It is hard to tell where the main differences are. I only know that play has also a state if you use web sockets.

    Lift is very clear about where you need state and where you don’t. Lift can support
    stateless, partially stateful, and completely stateful apps. On a page-by-page and
    request-by-request basis, a Lift app can be stateful or stateless (for example,
    in Foursquare, the venue pages are stateless for
    search engine crawls, but stateful for browsers that are logged in.) For
    more on the design decisions around state, please see Lift, State, and Scaling.

    • Both frameworks are using sbt

    Lift uses Maven, sbt, Buildr, and even Ant. Lift is agnostic about the build environment
    and about the deploy environment (Java EE container, Netty, whatever). This is important
    because it make Lift easier to integrate with the rest of your environment.

    • Lift comes with authorization but I think there is a play2 scala plugin that does the same thing

    Lift has been around for 5+ years and has a lot of modules and stuff for it. The Lift web framework (as distinguished from the modules) is agnostic about persistence, authentication, etc., so you can use anything with Lift.

    • Async – Play 2 uses Akka. Don’t know what lift uses but they also have something similar.

    Lift has had Async support for more than 5 years. It’s baked into the framework. Lift’s Comet support is the best of any web framework because,
    among other things, it multiplexes all the “push” requests on a page through a single request
    to the server which avoids connection starvation. How Lift does async is a whole lot
    less important because one of the core philosophies with Lift is that we remove the
    plumbing from the developer so the developer can focus on business logic.

    But for those who care, Lift has the best and lightest weight actors of any framework in
    Scala-land. We were the first to break away from the Scala Actor’s library and worked
    to blaze the trail for different Actor libraries that allowed Akka and ScalaZ Actors
    to flourish.

    • Lift ships with CSRF support. Play2 has a modul for CSRF but this adds a boilerplate to your code.

    This is part of Lift’s commitment to security. It’s important.

    • Stateless authentication seems to have some security vulnerabilities. Both frameworks have the stateful authentication. (play2 stateful/stateless , lift stateful)

    Lift apps can be as stateful or as stateless as you want. It’s your choice and Lift
    makes very clear how to make the decision.

    Also, as I pointed out in the Lift, State, and Scaling post, making the developer figure out
    how to serialize state in a secure, scalable, performant way
    (because virtually every request on a web
    app that recognizes specific users is stateful) should be done in a predictable,
    secure way by the framework with reasonable overrides for the developers.

    Parting note

    Play is a lot like Rails: it’s quick to get a site knocked together and it’s
    based on MVC, so a lot of developers understand it. But Play lacks the
    depth and breadth of Rails (community, plugins, expertise, talent, etc.) If you
    want quick, easy MVC, then go with Rails and JRuby and write your
    back end in Scala (they work together extraordinarily well.)

    Lift is a different beast. There’s a significant unlearning curve (stop thinking
    MVC and start thinking about user experience first that flows to business logic.)
    But once you’re up the unlearning curve, Lift sites are more secure, highly
    scalable, super-interactive, and much easier to maintain over time.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm a .NET developer but I like JAVA so in my free time I
I've read that subprocess should be used but all the examples i've seen on
I've been dealing with this before but it seems like the problem came back.
Has anyone used Hazelcast (preferably 2.1) with play framework 2.0/2.1 (not 1.2+)? I am
I never used ruby before, I just wanted to play around with HAML and
Before you start pointing me to duplicates just know that I have read nearly
I assume there might be a HTML5 or some JS that can be used
I'm using ASP.NET 4 to create a page with elements that are used in
We're considering using SSIS to maintain a PostgreSql data warehouse. I've used it before
I know there has been similar questions before, but I can't find a solution

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.