"Bill Page" <[EMAIL PROTECTED]> writes: | On February 20, 2006 12:57 PM Ralf Hemmecke wrote: | > | > On 02/20/2006 06:15 PM, Gabriel Dos Reis wrote: | > > Ralf Hemmecke <[EMAIL PROTECTED]> 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 _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
