Matlab vs Python (was RE: Discussion: Introducing new operators for matrix computation)

Charles Boncelet boncelet at eecis.udel.edu
Wed Jul 19 10:53:46 EDT 2000


Eric Lorenzo wrote:
> 
> Charles Boncelet <boncelet at eecis.udel.edu> writes:
> > Let's get some facts (yes, I know we are not supposed to let facts
> > interfere with our arguments on usenet):
> 
> [Relative popularity measurements deleted.]
> 
> These metrics are meaningless.  You're comparing the popularity of
> Matlab, the most popular tool for its problem domain (numerical
> computing), to Python, which (unfortunately) isn't even close to the
> most popular tool for its problem domain (general-purpose scripting
> and programming).  I'd imagine that establishing that there is a high
> level of interest in this domain would be a prerequisite for
> convincing anyone to add the desired features.  But your metrics don't
> tell us anything at all about the relative level of interest in the
> numerical computing domain, and are thus useless for your apparent
> purpose.  Compare Python+Perl+Tcl+Java+C+C++ to Matlab+(Any other
> languages targeted towards the numerical computing problem domain.
> Mathematica?), and you might have something half-worthwhile.
> 
> Eric

I think you miss my point (which probably means that I didn't phrase
it well).  

Matlab has many more users than Python.  I don't care whether there are
more script writers than numerical workers.  I just wanted to clearly
establish that Matlab is more popular than Python (which I think I 
have).  

Why did/do I want to establish this?  It is my opinion that there are
many numerical people out there who would be more than willing to
switch to Python if Python was a little more appropriate for their 
needs (and perhaps if it was advertised a little more aggressively).

Pros of Python for numerical users: Numpy is fast and well written (and
getting better, thanks to the efforts of its developers). Python has
access to lots of interesting libraries, e.g., databases, web, graphics,
cryptography, etc.  (I do things that combine numerical work with
web and cryptographic tools and use database thingys to store the 
results.  Python is great at these things.)

Cons of Python for numerical users: Numpy does not have the simple
syntax that mathematicians/engineers/etc love.  It does not have the
plethora of toolboxes Matlab does. (I expect Python to improve in this
area.) Writing C numerical extensions is difficult for newcomers (and
some not-so-newcomers :-) Python does not come setup for numerical work
(with numpy, PIL, graphics builtin). Its help facilities are almost
nonexistent.

Reasons why Python is a better alternative than Octave, Perl, TCL, etc:
Octave doesn't have easy access to the other things that Python has; it
is only a free version of Matlab without all the toolboxes.  Perl and
TCL are far too ugly to seriously attract the numerical crowd (who are
generally not professional programmers).

On my soapbox: As you say, Python "isn't even close to the most popular
tool for its problem domain".  And yet, the Python community refuses to
sully the language by adding things that might make it more popular (not
just more operators for numerical work, but stackless for palm pilots,
+=, ++, support for reloadable operators, typechecking, list
comprehensions, more elaborate iterators, to name a few.)  There might 
be arguments against each of these, but taken together it indicates an
unwillingness to change.  Python is perfect as is, and we certainly
don't need to adopt the methods of the unwashed.

-- 
Charles Boncelet                              302-831-8008
Dept of Electrical and Computer Engineering   302-831-4316 (fax)
University of Delaware                        boncelet at eecis.udel.edu
http://www.eecis.udel.edu/~boncelet/



More information about the Python-list mailing list