David, I actually really appreciate what you and others have done with Lift and please don't take all I've said as criticism. When I said that I realized I have to view Lift through FP goggles instead of OO ones, I'm not saying that is bad, but that it was unusual for me (and probably lots of web developers coming from Java, PHP etc.). I do realize that inventing new concepts is a core value of Lift and maybe I was expecting too much Java- or Scalaish conventions where some of the things might come from the other influences you listed or be good inventions in their own regard.
But I am quite certain that there are some simple things that can be done to make the code easier to look at: moving things into separate packages and moving some functions out of the classes where they don't conceptually belong, if separation of concerns is at all a goal. Those things were behind some of my thoughts that Lift could follow more OO conventions, but I guess that isn't really about OO, but modularity. I do not mean deep hierarchies or abstract factories or GOF patterns when I say OO, but mostly separation of concerns, and a bit less importantly, encapsulation. Then again, I might have a different idea from you about what Lift's concerns are. For concrete examples, I don't think any Atom stuff belongs directly under the general HTTP package... that Req doesn't really need a fixHtml function, it could easily be somewhere else that has more to do with HTML and less with requests generally. Some of these changes could probably be made even while retaining backwards compatibility (through a separate compatibility layer and/or deprecated old methods delegating to the new ones). I think it would be easier after a version of Lift has moved to Scala 2.8 where package objects are available. Now this may be just my opinion, but I think when different concepts are lumped together into large flat packages or large classes -- it makes things harder to understand and use, not easier. If you don't share that thought and wouldn't accept those kind of changes to Lift, I will not do the review. However I was asked to name specific things I find hard to understand but I don't want to go half way and just name a couple of things I happened upon: I'm either going to go through most of lift-webkit and write down my opinion of how to categorize things better in it or I'll not go through any of it. If I did go through it, I could help with documentation while doing so. About documentation: I agree that it doesn't suck, but I think there should at least be a better index to it. Maybe a simple wiki page or two full of categorized links would do. Erkki L -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.
