I might get downvoted for this..but I'll risk it, because it is a message that needs to be passed. My experience on using Lift. A few months ago, I was evaluating various frameworks to start off with my new web app. I am already running a dozen RoR apps and gradually I'm moving away from RoR. I will explain as to why, later in my post.<p>I was evaluating between Play and Lift and I ended up choosing....Lift. Lift has an extremely high barrier to entry mainly because of the poor documentation. When I first started off with scala, I didn't even know what the hell was SBT, when I downloaded Lift, there were a lot of things that were confusing - I was expecting perfectly organized folders just like ruby on rails, but everything was almost hidden/scattered. However this was the only barrier to starting up with Lift. I also did read about the controversies about the framework, etc [1]. of Lift, but honestly, none of them actually mattered to the developer, that is me. Now that I've chosen Lift, I think I made the right choice. Now, WHY is Lift better?<p>1) It's a 3+ year old Framework that is extremely stead-fast and stable, production-ready.<p>2) Scalability - This is a subjective view, but many high profile companies switch to Scala from Ruby/PHP/etc. when they need to scale. And Lift is a really good framework that gets the job done. [2][3]<p>3) Contrary to popular belief, once you cross the barrier to entry, it becomes much much easier to develop Web apps with Lift. Remember those wordpress days? How scary it was in the beginning to write custom themes and plugins?? But once you started writing a few, it felt like a breeze, right? That's what I'm talking about - That's exactly how Lift is too! [4]<p>4) Security - Security is hard. Sure you can write your Web app without using a framework. But if you use RoR, you will realize how much work is being done on behalf of you to make your app secure (Authenticity token, CSRF protection ,etc.) Lift is no different and it is one of the most securest frameworks I've ever worked with.[5] This is a very good guide explaining why you need to choose Lift over anything else.[6]<p>5) RoR vs Scala - Now, Imagine this scenario - You are a sculptor (web developer). You have two materials to choose from to create a statue (your web app). One is ordinary clay (Ruby on Rails) and the other one is a Metal, preferably some alloy made of copper and bronze (Lift). It is extremely easy to model your Statue (your web app) in Clay. And once you're done modeling, you can add some chemicals, or even thin layers of metal on top of it, etc. to make it strong (Think Unicorn, Phusion, etc). But, no matter what you do, the core is still made of clay and if you throw it down, your clay model will shatter into pieces.<p>Now compare it with the Bronze alloy (Lift). It is extremely hard to make a statue with it, but once you make statue with it, it's going to be so hard and robust, it can handle pressure (load) well - Even if you drop it, it might deform slightly, but never break. But, the disadvantage is that it takes too long to model a statue with this metal. However, you should decide if the trade-off in time is worth the effort in the long run. Of course everyone wants a nice status that is robust!<p>In the real world, you will probably be ok with RoR, but when you need to scale, you will realize the potential benefits you are missing out soon[7] - For example, if RoR can handle X requests/sec, and Lift can handle 10x requests per second, and assuming X requests require an Amazon box, then you save 9 boxes with Lift. That is huge savings for your start up, isn't it? I always wonder why people try so hard to scale RoR. It's a great framework, but the wiser thing to do would be to use something more efficient when you need to , than holding onto something that is less efficient because you like it. Also RoR has its own confusing terminologies (personal opinion). For example:<p><pre><code> render json: @post
render :json => {:errors}
</code></pre>
Notice the colons before and after the word 'json'.<p>If you are interested in Scala, Coursera has a course on Learning Scala by Martin Odersky (The creator of Scala) and it is really good. Scala is not a purely functional programming language, which means if you are accustomed to programming in Ruby style, you can take it with you to Scala too.<p>[1]<a href="http://www.quora.com/Lift-web-framework/Why-did-Typesafe-select-Play-for-their-stack-instead-of-Lift/answer/David-Pollak" rel="nofollow">http://www.quora.com/Lift-web-framework/Why-did-Typesafe-sel...</a><p>[2]<a href="http://img.scoop.it/FP9bEzouSr7kRinQRAtGmDl72eJkfbmt4t8yenImKBVaiQDB_Rd1H6kmuBWtceBJ" rel="nofollow">http://img.scoop.it/FP9bEzouSr7kRinQRAtGmDl72eJkfbmt4t8yenIm...</a><p>[3]<a href="http://www.quora.com/Why-did-foursquare-choose-Lift" rel="nofollow">http://www.quora.com/Why-did-foursquare-choose-Lift</a><p>[4]<a href="http://stackoverflow.com/questions/2573608/what-type-of-webapp-is-the-sweet-spot-for-scalas-lift-framework" rel="nofollow">http://stackoverflow.com/questions/2573608/what-type-of-weba...</a><p>[5]<a href="http://seventhings.liftweb.net/security" rel="nofollow">http://seventhings.liftweb.net/security</a><p>[6]<a href="http://seventhings.liftweb.net/" rel="nofollow">http://seventhings.liftweb.net/</a><p>[7]<a href="http://lift.la/lift-state-and-scaling" rel="nofollow">http://lift.la/lift-state-and-scaling</a>