axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] about Expression Integer


From: Gabriel Dos Reis
Subject: Re: [Axiom-developer] about Expression Integer
Date: 20 Feb 2006 22:22:27 +0100

"Bill Page" <address@hidden> writes:

| On February 20, 2006 12:57 PM Ralf Hemmecke wrote:
| > 
| > On 02/20/2006 06:15 PM, Gabriel Dos Reis wrote:
| > > Ralf Hemmecke <address@hidden> writes:
| > > 
| > > [...]
| > > | Bill Page wrote:
| > > | > But eventually in order to program in Axiom, it is 
| > > | > essential that they gain a full appreciation of the
| > > | > object-oriented design philosophy.
| > > | 
| > > | I would not really like to call Axiom (or Aldor) object-oriented.
| > > | We don't write
| > > | 
| > > | a.add(b)
| > > | 
| > > | in order to add two numbers.
| > > 
| > > There is more to object-orientation than "dot notation".  To my
| > > eyes and mind, Aldor and Axiom are object-oriented, and they
| > > haven't yet escaped that land :-(
| >
| 
| I am curious why you wrote :-( ? Are you implying that you wish
| that Aldor and Axiom did use a paradigm more advanced than object
| orientation?

yes, more or less.

Many linguistic constructs one finds in Aldor and Axiom have been the
"lead" at the time (at least two decades ago, though neither Aldor nor
Axiom were called that way at the time) -- blending object orientation
(in the style of categories and domains) and imperative higher order
programming was rather powerful and "unique".  However, I'm kind of
"disappointed" to see that virtual no progress has been  since then.
On the other hand, qualified type systems have emerged leading more
"natural" expression of ideas (though posing more difficult
challenges), and I'm sorry to say it, and we are here comparing Axiom
to Java :-( 

| > Hmm, do you call the following object-oriented?
| 
| Before discussing whether something is "object-oriented" or not
| I think we need to agree on a definition. For example, I think
| the following definition is quite good:
| 
| http://www.webopedia.com/TERM/O/object_oriented_programming_OOP.html

I agree that it captures many points of what I would consider "object
oriented". 

[...]

| I Axiom if I write;
| 
|   a:Complex Integer := 1
|   a + 2
| 
| the operation '+' is taken from the domain of 'a'. Both 'a' and
| '2' an instances of the class (domain) 'Complex Integer'.

Exactly!  If you look at "type classes", you'll see that is exactly
what is happening.  In mundain terms, the operation is extracted from
the "vtable", which is guaranteed by the fact that:
  
  * the category says the operation exists (<-> abstract classes or
    interfaces). 

  * the domain says it implements the operation.

[...]

| I think that is true and these ideas originated in Axiom itself,
| which very considerably pre-dates "current trends in programming".
| I think it is a pity that Axiom was/is not better known among
| programming language designers.

That was part my point.  The other part is that it is pity Axiom
designers did not keep the lead on that front.

In April 2004, there was a workshop organized at Adobe (San Jose) to
talk about "concepts for C++".  I deliberately chosed to present two
"main" type systems:  (1) type classes, and (2) "categories and
domains" in Aldor.  That was also an opportunity for me to foster a
deeper understand of the ideas work in both world (and later build
an excuse of why I did not push for them :-).

The linguistic construct I found the most useful in Aldor is "post
facto extension".

-- Gaby




reply via email to

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