Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

This login session: $13.76, but for you $11.88.


devel / comp.lang.forth / Re: colorForth and Object Oriented Programming

SubjectAuthor
* colorForth and Object Oriented ProgrammingHowerd
+* Re: colorForth and Object Oriented ProgrammingZbig
|`* Re: colorForth and Object Oriented ProgrammingZbig
| `* Re: colorForth and Object Oriented Programmingminforth
|  `* Re: colorForth and Object Oriented ProgrammingZbig
|   `* Re: colorForth and Object Oriented Programmingminforth
|    `* Re: colorForth and Object Oriented ProgrammingZbig
|     +* Re: colorForth and Object Oriented Programmingnone
|     |`* Re: colorForth and Object Oriented ProgrammingZbig
|     | `- Re: colorForth and Object Oriented Programmingnone
|     `* Re: colorForth and Object Oriented Programmingminforth
|      +- Re: colorForth and Object Oriented Programmingnone
|      `* Re: colorForth and Object Oriented ProgrammingAnton Ertl
|       +* Re: colorForth and Object Oriented Programmingminforth
|       |`* Re: colorForth and Object Oriented ProgrammingAnton Ertl
|       | `- Re: colorForth and Object Oriented Programmingnone
|       `* Re: colorForth and Object Oriented ProgrammingHowerd
|        +- Re: colorForth and Object Oriented Programmingdxforth
|        +* Re: colorForth and Object Oriented ProgrammingAnton Ertl
|        |+* Re: colorForth and Object Oriented Programmingdxf
|        ||`- Re: colorForth and Object Oriented ProgrammingAnton Ertl
|        |`* Re: colorForth and Object Oriented ProgrammingHowerd
|        | +- Re: colorForth and Object Oriented Programmingdxf
|        | `- Re: colorForth and Object Oriented ProgrammingAnton Ertl
|        `* Re: colorForth and Object Oriented ProgrammingRon Braithwaite
|         +* Re: colorForth and Object Oriented Programmingnone
|         |`- Re: colorForth and Object Oriented ProgrammingAnton Ertl
|         `- Re: colorForth and Object Oriented ProgrammingHowerd
`- Re: colorForth and Object Oriented ProgrammingBob Armstrong

Pages:12
Re: colorForth and Object Oriented Programming

<2023Sep10.114340@mips.complang.tuwien.ac.at>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=24575&group=comp.lang.forth#24575

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: anton@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: colorForth and Object Oriented Programming
Date: Sun, 10 Sep 2023 09:43:40 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 60
Message-ID: <2023Sep10.114340@mips.complang.tuwien.ac.at>
References: <77b3dec6-405d-4c5a-8b62-350da1bebc5en@googlegroups.com> <c31d05e4-dbd0-45aa-a2f4-c66b77a4d72fn@googlegroups.com> <abe90bdf-e390-4a15-85d9-8218eeda4569n@googlegroups.com> <51560991-9547-45ba-bccc-6c87489e119an@googlegroups.com> <50d59e0f-c2bb-4d13-9062-fae74a9a348fn@googlegroups.com> <2023Sep7.094035@mips.complang.tuwien.ac.at> <7a25ab75-5d7f-47b5-b5e3-15778261a042n@googlegroups.com> <2023Sep9.172947@mips.complang.tuwien.ac.at> <udj8k3$94ap$1@dont-email.me>
Injection-Info: dont-email.me; posting-host="869e9938d8b06cc8ebdabb29936f3acb";
logging-data="582749"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+x7cuRoBkNlwJOCVC18/aL"
Cancel-Lock: sha1:hZNSgsVEWXUvKVI0QcMQP6pLGOA=
X-newsreader: xrn 10.11
 by: Anton Ertl - Sun, 10 Sep 2023 09:43 UTC

dxf <dxforth@gmail.com> writes:
>On 10/09/2023 1:29 am, Anton Ertl wrote:
>> Still we use terms with common meaning, not with Humpty Dumpty's
>> meaning. E.g., we look at Wikepdia what they mean.
>
>Wikipedia is more than common meaning. It has set itself up as authority.

Has it? Die Wikipedia send out troops that conquered the world and
demanded that everyone accepts it as authority?

My view is that Wikipedia is as authoritative as we accept. And I
personally find that it usually does quite well at definitions. In
the case of
<https://en.wikipedia.org/wiki/Object-oriented_programming> I don't
find that the first paragraph is a good definition of OOP (whereas for
other subjects the first sentence or first paragraph often is). It's
not wrong, but it fails to include essential parts.

>The OOP page includes Leo Brodie's criticism from 'Thinking FORTH' (another
>authority apparently). This was too much for one reader (see Talk page)
>who took the view only criticism from 'recognized' authorities be used - if
>at all.

This writer does not mention Brodie or anybody else, and it's unclear
what he means.

Concerning Brodie's criticism, he writes in the preface to the 1994
edition:

|Of all the opinions in the book, the one that I most regret seeing in
|print is my criticism of object-oriented programming. Since penning
|this book, I’ve had the pleasure of writing an application in a
|version of Forth with support for object-oriented programming,
|developed by Digalog Corp. of Ventura, California. I’m no expert, but
|it’s clear that the methodology has much to offer.

Reading through the section in Thinking Forth called "No Segregation
Without Representation", he seems to have some specific program in
mind that claimed to use objects, and his criticism applies to that;
but given the lack of concreteness, I don't know what he actually
means. Some othe the things he criticises "objects" for are actually
things that OOP languages tends to make easy (e.g., the claimed lack
of extensibility).

He then goes on to criticise more concertely and rightly the IBM PC
BIOS interface, which leads to inefficiency in displaying text on the
screen. The inefficiency has led to programs that directly write to
the video memory, and to the success of 100% IBM PC compatible
computers and the demise of BIOS-compatible computers. But this has
little to do with OOP. It's just an inefficient interface.
Interestingly, these days no application program writes directly to
video memory, but they also don't use character-by-character or
pixel-by-pixel interfaces.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: https://forth-standard.org/
EuroForth 2023: https://euro.theforth.net/2023

Re: colorForth and Object Oriented Programming

<d55b352a-452e-422c-b4fe-90303e2f7f5fn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=24576&group=comp.lang.forth#24576

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:6214:a8d:b0:655:afc1:e95e with SMTP id ev13-20020a0562140a8d00b00655afc1e95emr146489qvb.12.1694349414941;
Sun, 10 Sep 2023 05:36:54 -0700 (PDT)
X-Received: by 2002:a17:902:dac7:b0:1c1:df80:67ef with SMTP id
q7-20020a170902dac700b001c1df8067efmr2910135plx.1.1694349414468; Sun, 10 Sep
2023 05:36:54 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!fdn.fr!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Sun, 10 Sep 2023 05:36:53 -0700 (PDT)
In-Reply-To: <eec8dfed-8c45-4f0e-aace-17dade9c6f29n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a01:c22:b4d8:6900:3c09:2b7a:a179:fb03;
posting-account=o1zNBwoAAABP2KiH5g6nPQp_sYWidVdt
NNTP-Posting-Host: 2a01:c22:b4d8:6900:3c09:2b7a:a179:fb03
References: <77b3dec6-405d-4c5a-8b62-350da1bebc5en@googlegroups.com>
<c9d9a362-fb26-4a9d-a0a0-d43f04862bfan@googlegroups.com> <7b6bfe0d-d034-4cce-8ef6-e2f754b6bfecn@googlegroups.com>
<9ca427ba-eb13-4130-b167-bd041728139bn@googlegroups.com> <c31d05e4-dbd0-45aa-a2f4-c66b77a4d72fn@googlegroups.com>
<abe90bdf-e390-4a15-85d9-8218eeda4569n@googlegroups.com> <51560991-9547-45ba-bccc-6c87489e119an@googlegroups.com>
<50d59e0f-c2bb-4d13-9062-fae74a9a348fn@googlegroups.com> <2023Sep7.094035@mips.complang.tuwien.ac.at>
<7a25ab75-5d7f-47b5-b5e3-15778261a042n@googlegroups.com> <eec8dfed-8c45-4f0e-aace-17dade9c6f29n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d55b352a-452e-422c-b4fe-90303e2f7f5fn@googlegroups.com>
Subject: Re: colorForth and Object Oriented Programming
From: howerdo@yahoo.co.uk (Howerd)
Injection-Date: Sun, 10 Sep 2023 12:36:54 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Howerd - Sun, 10 Sep 2023 12:36 UTC

On Saturday, September 9, 2023 at 9:24:12 PM UTC+2, Ron Braithwaite wrote:
> On Friday, September 8, 2023 at 11:45:07 AM UTC-7, Howerd wrote:
> > On Thursday, September 7, 2023 at 9:48:30 AM UTC+2, Anton Ertl wrote:
> > > minforth <minf...@arcor.de> writes:
> > > >Dick Pountain once wrote a whole book about object-oriented Forth
> > > >by stacking several CREATE DOES (BUILDS) structures over
> > > >each other. I found it rather intriguing at that time, although
> > > >many OO purists rejected it.
> > > Not sure what an OO purist is.
> > >
> > > Anyway, I have read the book, and found it interesting at the time.
> > > But the more I learned about object-oriented programming, the more I
> > > found that Pountain mostly missed the point. The essential part of
> > > OOP is run-time polymorphism (dynamic binding). Most of the book does
> > > not deal with this feature at all; IIRC only the last chapter even
> > > concerns itself with this topic, and it does so in a clumsy and
> > > inefficient way. So this book has rightly been ignored by everyone
> > > who really implemented and used OOP in Forth.
> > >
> > > If you want to see how a minimalistic OOP package in Forth can look
> > > like, look at <https://bernd-paysan.de/mini-oof.html>.
> > >
> > > - anton
> > > --
> > > M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
> > > comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
> > > New standard: https://forth-standard.org/
> > > EuroForth 2023: https://euro.theforth.net/2023
> > Hi Anton,
> > You say "The essential part of OOP is run-time polymorphism", and I think you are right, in that what many ideas like OOP are trying to do is to get back some dynamic functionality, after it has been nailed down as static by one or other of the batch processing languages.
> > I find it interesting that the Udemy course that I just took (mainly so I could speak to my colleagues in the language they were using) does not mention run-time polymorphism, nor any sort of binding, run-time, compile time etc.
> > This confirms my theory that "Object Oriented Programming" is a marketing concept that can mean whatever you want it to mean ;-)
> >
> > Cheers,
> > Howerd
> I agree with the statement "The essential part of OOP is run-time polymorphism". I think there is definitely a use case in Forth for run-time polymorphism, but I also think it is kind of rare.
>
> Years ago, the Whitewater Group developed a really cool proprietary language called Actor (along with some other great stuff) that had lots of great ideas that basically evolved Smalltalk up to the next level. One of those ideas was selectively being able to label functions as Static or Dynamic, which allowed the compiler to optimize. Unfortunately, the Whitewater Group was purchased by Borland for their Windows abstraction layer and they killed Actor.
>
> I dropped out of the initial ANSI efforts in 1990 in order to go teach at the University of Zimbabwe, where one of the courses I taught was Object Oriented Programming with Actor. The Whitewater Group was kind enough to provide me with all sorts of materials and free licenses for students. It was really well received and when Borland dropped it, I contacted the Product Manager. She told me that Borland had decided to focus on C++ and had dropped Actor because it competed with it. Really sad.
>
> So, back to Forth, I am all in favor of having Object Oriented extensions that I could plug into a “standard” Forth without having to rewrite them from scratch.
>
> Back to lurk mode,
> Ron Braithwaite
Hi Ron,

It is a always a shame when fashion trends or marketing decisions force good ideas into the shadows.
" I am all in favor of having Object Oriented extensions that I could plug into a “standard” Forth " - there are a few of those around....
But what style of OO would your ideal extension be?

Cheers,
Howerd

Re: colorForth and Object Oriented Programming

<850fc7d4-1e33-480a-a29e-54aa7e47048en@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=24581&group=comp.lang.forth#24581

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:6214:90a:b0:63c:f62c:45dd with SMTP id dj10-20020a056214090a00b0063cf62c45ddmr219437qvb.5.1694405986380;
Sun, 10 Sep 2023 21:19:46 -0700 (PDT)
X-Received: by 2002:a17:90a:5892:b0:268:377d:9a95 with SMTP id
j18-20020a17090a589200b00268377d9a95mr2218280pji.2.1694405985797; Sun, 10 Sep
2023 21:19:45 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!1.us.feeder.erje.net!feeder.erje.net!border-1.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Sun, 10 Sep 2023 21:19:45 -0700 (PDT)
In-Reply-To: <77b3dec6-405d-4c5a-8b62-350da1bebc5en@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=72.19.161.214; posting-account=gOJPwAkAAAASIU4gHD9_qGU8MyZsfs-Q
NNTP-Posting-Host: 72.19.161.214
References: <77b3dec6-405d-4c5a-8b62-350da1bebc5en@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <850fc7d4-1e33-480a-a29e-54aa7e47048en@googlegroups.com>
Subject: Re: colorForth and Object Oriented Programming
From: bob@cosy.com (Bob Armstrong)
Injection-Date: Mon, 11 Sep 2023 04:19:46 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 27
 by: Bob Armstrong - Mon, 11 Sep 2023 04:19 UTC

https://cosy.com/ simply implements dynamic lists-of-lists evolved from Arthur Whitney's K simplified from APL .
The header for a list is , as a CoSy word list , `( Type Count refCount )` .. Objects are freed when ` refCount returns to 0 .
Anything can be modeled , aka : implemented in such structures and inherits the total APL level vocabulary acting on lists .
` Dictionaries are 2 item lists of `( names values )` . Databases are generally dictionaries where the ` values are correlated lists of item values .
For instance a general form of a ledger has a 0th item the column labels `( TimeStamp Description From To Amount Notes )` . The ` 1th item is then the 6 columns of values . ' flip will convert them to a list of individual ` records . I demoed this at the last SV-FIG Zoom : https://www.cosy.com/CoSy/y23/SV-FIG_20230826_commentary.html .

