Re: OOP language design after Algol 60, was Add nested-function support

Kaz Kylheku <157-073-9834@kylheku.com>
Fri, 13 Apr 2018 03:28:26 +0000 (UTC)

          From comp.compilers

Related articles
| List of all articles for this month |
From: Kaz Kylheku <157-073-9834@kylheku.com>
Newsgroups: comp.compilers
Date: Fri, 13 Apr 2018 03:28:26 +0000 (UTC)
Organization: Aioe.org NNTP Server
References: <49854345-f940-e82a-5c35-35078c4189d5@gkc.org.uk> 18-03-103 18-03-042 18-03-047 18-03-075 18-03-079 18-03-101 18-04-002 18-04-003 18-04-004 18-04-035 18-04-052
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="98879"; mail-complaints-to="abuse@iecc.com"
Keywords: OOP, design
Posted-Date: 13 Apr 2018 13:17:34 EDT

On 2018-04-13, George Neuner <gneuner2@comcast.net> wrote:
> On Tue, 10 Apr 2018 18:32:23 +0000 (UTC), Kaz Kylheku
><157-073-9834@kylheku.com> wrote:
>
>>On 2018-04-09, George Neuner <gneuner2@comcast.net> wrote:
>>> IMO, the evidence that many popular languages are not "powerful" is
>>> that they are either exclusively or primarily OO, but they implement
>>> only single inheritance objects.
>>
>>I'm surprised that anyone finds multiple inheritance so singularly
>>important.
>>
>>Single inheritance is really only crippling if two kinds of objects have
>>to inherit from a common base in order to be substitutable.
>
> That's why SI languages implement interfaces - the poor person's MI.


Well, SI in *static* languages!


SI in *dynamic* languages doesn't need interfaces.


I should know; I made one:


    1> (defstruct apple nil (:method rot (me) `@me rots`))
    #<struct-type apple>
    2> (defstruct orange nil (:method rot (me) `@me rots`))
    #<struct-type orange>
    3> (each ((f (list (new apple) (new orange))))
              (prinl f.(rot)))
    "#S(apple) rots"
    "#S(orange) rots"


apple and orange are not related; no "rottable" interface is
needed to legitimize the .(rot) call.


I mean, phooey; over my dead &body.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.