Give me lovable tools
The curious researcher may find they spend quite a bit of time playing with tools that, while painting potential, do not involve anything that you absolutely must understand by tomorrow. As a student and distracted generalist I am often in this position. In such circumstances the last thing I want are tools that hate me.
I have been thinking about lovable tools in two contexts recently. The first was a conversation with @NicMcPhee and @moorejh about reusable genetic programming tools, particularly for symbolic regression. All too often (and this was my own experience as a former computational synthesist) workers in evolutionary computation produce code that, while giving important and publishable results, is not reusable by anyone. Your technique does me little good if I cannot apply it to my own data. The second context concerns Bayesian data analysis. My formal education spent about a week on Bayesian inference, but I was never forced to reckon with actually analyzing my own data. Frequentist methods have been serving me fine, so this is not a priority. Still, as something I want to understand, I am forced to play with it. As for learning by doing, BUGS seems to be the standard form. But several problems are present. The most salient is that BUGS appears to be Windows-only (correct me if I am wrong). The software also seems to be generally cryptic when it comes to error detection. Yes, it is free software as Gelman notes, but if I am going to invest in a proprietary language for model-building, I want something robust (contrast this with Mplus; I tolerate learning its syntax only because the program is exceptionally well-designed). What is working well for me now is pymc, a Python module for Bayesian model building and checking. I don't know anyone who is using pymc for getting work done, but as it is based on Python, the barrier for starting is very low (the documentation is also friendly). Even if you don't know Python, learning it is not going to hurt you, or be a waste of time (psychologists take note). Building a tool on top of an already rich environment is crucial to flexible data analysis. I don't know how you get data into BUGS, but I'm guessing you can't make it to talk directly to PostgreSQL. Genetic programmers, take note. If your technique is so wonderful, make a lovable tool that folks like me can use to analyze their own data. photo cc-by lingualx