If there were 3 tools that I could wish every programmer would develop one complete project in, they would be:
- jUnit
- Smalltalk
- Mathematica
Each will forever change your opinion of what a software development environment ought to be like but each, at the level of an article or a blogpost or even a trivial project, is unlikely to persuade you because each is more about introducing a way of solving problems than a way of simplifying a task. (That is, what makes a nice demo is a visual interface builder, not a green bar on a test suite. )
I figure you've already used jUnit or one its kin. Smalltalk has enough proponents so you're probably at least aware that it's browser and persistent workspace are life-altering (if you aren't, check out James Robertson's series of screencasts). Mathematica, though, is not on most people's radar (unless you're in mathematics or certain sciences).
I've just received a copy of Mathematica 6, which has tremendously improved capabilities for interactive exploration of a problem space and sharing them with the world. I look forward to using the tool, not just to visualize some hopefully interesting things (for instance, concurrency issues) but to hopefully give a glimpse of a radically different philosophy of what an interactive console might look like.