Tom has posted 2 posts at DZone. View Full User Profile

The Definitive Guide to Lift

  • submit to reddit
Published by: firstPress (Apress)
ISBN: 1430224215

Reviewer Ratings




Buy it now

One Minute Bottom Line

Excellent reference book to the core functionality of Lift, not so hot as a book to learn Lift from.


Scala is a language for the Java Virtual Machine that I have watched with interest for the past couple of years for its Functional (versus Imperative) language characteristics.  I was excited a year ago to learn about Lift and how the power of Scala could be harnessed in a web framework.  Despite the amazing power of Lift, it suffers from the common problem of most open source projects in its depth of documentation.  Don't get me wrong, there are alot more comments in the API than many other open source projects, but there lacks a good, concise place to get some commentary, maybe a little philosophy and hand holding about using the different pieces of Lift. 

Derek Chen, Marius Danciu and Tyler Weir have written a book, "The Definitive Guide to Lift" that attempts to fill that void.  As contributors to Lift they have the knowledge of Lift and what needs to be brought out for developers to refer to when working with the framework.  Overall I would say that they have succeeded in their attempt.  They have compiled in their book all of the core pieces of Lift in a well organized manner.  Despite this there are a few problems.

First the good stuff:

  1. It is very concise.  They do not blather on needlessly about things that are of little interest when you just want to open up a reference to figure out how to get something done.
  2. They are thorough in their scope of what they cover.  Their coverage on JPA (Chapter 10) and third party integrations (Chapter 11) were especially helpful as I haven't seen any place online that documents these items well. 
  3. Finally there are plenty of code snippets throughout.  They don't just give the concept about something and expect you to figure it out in code, they show short, simple examples to help you get moving with that aspect of Lift.

Now for the problems:

  1. There are multiple references throughout the book to a set of appendices (I believe A-G was the final count).  I don't blame the authors directly for this, I would expect the editor or publisher to do some due diligence before going to press to make sure a large chunk of the content isn't missing.  There isn't a title page on the book so I'm not quite sure who was involved in this process, but I would have hoped if Apress put their name on it they would have taken care of this.  It is unfortunate that something like this would happen in a book that is meant to "..provide a reference for every aspect of designing a Lift application..." (Taken from the back cover of the book.)
  2. The next issue that I found with the book came as I was reading through the book.  I found myself wanting to cross reference some other topic and turned to the back to look it up in the index, but there wasn't any.  Again, if this is meant to be a reference book it should allow a user of it to refer to its contents from more than just the table of contents.  Hopefully this is something that will be remedied in an updated digital version.
  3. Sometimes the scope of the book seemed inconsistent.  Although I did list its scope as being a positive because it was so thorough about Lift, I felt like it was lacking in supporting material.  For example, I would consider AJAX to be a widely understood topic amongst web developers, at least much better understood than Scala is known.  Chapter 9 has some great background on the basics of AJAX but they chose not to give even a basic background on Scala.
  4. Internal references to other sections of the book are confusing.  I don't know that I would bring this up so much in a beginner's type book that wasn't meant for referencing later, but in this situation it was frustrating to have the text refer to a different section by title and not sure where that was without either flipping through pages or looking it up in the table of contents.  Having the sections of each chapter labeled like 1.1, 1.2, etc. would help solve this problem quickly and efficiently.
  5. There is no information on a page as to what section or even chapter you are in.  Sounds like a small thing right?  I thought so too until I tried flipping through the book one day to get at a section I knew was in a particular chapter and I ended up having to hunt for numbers associated with code listings to figure out where I was at.

Overall I would give this book a three out of five stars.  I wish I could give it a higher rating than that because the content is good, but if it is a reference and difficult to get at the specific content you want it ultimately has missed its mark.

Published at DZone with permission of its author, Tom Jensen.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Roel Van der Paal replied on Sun, 2009/08/23 - 3:28pm

I had exactly the same issues with this book. The missing appendices can be downloaded from the Apress site.

Derek Chen-becker replied on Wed, 2009/12/09 - 12:03pm

 Thanks for the review. I want to address a couple of (quite valid) points that your brought up as negatives:

  1. There's not much coverage of Scala because there are lots of other places that do a much better job of that. The book was already several hundred pages and that's even after we cut out some of the coverage of more esoteric Lift topics.
  2. The removal of the appendices was a last-minute decision by APress. As you can imagine, we weren't happy with that, but at the time the options were to release the book without the appendices or to wait some indeterminate amount of time until it was possible for them to put the appendices in. We wrote the book to try and give Lift wider exposure, so we decided to go ahead with the original release date. There was supposed to be a page at the end of the book explaining the issue and telling people where to go to download the appendices, but somehow that didn't make it into the final draft. I'll take responsibility for not catching that mistake in the final proof.
  3. We didn't find out until we were already underway with the book that the book would not contain an index. We're as unhappy with this as you are, especially since other APress books have indices.
  4. The lack of numbered sections, numbered cross references with pages, page headings indicating title and section, etc is also something that we're not happy with, but it's how APress defines their style guide.

The good news is that the book is also available in an open-source version here:

This version (PDF) has an appendix, has an index, has numbered sections with fully-specified cross-references, and is fully hyperlinked (e.g. click on a cross-reference to go right to the proper page). 

I can't speak for Tyler or Marius, but in hindsight I feel like I was a bit naieve going into the whole writing process with APress. I wish I would have pushed a little harder for the index and proper cross-referencing, and I definitely will if APress asks us to write a revised version for Lift 2.0.I also feel like APress really helped us make the book much better than if we had tried to go it alone, so don't take my pain points as a condemnation of APress itself. The editorial and technical input refined the book and I've rolled a lot of that input back into the open source version, so that's a very positive point. In the end our primary goal was to give Lift some momentum, and hopefully we've achieved that.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.