Writing it myself seemed a natural way to know where and what to instrument. I originally wanted to run the code in parallel. Both factors meant I needed to architect the code in a particular way. I've used the CWEB suite of literate programming tools. I'm convinced literate programming is the way to go for experimental and expository programming.
Free software is a good thing.
I wanted to be able to distribute the code under the GNU GPL or the GNU LGPL, so I needed to write a clean-room implementation. I do not resent other people for not releasing their code. They have already given a great deal in describing their own work. Anybody complaining about a copyright license is a whiner. Implementation is the sincerest form of flattery.