I have started to understand Maxima recently and it has really surprised me about how close is Mathematica
to Maxima(earlier Macsyma). I found out that Stephen had earlier worked on Macsyma(comment from Kent M Pitman) for some time. Stephen and his team preferred C
over lisp.
Sample function def,
fun(x):=block([local_variables],(..code here...),return(variable))
It took me just one function definition to know rest about function definition in maxima. Use of let
is from lisp.
variables are type free and removed with
Remove
in Mathematica,kill
in maxima.HoldForm
has'<function/variable>
as complement in Maxima which actually come from lisp again.HoldRelease[%]
hasev(%)
as complement.Ability to compile function is present in both.
In terms of GUI the concept of
cell
is exactly similar to cell in maxima which usesWxMaxima
for GUI widgets.Point important here is that both have absolutely same way of dealing with GUI.Both support pattern matching and manipulate command which originally came first with Macsyma.
These are just some of the points that both share too much. It didn't take me more than 10 days to be familiar with Maxima just because I have had some hand over Mathematica, though it might not be the case while learning Matlab.
The most important thing is that you can learn how it has been coded rather than just learning how to use it. In my opinion its the most important of all. Learning other tools just adds to the first tool.