Well, the first thing to say is that we've worked hard to maintain compatibility, so that any program written with an earlier version of Mathematica can run without change in 3.0, and any notebook can be converted.

The fact that the same symbolic programming primitives work for those as work for math kinds of things, I think, really validates the idea of symbolic programming being something pretty general.

You kind of alluded to it in your introduction. I mean, for the last 300 or so years, the exact sciences have been dominated by what is really a good idea, which is the idea that one can describe the natural world using mathematical equations.

The thing that got me started on the science that I've been building now for about 20 years or so was the question of okay, if mathematical equations can't make progress in understanding complex phenomena in the natural world, how might we make progress

I guess the good news is that we didn't make any big mistakes in the design of earlier versions of Mathematica that we'd have to go back on now.

There are a few very small incompatible changes - I really doubt most people will ever run into them.

The most important precedents deal with the whole idea of symbolic programming - the notion of setting up symbolic expressions that can represent anything one wants, and then having functions that operate on both their structure and content.