-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove Lift because it is not awesome #19
Conversation
I've been a part of multiple web app rewrites in order to move away from Lift While it may have been a good choice at one point in time, before scala got any other web frameworks, I would never recommend anyone to start using it today.
+1 |
Remove Lift because it is not awesome.
I'd better add @jacksingleton comment near Lift entry. Just to avoid future submits of the framework. |
I think Lift is pretty awesome. It also solves many interesting problems that other listed frameworks don't. For example, Lift is more secure than any other framework listed. I think "awesome" definition should take security in mind, and if a framework is really good at it, that should be enough to be included in the list. |
Both Liftweb and Playframework were founded at 2007: |
I think Lift is useful for static web page, but is not for dynamic web page that is common recently. The biggest reason for it , you have to take HTML DOM manipulation to server side. It means that if designer want to create ajax content, they have to learn Scala. So really, Lift is not designer friendly. I think View First concept is not wrong. But it does not suit server side. |
I don't think that's fair to negatively judge on what a framework can do. Please, judge by what it cannot, or what conceptions doesn't it have. For example...:
That's actually wrong. A designer isn't forced to learn Scala. Liftweb just offers an alternative to old-style manual ajax bindings. Instead it offers a new conception (which is safe but requires Scala). Say you don't want it yet and want to stay traditionally? OK, do it, absolutely no stoppers here.
No, really, you don't have to. You can serve both static files and dynamic HTML. You're not forced to. Again, HTML, not "DOM". Lift is server-side, it cannot generate DOM.
I don't actually get the point here. You want to say that "JavaScript Frameworks" do "view-first" better? OK, use them. No, I don't want to use server-side javascript myself.:) I personally like FRP and ScalaJs http://www.scala-js.org/ , worked with Lift, spray and java frameworks. Lift is one of the most awesome things I worked with, together with ScalaJs.) |
@icoxfog417 I can send you your comment if you removed it accidentally (because I received it by mail). |
(thank you for @vn971 , I accidentally removed comment!) If judge by what it cannot, Lift cannot separate client side and server side. Lift's basic feature is "receive DOM and return DOM". It is called by
It receives DOM from view, and find It means below fact.
As @vn971 say, I think there are some tips to avoid it. If all of your team member learned Scala, it is no matter (and ScalaJs is good choice). |
Let me answer on some of the aspects you mentioned.
Summing up, yes, Lift really strongly advises you to use trasformations like |
…and here we go, first flame war on "awesomeness". |
This is an interesting discussion and I think that it would ok to add Lift back. Probably with a reference to this discussion. |
Removing Lift is bullshit. @icoxfog417's complaints about the framework are better summarized as using the wrong tool for the wrong job. There are parts of the framework I dislike (take the screens for instance. I hate those). They don't help me solve my problem, so I don't use them. If server-side DOM manipulation doesn't make sense for your project, then don't use that part. Wrong tool for the wrong job. Besides, I would argue that JSPs, GSPs, whatever Play has, etc are exactly the same thing. The difference is Lift doesn't try to give you some half-logic/half-view semi-HTML crap to work in. Instead you can leverage all of the power of a real language to mutate the DOM to render the view for a given model. Furthermore, it can make a phenomenal backend for angular (see lift-ng). Take a look at that plugin and you'll see the client and server can be well separated, securely connected, and powerfully working in tandem. No server-side DOM manipulation, but all of the power and security of the Lift framework Besides, this notion that server-side developers should be divorced from the DOM is not always the right way to divide your work force anyway. My team is full-stack. We work in thin vertical slices, without arbitrary specialization about the application's architecture. Apologetics aside, I don't think that one person's distaste for a library justifies its omission from an otherwise useful source of information. |
I prefer Lift's tradeoffs to Play's. It's egregious that it's been removed from the list based on some-guy-doesn't-like-it. Maybe we should remove Scalaz too; I've read plenty of articles about silly people rewriting it out of apps for similar "reasons". |
Revert lauris#19. There is no "one framework fits everybody" framework, Lift is one of the most mature Scala web frameworks around with awesome security properties.
@Skyr I merged and added link to this discussion near the Lift entry. |
See also #52 // disagreeing a little with Joe Barnes, I think @icoxfog417 meant a far more simple task of generating HTML. (Like with selector transformations.) But anyways.. |
I think that we should write/discuss about the situation that Lift adapts. As @Skyr, @joescii say, Lift will have certain domain that works well. |
I'd still opt for removing Life, because David Pollak is a self-centered asshole who isn't interested at all in the bigger picture of the Scala community, and seems to thrive in competing with others in a agressive and anti-social way. |
Ad hominem. This isn't a proposal to add David Pollack himself to the awesome Scala list. The Lift library should be judged on its technical merits. While far from perfect, Lift has several unique and valuable attributes that make a worthy alternative to Scala on Rails (Play) and other Scala libraries. |
I agree with @japgolly, personalities of contributors should not be taken into account. |
Firstly, I apologize for my strong comments earlier. I use Lift on a daily basis and contribute frequently to the community, plugins, and so forth. It has provided me tremendous value in my work, and seeing it omitted from an otherwise fine resource got under my skin a bit. I overreacted quite immaturely, and for that I apologize. That aside, the last thing I'll say is if it gets omitted, @lauris will occasionally get a PR from other folks who likewise find it valuable. Hell, I'm enough of a smartass to write a script to send him one every afternoon. :) but... perhaps that's better than receiving endless comments from this flame war. |
A couple of notes. Lift has a very light-weight and Scala-esque REST system that uses pattern matching rather than type-less Strings to define REST: http://simply.liftweb.net/index-5.3.html#toc-Section-5.3 With pattern matching, the types of objects are reified as close to the wire as possible. This makes for more secure and well types REST endpoints than does the "define your REST endpoints via String" mechanisms. Lift 3 has support for single page apps with no server-side HTML generation via seamless browser/server actors and streaming promises. Oh, and all of the stuff that's baked into Lift 3 for single page apps can be done in app-level code for any Lift 2.x app. If you want to write server-generated HTML apps, Lift does that, although with a more secure and designer friendly templating mechanism than most other web frameworks (DOM manipulation vs. String output). If you want to write apps that do pure client-side DOM manipulation, Lift has terrific features for that (REST, browser actors, streaming promises). Or you can write apps that do whatever is in between. In terms of the personal attacks against me (words like "asshole" are attacks, not facts), perhaps writing the first major framework/library, hosting the first Scala-specific Maven repository, writing the second (to Martin's first) Scala book, helping companies like Twitter, Foursquare, and LinkedIn become successful with Scala, and creating and promoting and producing the first four Scala-related conferences are not some people's ideas of contributing to Scala... but what I have or have not contributed to the Scala ecosystem should not be a criteria for judging if Lift, which sits under a number of the libraries listed in Scala Awesome including Spray (yep, Spray uses Lift's JSON library), should be listed as part of the Scala ecosystem. |
I've worked with a lot of frameworks and I can say that Lift is awesome, and there is a team behind it (not just a person) working really hard and a lot of happy users. |
My only wish that people join hands for greater good of community. |
I've been a part of multiple web app rewrites in order to move away from Lift
While it may have been a good choice at one point in time (before scala got any other web frameworks) I would never recommend anyone to start using it today.