[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: effin' compatibility
From: |
John W. Eaton |
Subject: |
Re: effin' compatibility |
Date: |
Thu, 29 Sep 2005 10:00:35 -0400 |
On 29-Sep-2005, Andy Adler wrote:
| I would love octave to have namespace support.
|
| I would love octave to have namespaces compatible with matlab
| OO classes.
|
| I would love it if matlab OO syntax didn't suck.
|
| So the catch is that compatible object syntax would
| introduce suckiness into octave. Does anyone have ideas
| around this one?
The other catch is that introducing our own namespace syntax or
functionality is likely to cause future compatibility problems.
If we want a better language, I'm afraid we are going to have to look
at something completely different rather than modify Octave/Matlab.
That doesn't mean that Octave would have to be abandoned as useless,
it just means that we need a good way to call Octave from the better
language so that we can continue to use the Octave/Matlab code that we
have, while being liberated from the suckiness of the current system.
| As far as I can tell, Matlab OO is based on Perl's mapping of
| Method Name <=> File Name. However, I detest the fact
| that the syntax doesn't tell you exactly what is going on.
|
| For example. This is clear
| x= my_funky_variable_type( args, ...)
| y= x.inverse(); % this calls a special inverse.m
|
| This is not
| x= my_funky_variable_type( args, ...)
| y= inverse(x); % is this a normal, or a special inverse?
So you would not like lisp/scheme generic functions?
| Suggestion:
|
| Would it be possible to allow methods to be called in octave
| by doing
| y= x.inverse( args ) or y=x->inverse( args )
| as well as
| y= inverse(x, args)
Yes, probably possible, but then this gets back to the issue of future
incompatibilities biting you in places that you normally don't want to
be bitten.
jwe