What is Curl? Until I settled down to review this book I had never heard of it. I guess that will apply to quite a few. It seems that this is yet another Java competitor aimed at providing applets for use in web pages. Now one purpose of a book review is to allow potential readers to decide if they should buy the book and spend precious time reading it. Note that using a book to learn a language is far more demanding of time than is much other reading.
The first thing I did was to go to
www.curl.comto have a look around. I have to admit that what I found there did not boost my desire to spend time on this language. One prime requirement for web based applets is portability. At the moment I can see no sign that Curl's support technology (Surge Runtime Environment and the Surge IDE) has been implemented on any non-Microsoft platform. The authors of the book claim that Curl Corporation plans to make Surge available on Linux and Macintosh computers and eventually on PDAs and cell phones. As a JIT is an integral part of Curl/Surge implementation strategy I think we will be waiting quite a while for that to happen.
Another feature as far as I can tell is that both the IDE and RTE will be licensed. The website states that this is on a per seat or per corporation basis. Currently you can use evaluation versions for 30-days. Most will not even manage to master the contents of this book in that time. I cannot find an indication of the license cost on the website. That leaves me worried. Even if the cost is very reasonable, the existence of a charge for the RTE means that most websites will steer clear of using it. And until there are RTEs for most Unix platforms as well as Macintosh ones the clam that Surge runs on the vast majority of client machines will be hot air. Even Microsoft realized at once that for C# and .NET to be viable they would have to get it running on Linux machines ASAP.
The further I got with investigating the current state of the technology underpinning Curl/Surge the less motivated I became at investing precious time in reading much beyond the first few chapters of this book. Curl seems to be a combination of a bundle of web technologies. Some of the code takes on a distinct HTML feel while other parts feel much like Basic. I cannot feel enamored with a language that uses hyphens in variable names as that makes white-space either side of operators just about essential.
Now I am not going to review the text of this book for a very simple reason: if you have decided to learn curl this is your only reasonable choice. Once you discard the proselytizing style of the early chapters it is reasonably well written and covers the language satisfactorily. However I have grave reservations about the viability of the technology. Introducing this kind of technology needs big bucks or an open software strategy. Sun Microsystems realized that for Java to be a success they had to encourage as many as possible to take out licenses while making the runtime (JVMs) freely available as well as ensuring that there were free versions available for most platforms. Microsoft can be a little more commercial but even they know that the runtime support for C# needs to be freely available if it is to become a serious web product. Both these companies can afford to take considerable losses while fighting for market share. I see no evidence that the Curl Corporation understands this so I do not expect much take-up. In addition, learning to program fluently in Curl will take considerable time that most would prefer to apply to developing more widely marketable skills.
If you plan to learn Curl, and would like to do a full review of the technical content and presentation found in this book please contact me and arrange to have the review copy.