Live data from Hacker News

The best Web Framework - what makes Lift different

seventhings.liftweb.net

41–50 of 79 posts

Re: The best Web Framework - what makes Lift different

#41

1. Fetching content with AJAX and placing it into the DOM is "supported" by every web framework in existence. 2. Proxying ads through your own backend that threads itself? Yawn. 3. AJAX and COMET have pretty standard support. Again, this is left up to you with your Javascript library of choice. 4. Again, this is Javascript work. It might save me a little bit of development time, but I'd much rather be in complete con…

3. Ajax support seems pretty common but Comet seems pretty rare. Most major Javascript libs seem to have little or no support for Comet. Also, server side support for Comet seems even rarer.

4. Declarative syntax for dependencies seems much simpler than imperatively updating dependencies in Javascript

5. This one isn't presented very well. Essentially, all server side presentation logic is done in Scala code rather than adding custom HTML generation tags (, , etc.). This seems like a win (assuming the Scala syntax isn't awkward to work with) and something that I haven't seen before.

7. I have never seen web frameworks with built in support for A4 and A5

If these are things you have seen in other web frameworks I would be very interested to know where. I'm mostly coming from web frameworks on the JVM so it would be good to know more about what I am missing from frameworks outside of that.

I think your right that this is poorly written and maybe a little off putting. However, I think some of the stuff they present looks novel and useful.

Edit: formatting

Re: The best Web Framework - what makes Lift different

#42

Meh... not too impressive. Parallel Rendering: why is this a big deal? Wiring is what ASP.NET has been doing for ages. I don't see the Wizard being more than a few lines of Clojure, and Seaside just completely blows it away.

Parallel rendering matters because it increases page load speed. Let's say you have a page with 10 components that take an average of 100 ms to serve (including calls to db/soa, controller and view.) If loaded sequentially, your page will take 1 second. If loaded in parallel, it will only take 100ms (+ a little overhead.)

You might think: "oh, but this is just rendering, but most of the time is in the models/db/soa". You'd be right in other frameworks. Lift is view-first, so it will figure out what components it needs to serve up based on the view and then parallelize all of the computation required to fulfill them.

Re: The best Web Framework - what makes Lift different

#43
post #20

It's somewhat frustrating to me when they continuously say "something that's hard or impossible in other web frameworks is trivial in Lift" . As one of the co-founders and developers of the NOLOH PHP Framework ( http://www.noloh.com ), I know that we've had many of these features for quite some time, including Comet (we support all protocols including streaming, short-polling and long-polling) with little to no effor…

What methods are you using to make Comet functionality scalable "without any effort" ?

You can find extensive details regarding our thinking on Comet in our Comet slides from various conferences. http://www.slideshare.net/noloh/comet-by-pushing-server-data....

There's no way we can easily answer you with the "methods" we're using as we implement extensive original research. However, from a developer perspective it boils down to the developer specifying what they want to "Listen" to, and optionally how (streaming, short poll, long poll, etc) and NOLOH then takes care of the rest. For example, http://diffpaste.com/#/717/.

Philip Ross will be publishing an extensive white papers soon that goes into more academic depth if you're interested.

Re: The best Web Framework - what makes Lift different

#44
What's not mentioned (it's hard to sell) is, 50%+ of the reason Lift is so fabulous is, you're writing Scala. It's a mighty upgrade in quality of life, from either Ruby, Java or Python.

By corollary, what's being omitted is, the learning curve is steep. Scala isn't super-easy, and Lift dives fairly deep into the more complex stuff - implicits, currying, etc.

Nor is Lift itself all too well documented just yet. Yes, there's two books and a super-helpful community, but the experience is still in a different universe from the lavishly over-documented Spring MVC where you never really have to ask a question.

Re: The best Web Framework - what makes Lift different

#45
post #3

Just out of curiosity can you highlight the advantages lift has over other modern frameworks such as rails or django (and maybe some of the php frameworks). Most (or all) of the 7 things ship with rails 3. Stacking them up against one another might yield a better comparison.

I think that the author is coming from the Java world, in which case the comparison he likely had in mind is not Rails or django, but the plethora of Java web frameworks. Personally, for Java Web Frameworks there are two I like, for quite different reasons. The first is Spring MVC. the rest of Spring can go die in a fire for all I care, but the Spring MVC part is quite nice. Used properly it allows you to very quickl…

> I think that the author is coming from the Java world, in

> which case the comparison he likely had in mind is not

> Rails or django, but the plethora of Java web frameworks.

if thats the case i think he's misrepresenting himself with statements like

