Newsgroups: comp.lang.smalltalk
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!pipex!sunic!sunic.sunet.se!news.lth.se!news.lu.se!piaget.fil.lu.se!Henrik.Gedenryd
From: Henrik Gedenryd <Henrik.Gedenryd@fil.lu.se>
Subject: Smalltalk FAQ
Content-Type: text/plain; charset=ISO-8859-1
Message-ID: <1995Mar9.174414.4861@nomina.lu.se>
X-Xxmessage-Id: <AB84FC37BB01A11D@piaget.fil.lu.se>
X-Xxdate: Thu, 9 Mar 1995 17:40:55 GMT
Sender: news@nomina.lu.se (USENET News System)
Nntp-Posting-Host: piaget.fil.lu.se
Content-Transfer-Encoding: 8bit
Organization: Lund University Cognitive Science
X-Newsreader: Nuntius 2.0.1_PPC
Mime-Version: 1.0
Date: Thu, 9 Mar 1995 17:44:14 GMT
Lines: 1213

Smalltalk FAQ

This compilation copyright (C) 1994 by Craig Latta. Permission ishereby 
granted for noncommercial reuse, subject to the approval of 
quotedcontributors.  This is a Smalltalk frequently-asked-questions 
(FAQ) document, distributed by Craig Latta (Craig.Latta@NetJam.ORG). It 
is posted fortnightly to the USENET newsgroups comp.lang.smalltalk and
news.answers.  There now exists a WWW-verison (converted by Henrik 
Gedenryd) at http://XCF.Berkeley.EDU/pub/misc/smalltalk/FAQ.  Section 
0.3 describes all the different ways to get this document.  Please send 
contributions, suggestions and comments 
toSmalltalk-request@XCF.Berkeley.EDU. They are greatly appreciated. I 
realizethat information has a short half-life.  Thanks, -C    

Changes

The www version of the FAQ has a history list of changes and addtions, 
with links to their locations. Look there to find out what has been 
changed.    

Contents:

0.0) [Meta-issues]   

    0.1) How can I browse ftp sites and their data without using my own 
    disk space (unless I want to keep data), and locate files on ftp 
    sites, given pathname fragments?
    0.2) Is comp.lang.smalltalk archived or available via email?
    0.3) Where and how can I get this FAQ? 
1.0) [Archival]   

    1.1) What free or low-cost Smalltalk implementations are there? How 
    can I get GNU Smalltalk?
    1.2) What Smalltalk archives are there?
2.0) [Projects]   

    2.1) What is Smallmusic?
    2.2) What is CoolDraw?
    2.3) What is SmallDraw?
    2.4) What work is being done with neural nets in Smalltalk?
3.0) [References]   

    3.1) Can someone recommend a good introduction to 
    Model-View-Controller concepts?
    3.2) Is there a Smalltalk bibliography?
    3.3) What are the "blue book", "purple book", etc?
    3.4) Who are some employers of Smalltalk programmers?
    3.5) What is the Smalltalk Report?
    3.6) Is there a GNU Smalltalk tutorial?
    3.7) What's a summary of multiple inheritance in Smalltalk?
    3.8) What's the status of the ANSI Smalltalk standardization 
    effort?
    3.9) Have there been any studies done on performance differences 
    between complete C++/Smalltalk (specifically ObjectWorks\Smalltalk) 
    applications in terms of runtime and space consumption? 
    3.10) Where can I learn about the history of Smalltalk?
    3.11) How can I get the Smalltalk Resource Guide?
4.0) [Programming issues]   

    4.1) What are some "classic Smalltalk bugs", both in the system and 
    programmer domains?
    4.2) How do I use Pool dictionaries?
    4.3) When browsing sources, I see 't1', 't2', etc., instead of 
    semantically relevant variable names. What's going on?
    4.4) What happened to >>deepCopy in ParcPlace Smalltalk?
5.0) ["Vendor"-specific issues]   

    5.1) How compatible is GNU Smalltalk with Smalltalk-80 (or 
    Smalltalk/V)?
    5.2)* How do I contact the producers of various Smalltalk 
    implementations? 
    5.3) How can I get information about HP distributed Smalltalk?
6.0) [Smalltalk implementation issues]   

    6.1) Is Smalltalk interpreted or compiled?
------------------------------------------------------------------------

 0.0) [Meta-issues]

0.1) How can I browse ftp sites and their data without using my own disk
space (unless I want to keep data), and locate files on ftp sites, given
pathname fragments?

See a separate document in the WWW FAQ.

0.2) Is comp.lang.smalltalk archived or available via email?

