As embarrassing as it may be, the world’s most sophisticated computer algebra system Mathematica lacks a proper undo feature!
It took over 20 years and millions of users until eventually Reema Al-Aifari, a mathematician from Austria, stood up and demanded that Ctrl+Z is finally properly implemented! If you are among these millions, you probably know exactly what I’m talking about, so please consider signing her petition!
The rest of this post is a rant about my own experience with Mathematica. I have been using it for 10 years almost daily starting from version 5.0 onward. I think it is a great tool and I have to admit that nowadays I program almost exclusively in Mathematica. The reason is that typically, for the kind of problems I need to solve,
writing the program takes more time than running it.
And even if I have to wait a bit for the answer, it is still OK, since often I need to run the program only once. In other words, the strength of Mathematica is the ability to develop code fast. However, it’s not all just wonderful and pink… (or orange?)
Throughout these years I have acquired a habit of working with Mathematica as if there would not be any undo feature at all. In fact, even if you try to use undo, there is no way to know exactly how much of your work would be undone (by the only precious undo you have!), so why bother — just make a copy of the cell you’re about to edit before you do anything you might regret. Another option, of course, is to follow the official documentation of the undo feature and just close the file (without saving the changes!!!) and then reopen whatever you had when you last saved! Now, how ridiculous is that?
Of course, we’re not in 1988 anymore, so some progress has been made. For example, you might have noticed that now you can not only use arrow keys to select more text while holding shift, but also less (in case you selected too much). Why did it take 20 years to implement that?
Bugs (What’s that?)
The thing that annoys me the most is that, by definition,
Mathematica has no bugs.
It only has features! When a new version is released, all the great new features are listed, accompanied by beautiful colorful pictures. But where is the list of bugs that were (or weren’t) fixed? How do I know if a certain function has a known bug and whether it has been fixed in the new release or not? All that is mentioned are some “improvements” and “stability enhancements”, but no details are given.
I understand that Mathematica is not an open source project, but I don’t see what is the advantage of not making the list of known bugs public. I don’t think that it would harm Mathematica‘s reputation. On the contrary, it would be easier to avoid pitfalls that others have fallen into and thus get more reliable answers to your computation. After all, this program is for doing mathematics and therefore it is important to know when it gives correct answers and when it doesn’t.
I believe that most Mathematica users genuinely want the product to be better and some even report the bugs they have found. At least I did. But I kind of gave up on it, since it did not really seem like Wolfram appreciates any feedback from users (maybe things have improved more recently). This is in sharp contrast with the situation in the web browsers market, where a special hacking contest called Pwn2Own is organized, and researchers can actually get significant monetary prizes for finding security flaws in web browsers such as IE, Chrome or Firefox. Finding bugs in complicated software such as Mathematica is also highly nontrivial, but there is zero incentive to do so.
Mathematica is an extremely powerful tool with a significant and wide range of applications. However, the consequences of it not working correctly can also be significant. Hence, it would be good to know when that can happen. Also, if users desperately want some feature, maybe they have a point and it would be worthwhile to implement it.
I don’t know if the petition will make any difference. But I also don’t know any Mathematica user who would not be complaining to his or her colleagues about how frustrating Mathematica can sometimes be.
So, Stephen, please don’t be a stubborn child. We don’t need no new kind of science, just admit what’s wrong with your program!