Can someone a little less involved please comment on the validity of this and the claims that follow it? Is it something I should be checking out?
Can someone a little less involved please comment on the validity of this and the claims that follow it? Is it something I should be checking out?
- It runs on the JVM, so you get performance and libraries, but you don't need to go through all the Java BS to get something working. (Seriously, performance is overlooked. If performance is not an issue, why did Facebook write HipHop?)
- Comet support (via Actors) is great and really easy to use. Ajax as well. Writing interactive website is very easy.
- The "no plumbing" approach is pretty good. You don't have to setup routes of anything (mostly). You just embed callbacks directly in the page in a lot of cases and things just work.
- Templates are nice.
The bad points:
- The ORM situation isn't great.
- The documentation is terrible (but improving).
Overall Lift is certainly worth looking at for some good ideas. Having a concise language and simple toolkit on the JVM is great.
Energy. Facebook has thousands of servers running PHP code. HipHop allows them to have the same performance with half the servers[1]. 50% less servers at that scale equates to non-trivial energy (and cost) savings.
Pollak has realized, as I begrudgingly did, that Scala, like all the other type-inferencing static FP langs, is just too hard for the programming mainstream. Once you've decided to go polyglot you might as well just use a boring but safe core language like Java or C++ and build as much on top of that as you can in your dynamic language of choice.
https://groups.google.com/forum/#!topic/liftweb/ViklDFsBtPo quote: "Our experience with Lift was the best possible, and an important part of that was having Scala available within the framework. No other language could have allowed us to do what we did within such a short time frame, Ruby included."
LiftRules.rewrite.append { case RewriteRequest(ParsePath(List("shopInfo", "view", id), _, _, _), _, _) => RewriteResponse("shopInfo" :: "view" :: Nil, Map("id" -> id))
My opinion is that I don't like. At all! There are better and simpler ways to do things, even the real-time chats they brag about (socket.io, anyone?).
He's doing a round of lift classes, so hopefully some of that material will migrate to the website and make lift more approachable.