Warning: This blog entry was written two or more years ago. Therefore, it may contain broken links, out-dated or misleading content, or information that is just plain wrong. Please read on with caution.
Anyone who follows my blog knows that I am passionate about cfml and so when I got the chance to review the new Railo book "Railo 3: Beginners Guide" I jumped at the chance.
Disclaimer: I freely admit that I am very biased towards Railo. In fact I have run this site on Railo for over two years now. In addition I scored the book in electronic format free so that I could review it.
Finally if you think I am a bit harsh in my criticism please remember that I am reviewing the book NOT the product. Railo Rocks!
About The Book
So what does this book cover. Well on the publishers website (Packt Publishing) they state the following list:
- Step-by-step instructions for developing web sites with CFML
- Learn about all the resource types available and how to handle them
- Easy to follow steps to optimise your application for high traffic
- Create dynamic applications with the in-built Hibernate ORM
- Secure your server by setting up access restrictions and passwords
- Convert and display multimedia within your webpages
- Create your own extensions for custom functionality
What they forget to mention is that you also learn about working with cloud resources, compiling to redistributable packages, virtual files systems, setting up a MySQL database and much more.
So now we know what it covers lets talk about some of the good points.
Start To Finish
Although the authors don't go into exhaustive details on every single topic, they manage to strike a good balance between covering all the major points of Railo while going into enough detail to get you started. This book wont make you an expert cfml programmer but it gives you a solid coverage of the basic concepts and enough detail to be able to build a simple functioning web app, which is exactly what a beginners book should do.
First Hand Knowledge
As this book was written by the product developers there is no ambiguity about function or errors in assumptions. This has allowed the authors to compress a lot of information into very concise chucks. In particular there is a very simple yet effective diagram on the request life cycle that comes to mind.
Covers Often Overlooked Features
Although I have used Railo for a long time now I must admit I have tended to stick with what I know and only go looking for a feature if I have a particular need. This book has opened my eyes to several slick features in Railo I did'nt even know existed and I now intend to use for future development.
At around $45 for the print version this book is about on par with similar books in terms of price if you look at it purely by page count. However once you get into reading the book you realize that the authors have packed a huge volume of information into a small space.
For the cost of this book you learn everything you need in download, install, configure, maintain the server and start programming with the cfml language. That sounds like a bargain to me.
This is the part that I am loath to write but as with all things in life, nothing is perfect and I do have some complaints.
Nothing About Apache HTTPD
This was the first thing that struck me as odd. The opening chapter mentions how Railo can be installed and configured with the Apache httpd webserver but then never covers how to do it. The fact that installation against IIS a non open source webserver is covered but not httpd is disappointing and puzzling to me especially when you consider that httpd is the dominant webserver.
Update: I want to add that Railo has an excellent installer tool. If you follow the tomcat config section then it is fairly self evident. However I would still like to have seen apache used vs IIS although I understand the reasoning.
This is more of a critique of how the publishers display code then the actual content. As cfml is a tag based language I would have liked to see better distinction made between cfml and html code. For example if the cfml tags had a background color on the page so that it was easier to see where the cfml was when mixed in with html.
Some Basics Not Directly Covered
The fact that the authors have attempted to cover so much about Railo in this book is both a positive and negative. While they have crammed a hell of a lot into it they have at times skimmed over some of the more basic concepts.
For example the topic of component scopes is poorly covered. I did not find a single mention of the var scope outside the extending Railo chapter and the variables scope being private was mentioned as an afterthought as opposed to directly against discussed when the "this" scope was first used.
Also while there are examples of comments in the book, they should be mentioned explicitly (new programmers should always be told to comment their code) and the first examples are actually incorrectly formed. (see cfswitch example).
Some More Editing Needed
As this is a first edition you would expect a few rough edges and indeed there are. While the content was good I would have like to see some more work on organizing eg chapters separated out, for example ORM and caching should be distinct chapters in my mind. Also a couple of small sections were a bit repetitive.
As an introduction to Railo (which is its main focus) this book is excellent, however as an introduction to cfml programming it needs a little polishing in a few places due to the sheer volume of information it tries to cover.
A solid addition to an aspiring cfml developers bookshelf, but it should not be the only one if you wish to master cfml programming.
Thursday, March 8, 2012 at 4:34:19 AM Coordinated Universal Time
Thank you for reviewing the book, it was a massive effort to write (my first book) and will certainly keep your opinions in mind when writing the next one!
Regarding the coverage of CFML, the stance that I tried to take was that there is a LOT of guides out there for writing CFML per-se, so I wanted people to explore the possibilities.
One of the gripes that I have was the same one you did with regards to code formatting.
When writing a book, there are certain constraints (such as formatting, length and number of chapters) that I had to keep within, but hopefully we managed to get in a bit of a taster of what Railo can do.
Again, thank you for your feedback!
Thursday, March 8, 2012 at 7:42:09 AM Coordinated Universal Time
You're welcome mark. I'll be trying to spread the Railo word when I visit home next week, and now I'll have a reference guide :-)