Yes:

     Info-CLS (formerly Smalk) is a mailing list which is
     bidirectionally gatewayed with comp.lang.smalltalk (via
     NETNEWS@AUVM.BitNet). Every posting to c.l.s (with distribution
     options USA or world) gets distributed to all subscribers of
     Info-CLS, and vice versa every mailing to Info-CLS gets posted to
     c.l.s.

     There is a mailarchive associated with this list, i.e. every
     posting/mailing gets archived and can be keyword searched by
     e-mail. In order to search the archive, which started somewhere
     around September '92, send a mail message to LISTSERV@vm.gmd.de
     containing something like:

     -----------------------------------cut here----
     //
     Database Search DD=Rules
     //Rules DD *
     Search type & checking in INFO-CLS
     index
     print
     /*
     -----------------------------------and here----
     as the body part of the message. On details for more finegrained
     retrievals, read the doc which is obtainable by sending

          GET LISTDB MEMO


     as the body part of a mail message to the listserv.

     In order to get subscribed, send a mail message to the listserv,
     containing

          SUBSCRIBE Info-CLS Your I. Name


     or drop me a note.

     I want to add that I'm in the middle of preparing about another
     years postings for upload (91-92), and am interested in further
     private loggings for upload.

     The archive is also available via gopher, but unfortunately only
     as monthly chunks - which taaakes aaa looong tiiime to retrieve
     them. I haven't succeeded yet in convincing the staff at
     vm.gmd.de to install software which can make single postings
     available by subject.

     On my wishlist is a system written in (GNU) Smalltalk, accessible
     via TCP/IP, representing some kind of 'remote dictionary'. But
     that's far in the clouds.

     -j|g (Joerg Rade jrade1@gwdg.de)

0.3) Where and how can I get this FAQ?

It is (ostensibly) posted fortnightly to the USENET newsgroups
comp.lang.smalltalk and news.answers.

There now exists a WWW-verison (by Henrik Gedenryd) at
http://XCF.Berkeley.EDU/misc/smalltalk/FAQ.

It is also available by in plain text as

ftp://XCF.Berkeley.EDU/pub/misc/smalltalk/FAQ/FAQ.txt.
ftp://RTFM.MIT.EDU/pub/usenet-by-hierarchy/comp/lang/smalltalk/

Finally, it can be obtained by mail by emailing
Smalltalk-request@XCF.Berkeley.EDU with the subject line "request for
FAQ".
The machine XCF.Berkeley.EDU has IP address 128.32.138.1.

   
------------------------------------------------------------------------
1.0) [Archival]

1.1) What free or low-cost Smalltalk implementations are there? How can 
I get GNU Smalltalk?

GNU Smalltalk is free. The most current location, to my knowledge, is 
ftp://prep.ai.mit.edu/pub/gnu/smalltalk-1.1.1.tar.gz. However, don't use
this site. There is a huge load on it, so you can get things much faster
from the sites below (selected sites taken from 
ftp://prep.ai.mit.edu/pub/gnu/GNUinfo/FTP):

    Two out of many US sites:  wuarchive.wustl.edu:/systems/gnu,  
    archive.cis.ohio-state.edu And these foreign sites: 
    ftp.cs.ubc.ca:/mirror2/gnu (Western Canada),  
    ftp.unicamp.br:/pub/gnu (Brazil), archie.au:/gnu (Australia), 
    ftp.technion.ac.il:/pub/unsupported/gnu(Israel), 
    ftp.sun.ac.za:/pub/gnu (South Africa), archive.eu.net:/gnu (Europe),
    utsun.s.u-tokyo.ac.jp:/ftpsync/prep(Japan ).

    Please do NOT use a site outside your country, until you have 
    checked all sites inside your country, and then your continent. 
    Trans-ocean TCP/IP links are very expensive and usually very low 
    speed.

Little Smalltalk, by Timothy Budd, is available as a book and sources, 
at bookstores. It is also available as

Version 1 [as in the book] 
    ftp://ftp.cs.orst.edu/pub/budd/small.v1.tar.Z 
Version 3 [allegedly slightly better] 
    ftp://ftp.cs.orst.edu/pub/budd/small.v3.tar 
1.2) What Smalltalk archives are there?

There are many. Most of them simply archive GNU smalltalk, but there are
also a few large archives containing many interesting and varied 
sources. All of the sites may be retrieved by invoking 'archie 
smalltalk' (see section 0.1 on 'archie'). For convenience, descriptions 
of a few of the archives follow. If you have a site/announcement you'd 
like included, please let me know.

Location: ftp://XCF.Berkeley.EDU/pub/misc/smalltalk 
    Summary: Smalltalk FAQ, smallmusic discussion archive. 
Location: ftp://mushroom.cs.man.ac.uk/pub/goodies 
    Summary: The Manchester Smalltalk archive. Information about it is 
    posted regularly to comp.lang.smalltalk. 
Location: WWW: http://st-www.cs.uiuc.edu/, FTP: ftp://st.cs.uiuc.edu/pub
    Summary: The UIUC Smalltalk archive (which has local files and a 
    mirror of the Manchester archive.) 
Document: ftp://ccrma-ftp.stanford.edu/pub/st80/README 
    Summary: Information about various Smalltalk-related offerings, 
    including the Musical Object Development Environment (MODE).
Vendors' archives: 

ParcPlace (ObjectWorks, VisualWorks, etc.) 
    gopher://parcbench.parcplace.com/11/ParcBenchII 
QKS (SmalltalkAgents, etc.) 
    WWW page: http://www.qks.com/../netresources.f/netresources.html 
    FTP directly: ftp://ftp.qks.com/pub/
------------------------------------------------------------------------


2.0) [Projects]

2.1) What is Smallmusic?

A work group has formed to discuss and develop an object-oriented 
software system for music. The current environment is Smalltalk 80. The 
email address for the group is smallmusic@XCF.Berkeley.EDU. If you are 
interested in joining the discussion, email 
smallmusic-request@XCF.Berkeley.EDU, with the subject line "add me".

The abstract and outline to a recent version of our working paper 
follows. The document is available via ftp as 
ftp://ccrma-ftp.stanford.edu/pub/st80/OOMR6.t. (No it isn't! --hg)

Thanks, Craig Latta

latta@XCF.Berkeley.EDU
***

Abstract to the working document:

    This document describes an object-oriented description language for 
    musical parameters, events and structures known as the Smallmusic 
    Object Kernel (SmOKe) . In object-oriented software terms, the 
    representation is described in terms of software class hierarchies 
    of objects that share state and behavior and implement the 
    description language as their protocol.

    The authors believe this representation, and its proposed linear 
    ASCII description in Smalltalk-80 syntax, to be well-suited as a 
    basis for: (1) concrete description languages in other languages, 
    (2) specially-designed binary storage and interchange formats, and 
    (3) use within and between interactive multi-media, hypermedia 
    applications in several application domains.

    There is an article about an environment implementing SmOKe, called 
    the Musical Object Development Environment (MODE), in the Computer 
    Music Journal, volume 16 number 3. There's an "outrageously sexy" 
    screen shot of the MODE on the cover.

2.2) What is CoolDraw?

    Newsgroups: comp.lang.smalltalk From: bnfb@csr.uucp (Bjorn 
    Freeman-Benson) Subject: CoolDraw - HotDraw with Constraints (or 
    ThingLab: The Next Generation) Organization: University of Victoria,
    Victoria, BC, Canada Date: Tue, 6 Apr 93 05:15:29 GMT

    A while back I saw a query in this group about updated version of 
    ThingLab. Well, I'm happy to announce that although the name has 
    changed, the philosophy is the same, and CoolDraw is now available 
    via anonymous FTP. Here is the READ.ME:

    CoolDraw Release 3 Documentation 5-Apr-93

    I. What is CoolDraw?

    CoolDraw is a constraint-based object-oriented drawing framework. 
    CoolDraw is similar to other MacDraw-like packages with one major 
    exception: everything in CoolDraw is done with constraints. The user
    interface is done with constraints. Constraints can be added between
    figures. Even the constraint debugger (a future feature) will be 
    done with constraints. The total integration of constraints makes it
    "pretty darn cool". The system is written in ParcPlace Smalltalk-80 
    release 4.1.

    CoolDraw is similar to other systems such as IntelliDraw, Chimera, 
    and Briar. Also note that CoolDraw is a technology demonstration and
    research tool -- not a fully debugged product. Occasionally it 
    requires some loving care. And, quite naturally, it has some 
    unimplemented features.

    II. How do I use it?

    Open a CoolDrawingEditor using the "open" message. On the left is a 
    tool palette. The top tools are the usual drawing tools: selection, 
    move to front, move to back, erase, etc. The middle tools are figure
    creation tools: line, rectangle, ellipse, and so on. The bottom four
    tools are the constraint creation and deletion tools: three for 
    creation (one variable, two variable, and three variable 
    constraints) and one for deletion.

    While you automatically use constraints by just creating figures and
    moving them around on the screen (because the entire system uses 
    constraints internally), if you want to create explicit constraints,
    you have to use one of the tools. The cursor of the tool changes to 
    indicate how many figures have been selected and when enough are 
    selected a dialog box appears with a standard selection of 
    constraints. If you want some other constraint, then press the 
    "Custom" button and a second dialog box offering a complete 
    selection of constraints will appear.

    When the constraint deletion tool is clicked on a figure, it offers 
    a list of all the explicit constraints attached to that figure. Any 
    number can be selected and deleted at once.

    III. How do I get it?

    Anonymous FTP from ursamajor.uvic.ca in 
    ~ftp/ursa/constraints/CoolDraw. [The correct URL is 
    ftp://ursamajor.uvic.ca/ursa/constraints/CoolDraw/. -- hg]

    There are two options. Get the image: 

        cooldraw.image.tar.Z

    or get the source code: 

        cooldraw.source.tar.Z

    IV. What are the bugs?

    Numerous. The major flaws are that the constraint system is not 
    currently powerful enough to solve cycles or simultaneous equations,
    and that there is not a large selection of figures. Minor ones 
    include that the three constraint tool is not implemented.

    The most noticable un-bug is that the constraints do not always do 
    what you expect. This is a well-known problem is constraint research
    and has no known solution short of a mind-reading computer. The 
    constraint hierarchies that CoolDraw uses can help, and future 
    versions will have more default weak constraints to create 
    "expected" behavior.

    V. What are the future plans?

    We intend to continue work on three fronts: (1) fix the details 
    (make more figures available; fix the dialog boxes; provide a wider 
    assortment of built-in constraints; implement the three constraint 
    tool; etc.); (2) improve the constraint solver to deal with more 
    complex constraints yet retain its efficiency; (3) add other cool 
    things such as constraint debugging tools, animation, etc.

    VI. What else should I know?

    Without explicitly inspecting the drawing, there is no access to the
    internal consistency constraints of the figures.

    VIII. Credits and Copyright

    See the startup screen.

    The CoolDraw code is copyright 1993 by Bjorn N. Freeman-Benson, and 
    its commercial use is restricted. For information about the HotDraw 
    or SkyBlue code, contact the respective authors: Ralph Johnson and 
    Michael Sannella.

    Naturally, we would be happy to hear from anyone who uses, plays 
    around with, or just looks at the system.

    Regards,

    Bjorn N. Freeman-Benson

2.3) What is SmallDraw?

    From: benson@siemens.siemens.com (Dan Benson) Subject: SmallDraw for
    VisualWorks Organization: Siemens Corporate Research, Inc Date: Tue,
    29 Jun 1993 18:37:28 GMT

    I recently submitted a version of SmallDraw that now runs under 
    VisualWorks to the Illinois archive. It's availabe via anonymous ftp
    at: st.cs.uiuc.edu as /pub/st80_vw/SmallDraw.VW 

    SmallDraw is a very simple structured graphics editor that was 
    originally written to run under Release 4.0. I wrote a series of 
    three articles for The Smalltalk Report last year in which I used 
    the SmallDraw application to illustrate Release 4 graphics and MVC 
    construction. The modifications to SmallDraw to make it run under 
    VisualWorks were made by David Arctur 
    (arctur@djembe.geoplan.ufl.edu). Thank you David!

    Dan Benson Siemens Corporate Research, Inc. (609) 734-3668 755 
    College Road East dbenson@scr.siemens.com Princeton, NJ 08540 

2.4) What work is being done with neural nets in Smalltalk?

    From: rvl@tomcat1.tomcat.de ( GF) Newsgroups: 
    comp.ai.neural-nets,comp.lang.smalltalk Date: 3 Nov 93 10:25:15 GMT 
    Organization: TOMCAT, Germering, Germany There exists one small 
    implementation of "The simple Neural Network for taught Samples 
    Distinguishing", which has been realised at Technical University in 
    Prague (CVUT) supported by Tomcat. This first version is implemented
    in ST/V, and will be ported to ST/X in the next future.

    For more information the best way is to contact us (with your 
    address), we will send you some papers..., or to contact the CVUT 
    directly via eMail:

    muller@sclab.felk.cvut.cz Dr. Mueller kolar@cslab.felk.cvut.cz Dr. 
    Kolar

    (both are Docs at the university and co-owners of FELTECH ltd. 
    specialised in OO-Technology)

    Richard.

    Tomcat computer GmbH Richard v. Lavante Fruehlingstr. 4 D-82110 
    Germering bei Muenchen Germany eMail rvl@tomcat.de Tel. +49-89-84 99
    92 Fax. +49-89-84 95 44

------------------------------------------------------------------------

3.0) [References]

3.1) Can someone recommend a good introduction to Model-View-Controller
concepts?

     From: ege@blitz.fiu.edu (Dr. Raimund K. Ege)
     Newsgroups: comp.lang.smalltalk
     Subject: Re: MVC -- good introductions?
     Date: 8 Mar 92 18:26:40 GMT
     Organization: Florida International Univ.

     Look at Chapter 10 in the following book that just came out:

     Programming in an Object-Oriented Environment, by Raimund K. Ege
     Academic Press, Inc., San Diego, CA, 1992, hardcover, ISBN
     0-12-232930-9
     To order call 1-800-321-5068.
     (also: Academic Press Limited, London, United Kingdom)

     It presents a complete and thorough introduction to all
     object-oriented concepts. It contains a large example/case study,
     and a comparison of major OO programming languages.

     In addition, the book extends the object-oriented view to all
     elements of the programming environment: data structures and
     algorithms, programming tools, user interfaces, data bases and
     software design.

     Chapter 10 is on user interfaces: it describes and illustrates
     the Smalltalk MVC paradigm (also: InterViews)

     --
     Raimund K. Ege, School of Computer Science
     Florida Int'l University
     ege@scs.fiu.edu (305) 348-3381 University Park
     ege@servax.bitnet FAX (305) 348-3549 Miami, FL 33199

**

     From: asmundvn@dcs.glasgow.ac.uk (Nils Erik Asmundvaag)
     Newsgroups: comp.lang.smalltalk
     Subject: Re: MVC -- good introductions?
     Date: 11 Mar 92 10:56:38 GMT
     Organization: Glasgow University Computing Science Dept.

     The book

          Smalltalk-80: A Practical Introduction (ISBN
          0-273-03105-8)

     by Philip D. Gray & Ramzan Mohamed, 1990,
     and published by Pitman (at least in the UK)
     contains two chapters on interactive applications and the MVC.

     I found it very helpful when first learning about the MVC.

     Nils E. Asmundvaag

    
-----------------------------------------------------------------------
-------
     Nils Erik Asmundvaag
     University of Glasgow, Scotland
     asmundvn@dcs.glasgow.ac.uk asmundvn@uk.ac.glasgow.dcs

**

     From: bruce@utafll.uta.edu (Bruce Samuelson)
     Newsgroups: comp.lang.smalltalk
     Subject: Re: how are st80 views and controllers used?
     Date: 12 Mar 92 14:12:48 GMT
     Organization: UTexas at Arlington, Linguistics

     There are two papers on MVC that provide an introductory overview
     of the pre-version 4.0 ST80 scheme. Much of what's in them also
     applies to version 4.0. I understand that one of PPS's priorities
     in the forthcoming version 4.1 will be improved documentation.
     We'll see how well they explain the new windowing scheme launched
     in version 4.0. It would certainly be helpful to get an overview
     of what's going on before plunging into the source code of the
     myriad new classes.

          (1) A Cookbook for using the Model-View-Controller User
          Interface Paradigm in Smalltalk-80 by Glenn E. Krasner
          and Stephen T. Pope, Journal of Object-Oriented
          Programming, volume 1 number 3, pp. 26-49, 1988

          (2) Applications Programming in Smalltalk-80: How to
          Use Model-View-Controller (MVC) by Steve Burbeck,
          Softsmarts, Inc., copyright 1987.

     The second paper is probably no longer available. I think
     Softsmarts is the company that used to sell a version of
     Smalltalk for 80286 machines but went out of business some years
     ago. The phone number on the paper is listed as 415-327-8100
     (Palo Alto, California). You may try asking ParcPlace (or, less
     likely, Digitalk) if they have copies of Burbeck's paper.

     --
     **********************************************************
     * Bruce Samuelson Department of Linguistics
     * bruce@ling.uta.edu University of Texas at Arlington
     **********************************************************

3.2) Is there a Smalltalk bibliography?

There are many... here is one:

     From: schultz@grebyn.com (Ronald Schultz)
     Newsgroups: comp.lang.smalltalk
     Subject: Smalltalk Relevant Texts
     Date: 10 Jan 92 16:08:05 GMT
     Organization: Grebyn Timesharing

     A list of Smalltalk-relevant texts. Retrieved from the Digitalk
     forum on Compuserve. If you know of any additional texts, please
     let me know. Thanx.

     ============================================
     Ron Schultz
     Berard Software Engineering, Inc.
     Columbus Ohio Office Headquarters
     5634 Claire Court 301 Lakeforest Drive
     Dublin, Ohio 43017 Gaithersburg, Md. 20877
     Phone (614) 798-0295 (301) 417-9885
     FAX (614) 798-0296 (301) 417-0021
     ============================================

     Smalltalk 80 The Language, Adele Goldberg & David Robson
          Addison-Wesley 1989 ISBN 0-201-13688-0
     Smalltalk 80 The Interactive Programming Environment, Adele
     Goldberg
          Addison Wesley 1984 ISBN 0-201-11372-4
     Smalltalk 80 Bits of History, Words of Advice , Glenn Krasner
          Addison Wesley 1984 ISBN 0-201-11669-3
     Inside Smalltalk Volume I, Wilf Lalonde & John Pugh
          Prentice Hall 1991 ISBN 0-13-468414-1
     Inside Smalltalk Volume II, Wilf Lalonde & John Pugh
          Prentice Hall 1991 ISBN 0-13-465964-3
     Object-Oriented Graphics, P. Wisskirchen
          Springer-Verlag 1990 ISBN 3-540-52859-8
     Practical Smalltalk: Using Smalltalk/V, Dan Shafer and Dean A.
     Ritz.
          Springer-Verlag ISBN 0-387-97394-X
     Rapid Prototyping for Object Oriented Systems, Mark Mullen
          Addison Wesley 1990 ISBN 0-201-55024-5
     Object-Oriented Design, Peter Coad and Ed Yourdon
          Yourdon Press 1991 ISBN 0-13-630070-7
     Object Oriented Programming for Artificial Intelligence, Ernest
     Tello
          Addison Wesley 1989 ISBN 0-201-09228-x
     The Well Tempered Object, Stephen Travis Pope
          MIT Press 1991 ISBN 0-262-16126-5
     RefTalk/Vwin, David Carl O'Neal
          NuVista Press 1991 ISBN pending
     Human-Computer Interface Design Guidelines, C. Marlin Brown
          Ablex Publishing 1989 ISBN 0-89391-332-4
     Designing Object-Oriented Software,
          Rebecca Wirfs-Brock, Brian Wilkerson, and Lauren Wiener
          Prentice-Hall 1990 ISBN 0-13-629825-7
     Object Oriented Programming with Smalltalk/V, Dusko Savic
          Ellis Horwood 1990 ISBN 0-13-040692-9
     An Introduction to Object Oriented Programming & Smalltalk
          Lewis Pinson & Richard Wiener
          Addison Wesley 1988 ISBN 0-201-19127-x
     SAA Common User Access Advanced Interface Design Guide
          IBM 1989 IBM Document # SC26-4582-0

     IBM Red Books

          ----(Available from your IBM representative. Contact
          your local office of IBM and request the placing of an
          IBM Red Book Order. If you are an IBM customer, the
          books are free. If you are not an IBM customer, the
          books may have a nominal fee.)----

     A Practical Introduction to Object Oriented Programming
          IBM 1990 IBM Document # GG24-3641
     Object Oriented Design - A preliminary Approach
          IBM 1990 IBM Document # GG24-3647
     Developing a CUA Workplace Application
          IBM 1990 IBM Document # GG24-3580-00
     Managing the Development of Object Oriented Applications
          IBM 1990 IBM Document # GG24-3581-00
     Object Oriented Analysis of the ITSO Common Scenario
          IBM 1990 IBM Document # GG24-3566
     CUA Evaluation
          IBM 1990 IBM Document # GG24-3456
     SAA CUA '91 Guide
          IBM 1991 IBM Document # SC34-4289
     SAA CUA '91 Reference
          IBM 1991 IBM Document # SC34-4290
     SAA - A Guide for Evaluating Applications
          IBM 1991 IBM Document # G320-9803

     ---

3.3) What are the "blue book", "purple book", etc?

     Date: Wed, 11 Nov 92 12:52:39 PST
     From: khaw@parcplace.com (Mike Khaw)

     blue
          Goldberg, Adele, and David Robson, Smalltalk-80: The
          Language and Its Implementation,
          Addison-Wesley, 1983. ISBN 0-201-11371-6. *Out of print*
     orange
          Goldberg, Adele, Smalltalk-80: The Interactive Programming
          Environment,
          Addison-Wesley, 1984. ISBN 0-201-11372-4.
     green
          Krasner, Glenn, ed., Smalltalk-80: Bits of History, Words of
          Advice,
          Addison-Wesley, 1983, ISBN 0-201-11669-3
     purple
          Goldberg, Adele, and David Robson, Smalltalk-80: The
          Language,
          Addison-Wesley, 1989, ISBN 0-201-13688-0

     The books are actually cream or tan. The color referred to is the
     color used as the background of the illustration on the front
     cover (as well as for the Addison-Wesley logo on the spine).

     The purple book is an update/revision of the blue book, with the
     section on the abstract bytecode machine omitted (because it was
     out of date, according to Adele).

     ----------
     Mike

3.4) Who are some employers of Smalltalk programmers?

     From: johnson@m.cs.uiuc.edu (Ralph Johnson)
     Newsgroups: comp.lang.smalltalk
     Subject: Smalltalk employers file
     Date: 18 Sep 92 16:32:43 GMT
     Organization: University of Illinois, Dept. of Comp. Sci.,
     Urbana, IL

     I've noticed a rash of job offers here (I approve of them) and
     decided that I should distribute my list of companies hiring
     Smalltalkers. I have collected this over the years and give it to
     my students. However, the size of the list is significantly
     greater than the number of my students, so I decided to make it
     public. I would be happy to add entries, remove entries, or make
     other changes to it. If you are an employer then you might want
     to take a look at it to see whether you like what I say about
     you, and let me know if you don't. I'll change it, though I like
     *short* entries and have shortened almost everything in here.

     The file is in the Smalltalk archive in /st-docs/smalltalk-jobs.
     You can ftp it from ftp://st.cs.uiuc.edu/pub/st-docs or you can
     use the e-mail archive server (see the recent FAQ). Europeans
     note that this will automatically show up in the Manchester
     archive in a day or so.

     -Ralph Johnson

3.5) What is the Smalltalk Report?

     From: mst@vexpert.dbai.tuwien.ac.at (Markus Stumptner)
     Newsgroups: comp.lang.smalltalk
     Subject: Opinions on Smalltalk Report (Summary)
     Date: 12 Feb 93 11:34:32 GMT
     Organization: DB and ES Subdivision, TU Vienna

     Ok, here are the comments I received about the Smalltalk Report.
     While the sample base is quite small, the response seems
     overwhelmingly favorable. Thanks to all who responded.

     Markus

     ---------------------------------------------------------------------
     I have subscribed since the first issue and I find it to be an
     excellent combination of theoretical and practical articles. John
     Pugh (of LaLonde and Pugh) is the editor.

     On the other hand, I will warn you to expect subscription
     headaches with SIGS Publications. They are probably the worst
     I've ever dealt with and our technical librarian agrees. They are
     barely capable of processing a renewal let alone a new
     subscription or problem.
     ---------------------------------------------------------------------
     We subscribe, last issue was about 20 pages, 2 articles, 3
     columns. I would call it a must read publication.
     ---------------------------------------------------------------------
     I think its pretty good. (But then I should mention, I write for
     it!) It tends toward intermediate, with lots of practical tips
     and examples.
     ---------------------------------------------------------------------
     (This was not an answer to my question, but I include it for
     completeness.) It is a journal published 9 times per year. Cost
     in US is $69. Editor with whom I deal is Paul White
     (white@scs.carleton.ca). The Smalltalk Report, Subscribers
     Services, Dept. SML, PO Box 3000, Denville, NJ 07834-9821.
     --
     Markus Stumptner mst@vexpert.dbai.tuwien.ac.at
     University of Technology Vienna vexpert!mst@relay.eu.net
     Paniglg. 16, A-1040 Vienna, Austria ...mcsun!vexpert!mst

**

     Newsgroups: comp.lang.smalltalk
     From: knight@mrco.carleton.ca (Alan Knight)
     Subject: Re: Smalltalk Report
     Organization: Carleton University
     Date: Mon, 15 Feb 1993 22:30:55 GMT

     The Smalltalk report
     Subscriber Services Dept SML
     PO Box 3000
     Denville NJ USA
     07834-9821

     FAX 212 274 0646

     ISSN 1056-7976

     US$69/year in e US
     US$94/year outside the US

3.6) Is there a GNU Smalltalk tutorial?

Yes:

     From: Steve Byrne
     Date: 28 Feb 1993 03:00:10 GMT
     Organization: Sun Microsystems Inc., Mountain View, CA

     Andy Valencia has very graciously provided an extended tutorial
     document describing the Smalltalk language with respect to GNU
     Smalltalk. It covers a wide variety of topics, and provides a
     general introduction to object oriented programming concepts.

     You may FTP a copy from the usual GNU locations in a few days
     (after it has propagated). Currently, it may be found at:

          ftp://prep.ai.mit.edu/pub/gnu/smalltalk-tutorial.ps.gz
          (PostScript)

     -or-

          ftp://prep.ai.mit.edu/pub/gnu/smalltalk-tutorial.txt.gz
          (ASCII)

     [Use one of the mirrors instead! See section 1.1 for info on GNU
     mirrors. --hg]

     Check it out -- this looks really good!

     Steve

3.7) What's a summary of multiple inheritance in Smalltalk?

     From: mario@cs.man.ac.uk (Mario Wolczko)
     Newsgroups: comp.lang.smalltalk
     Subject: Re: Multiple Inheritance in Smalltalk??
     Date: 20 Apr 93 12:40:27 GMT
     Organization: Dept Computer Science, University of Manchester,
     U.K.

     In article <1qua3qINN9t1@umbc8.umbc.edu>, cs331106@umbc.edu
     (cs331106) writes:

          I have been researching the smalltalk language, and
          have found conflicting reports as to whether or not
          smalltalk is a single or multiple inheritance style
          language. Any answer would be appreciated!

     Yes and no, mostly no. The initial versions of Smalltalk did not
     have multiple inheritance. An MI scheme, written entirely in
     Smalltalk (ie not requiring any virtual machine support), was
     subsequently added. It is described in

          @inproceedings{BorningIngalls82:multipleinheritance,
          author = "A. H. Borning and D. H. H. Ingalls",
          address = "Pittsburgh, PA",
          year = 1982,
          booktitle = "Proceedings of National Conference on
          Artificial Intelligence", pages = "234-237",
          title = "Multiple inheritance in {S}malltalk-80" }

     This was shipped as part of the Smalltalk-80 virtual image, at
     least from version 2.0 (the first "public" release, I believe),
     through 2.3. It was removed in 2.4 (or possibly 2.5). There were
     several technical problems with the implementation, and it didn't
     look like anyone was really using it anyway. It was never
     thoroughly integrated into the system (eg browsers and other
     tools).

     Mario Wolczko
     ______ Dept. of Computer Science Internet: mario@cs.man.ac.uk
     /~ ~\ The University uucp: mcsun!uknet!man.cs!mario
     ( __ ) Manchester M13 9PL JANET: mario@uk.ac.man.cs
     `-': :`-' U.K. Tel: +44-61-275 6146 (FAX: 6236)
     ___; ;_____________the mushroom
     project___________________________________

3.8) What's the status of the ANSI Smalltalk standardization effort?

[ The minutes from the the first ANSI Smalltalk meeting have been lifted
out of the 'core' FAQ, but are available in the WWW FAQ. Unless available
elsewise, I'll archive future ANSI Smalltalk materials I come across on
XCF.Berkeley.EDU, separately. --crl]

3.9) Have there been any studies done on performance differences between
complete C++/Smalltalk (specifically ObjectWorks\Smalltalk) applications
in
terms of runtime and space consumption?

See a separate document in the WWW FAQ or
ftp://XCF.Berkeley.EDU/misc/smalltalk/performance.

3.10) Where can I learn about the history of Smalltalk?

     From: jecel@lsi.usp.br (Jecel Mattos de Assumpcao Jr. (kofuji))
     Newsgroups: comp.lang.smalltalk
     Subject: Re: History of Smalltalk
     Date: 16 Dec 1993 23:31:22 GMT
     Organization: Laboratorio de Sistemas Integraveis - USP - Brazil
     Reply-To: jecel@lsi.usp.br

     [The History of Programming Languages Conferences are] the best
     place to find out about Smalltalk history. Here is a more
     specific reference:

          --------------------------------------------------------
          "The Early History of Smalltalk"
          Alan C. Kay
          The Second ACM SIGPLAN History of Programming Languages
          Conference (HOPL-II)
          ACM SIGPLAN Notices Vol 28 Number 3 March 1993 pp.
          69-75
          ---------------------------------------------------------

     [That issue contains preprints from the conference. It is indeed
     very good. In it, the editors mention that a book from the
     conference is forthcoming. It may be out; I haven't heard. --crl
     I agree that it is really great. Lots of illustrations of various
     kinds, the story about when Steve Jobs of Apple visited them,
     etc. --hg]

               8) I've never seen the famous article within
               the Byte (August-1980) -- it was impossible
               to get information about this article or even
               the article itself. What was the content of
               this article? It's christmas soon: I *really*
               would like to get a copy of this article :-)

          The entire ISSUE was on Smalltalk. Do you mean to say
          that none of your CS libraries have August 80 Byte?
          Hmm, I'll have to guard mine very carefully. And I'll
          see what I can do to brighten your Christmas!

     Actually, the August 80 Byte was about Forth. But the August 1981
     Byte has been out of print for many years, and is about the only
     back issue you can't get. They should reprint those articles as a
     book. I've just lent mine, so this is from memory:

           there are some introductory articles and some on the
          philosophy of the system and object oriented programming.
           there are articles about the graphical programming
          environment ( first look at cut/copy/paste for most people
          ), the graphic prmitives ( first look at bitblt ) and
          drawing programs.
           the implementation is explained, as is an older version of
          virtual memory.
           there is an excelent article on creating data structures in
          Smalltalk, as well as one on creating control structures.

     Jecel

3.11) How can I get the Smalltalk Resource Guide?

     Date: Mon, 10 Jan 1994 14:48:58 -0600
     From: johnson@cs.uiuc.edu
     Subject: smalltalk resource guide

          Has anyone seen a publication
          _Smalltalk Resource Guide_ ?

     It is published and distributed by

          Creative Digital Solutions
          293 Corbett Avenue
          San Francisco, CS 94114
          415.621.4252 (fax and telephone)
          72722.3255@compuserve.com
          cds.sem@applelink.apple.com

     The price is $45, and if you use Smalltalk professionally (i.e.
     if it is worth money to you to know about Smalltalk) then you
     should get it. I was surprised to see so many packages I didn't
     know about in it.

     As they say about themselves:

          The Smalltalk Resource Guide is the only
          Smalltalk-specific directory of Smalltalk products and
          services. it includes products, third-party tools, user
          groups, electronic resources, distributors,
          publications, trade shows, professional organizations,
          and more. It is updated as necessary.

     -Ralph Johnson

   
------------------------------------------------------------------------


4.0) [Programming issues]

4.1) What are some "classic Smalltalk bugs", both in the system and
programmer domains?

See
     ftp://st.cs.uiuc.edu/pub/st-docs/classic-bugs,
and the equivalent place on the Manchester archive:
     ftp://mushroom.cs.man.ac.uk/pub/goodies/uiuc/st-docs/classic-bugs
     (see question 1.2 above for details).

4.2) How do I use Pool dictionaries?

[Following is a 'tutorial' of sorts about Pool dictionaries. --crl]

     Newsgroups: comp.lang.smalltalk
     From: steinman@hslrswi.hasler.ascom.ch (Jan Steinman, Bytesmiths)
     Organization: Bytesmiths, a technical services company
     Date: Thu, 22 Jul 1993 10:51:14 GMT

     [Someone] writes:

          >Firstly I just can't seem to figure out how to define
          "Pool Dictionaries".

     They must exist as a global Dictionary first.

          (Smalltalk includesKey: #MyNewPool) ifFalse:
               [Smalltalk at: #MyNewPool put: Dictionary
               new]


     Since the individual pool variables are actually stored as
     Associations in the using method's literal array (this is
     important to remember!), using a Dictionary instead of an
     IdentityDictionary is needed here. Note the existance test -- if
     you simply create a new pool Dictionary when one already exists,
     all the methods that refer to pool variables will continue to
     refer to the old ones. This causes no end of confusion!

     Then plop 'MyNewPool' into your class definition.

          >Also my understanding of Pool Variables is that they
          have to be "constant" >objects, i.e. objects which do
          not change values, and you just want to share >them
          among objects without having to explicitly pass them.

     Not exactly. As I mentioned, the pool Dictionary Association is
     what is held. This means that you can change the value of a Pool
     Variable at will, with any object, as long as you don't replace
     the Association in the global Dictionary.

     One source of problems is to declare a pool global as an
     IdentityDictionary, which doesn't actually store Associations; it
     makes them up on the fly whenever asked for one. In this case,
     each user of a pool variable will have a different copy, and
     changing one will not change the others.

     Another common problem is forward declarations and file-in. Your
     global Dictionary and all the keys you will use *must* be
     declared prior to file-in, or else the filed-in code will refer
     to Associons in Undeclared, rather than in your global
     Dictionary. It's possible to swizzle the Association from
     Undeclared to the proper pool, but it's better to just make sure
     it exists first.

          I have an object called "Blackbaord", and I want other
          objects in my system to have access to its current
          state. These objects not only acess the Blackboard but
          also send messages to update the blackboard.

     This sounds like a simple global to me. Two reasons why you might
     prefer pools:

     1) you want to limit their scope to a defined set of unrelated
     classes (and their subclasses), or

     2) you have more than one object to share, and you don't want to
     clutter the global name space.

     Pool variables provide an efficient solution to a whole class of
     problems, but they are little understood, and poorly supported.
     The compiler could do a lot of the monkey-business that
     programmers presently have to manage when they use pool
     variables.

     Jan Steinman, Bytesmiths
     2002 Parkside Court, West Linn, OR 97068-2767 USA, +1 503 657
     7703
     Friedlistrasse 19, CH-3006, Bern, Switzerland, +41 31 999 3946

4.3) When browsing sources, I see 't1', 't2', etc., instead of
semantically
relevant variable names. What's going on?

     From: Arno Breunese On Oct 4th, [someone] said:

          Before using VW-1.0a/OW-4.1 on Solaris, I tried an old
          version of OW (2.5) on Mac. One thing I did REALLY
          appreciate was the self documenting environment. Indeed
          almost each class and method from the standard ST
          environment was commented and all formal arguments had
          clear names. Also, the explain command was very
          helpful. On Sun, I had the nasty surprise to see that
          formal parameters are now all named t1, t2, t3, ... and
          that there are no more comments. This is very bad
          news!! So my question is: did I miss some crucial point
          when installing VW/OW or is it just a new product
          policy from ParcPlace? I would be very interested to
          hear from other people having the same problem and from
          someone working at PP.

     I'm sorry to say, but it's your own fault. And you are not alone
     in making this mistake (see previous postings to this newsgroup).
     What happens is this:

     In ParcPlace Smalltalk (OW/VW), the source of all code in the
     image is kept in two files: the sources file (containing the code
     of the basic classes provided with the installation) and the
     changes file (with all the changes and additions you made to the
     originally installed sources). When you are browsing code, the
     System Browser (or anything else you use to browse) looks in the
     global variable SourceFiles to find the sources and changes
     files. If these are present, you will see the code as it was
     originally entered, with nice argument names, with comments etc.
     If the entries in SourceFiles refer to non-existent files, or if
     they are nil, then the code is reconstructed from the bytecode.
     Obviously, no names and no comments can be reconstructed. That's
     were the t1, t2, ... come from.

     What you should do is open a System Workspace (which contains
     hints to change the SourceFiles global) or open an Inspector on
     SourceFiles rightaway. Then make sure that these variables point
     to existing files. You have to take care that the set of sources
     file, changes file and image file are belonging together. Using a
     changes file from a different project leads to _really_strange_
     effects!

     Arno Breunese,
     Control Laboratory,
     Department of Electrical Engineering,
     University of Twente,
     PO Box 217,
     7500 AE Enschede,
     The Netherlands

     e-mail bne@rt.el.utwente.nl

4.4) What happened to >>deepCopy in ParcPlace Smalltalk?

     Newsgroups: comp.lang.smalltalk
     From: eanv20@castle.ed.ac.uk (John Woods)
     Subject: Re: deepCopy in St80 4.1
     Organization: Edinburgh University
     Date: Fri, 3 Dec 1993 10:55:31 GMT

     piplani@rainbow.ecn.purdue.edu (Rajesh Piplani) writes:

          To all the smalltalk-80 gurus out there: I need to make
          deep copy of an object. The book on smalltalk-80 (The
          language) talks about the existence of this method
          (deepCopy), but my installation on unix (release 4.1)
          does not have it. Could somebody help me out? I
          basically need to copy an object with its own instance
          variables.

          Raj

     deepCopy was removed from 4.1 because of problems (cyclic
     dependencies and other things broke it). You can file it in from
     the backward compatability files in the distribution. Or you can
     implement your own method --- a couple of good-looking ones have
     been posted here recently. Check the archives.

     ... John Woods

**

     Newsgroups: comp.lang.smalltalk
     From: dcr0@speedy.gte.com (Dave Robbins)
     Subject: Re: deepCopy in St80 4.1
     Reply-To: drobbins@gte.com
     Organization: GTE Laboratories Incorporated
     Date: Fri, 3 Dec 1993 21:01:52 GMT

     I would suggest implementing a postCopy method in the class whose
     instance variables need to be copied. Object>shallowCopy invokes
     postCopy after completing the basic copying; code in postCopy can
     then make copies of the instance variables:

        postCopy
           super postCopy.
           instanceVariable1 := instanceVariable1 copy.
           instanceVariable2 := instanceVariable2 copy

     and so on.  Browse all implementers of postCopy to see examples of
how this
     is done in quite a few classes in the 4.1 image.<p>

     The 4.1 Release Notes explain (pages 13 and 34) that deepCopy was
removed,
     and why.  In particular, note on page 34 the statement that deepCopy
won't
     even be available as backward-compatibility code in the successor to
4.1.<p>

     Dave Robbins                    GTE Laboratories Incorporated<br>
     drobbins@gte.com                40 Sylvan Rd.<br>
     ...!harvard!bunny!drobbins      Waltham, MA 02254


6.0) [Smalltalk implementation issues]

6.1) Is Smalltalk interpreted or compiled?

[Be prepared for more material on this issue. I've got tons of it, staring
at me at this very moment. I'm starting off with this one mainly because
it's short... again, please feel free to submit. In particular, the whole
issue of just what constitutes "interpreting" is still debated. --crl]

     From: khaw@parcplace.com
     Newsgroups: comp.lang.smalltalk
     Subject: Re: Smalltalk on PC/Compiling
     Date: 12 Jun 93 17:55:40 GMT
     Organization: ParcPlace Systems, Inc.

     [a poster who requests anonymity] writes:

          ...

               4 - Is there a SmallTalk compiler available
               for Dos?

          Not as such... Smalltalk is a P-Machine
          ...

               6 - Is there such a thing as a SmallTalk
               compiler?

          As I said above, it's a P-Machine, not exactly a
          compiler.
          ...

     The term "P-machine" implies that Smalltalk implementations
     interpret pseudo-code. In the first place,
     interpretation/compilation is not a language feature but rather
     an implementation choice. In the second place, ParcPlace
     Smalltalk does not interpret bytecode.

     What happens as a result of a message send in ParcPlace Smalltalk
     is:

          first the system checks to see if the method has already
          been translated to machine code that has been cached in
          memory
          if the native machine code form is in the cache, the system
          executes that machine code
          if the cache doesn't contain a translated form of the
          method, the system dynamically compiles the method's
          bytecode into native machine code, storing into the cache,
          and then executes the code from the cache.

     Dynamic translation yields the benefits of the execution speed of
     compiled code and the space compactness of bytecode. If all the
     code in a running Smalltalk image were kept purely in the form of
     compiled machine code, the image would consume 5-10 times as much
     memory, and therefore could in fact degrade performance on a
     virtual memory system by causing increased paging.

     --

     Michael Khaw khaw@parcplace.com (or
     khaw%parcplace.com@netcom.com)
     ParcPlace Systems, Sunnyvale, CA PRODUCT INFO: info@parcplace.com

   
------------------------------------------------------------------------
