OpenSCAD provides you a programming language for defining objects. It lets me use vim as my editor, while showing me a live preview of my object as I save.
Recently, a group of us bought a MakerBot Replicator 2. It's been going pretty steadily, but not without the teething problems expected in an early-adopter technology.