Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #22137

Re: For the OOP fans ...

From Bernd Paysan <bernd.paysan@gmx.de>
Newsgroups comp.lang.forth
Subject Re: For the OOP fans ...
Date 2013-05-02 00:34 +0200
Organization 1&1 Internet AG
Message-ID <kls5ai$3rl$1@online.de> (permalink)
References <51811e81.95904672@news.demon.co.uk> <20f7cd46-3a93-402d-86b2-4aad670307a3@googlegroups.com> <51814b58.107383756@news.demon.co.uk>

Show all headers | View raw


Stephen Pelc wrote:

> On Wed, 1 May 2013 08:02:57 -0700 (PDT), Jason Damisch
> <jasondamisch@yahoo.com> wrote:
> 
>>On Wednesday, May 1, 2013 6:57:26 AM UTC-7, Stephen Pelc wrote:
>>
>>> "Indeed, one of the unpleasant side-effects of the OO paradigm is
> 
> No. Les Hatton wrote that. I just found the whole post interesting,
> especially given the number of OOPish and OOP packages that MPE
> supports for one reason or another.

We already figured out why you have to support so many OOP packages: Because 
they are all designed for a single purpose.  That's the Forth way to do it.  
BerndOOF is designed to implement MINOS.  It says it aims at being a general 
purpose OOP package, but it failed to become one, just like all the others 
you support failed.

You have seen Doug asking for "turning on/off the current object mechanism" 
just a few hours ago.  That's a typical thing people do ;-).  A Forth 
programmer going to the local hardware store doesn't ask for a hammer, and 
is pleased by a standard hammer.  He goes at length discussing the 
advantages of sledgehammers over carpender hammers or the other way round, 
and for sure, you need a sledgehammer for 9 inch nails, but a carpender 
hammer for 2 inch nails.

The grief I have with C++ and Java OOP programs is that they are "onions" of 
layers of abstractions, adding smelly white onion layers instead of doing 
real work.  If I look at some of the Dalvik code, I'm asking myself "has 
this been tested?", and the answer is an obvious "not at all", because it 
doesn't work (some components don't work at all, some sort-of work, and some 
work fine).  It's adding another layer of abstraction, and each layer 
contains additional bugs.  Since it's hard to test your code in C++ or Java, 
people don't do it.  The promise of type-checked languages is that if your 
code compiles, it is already bug-free...

I want OOP when I program GUIs; I use some slimmed down OOP for implementing 
core parts of a Forth system like input handling or now for the monotoken 
system, where compile,, postpone, and to have their fields in a vtable for 
each word (this is OOP style programming, though it certainly isn't class-
based).

IMHO the place for OOP-style techniques is always there when you have a 
natural, common interface to components which you want to interchange.  If 
you don't have OOP, you still do it, like e.g. IO vectoring - and that's 
something you do, too.  VFX, IIRC the documentation, even has a vtable for 
that.  That's OOP.  Yes, Stephen, that's OOP.  It's a typical Forth-OOP, it 
uses a small subset of C++, tailored for the task at hand, and tailored in a 
way that makes it impossible to reuse.  Your method invoke is called DoIO, 
and it really can only do IO, nothing else.

You should add DoIO to the number of OOP systems you maintain, and answer 
the question why it is different from all the others.  We have similar 
questions in the Gforth kernel, which contains about 4 different tiny OOPy 
thingies :-P.  Yes, we are trying to consolidate those.  No, we don't want a 
full-blown OOP system in the kernel.

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

For the OOP fans ... stephenXXX@mpeforth.com (Stephen Pelc) - 2013-05-01 13:57 +0000
  Re: For the OOP fans ... Steve <nospam275@gmail.com> - 2013-05-01 07:22 -0700
  Re: For the OOP fans ... Jason Damisch <jasondamisch@yahoo.com> - 2013-05-01 08:02 -0700
    Re: For the OOP fans ... stephenXXX@mpeforth.com (Stephen Pelc) - 2013-05-01 17:08 +0000
      Re: For the OOP fans ... Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-01 12:12 -0500
        Re: For the OOP fans ... albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-05-01 19:11 +0000
          Re: For the OOP fans ... Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-01 15:36 -0500
      Re: For the OOP fans ... Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-02 00:34 +0200
        Re: For the OOP fans ... Doug Hoffman <glidedog@gmail.com> - 2013-05-02 05:13 -0400
  Re: For the OOP fans ... Paul Rubin <no.email@nospam.invalid> - 2013-05-01 21:54 -0700
    Re: For the OOP fans ... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-02 07:57 +0000
  Re: For the OOP fans ... Roberto Waltman <usenet@rwaltman.com> - 2013-05-03 15:04 -0400
    Re: For the OOP fans ... stephenXXX@mpeforth.com (Stephen Pelc) - 2013-05-04 10:58 +0000
    Re: For the OOP fans ... stephenXXX@mpeforth.com (Stephen Pelc) - 2013-05-11 10:49 +0000

csiph-web