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

Reply via email to