octave-maintainers
[Top][All Lists]
Advanced

[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



reply via email to

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