Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

This is something that has been bugging me for ages.

With every upgrade, Mathematica has added new functionalities and amendend some of its bugs. In the process, though, some older functionality has inevitably been disrupted or made obsolete. This is to be expected of course, and more often than not these modifications and additions are only limited to a change in names, or very limited changes in behaviour (with some completely transparent to users).

Some changes, though, have a deeper influence on the way we code and use the front-end with Mathematica. Two major game changers (IMBO) have been the introduction of the two-dimensional notation in all versions of Mathematica 3 (Traditional Form notation), and the graphics revolution in Mathematica 6 (graphics are no longer side effects, but real objects). Other important changes that come to mind are the introduction of the packed-array facility in Mathematica 4, the continuing evolution of numerical evaluation through all versions, and the availability of curated data from the Web. The incorporation of most external packages in the core is another game changer, since it contributed to hiding the code and made it harder for users to understand what is going on under the hood. Also, the introduction of Manipulate and of the CDF format have changed the way people use Mathematica to convey ideas.

I am well aware that there are sections of the documentation dedicated to all these changes, namely the "What's new in Mathematica X.x" parts, that can be found here http://www.wolfram.com/mathematica/quick-revision-history.html and more specifically (for integer values of version numbers) here:





?? version 4 what's new ??


older versions seems to lack a dedicated part of the documentation

The purpose of this 'question' is to create a selected listing of the most disrupting and/or influential changes introduced with every new version. The utility of such a listing is multifold:

  1. Understanding older code (need to adapt some old program? reading an old book on Mathematica?)
  2. Getting rid of older coding habits (What, you're still using $DisplayFunction?)
  3. Getting to know new, more efficient ways, to do stuff (Maybe Total is better than Plus@@ with Packed Arrays?)
  4. Having a list ordered by perceived importance of the most relevant changes (Yeah, let's see the really important changes of paradigm that I have overlooked...)

The template for the answers, in my opinion, should carry a title like this

From X.x to Y.y : name of the feature of behaviour

for example (these are just examples of the titles of three separate answers)

    From 2.2 to 3.0 : Frontend with two dimensional notation
    From 3 to 4 : Packed Arrays
    From 5.1 to 5.2 : 64-bit-enhanced arbitrary-precision numerics

And then elaborate what is that has changed, why is that important and how it has changed the way you coded or used Mathematica. ONE answer, ONE feature.

My idea is to have answers to this post pop up naturally by voting, and then from time to time update this very post with a list by importance for each version change. As many other threads of this kind, this is a Collaborative Wiki post.

share|improve this question
The most annoying thing during each version change was that novel built-in function that I had just finished coding without knowing it will be in the new version. Happened to me not a few times, e.g. with Graphs. –  István Zachar Mar 8 '14 at 15:04
@MichaelE2, how do I make this a collaborative wiki? I remember I saw that option somewhere, but I do not seem to find it now... –  Peltio Mar 8 '14 at 15:29
@Peltio I thought there used to be checkbox, but it's not there. Perhaps it's only on answers. Somehow it's happened though. –  Michael E2 Mar 8 '14 at 16:00
There were several major additions, but far fewer things which actually change how most people work. For example, all the statistics functionality is fairly major, but it's irrelevant for people who don't need statistics. The control systems functionality is a similar example: most users of this site don't use it, so it has low visibility here. –  Szabolcs Mar 8 '14 at 16:28
@MichaelE2, the Lord works in mysterious ways. :-) –  Peltio Mar 9 '14 at 15:13

2 Answers 2

From 5 to 6: Graphics are no longer side effects

A small but disruptive change for me was having to take all the ;'s off my Plot[] and other graphics commands. The previous behavior was to return a graphics object that didn't display, and to also, always, display the graphic. So the ; suppressed the abbreviated text representation of the graphics object. The current behavior is to display the graphics object that is returned (instead of an abbreviated text representation), but of course not if the output of the function is suppressed by the ;.

I like the current behavior better, but it was annoying to have to go through a gazillion notebooks to fix that. I also had to take out a bunch of uses of DisplayFunction to control displaying and not displaying the results of Plot[], Show[], etc.

share|improve this answer
It happened in version 6. –  Szabolcs Mar 9 '14 at 14:51

Version 3 saw the major advance in readability and user interface with the 2D Box language which allows the creation of true 2D input and true 2D output. Prior to version 3, it was only possible to make 1D input (which was tough to read) and to get a sort of 2D output using typewriter characters only. This is called OutputForm and is still available in current MMA. Outputform has been replaced with the wonderful StandardForm which you can copy/paste/edit as you wish, without semantic loss of the expression. Elegant, but more limited, is also the TraditionaForm which you cannot in general copy/paste/edit into, but can be used in images and/or traditional publications.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.