Newsgroups: comp.lang.smalltalk
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!swrinde!emory!darwin.sura.net!gatekeeper.es.dupont.com!esds01.es.dupont.com!news
From: fehrja@iscdcvm3.cdcgate.dupont.com (John Albert Fehr)
Subject: Re: A first-class question!
Message-ID: <1995May31.000632.5458@es.dupont.com>
Sender: news@es.dupont.com (USENET News System)
Nntp-Posting-Host: mcclanc.wm.dupont.com
Organization: DuPont Company
X-Newsreader: WinVN 0.92.6+
References: <3prjih$22l@jupiter.planet.net> <3pvu8g$mtf@ornews.intel.com> <3q1qhb$hlg@scorpio.develop.bsis.com> <droberts.801416008@chip.cs.uiuc.edu> <3q2 <3qd5av$3lk@warp.cris.com>
Date: Wed, 31 May 1995 00:06:32 GMT
Lines: 36

In article <3qd5av$3lk@warp.cris.com>, Douglas Camp <dcamp@acm.org> says:
[stuff deleted]
>I've often found that developers new to Smalltalk like to use 
>collections (usually arrays) as ad hoc data structures (e.g.,
>instead of creating a Person class, and answering an instance
>of aPerson from some method, they will answer an array containing
>two strings, the first and last names). 
>
>In explaining why this is a bad idea, I tend to use the term 
>"first class object", meaning that aPerson object would be "first
>class", whereas a collection of individual, primitive objects,
>like strings, while each is certainly an object, somehow isn't 
>first class. 
>
>I'm curious if anyone else uses the term this way?
>
>Doug

Hi Doug,
I don't use that term.  It is too easy to be confused by it -- a double meaning 
that orbits around the word "class" like a pun.  It seems to me that your 
example is concerned with a progamming practice or a form of progamming.  
I tend to say to someone coding aPerson that I think it is a "good practice" 
or "good form."  I tend to say to someone coding aCollection of two strings 
as "bad" or "not a good practice" or "poor form" or similar  (and some of the 
pattern folks *might* say "that's not a pretty pattern").  I tend to think of 
instances as forms and I ask questions such as,  "What is the behavioral 
context of the object?  What aspect of a story made it become alive?  What 
does it need (read as, 'depend upon and interact with')  to be?  What will be 
within *its* context during its lifetime?  How does it behave?  Can I imagine 
other stories that will force it to evolve or mature?"  Forms are the product 
or result of good imaginative modeling.  As Smalltalkers, we are all model-
makers when it comes time to digest a scenario...
Oh, sorry for the long reply.  I remember seeing that "first class" modifier 
last week and I guess that it just didn't sit well with me somehow.  -John F.

