20.May.2010 at 16:17 by Chris Hartjes
Interesting from a technical perspective.
Nate Abele, Joël Perras (20.May.2010 at 10:15)
Talk at TEK·X (English - US)
All web application frameworks suck.
Some are too complex for the task at hand, and others don't offer enough flexibility when your application steps outside of the confines of the ubiquitous blog tutorial. As stated by the venerable Sean Coates: "the #1 reason to avoid frameworks: you'll spend all your time working around edge cases."
Lithium, a new PHP 5.3+ rapid application development framework started by several CakePHP core alumnus tired of the status quo, is designed to help you get the job done, and get out of your way. Built from the ground-up to cater to people who hate frameworks, it attempts to reduce edge cases, and expose an intelligent public interface that sucks less.
We'll take a jolly jaunt through the internals of Lithium and examine how we're leveraging closures, late static binding and anonymous functions made available in PHP 5.3 to write a framework that Sucks Less, including our one-of-a-kind aspect-oriented inspired filter architecture, adapter-based architecture, and first-class support for non-relational datastores such as MongoDB and CouchDB.
Quicklink: https://joind.in/1592
Slides: A Web Application Framework for People who Hate Frameworks - Lithium
By clicking this button you are declaring that you are the speaker responsible for it and a claim request will be sent to the administrator of the event.
If the claim is approved you will be able to edit the information for this talk.
Are you sure?
20.May.2010 at 17:10 by Jeremy Brown
Was hoping to learn more about the framework overall, maybe see some quick examples of a page being served, etc. I appreciate that their framework may be better (and they certainly believe that it is), but there wasn't anything to make me want to try it other than their word for it. Yes, there were some code examples about some of the topics they talked about, and some of the ideas were very intriguing, but there was nothing I learned about Lithium that I hadn't already heard as hype prior to attending.
Agree with the previous poster about the level of arrogance displayed.
20.May.2010 at 17:16 by Joël Perras
I'm pretty sure that the first thing that we said in the talk was that Lithium Sucks. If asserting the fact that our own framework sucks is arrogant, then I'm fine with that.
(P.S. I can't seem to leave a comment without giving it a rating)
20.May.2010 at 17:17 by Jason Austin
I'd liked to have seen lithium in action. I think the concepts are certainly interesting and from speaking with joël offline I can see the benefits. I'd liked to have seen more of that in the talk though.
20.May.2010 at 17:25 by Joël Perras
jfaustin: sample apps: http://anologue.com/ (source: http://rad-dev.org/lithium_anologue) http://pastium.org/ (source: http://rad-dev.org/lithium_bin)
20.May.2010 at 20:03 by Nate Abele
To clarify:
- DI itself doesn't suck; the hype and overuse of it (when other solutions are more appropriate) does.
- If static methods are hard to test, you're doing it wrong. Refer to the slides on referential transparency.
20.May.2010 at 21:13 by Jake Smith
I was really excited to learn more about lithium, being php 5.3 framework. I really didn't sense arrogance, it made the talk more fun for me. My biggest issues were the talk focused more on problems with other frameworks or concepts and less on how lithium works. There were a couple of times where it seemed you guys just clicked past code examples instead of spending adequate time explaining it. I think the framework has great potential.
20.May.2010 at 22:00 by Elizabeth Marie Smith
Pushing a new framework is always a hard sell in the PHP world. I understand you're trying to change the way people think about code. I do think that the talks needs more real world examples and how to actually use the code. The ideas for the design are interesting but not always the best way to prove why you chose a certain way. Code speaks louder then slides.
21.May.2010 at 20:38 by Joël Perras
Thanks for all the great feedback, everyone. We will be looking to revamp the talk to address the points that people have brought up.
21.May.2010 at 21:23 by Sandy Smith
I found it provocative, even if I wasn't 100% sold. FWIW, I think between the "everything sucks, including ours" and acknowledging the tradeoffs you made on one decision (blanking on which one now), it didn't come off as especially arrogant, or at least not beyond the norm for technical presentations.
Seeing more of the tradeoffs would have been a nice addition. Still, it's an interesting concept.
21.May.2010 at 21:41 by Nicolas A. Bérard-Nault
I am sorry to say it so bluntly, but most of the design decisions highlighted in the presentation are 100% misguided.
Using the active record pattern so extensively will advise the trained eye to stay away at all cost. Besides the fact that an application using this pattern is simply unmanageable and unmaintainable, it is almost unthinkable that, in 2010, one would tie so perversely and without any remorse his model to his infrastructure and get away with it.
Also, I simply could not drink the static method Kool-Aid. There are a lot of disadvantages but I'll limit myself to mentioning testing, which you've managed to convince yourselves is possible this unsafe static methods. Again, I apologize for the bluntness but this is 100% wrong. Internal state is preserved between tests and thus, your unit tests are actually hidden integration tests. With a persistent state infiltrating every single test you run on unsafe (mutable) static methods, one can actually order its tests in an ingenious manner in order to make them pass. I am not saying that every single test you wrote is bogus. I am saying that this fails to match even the most basic standards of good practices in unit testing.
That said, I can say that Nate and Joël are two very intelligent guys but my only advice would be to step down the rhetoric and put a little more thought in the design of their framework as it is very flawed and certainly, if I may borrow your very own words, sucks.
22.May.2010 at 16:32 by Joey Trapp
As a Cake user now, I definitely see its short comings. I certainly don't have the technical expertise to comment on many of the design patterns mentioned in this discussion. I am still interested in trying out the framework. I can't imagine how a web consulting company could stay productive without the use of some framework, and some to better than others at different tasks. Cake may not be perfect but it certainly has its use cases. Lithium will definitely have its own cases as well, and I hope that exploring it will be fun.
24.May.2010 at 17:26 by Lorna Mitchell
This talk showed some nice PHP 5.3 features and made some interesting comments on how frameworks often try to solve problems for us. With these two eloquent and witty presenters, it could have been a great talk but the egos got in the way and I came away certain that I never want to interact with this community, I just don't fit in with their "humour"
25.May.2010 at 14:33 by Michael Lehmkuhl
Loved the talk. Once again, I found Joël to be a very knowledgeable speaker, and Nate was a good match.
Coming from CakePHP, I'm especially excited about Li3. It seems to solve several design issues with CakePHP as well as leveraging all that PHP 5.3 has to offer. Very excited to start working with it and find out how it sucks.
I for one appreciated the delivery style and didn't find it to get in the way of the presentation.
Great work. Looking forward to more of hearing more from both Joël and Nate in the future.
20.May.2010 at 16:00 by Jeremy Kendall
Being arrogant is funny, to a point. This talk went way past that point.
Disagreed with many technical points (statics are not hard to test, DI sucks, abstractions sucks, AOP (the mother of all abstractions) solves many of those problems, etc).
Three thumbs up b/c two thumbs up goes too far. I'd give it a 2.6 if possible.