ObjectStash (Zipped Marshal)
One thing that Mathematica has over every other IDE (that I’ve worked with) is the “run as you go” functionality.
In Mathematica, if you’re working on a document, and run a = 3 write some more code, and run a+3 separately — it won’t bark at you. In RubyMine, this is impossible unless if you’re running IRB in the background.
This is an important functionality for development, because it lets you “play” with variables before you commit to code.
A better example is if you’re loading data from a database (DB) before you’re playing with the var. Every-time you make a mistake, you have to go through that entire process over again. Depending on your dataset, it could be hours between mistakes.
An annoying work-around that I’ve developed is to the zip marshal the DB’s output and load that into the var everytime you want to play.
The how-to is in my previous posts.