

Lift: 10x more productive than any mvc framework - sorenbs
http://lift.la/my-take-on-matt-raibles-spreadsheet

======
retroryan
We spent a fair amount of time evaluating lift, play and other frameworks
recently. We ended up choosing Play for these reasons:

Developer Productivity - Having worked with a lot of the major frameworks they
are all very comparable. You can say the same things about Play, GWT, you
don't worry about the plumbing, setting up routes, ajax, etc. ...

Learning Curve - You really need to know Scala and functional programming to
be effective with lift. Even though lift itself might be more productive,
easier, etc. none of that matters if you are not experienced in Scala. And
becoming truly experienced in Scala takes a fair amount of time.

Play is plain Java and so it took the developers on are team less than a day
to become productive with Play, they have a great tutorial that walks through
all the major parts of a Play framework.

Developer Perception: Seriously emacs? Textmate is the only way to go.

Developer Availability - Well you might be able to find Lift developers, but
they come at a major premium because they know Scala. Java developers are much
more common and don't have the major premium. And there are a lot more Java
than Scala developers (DP charges a very healthy $250 / hour -
[http://www.quora.com/What-are-the-going-hourly-
contracting-r...](http://www.quora.com/What-are-the-going-hourly-contracting-
rates-for-top-shelf-Python-Ruby-and-Scala-web-programmers-in-the-Bay-Area) )

Templating - Yep most frameworks have them, pretty common.

Plugins - Play has those in the form of modules

In the end I would agree with Raible's findings, there is not a huge
difference in frameworks.

I do find one thing curious about all of David Pollak's rants are they always
reference Foursquare and Novell.

~~~
zeemonkee
It's also pretty easy using Scala with Play if you do decide to switch at some
point.

------
verysimple
Just would like to say that emacs is much better than vi... at giving you
carpal tunnel syndrome. Thank you very much.

~~~
Sukotto
I heard you could do just about anything in emacs... but using it as a web
framework?

Ok, now I just _have_ to give emacs a try.

------
andrewvc
Is David Pollak trying to take on DHH for the title of most inflammatory
framework creator?

If so, well played.

~~~
theDoug
He certainly does well with agreeing (with himself) that his work is great.

A great possibly purposely-obtuse example from the blog piece:

> _Testing, What does this mean? Does it mean Lift isn't well tested... I beg
> to differ. Lift powers sites like Foursquare and Novell Vibe. You can see
> the Lift tickets and find all the tickets opened by Novell and Foursquare...
> not a lot._

Right. When people mention testing in a framework, they _must be_ talking
about testing the framework itself and not the framework's ability to help
them test their own code. Sheesh, the ego.

~~~
vegai
I think it's just precious that he does not even understand the question.

------
boyter
Anyone here used lift and found a level of productvity over Django/Rails/PHP
Framework of choice?

I find most of the things that make money tend to be boring crud applications
which really don't require much in the way of fancy features which makes one
of the main arguements in the article invalid.

I am itching to learn something new though but wonder if its going to be worth
it or should I turn my attentions to something more mainstream.

~~~
anthonyb
From what I can see on the presentation that he links to, there's nothing to
warrant the 10x more productive claim. Perhaps he's just doing a bad job of
explaining the secret sauce, but I mean really? Shit like:

    
    
        bind("tip", xhtml,
             "done_checkbox" ->
               ajaxCheckbox(userStatus.equals(Full(TipUserStatus.done)), (b: Boolean) => {
                 val currentUser = User.currentUser.open_!
                 val evertodo = TipUserBind.find(By(TipUserBind.tipid, this),
                                                 By(TipUserBind.userid, currentUser)) match {
                   case Full(tub) => tub.delete_!; true
                   case _ => false
                 }
    

makes you 10x more productive? The spreadsheet is also just for _JVM_
frameworks, although some of them are probably MVC too, it's hard to tell.

Also, you can really tell that both the parties involved come from heavy
corporate backgrounds, with massive tables of features and rating them against
each other. A scale of 0, 0.5, 1.0? And then the Lift guy switches to /11?
Give me a break...

~~~
aaronblohowiak
<http://en.wikipedia.org/wiki/Up_to_eleven> 11 is a joke.

~~~
anthonyb
Yes, I know. It still doesn't make me want to love his web framework though.

------
Encosia
Writing code is easy. How many developers can't type at least as fast as they
think already? Writing something that makes sense later is the hard part;
especially if you aren't the one reading it.

Ultra-terse code is rarely helpful in that regard.

------
BonoboBoner
I switched to the Play framework for my Java web development earlier this year
and it is the first time in my career that I have stopped looking for other
Java-based web frameworks.

------
gxti
Why does the font size change randomly throughout the article?

~~~
aaronblohowiak
easy skimming.

------
krosaen
I wonder if running lift / scala on GAE jvm would be worthwhile; if you could
hack it to work with the channel api for all the comet stuff...

~~~
sorenbs
The opinion in the community seems to be that GAE is a bad fit for Lift
development. Lift takes a statefull approach in order to enable the developer
friendly auto-plumbing of forms/ajax/comet/etc., and this breaks down under
the GAE restrictions. You might want to take a look at stax.net instead, or
just use a vps such as linode.

Discussion of stateful vs "stateless": <http://lift.la/lift-state-and-scaling>

------
martingrotzke
No lift users out there making a point for it?

------
binaryfinery
I'm usually 10x more productive using frameworks that I wrote.

