[Info-vax] DCL's flaws (both scripting and UI)

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Thu Jan 22 15:41:01 EST 2015


On 2015-01-22 16:31:09 +0000, David Froble said:

> johnwallace4 at yahoo.co.uk wrote:
>> 
>> Or maybe just think of an object as an aggregration of data items and
>> routines to access the items. Some of the data and routines are visible
>> to the world at large, some routines and data may be considered private
>> (so that the internal implentation details of an object can be kept
>> hidden, visible only to Those Who Need to Know, whilst the outside
>> visible stuff interfaces in a known and controlled way).
> 
> Would not that description fit things such as the VMS system services?

Not really.   Well, only if you could create your own sys$getjpi with 
your own new itemcodes and also with a few itemcodes that explicitly 
overlap the OpenVMS version, and where your version will intercept all 
calls to the OpenVMS sys$getjpi version.    Your intercepted itemcodes 
might just do something like fetch the VMS itemcodes and increment the 
value returned by the VMS version of the itemcodes for instance, and be 
built largely using the VMS code for the itemcode.

You could also transparently store or return additional data, too.    
You're working with what's conceptually a wad of code and data, and not 
really with any subroutine that's "called".  This differs from what 
happens with system services.   On OS X, you "message" what are called 
"methods", and the "methods" can then perform the requested tasks.   
You can create and initialize a new object, potentially store data in 
it, and use the code associated with the object.  When the object is 
deallocated, the code is no longer available.  Your object typically 
"inherits" from another, and you can then override the behaviors and 
the code of the parent object, where you need to.

This is all rather different from traditional sequential-style 
programming; from calling system services or calling subroutines.

Given there's still a traditional computer underneath, if you drill 
into the implementation of an object-oriented environment, you'll find 
machine code, and you could certainly create all of that machine code — 
whether in BASIC or assembler — necessary to present the abstractions 
that OO programming might use.   But then you end up owning all of that 
code, and all of the abstractions.

OO is also heavily dependent on what's available in the underlying 
frameworks, and what's available in some can be quite powerful — with 
the Cocoa frameworks, you can get all sorts of data back from messages 
sent to an object containing a string, for instance.  Makes for much 
less code, particularly when compared with how much work can sometimes 
be involved with setting up for a system service or RTL call on VMS.  
Yes, there's still code underneath to do the tasks, too.

OO is pretty handy for some tasks.  Can sometimes be quite be useful 
for creating bigger applications, too.   It's not so good for other 
tasks.


>> Objects are commonly spoken about in the same sentence as classes.
> 
> Maybe that explains it.  I've never under "classes" either.

Time for some reading and some playing in your copious spare time, 
then?  Have a look at 
<http://programmers.stackexchange.com/questions/34584/how-to-explain-oop-concepts-to-a-non-technical-person> 



-- 
Pure Personal Opinion | HoffmanLabs LLC




More information about the Info-vax mailing list