"...the user-level design of Mathematica has remained compatible from Version 1 on. Much functionality has been added, but programs created for Mathematica Version 1 will almost always run absolutely unchanged under Version 6."<p>I wonder if this is the case because of dedication to backwards compatibility or because the original syntax was based on some fundamental mathematical concepts that are sound and thus don't change the same way most APIs do. Can anyone with more Mathematica experience weigh in?
This just one part of a longer series: The Internals of Mathematica [1]. Overall a very interesting read.<p>[1] <a href="http://reference.wolfram.com/mathematica/tutorial/TheInternalsOfMathematicaOverview.html" rel="nofollow">http://reference.wolfram.com/mathematica/tutorial/TheInterna...</a>
Mathics has about 25K lines of python of which only about 10 lines are platform specific. There are also about 100K lines of JS, but much of it is automatically generated or libraries. Admittedly it is missing lots of the features of Mathematica, but I think its an interesting comparison to make.<p>Disclaimer: I'm a developer for Mathics
An interesting aspect of this is the "dogfooding" that seems to take place under Mathematica's covers. The internals use many of the same representation and communication techniques as are exposed to users.
This is an interesting series. I've always been fascinated with Matlab and Mathmatica ever since I took a class on floating point precision errors in college. I hope one day I get to work on a program that requires those algorithms to be used.