So far my experience of writing DFHack plugins has been held back by the fact that for the life of me I just can't seem to get DFHack to compile. I've already spent ~8 hours on this, spread over several days. I've been trying to compile it on a brand-new Cygwin install on my Windows computer, and have participated in several very frustrating escapades trying to simply get it to work. First the right version of zlib wasn't installed, then Perl didn't recognize its XML library (why are there two different packages called perl-libxml-perl and perl-XML-LibXML, only the latter of which works? Just... why?) My latest adventure involved wondering why exactly a specific file in the included protobuf library wasn't compiling, apparently because a certain standard library function wasn't being recognized. I got desperate to the point of modifying the source file manually, but nothing seemed to work, even after I explicitly included the header that contained that library function. I wrote my own test program using the function, and it worked perfectly fine -- yet DFHack didn't. You can imagine the sheer amount of confusion in my head at that point. Well, I looked online, and apparently the function wasn't in the actual standard library, but rather in the GNU extension of the standard library that was provided by the compiler, which meant that I had to explicitly tell the compiler to use that extension with a command line option. (I didn't have to use the command line option to get my test program to compile, but everything else seemed to have stopped making sense so I didn't really care by that point.)
And no, it still isn't working now. I have to solve another problem that involves Perl somehow losing one of its core modules. How the hell that's even possible, I simply don't know.
However, I have begun to write some plugins anyway by reading the wiki and reverse engineering the plugins included with DFHack. Though it's still going to be pretty long before I can start testing them normally, unfortunately.