[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GSoC project: new graphics backend

From: Igor V. Burago
Subject: Re: GSoC project: new graphics backend
Date: Fri, 20 Mar 2009 18:04:02 +1000

> The same can be said for Python, and I'm not aware of any Ruby
> scientific library comparably mature to NumPy/SciPy. Yet somehow SciPy
> can't replace Octave/Matlab... besides the existing numerical
> libraries, I think an important reason is that the Octave language,
> while agreeably being less powerful than Python/Ruby, is also
> significantly more simple, which seems to be suitable to many
> scientific programmers.
It depends on how much do you value language's multipurpose nature.
Yes, it's simpler to code many numerical computations in Octave. I
know it well, because I'm involved in process of coding such
Till the algorithm is in developing stage Matlab or Octave fits best.
But sometimes program written in such a language have to strong
 1. Communication with the real world is not so easy (such languages
lacks many facilities useful for enhanced input/output, GUI, etc. and
other "technical" libraries).
 2. Performance. (Sometimes the only reason to reimplement algorithm
written using Octave or Matlab is slow execution.)

> Octave's pass-by-value mechanism (with lazy copy-on-write) is
> something that is *far* more simple to grasp than NumPy's inherited
> everything-is-a-reference semantics. I do regard myself as moderately
> experienced Python programmer, yet every now and then I get shot in
> the foot by the reference semantics in Python. In Octave, you just
> don't care about mutable and non-mutable objects - everything works
> *as if* passed by value. Of course there's a big price to pay for that
> - you can't actually pass-by-reference except by ugly hacks, but after
> experiencing both Python and Octave I still regard it as a very good
> trade.
I think it's a matter of habit. By the way, pass-by-reference reminds
me another issue. Matlab-like languages often lacks many small but
very useful things like built-in support for different encoding in
strings, hashes (assotiative arrays) and powerful mechanisms for
program organization.

Of course, languages such as Matlab and Octave could be improved to be
more powerful, but it's not clear for me is this way more

Igor V. Burago

reply via email to

[Prev in Thread] Current Thread [Next in Thread]