This is something that has been bugging me for ages.
With every upgrade, Mathematica has added new functionalities and amended 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 (TraditionalForm
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 here:
http://www.wolfram.com/mathematica/new-in-9/
http://www.wolfram.com/mathematica/new-in-8/
https://www.wolfram.com/products/mathematica/newin7/
http://www.wolfram.com/products/mathematica/newin5/summary.html
https://web.archive.org/web/20020628025326/http://www.wolfram.com/products/mathematica/newin42/
http://reference.wolfram.com/legacy/v3/index105.html
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 thanPlus@@
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.
EDIT: it appears Wolfram has added a page that collects all incompatible changes from version 1 to version 7 here:
http://reference.wolfram.com/language/tutorial/IncompatibleChanges.html
From version 7 onward, you can refer to this post on MMA SE:
The scope of this thread is to emphasize only the major and most disruptive changes, not every single modification. The idea is to have answers to this post pop up naturally by voting (hence, add only ONE change per post), 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 Community Wiki post.
Graph
s. $\endgroup$