[Grace-core] Grace - What about delegation?

PSU via GMail andrew.p.black at gmail.com
Sat Aug 8 12:27:50 PDT 2015


I happen to agree that delegation would make a better place to start than our current inheritance semantics.   But, as James says, this us something that we are actively considering.

Andrew P Black

> On 2 Aug 2015, at 19:29, James Noble <kjx at ecs.vuw.ac.nz> wrote:
> 
> Hi François
> 
> thanks for your interest in Grace. 
> 
> Yes we did leave out delegation — or rather we have so far, although we are due to look at our inheritance design again as we try to finalise a v1.0 version of the language. 
> 
> the long answer is due to be written in a paper when we get around to it! 
> 
> the short answer is that delegation turns out to be more difficult than one might expect in a language with per-instance slot encapsulation (Self dropped this), executable object constructors (Self object literals build singletons and run in the global “lobby” scope), and where we need to support flexible object initialisation for libraries.  
> 
> earlier versions of Grace’s inheritance semantics were pretty much based on delegation, but experience, particularly with the ObjectDraw library, moved us towards the current semantics.  
> 
> but this is something we are still actively mulling over
> 
> cheers
> 
> James 
> 
> 
>> On 3/08/2015, at 2:38am, AGINEX <ftrudel at aginex.com> wrote:
>> 
>> I have read about Grace with a lot of interest for several reasons:
>> 1) Its rational is well documented
>> 2) Its design philosophy is clearly modern and similar to Io
>> 3) As a programming language designer wannabe, Grace embodies many design/syntaxic choices that I also feel are the right ones.
>> 
>> However, considering Grace's influences (notably Self), design goals (simple yet powerful minimal core language that grow through libraries) and academic goals, I was surprised by the absence of a fundamental concept - the delegation.
>> 
>> Delegation is a powerful concept that subsume static inheritance (see Lieberman, Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems, 1986) and I wonder why Grace does not rely on it (instead of prefixing) because it would make it a better platform to teach the 3 major programming paradigms in use: functional, class-based OO and prototype-based OO.
>> 
>> Thanks in advance for your reply and keep believing in Grace!
>> 
>> Regards,
>> 
>> François Trudel, Eng., M.A.Sc.
>> 
>> _______________________________________________
>> Grace-core mailing list
>> Grace-core at cecs.pdx.edu
>> https://mailhost.cecs.pdx.edu/mailman/listinfo/grace-core
> 
> 
> _______________________________________________
> Grace-core mailing list
> Grace-core at cecs.pdx.edu
> https://mailhost.cecs.pdx.edu/mailman/listinfo/grace-core



More information about the Grace-core mailing list