Then, in the plotting phase I'm constantly looking up Mathematica's plot options because I don't use it often enough to remember them. By default almost everything looks like crap in Mathematica, and you have to put in 10+ options to try to make it look good, but even so I'm usually dissatisfied with the result. Often I want something and then I find someone on a message board saying that it doesn't support that, and then he shares his 100 line program which gets Mathematica to do that. Then I usually give up. Getting programs from the Internet to work with Mathematica is a pain because Wolfram pushes out a new version every year and they keep changing small things which break backwards compatibility. Compare to the (much less powerful) Google Charts library, where everything looks much better and easier to comprehend by default.
One of my startup ideas is to write something like Mathematica, much simpler, runs on the web as a service, you can program it in Javascript, has embedded SQL, and it uses something like Google Chart for simple plotting, or you can pull in your favorite plotting library. Let's you share your work by sending around a link.
PS: I played around with R, but it seemed even more cryptic than Mathematica. Admittedly I didn't spend much time in it.
Actually I'm developing/maintaining something like this at my job, as part of the Data Services team. Similar to this, it uses Google Charts and is a node.js app. It will be open-sources in a couple of months. The goal is to avoid using Gooddata for as much stuff as possible, GD is too sluggish.
- You can't chain indexing with function calls. So you can't do myfun()[1]. This gets obnoxious really quickly. I hope you like useless intermediate variables. - You can't have a N-D array with singleton trailing dimension. So if you want dynamically created array sizes you will have to create special cases for that. - One external function per file.