Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <20240930162717.0000340b@gmail.com>
Deutsch   English   Français   Italiano  
<20240930162717.0000340b@gmail.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: John Ames <commodorejohn@gmail.com>
Newsgroups: alt.folklore.computers,comp.os.linux.misc
Subject: Re: TeX and Pascal [was Re: The joy of FORTRAN]
Date: Mon, 30 Sep 2024 16:27:17 -0700
Organization: A noiseless patient Spider
Lines: 56
Message-ID: <20240930162717.0000340b@gmail.com>
References: <pan$96411$d204da43$cc34bb91$1fe98651@linux.rocks>
	<5mqdnZuGq4lgwm_7nZ2dnZfqnPSdnZ2d@earthlink.com>
	<vcub5c$36h63$1@dont-email.me>
	<1r0e6u9.1tubjrt1kapeluN%snipeco.2@gmail.com>
	<vcuib9$37rge$5@dont-email.me>
	<vcvuhh$3hroa$2@dont-email.me>
	<llhieuF8ej2U2@mid.individual.net>
	<20240925083451.00003205@gmail.com>
	<Pascal-20240925164718@ram.dialup.fu-berlin.de>
	<mdd4j63pmo1.fsf_-_@panix5.panix.com>
	<oJ-cnQSrLZDYdGX7nZ2dnZfqnPWdnZ2d@earthlink.com>
	<vdatb6$1l4ch$8@dont-email.me>
	<vdauah$1lq1u$1@dont-email.me>
	<20240930110933.00002ec1@gmail.com>
	<appeal-20240930203239@ram.dialup.fu-berlin.de>
	<20240930135208.00004170@gmail.com>
	<OOP-20240930220855@ram.dialup.fu-berlin.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 01 Oct 2024 01:27:26 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="f3a1ced4425b80106d0fe41f21b562dc";
	logging-data="2555150"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19iPQE+wqMaIo76TbzKKFKxANX5RfXgszk="
Cancel-Lock: sha1:GkwQkPrD1fWEvF9+Po/GP8qFbBc=
X-Newsreader: Claws Mail 4.2.0 (GTK 3.24.38; x86_64-w64-mingw32)
Bytes: 4333

On 30 Sep 2024 21:10:33 GMT
ram@zedat.fu-berlin.de (Stefan Ram) wrote:

> I see. So, it seems to me that what you discovered was more about
> Smalltalk specifically than about OOP concepts in general. I thought
> maybe you could give some insights about what OOP is and what any
> advantages or disadvantages of it might be because in your "I finally
> *got* it", I assumed that "it" referred to "OOP".

It's a bit both, and it's hard to separate in my head because I don't
think I've seen it applied as naturally anywhere *other* than in ST.

OOP got wrapped up in all kinds of trendy buzzwords back in the '80s/
'90s depending on who was selling it to whom and which problem it was
being proposed as a cure-all for - "code reuse" for the corporate suits
who saw programmers as monkeys grinding out fungible "code product" by
hammering on typewriters and wanted to maximize hammerage-per-monkey
(and minimize monkey headcount, natch,) "information hiding" for the
security freaks, etc.

But basically, when you strip away all the marketing BS, I think the
true appeal of OOP (as I see it) is that it's an extension of the
*concept* of data structures; that is, it's a way of organizing data
into discrete structures that (when designed well, anyway) map neatly
to entities in the model of the problem the program is meant to solve.
But in addition to raw data, OOP allows the programmer to package the
*operations* inherent to an entity right along with it - and to adapt
them to one particular flavor of entity or another, as needed, so that
rather than having to remember the distinction between:

void sliceApple(apple * f)

and:

void slicePear(pear * f)

one could simply write:

fruitPile[i++].slice();

and trust that the Right Thing will be done. In this way (in a perfect
world,) a cleaner and (hopefully) more flexible model of the problem
can be built.

Now, *contrary* to what the marketroids of the '90s would've had us
believe, it's *not* magic pixie dust that makes everything better, it
does *not* obviate the need for intelligence and understanding of the
problem on the part of the programmer, and it has its own pitfalls to
be wary of (in particular, the distinction between operations which can
be appropriately classified as *methods of an object* and those which
are part of larger algorithms within the problem is both critical for
good OOP design and also somewhat fuzzy and requiring of careful
consideration and good judgement.) But as I see it, that's what the
draw is - a different way of modelling problems that (ideally) makes
the process clearer and simpler than doing it some other way.