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:
- Understanding older code (need to adapt some old program? reading an old book on Mathematica?)
- Getting rid of older coding habits (What, you're still using $DisplayFunction?)
- Getting to know new, more efficient ways, to do stuff (Maybe Total is better than Plus@@ with Packed Arrays?)
- 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.