Comparison of Igor Pro, python, Maple, and MatLab
I am assigning Capstone Reports to students in my senior chemical engineering course. For the reports, they will have to develop code that will graph a function. The function will change depending on the topic, and the input parameters to the function will change for each group per topic. Their code must be modular, and the output graphics must be what I call "publication-ready".
I developed a template report for the class as a starting point. I used three different coding platforms: Igor Pro (7), python (in Jupyter), Maple 2017, and MatLab R2018a. I generated the report using LaTeX under macOS 10.13.6.
Folks in similar situations (i.e. teaching coding to engineers) might find the report useful. It may also be of use to folks who are evaluating Igor Pro by comparison to any of the other platforms and who wish to know what is or is not different. Please note, the summary comments that I make at the end are my observations. I defer especially to those who are more well-seasoned than I am in the use of python or MatLab to tell me that I have overstepped or mis-represented something about these platforms.
In a nutshell ...
* All four platforms use comparable syntax. Coding in any one is not akin to translation of Arabic to Dutch. It is more like making a translation among the Latin-based languages (e.g. French to Italian).
* Igor Pro stands well above the others in the ease with which one can produce publication-ready graphics without knowing how to code.
* Maple stands well above the others in the beauty with which one can marry symbolic math to graphics.
* python (in Jupyter) provides significant ease of coding, running, and seeing results in one window (plus it is free).
* The approach that I needed to take in MatLab essentially got in my way.
I conclude with the thought that I might carry forward to our department. I support a call that we would drop teaching MatLab in favor of teaching python. But, this is a different story.
The report is attached in the link below.