3 ms·
One difficulty with Python for teaching is that it is rather complex to get students set up and running with python+ipython+numpy+scipy+a compiler+... There ar
by lliiffee 17y ago
One difficulty with Python for teaching is that it is rather complex to get students set up and running with python+ipython+numpy+scipy+a compiler+... There are so many combinations, every student has a different version of a different operating system with different other crap installed. Matlab is matlab is matlab. Sage seems to come reasonably close as an alternative, though in practice there are often still issues with setup. (Maybe minor enough that the other advantages of python outweigh...)
The other advantage of matlab is that it is more friendly to non-programmers. There are a lot of people that get lots of real things done in matlab due to all the semi-idiotic design features that annoy serious programmers. (Monolithic namespace, "everything is a matrix", one function per file, etc.) The huge advantage of "copy on write" is that you don't even have to really understand the concept of "different copies of the same data". That's a big hurdle coming to python-- a hurdle you might not want to get over if you don't care about programming, and just want to solve your problem.
- gaius 17y agoYes, if you know what program you want to write then in Python (+ NumPy, Matplotlib, et al) vs Matlab, Python wins but if you are a) exploring a problem space speculatively and b) skilled in your knowledge domain but producing a piece of software is not your final goal, then Matlab wins hands down. It doesn't try to be a general-purpose programming language, it is honed over years to do exactly what control engineers want to do day-to-day. It's like Python is a better programming environment than Excel too, but spreadsheets aren't going away anytime soon (it remains to be seen whether Python + OOo wins over the long term) Mathworks could do a lot worse than bolt on an optional Python front-end. What people pay for Matlab for is the toolboxes, really.
- mechanician 17y agoAs a controls engineer, I agree. I've been trying to learn/switch to python after years of Matlab, but the installation effort, programming environment and lack of controls tools compared to Matlab have hindered me. Actually if anyone has any suggestions to address those issues, I'd appreciate it.
- the_real_r2d2 17y agoHave you tried R?
- mechanician 17y agoI have toyed with R, and I think it's great. I love the data-focus of the language, and the capabilities of ggplot (for which there does not seem to be an equal to in Python). But to be honest as a controls guy, and not a software guy, learning new languages is not a trivial task for me. Python seems to meet both my computational and application aspirations.
- lliiffee 17y agoInstalling sage (http://www.sagemath.org/ http://www.sagemath.org/) addresses the installation effort pretty well. You get a giant binary of everything bundled together and working. It addresses the programming environment to some degres (it gives you a "notebook" similar to Mathematica). I used to be a hardcore matlab guy, now I find some tasks are easier in python.