"the most powerful, most secure web framework available today" and "The best Web Framework".

Re: The best Web Framework - what makes Lift different

#46
post #23

Earlier quoted context omitted.

I think that the author is coming from the Java world, in which case the comparison he likely had in mind is not Rails or django, but the plethora of Java web frameworks. Personally, for Java Web Frameworks there are two I like, for quite different reasons. The first is Spring MVC. the rest of Spring can go die in a fire for all I care, but the Spring MVC part is quite nice. Used properly it allows you to very quickl…

Naive question here (I've worked on web apps, but it was using Java technology of the circa 2000 vintage, so my knowledge is quite limited). It seems to me that it would be really nice for a developer to be able to treat html/javascript/css similar to the way that developers today treat assembler - a very low-level way to the browser to do exactly what you want, but something that the large majority of programmers do…

Yes, one of them is NOLOH (http://www.noloh.com). It's actually an acronym for "Not One Line Of HTML". You can of course use HTML/CSS/JavaScript, but you never have to, and if you do there's extensive handling to allow you to do things you wouldn't be able to normally do in straight up JavaScript, such as handling race conditions, dynamic instantiations, and related situations.

Disclaimer: I'm a co-founder of NOLOH

Re: The best Web Framework - what makes Lift different

#47
Let's pretend that these 7 things are really important and makes Lift different. The key hurdle of people adopting Lift is probably the Scala language more than anything. If people feel like they are comfortable in a language, they'll use anything they can get their hands on just to have some fun.

But does it look like people are having fun with Scala? When I learned SML in school, I remembered it was quite pleasant. The syntax was simple, type signatures were easy to read and be understood, and the rules were very straight-forward. Basically, I could fit the entire language in my head.

When I learned Java on my first job, I remembered it was also quite pleasant. The syntax was familiar, and concepts easy to grasp. It was verbose as ever, but hey, as least I could brain dump my thoughts into the source code, and read other people's brain dumps. Then Java 1.5 came with its "generics" that can't even remember it's own type after compilation...

A couple years later we now have this bastard child monster all grown up called Scala with its hybrid parametric P /subtype S polymorphic _ with implicit DSL I'm sorry, but I just don't see how this language eco-system can reach a critical mass with the handful of libraries it has now. Maybe when the tools are up to speed in a few years, smart Java people who are sick of Java will migrate over. It just has way too many rules and surprises.

Re: The best Web Framework - what makes Lift different

#48

Earlier quoted context omitted.

I've been using Django for a lot of projects, but have recently converted to Rails 3 for a personal project. What I like about Rails is that plugins are mostly pieces of infrastructure, not ready-to-use mini-applications that are hard to customize. And Rack plugins (pieces of middleware, done in a standard/reusable way, contrary to Django's middleware) are just awesome. I also like about Rails that authentication and…

> But it completely got in my way so many times that I actually thought about writing my own Python web framework; which I shouldn't because people have been working on web-related stuff for the past 20 years. You could always try Flask or Pylons.

Pylons is in maintenance mode, Pyramid is succeeding it.

Re: The best Web Framework - what makes Lift different

#49
post #43

Earlier quoted context omitted.

What methods are you using to make Comet functionality scalable "without any effort" ?

You can find extensive details regarding our thinking on Comet in our Comet slides from various conferences. http://www.slideshare.net/noloh/comet-by-pushing-server-data... . There's no way we can easily answer you with the "methods" we're using as we implement extensive original research. However, from a developer perspective it boils down to the developer specifying what they want to "Listen" to, and optionally how…

How do you implement scalable long polling and streaming in PHP? I've always been under the impression that you really need non-blocking IO to get that to work in a scalable fashion.

Re: The best Web Framework - what makes Lift different

#50
post #49
post #43

Earlier quoted context omitted.

You can find extensive details regarding our thinking on Comet in our Comet slides from various conferences. http://www.slideshare.net/noloh/comet-by-pushing-server-data... . There's no way we can easily answer you with the "methods" we're using as we implement extensive original research. However, from a developer perspective it boils down to the developer specifying what they want to "Listen" to, and optionally how…

How do you implement scalable long polling and streaming in PHP? I've always been under the impression that you really need non-blocking IO to get that to work in a scalable fashion.

Unfortunately you'll have to wait until the white paper for details. Philip Ross has spent a significant amount of time and effort these past 2.5 years researching and implementing various solutions. I unfortunately can't summarize the solution in any succinct way, and fortunately/unfortunately he stays away from outlets such as HN (better for actually getting work done).

However, I can promise you that as soon as he's done, I'll post it on HN and personally send you a message.

Post reply on HN