I develop optimization software professionally, and I use both Matlab and Python extensively.
I only use Matlab for prototyping numerical algorithms and inspecting and manipulation matrices. I tend to stick with Matlab/Octave because constructing/inspecting matrices is so simple and the linear algebra expression are simple and look similar to what I started with on paper. I don't use Matlab as a real programming language, and I've never had to use any of the toolboxes. I use Python whenever I need to prototype a more complicated algorithm, where the challenge is more on efficient data structures, etc., than straightforward linear algebra. For me, Python works perfectly for such problems. What I personally want from Python, for it to be a viable alternative to Matlab is the following (viewpoints that I believe are shared by many colleagues in academia and industry): * Simple construction of sparse dense and matrices. Simple linear algebra. We are working on matrices, so the datastructures should be and act like matrices. Matlab got it right, why change it? In 99% of the time, I need ordinary 2D matrices, so make that feel simple and natural. * It's fine that some things only work for dense matrices and others only work for sparse matrices, but both datatypes should be present, and whatever you expect to be able to do with them from C, you should be able to do simply from Python. * Easy interface to sparse and dense matrices from C. A while back I was involved in developing a Python software package CVXOPT (included in Sage, by the way), where we had to develop our own matrix library because there was no viable alternative at the time. Since then Numpy/Scipy probably improved, but they still feel like they were designed by people who did not have numerical linear algebra in mind. On Aug 16, 9:17 pm, Dima Pasechnik <dimp...@gmail.com> wrote: > Yes and no. I know a largish community, people working on interior point > methods for nonlinear optimization, where it is rather hard to get around > without Matlab. Partly this is due to relative easiness of creating Matlab > interfaces to C and Fortran code, which makes experimenting easier---- > Matlab is used as a fronend to advanced high performance code. Sometimes to > the point that the only way to use this code is to call it from Matlab. > Partly it's inertia, of course. > > Dima -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org