This book was released at roughly the same time as the 1.0 release of Curl, which is impressive, given that Curl already has a huge code library. To accomplish this feat, the publishers enlisted six different authors to write various chapters covering different aspects of the language and libraries. The risk with this approach is that the book might mimic the fable of the six blind men and the elephant, and present radically differing views of Curl. Fortunately, this pitfall was avoided by Mr. Maharry and Mr. Ullman, who provided the bulk of the introductory material, thus providing a firm foundation for the book's presentation.
The book starts with three separate introductions. The first gives an overview of Curl and its intended use, creating and delivering interactive client-side Web content. The second is a brief tour of Surge Lab, the free Curl programming environment. The third is a comparison of Curl with HTML and CSS for simple content.
Next, the book presents a chapter on syntax and another on Curl's support for object oriented programming. These chapters are laden with simple examples covering most of the basic concepts and capabilities of Curl. The authors did not, however, recommend a particular programming style, and this can leave readers without a firm anchor for creating their own Curl programs.
The remainder of the book covers the Curl libraries. Scripting objects, layout, interaction, and 2D/3D graphics get the bulk of the attention. These sections are excellent, although there are notable coverage gaps due to space considerations. Sections on audio, input, XML, and SOAP are particularly skimpy.
This book is a superior introductory text. There are plenty of useful examples, although nothing complete enough to impart a real sense of what a fully-realized interactive content site (or even page) might be like. Similarly, there is no fully-realized example of a reusable Curl widget. Fortunately, these deficiencies are not serious, given the availability of the CurlExamples.com Web site, which has hundreds of free examples to download and study. Also, the extensive documentation that is included with Surge Lab is remarkable for a 1.0 product release.
A large part of the pleasure of this book comes from the superior design of the Curl language and libraries. I found it easy to get up to speed and create a variety of increasingly interesting projects. My most serious challenge was that a few programming habits from C and Java programming had to be unlearned before Curl (which is influenced by Lisp) felt entirely comfortable to me. I also have the impression that the community of Curl programmers are still feeling their way towards a preferred programming style, so the shortcomings of Early Adopter Curl in this area are understandable.
The book includes a few misspelled class names and the like, so check the errata on the Wrox Web site. Also, there is one extremely serious shortcoming: The book has no index! This vexed me so much that I created a Curl program to allow me to create and present book indexes on the Web, so now there is an index at http://www.rockhoward.com/curl/. (To see it, you will need the Curl plugin, which, as of this date, is only available for Windows.)
I like Curl a lot and recommend it for highly interactive Web content projects. It is also an interesting choice for a Web services client. The available examples are pretty amazing, given the youth of the technology and the relatively small band of Curl practitioners who are currently on the loose.
Of course, this is a difficult economic climate for launching new technology, and the Curl company has been forced to play with their licensing models as they work to put their business on a firmer foundation. This matter is in flux as I write this, so you should check the Web site for the latest licensing information. I am confident that developers will not have to "pay to play", but the licensing model for deployments is likely to change from the original model (which essentially allowed smaller companies to deploy Curl technology for free).
A second book on Curl called The Curl Programming Bible hit the stands last month. I am currently going through this massive tome to see what it offers the forward-thinking Curl technologist.