From ankh.iia.org!uunet!gatech!howland.reston.ans.net!agate!sting.Berkeley.EDU!root Sun Nov 27 21:33:47 1994
Path: ankh.iia.org!uunet!gatech!howland.reston.ans.net!agate!sting.Berkeley.EDU!root
From: Craig Latta <Craig.Latta@NetJam.ORG>
Newsgroups: comp.lang.smalltalk,news.answers,comp.answers
Subject: Smalltalk Frequently-Asked Questions (FAQ)
Supersedes: <smalltalk-faq_783971705@xcf.berkeley.edu>
Followup-To: poster
Date: 16 Nov 1994 07:03:18 GMT
Organization: Experimental Computing Facility (XCF), UC Berkeley
Lines: 864
Approved: news-answers-request@MIT.EDU
Distribution: world
Expires: 1 Dec 1994 07:00:04 GMT
Message-ID: <smalltalk-faq_784969204@xcf.berkeley.edu>
Reply-To: Smalltalk@XCF.Berkeley.EDU
NNTP-Posting-Host: sting.berkeley.edu
Summary: This posting contains a list of frequently-asked questions
		(and their answers) about the Smalltalk programming
		language and environment
Originator: root@sting.Berkeley.EDU
Xref: ankh.iia.org comp.lang.smalltalk:6923 news.answers:14828 comp.answers:4794

Archive-name: smalltalk-faq
Last-modified: 1994/10/4
Version: 4.1


This compilation copyright (C) 1994 by Craig Latta. Permission is
hereby granted for noncommercial reuse, subject to the approval of
quoted contributors.

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/misc/smalltalk/FAQ.

Section 0.3 describes all the different ways to get this document. 

Please send contributions, suggestions and comments to
Smalltalk-request@XCF.Berkeley.EDU. They are greatly appreciated!


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 co
mplete 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, a
nd 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, Subsc
ribers 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 , 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:

o there are some introductory articles and some on the philosophy of the system and object oriented programming.
o 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.
o the implementation is explained, as is an older version of virtual memory.
o 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 original
ly 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. 

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.

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

5.0) ["Vendor"-specific issues]

5.1) How compatible is GNU Smalltalk with Smalltalk-80 (or SmalltalkV)? 

From: Steve Byrne
Newsgroups: comp.lang.smalltalk
Subject: Re: GNU Smalltalk Compatibility Date: 12 Dec 92 00:52:04
Organization: FSF hackers, Smalltalk division 

In article irvine@ntmtv.UUCP (Chuck Irvine) writes: 

How compatible is GNU Smalltalk with Smalltalk-80 (or SmalltalkV)? Just curious.
Thanks

This is probably in the FAQ list [it is now... --crl], but here goes anyway. GNU Smalltalk tries to be syntax compatible with the language described in the blue/purple book (ST-80: the Language*). I think the only discrepancy is that GNU Smalltalk doesn't allow block local temporary variables.

Steve

[Note, however, that the class library for GNU Smalltalk is very much in its infancy. Most importantly, it has little in the way of graphical user-interface classes. --crl]

5.2)* How do I contact producers of various Smalltalk implementations? 

Digitalk may be reached at {info, sales}@digitalk.com. ParcPlace may be reached at {info, sales}@parcplace.com. QKS:s home page is at http://www.qks.com , and they can be contacted at info@qks.com.

Newsgroups: comp.lang.smalltalk
From: mjb@netcom.com (Martin Brown)
Subject: FYI: new Digitalk addresses
Organization: NETCOM On-line Communication Services (408 241-9760 guest) Date: Tue, 21 Sep 1993 09:10:44 GMT

Digitalk:

Effective Monday, September 20, all Digitalk departments EXCEPT development, support and documentation have moved to brand-new, shining corporate offices in Orange County, CA. The new address and phone: 

Digitalk, Inc.
5 Hutton Center
Santa Ana, CA 92707-5754
714-513-3000 (phone)
714-513-3100 (fax)

Digitalk also has offices in Portland, Chicago and New York. The numbers are:

Digitalk Portland (training, consulting) 503-691-0800 (phone)
503-691-2742 (fax)

Digitalk Chicago (sales)
312-444-2065 (phone)
312-641-3096 (fax)

Digitalk New York (sales)
212-808-3068 (phone)
212-808-3020 (fax)

[message ends]

ParcPlace:

ParcPlace information may be reached at info@parcplace.com. 

From: Alistair Grant
Date: 6-MAY-1994 08:11:26.23
Subj: ParcPlace Aus. & NZ distributors for ST FAQ 

Hi--

We are the Australian and New Zealand distributors of ParcPlace products. As we have had a few people mention that getting contact details for us was not easy I thought I would pass on the following for inclusion in the Smalltalk FAQ, if you are interested:

ParcPlace Australian and New Zealand distributors: 

MITS Ltd.
13th Floor
474 Flinders St.
Melbourne, 3000
Australia
Phone: +61 3 613 9000
Fax: +61 3 613 9500
E-Mail: pps-info@mits.com.au
ask for Richard Doherty

Cheers,

Alistair

Internet: alistair@mits.com.au
Phone: +61 3 613 9005
Mobile: 018 594 347

[feel free to contribute additional info --crl] 

5.3) How can I get information about HP distributed Smalltalk? 

Newsgroups: comp.lang.smalltalk
From: blank@faw.uni-ulm.de (Karlheinz Blank) Organization: FAW (Research Institute For Applied Knowledge Processing, Ulm, Germany)
Date: Wed, 25 Aug 1993 07:10:34 GMT

You can get information about HP-Distributed Smalltalk From: 

Public Relations Department
3000 Hanover Street
Palo Alto, California 94304
(408) 447-5330
Karlheinz Blank, Research Institute for Applied Knowledge Processing Internet: BLANK@faw.uni-ulm.de

_________________________________________________________________________ ______________________________

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: 

o first the system checks to see if the method has already been translated to machine code that has been cached in memory o if the native machine code form is in the cache, the system executes that machine code
o 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 

_________________________________________________________________________ _____

end
-- 
-----------------------------------------------------------------------------
Craig R. Latta          |  Experimental Computing Facility, UC Berkeley (XCF)
Composer and            |  Atari Games Audio Group         <Latta@AGames.COM>
    Computer Scientist  |  The NetJam Project            <NetJam-request@XCF>
Craig.Latta@NetJam.ORG  |  The Smallmusic Project    <Smallmusic-request@XCF>
(standard  disclaimer)  |  Biggles' Home for the Oversubscribed (wanna join?)
-----------------------------------------------------------------------------

