Question: Maple for Maxima users

I have been using WXMaxima for years and just upgraded to Maple 2023, but I am having a very difficult time adjusting from Maxima to Maple.  Is there a way to make Maple more Maxima-like?

The first problem that I encounter is that "Shift + Enter" and "Enter" should be reversed for people who are used to inputting with Maxima.  I would like to reconfigure Maple so that "Shift + Enter" will be for "Evaluate Expression" and "Enter" will be for "Soft New Line".  This makes inputting multi-line commands (using ":") much easier, so that you "Enter" to add the next line, and then "Shift + Enter" to evaluate.  I thought there was a way to switch these, but I can't find it in the manual.

The next problem is the syntax itself.  "MmaToMaple" will translate Mathematica syntax into Maple syntax, but why is there no equivalent for Maxima?  Maxima/Macsyma is the original computer algebra system (CAS) that inspired both Maple and Mathematica, and being free and open-source, has the widest possible user base (since anyone can use it for free).  Maple needs a way to translate to and from Maxima syntax.  For personal use, I already have a large body of Maxima worksheets saved as plaintext MAC files that I would like to use in Maple.  It will save me a lot of time and trouble if I can import Maxima worksheets directly into Maple.

Is there an easy way to save commonly used Maxima expressions that are not already reserved by Maple, such as "float" (for "evalf") and "%e" (for "exp(1)") so that some Maxima syntax can run directly in Maple?  The only major changes then would be replacing "$" with ":" and ":" with ":=" since ";" is the same in both Maxima and Maple.  Not sure what a "$" means in Maple....

Maple syntax is more similar to Maxima syntax than to Mathematica syntax.  Below is a sample problem that is un-solvable in Maxima (application will crash or run out of memory) but solvable in Maple, to show the differences in syntax.  Unfortunately, it seems that in many cases the Maple syntax is more verbose than the Maxima syntax, requiring more characters to type (such as when defining functions).

/* Maxima syntax */ $
c : 299792458 $
h : 6.62607015E-34 $
k : 1.380649E-23 $
n : exp(1) $
T : 25200 $
P (lmin,lmax) := integrate(2*(c^2)*h/(l^5*(n^(c*h/(k*l*T))-1)),l,lmin,lmax)/integrate(2*(c^2)*h/(l^5*(n^(c*h/(k*l*T))-1)),l,0,inf) $
float(P(380E-9,750E-9));

 

(* Maple syntax *) :
c := 299792458 :
h := 6.62607015E-34 :
k := 1.380649E-23 :
n := exp(1) :
T := 25200 :
P := (lmin,lmax) -> integrate(2*(c^2)*h/(l^5*(n^(c*h/(k*l*T))-1)),l=lmin..lmax)/integrate(2*(c^2)*h/(l^5*(n^(c*h/(k*l*T))-1)),l=0..infinity) :
evalf(P(380E-9,750E-9));

It seems like Maplesoft has gone to a lot of effort to create intercompatibility between Maple and Mathematica, but their real competition is getting customers to upgrade from Maxima (which is completely free and open-source) to Maple (which is non-free and closed-source like Mathematica is).  Making Maple more Maxima-friendly should increase the number of Maple customers by making it easier to upgrade from Maxima to Maple.

Please Wait...