So far as I see ` objects are just lists of the form `( data attribueDictionary )` . Arthur actually implemented K's dictionaries as `( names values attributes )` , but I found that better left to cases where needed . In fact I originally thought of making ` dictionary a Type , but have never found that complication to not simply be more , well , complication . I had a 4th ` meta cell in headers but found I never used it , certainly not enough to justify an extra cell in all headers .

That's my take on ` objects . They are just data with attached attribute dictionaries .
Long ago I had a discussion w Alan Kay saying that what the notion of ` objects missed was the ` geometric value of APL's arrays ( simplified to lists-of-lists ) .

Re: colorForth and Object Oriented Programming

<2023Sep11.093313@mips.complang.tuwien.ac.at>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=24583&group=comp.lang.forth#24583

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: anton@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: colorForth and Object Oriented Programming
Date: Mon, 11 Sep 2023 07:33:13 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 28
Message-ID: <2023Sep11.093313@mips.complang.tuwien.ac.at>
References: <77b3dec6-405d-4c5a-8b62-350da1bebc5en@googlegroups.com> <2023Sep7.094035@mips.complang.tuwien.ac.at> <7a25ab75-5d7f-47b5-b5e3-15778261a042n@googlegroups.com> <eec8dfed-8c45-4f0e-aace-17dade9c6f29n@googlegroups.com> <nnd$6a4f92d9$6c366102@ee775c5e48d52175>
Injection-Info: dont-email.me; posting-host="2127f0ffe5281a9edb324417f0eb9c57";
logging-data="1034802"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+u82vwmsH5D1Ej8C1ib2Ub"
Cancel-Lock: sha1:ExdSDG/2bu/YHFRN1b/X+Fl6wO4=
X-newsreader: xrn 10.11
 by: Anton Ertl - Mon, 11 Sep 2023 07:33 UTC

albert@cherry.(none) (albert) writes:
>But what to think of my specification of my QSORT
>
> 8 \ Sort the range FIRST to LAST (inclusive) of item compared
> 9 \ by the xt COMPARING and exchanged by the xt EXHANGING.
> 10 \ The xt's are filled in into *< and *<--> and must observe the
> 11 \ interface. All indices be compatible with these xt's.
> 12 \ After the call we have that :
> 13 \ ``For FIRST<=I<J<=LAST I J *< EXECUTE leaves TRUE.''
>
>This restricts the items to be sorted in no way.
>If this count as polymorphism, I don't think is rare.

If you look at
<https://en.wikipedia.org/wiki/Polymorphism_(computer_science)>, you
will find that this is listed as parametric polymorphism (aka
genericity). For statically typed languages it was quite a struggle
to reconcile parametric polymorphism with subtype polymorphism while
avoiding run-time type errors (as messages, or worse, as undefined
behaviour). Java became quite a bit more complex with the addition of
genericity.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: https://forth-standard.org/
EuroForth 2023: https://euro.theforth.net/2023

Pages:12
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor