> Colin, > > This is just my opinion. > > The only reasons I can see to implement an extension are (in order): > 1. Need a low-level feature not accessible any other way (a good > reason, but perhaps a rare one); > 2. Need blazing speed (a good reason and much more common) > 3. Need/want to hide the source code from the user (not that I > necessarily condone this) > > Other than these, I think pure Ruby is always the way to go. > > But, of course, someone will point out some factors I've overlooked... > > Hal What a nice start! I consider platform as an argument. On Linux, I can use a bunch of free, high-quality, well-documented tools and combine them with scripts and specially-written bits of fast C/C++ code. I just consider everything extended in one way or another. Everything runs as it was meant to run, other than bugs that may be in my own code (sigh). On Windows, I can get the major tools for a lot of money, and I can get some (but not nearly all) of the minor tools for the price of pain. On Windows, there's a much bigger incentive to stick to pure Ruby. I don't even want to try to port extensions that can be compiled. Interpreted languages seem to work much better than compiled languages when going between Win32 and Linux. Pure Ruby seems to be a good idea here. Michael