Welcome back.

The post of last week was the last bit of content from Implementing QuantLib (the book, I mean; the blog will, of course, continue) so it’s time for a few final words about this series of posts.

Writing a book is no easy feat. The first time, if one’s not completely unaware (which I might have been, seeing that I started), it’s likely to cause the feelings expressed by the bogus Wizard of Oz in the 1939 movie:

Frightened? Child, you’re talking to a man who’s laughed in the face of death, sneered at doom, and chuckled at catastrophe… I was petrified.

Now, if you’ve been following me for a while, you know I had a pretty looong time to get comfortable with the idea. But while I’m no longer petrified, I suppose it’s only natural that I’ve been asking myself whether I should have done a few things in a different way. (For instance, I didn’t manage to smuggle in a Firefly reference, even though I aimed to misbehave.) Also, getting to the end does put one into a reflective mood of sorts—especially after a pint or two.

In particular, looking back at the previous chapters, I see that sometimes I’ve been the worst critic of our library and I focused more on what I would change if I were to write it anew. (True story: someone actually told me that he decided not to use QuantLib in a simulation because of what I had written. That’s how good at marketing I am.) So, let me say it out loud: when writing about the code, I always tried to remember that the library was written by capable, well-intentioned people that worked within the constraints they had at the time. In this specific case, this was easier for me to do because those people would often be past versions of me and of friends of mine; but it will do us good to apply this to programming at large, if not to the whole world outside.

With this in mind, I’ll keep those critiques as they are. As I wrote in the introduction, I wrote this book primarily for QuantLib users but I hope you can find it useful even if you decide that QuantLib is not for you. I’ve tried to give you the reasons for what we did, and the different ways I would do it now with other constraints, so that you can make more informed choices in your own coding. Il che è bello e istruttivo, as Giovannino Guareschi used to say.

Let me know if it worked.

Thanks for having read this series (by the way, the posts are collected in order here). The blog will pause next week, as I’ll be teaching my course in London. I’ll be back after that with the occasional bit of QuantLib news, content from the QuantLib Python Cookbook, and other ideas I still have to finalize.

Follow me on Twitter if you want to be notified of new posts, or add me to your Google+ circles, or subscribe via RSS or email: the buttons for that are in the footer. Also, make sure to check my Training page.