[comp.lang.smalltalk] Objectworks for Smalltalk-80

benson@blake.acs.washington.edu (Dan Benson) (02/23/90)

I've been using Digitalk's Smalltalk/V 286 but would like to be able to
go to other platforms eventually (like the new IBM RS/6000 workstations)
so I am thinking about ParcPlace's Smalltalk-80.

I was told that Smalltalk-80 is a superset of Digitalk's Smalltalk and 
that it was more portable between platforms.  I'd like to hear from
experienced users how they feel about ParcPlace's product (apparently
they like to call it Objectworks for Smalltalk-80 instead of simply
Smalltalk-80).

From what I know, Digitalk and ParcPlace are the two main Smalltalk
producers.  Are there any more that support popular platforms?

Basically, I'd like to hear your impressions of the various Smalltalk
systems, both good and bad.  Please email responses directly to me and
I can repost a summary if there is any interest on the net.

Thanks,
-- 
| Dan Benson                        benson@ee.washington.edu    |
| Dept. of Elec. Engr., FT-10                                   |
| University of Washington                                      |
| Seattle, WA  98195                                            |

woods@robohack.UUCP (Greg A. Woods) (02/24/90)

In article <5888@blake.acs.washington.edu> benson@blake.acs.washington.edu (Dan Benson) writes:
> I've been using Digitalk's Smalltalk/V 286 but would like to be able to
> go to other platforms eventually (like the new IBM RS/6000 workstations)
> so I am thinking about ParcPlace's Smalltalk-80.

It is certainly nice!  The only problem is its limited portability at
this point.  I understand it only runs on Sun's and DEC 3100's.

> I was told that Smalltalk-80 is a superset of Digitalk's Smalltalk and 
> that it was more portable between platforms.  I'd like to hear from
> experienced users how they feel about ParcPlace's product (apparently
> they like to call it Objectworks for Smalltalk-80 instead of simply
> Smalltalk-80).

I'm not a user, just a fan....  (I spent some time at their booth at
UniForum W90-DC)

Digitalk's "smalltalk" is a subset/re-implementation of Smalltalk-80.
ParcPlace is a collection of former Xerox employees.  They have
purchased rights for full Smalltalk-80, and enhanced it considerably.
It is now a real commercial product, and a useable one at that.
ObjectWorks is the programming environment traditionally thought of as
part of the Smalltalk-80 language.

Xerox have in fact bought it back and are using it to develop some
really neat new applications.

> From what I know, Digitalk and ParcPlace are the two main Smalltalk
> producers.  Are there any more that support popular platforms?

As far as I'm concerned Xerox and ParcPlace are the only producers of
the Smalltalk-80 language!  I beleive the Xerox original version runs
on more platforms at this time.  It is reasonably priced as well.

> Basically, I'd like to hear your impressions of the various Smalltalk
> systems, both good and bad.  Please email responses directly to me and
> I can repost a summary if there is any interest on the net.

I used Digitalk/V some time ago on a 386 system.  It was fast and
usable, but I had some major problems with it.  The allowance of a one
or two button mouse was a real pain in the neck.  They should have
forced a three button one!  The language had a few quirks.  The
compiler was not written in smalltalk.  The set of primitives was all
different (i.e. not bytecodes).  The debugger was severely limited as
such.  The browsers were definitely subsets, and much functionality
was missing.

My prior experience with Smalltalk was on a Xerox Dolphin.

If you want Smalltalk, use Smalltalk, not some imitation!  The same
goes for ParcPlace's Objectworks for C++.  It's not Smalltalk, just a
neat programming environment for C++.
-- 
						Greg A. Woods

woods@{robohack,gate,eci386,tmsoft,ontmoh}.UUCP
+1 416 443-1734 [h]   +1 416 595-5425 [w]   VE3-TCP   Toronto, Ontario; CANADA

kentb@argosy.UUCP (Kent Beck) (02/27/90)

This is in response to someone who said that Digitalk Smalltalk was not
"real".  Both Digitalk and ParcPlace's versions of Smalltalk are "real"
in the sense that both support the same style of programming, have many
functionally equivalent tools, and use the same source language.  They
are available on different platforms, with different pricing strategies,
and different target audiences.  To say that one is more real than the
other is to ignore the intentional differences between the products.

Kent

dg@sisyphus.sybase.com (David Gould) (02/28/90)

In article <1990Feb24.144603.2644@robohack.UUCP> woods@robohack.UUCP (Greg A. Woods) writes:
>  ...
>Digitalk's "smalltalk" is a subset/re-implementation of Smalltalk-80.
>ParcPlace is a collection of former Xerox employees.  They have
>purchased rights for full Smalltalk-80, and enhanced it considerably.
>  ...
>As far as I'm concerned Xerox and ParcPlace are the only producers of
>the Smalltalk-80 language!  I beleive the Xerox original version runs
>on more platforms at this time.  It is reasonably priced as well.
> ...

Digitalk Smalltalk is a real implementation of the Smalltalk-80 language.
It is the environment and class library that are somewhat different.
Also, for those of us spending our own money, ParcPlace at $695 and up is not
reasonably priced compared to Digitalk at $75 and up.

>I used Digitalk/V some time ago on a 386 system.  It was fast and
>usable, but I had some major problems with it.  The allowance of a one
>or two button mouse was a real pain in the neck.  They should have
>forced a three button one!  The language had a few quirks.  The
>compiler was not written in smalltalk.  The set of primitives was all
>different (i.e. not bytecodes).  ...

- I expect that the ParcPlace Smalltalk-80 on the Mac uses a one button mouse
  as does Digitalk Smalltalk.  I personally like two buttons best, one 2cd and
  hate three, but software must adapt to the available hardware.
- The Digitalk compiler is written in Smalltalk, but I agree it would have
  been  much nicer if they had provided the source too.
- Who cares about bytecodes? Why? This is purely an implementation issue, not
  a language issue.

				- dg

------  All opinions are mine and may or may not represent Sybase Inc.  ------
David Gould       dg@sybase.com        {sun,lll-tis,pyramid,pacbell}!sybase!dg
                  (415) 596-3414      6475 Christie Ave.  Emeryville, CA 94608

johnson@p.cs.uiuc.edu (02/28/90)

I will argue with Greg Woods a little.

ParcPlace is the owner of the Smalltalk-80 trademark.  The latest version
of Smalltalk-80, 2.5, runs on Macs, 386 based machines, Sun 3s and Sun 4s,
and some HP machines.  It is very portable, and would run on more machines
if ParcPlace wanted it to sell it on more machines.  2.5 has all sorts of
nice features, such as exception handling and a good binary object storage
system.

Smalltalk V, by Digitalk, is also nice.  Smalltalk V is a smaller system,
and runs well on smaller machines.  Smalltalk-80 does not run well on
smaller machines.  On the other hand, Smalltalk V has a smaller class
library, so Smalltalk-80 is putting the space it consumes to a good use.
Smalltalk V on a Mac looks like a Mac application, while Smalltalk V
on OS/2 looks like a Presentation Manager application.  As you might
expect, the Mac and OS/2 versions of Smalltalk V are not completely
compatible.  On the other hand, you can use the exact same image for
Smalltalk-80 on the Mac, the Sun 3, and the Sun 4.  Of course, the
resulting programs don't look like anything else on the Mac or the Suns.
Originally Smalltalk-80 was around a thousand dollars and Smalltalk V
was under a hundred dollars, so there are probably more Smalltalk V
users than Smalltalk-80 users.  ParcPlace has lowered their prices
and Digitalk raised theirs, so the prices are not so different now.

Both systems are nice.  I am more familiar with Smalltalk-80, so it is
not surprising, and probably not significant, that I prefer it.  I
talk with lots of companies that use Smalltalk-V, so you will be in
good company no matter which path you take.

Ralph Johnson - University of Illinois at Urbana-Champaign

new@udel.edu (Darren New) (03/01/90)

By the way, contrary to an earlier post, Objectworks is not a C++ development
system.  It is Smaltalk-80 Version 2.5 from ParcPlace.  Unless ParcPlace
is using Objectworks to mean two different systems or unless somebody is
stepping on sombody else's trademarks, Objectworks is Smalltalk, not C++.
		 -- Darren

hansell@oboe.cis.ohio-state.edu (Timothy Hansell) (03/01/90)

In article <12527@nigel.udel.EDU> new@udel.edu (Darren New) writes:
>By the way, contrary to an earlier post, Objectworks is not a C++ development
>system.  It is Smaltalk-80 Version 2.5 from ParcPlace.  Unless ParcPlace
>is using Objectworks to mean two different systems or unless somebody is
>stepping on sombody else's trademarks, Objectworks is Smalltalk, not C++.
>		 -- Darren

Actually, Objectworks is the name that ParcPlace is applying to 
the underlying environment  ( in ST-80 lingo the virtual-machine )
and they have used that environment to create a programming environment
for C++  ( which was supposed to be called Synergy ).

Thus what was Smalltalk-80 is now Objectworks for Smalltalk
and what was to have been synergy is
	Objectworks for C++

The images is built up on top of the virtual machine, and for Smalltalk
the compiler compiles st-80 into the byte-codes that the virtual machine
executes, while in C++ the compiler is a C++ compiler into byte-codes.

Given the scheme they have implemented Smalltalk in they could implement
just about any language this way ( provided it is object based )


-tim

Tim Hansell
hansell@cis.ohio-state.edu
P.O. Box 687 South Charleston, Ohio, 45268

atoenne@laura.UUCP (Andreas Toenne) (03/01/90)

In article <77720@tut.cis.ohio-state.edu> Tim Hansell <hansell@cis.ohio-state.edu> writes:
>The images is built up on top of the virtual machine, and for Smalltalk
>the compiler compiles st-80 into the byte-codes that the virtual machine
>executes, while in C++ the compiler is a C++ compiler into byte-codes.
>
>Given the scheme they have implemented Smalltalk in they could implement
>just about any language this way ( provided it is object based )


WRONG!

Objectworks for C++ contains! the AT&T C++ compiler. The Smalltalk80
part of Cynergy is used for it's superior user-interface only.
As far as I'm told, the C++ compiler (and a special debugger with
certain hooks) is used to parse, compile and run the C++ software.
Cynergy uses the parsed information to maintain the C++ sources in
handy chunks and allows for cross-referencing etc. 

Concerning Objectworks for Smalltalk80....

it runs on DEC3100 and PCS RCU too.
Additionaly the version 2.3 runs on PCS Cadmus and the Atari ST.
(A port to 2.5 is planned but not yet scheduled)


	Andreas Toenne
	atoenne@unido.uucp

johnson@p.cs.uiuc.edu (03/02/90)

Tim Hansell is almost right about Objectworks.  ParcPlace does have
two products, Objectworks for Smalltalk-80 and Objectworks for C++.
However, the C++ system does NOT compile C++ into byte-codes.
Instead, Objectworks for C++ is a programming environment for C++
that is written in Smalltalk.  It uses regular C++ compilers (in
particular, the AT&T one), but executes them on the command of
the Smalltalk program.  Of course, Smalltalk is invisible to the
user of Objectworks for C++, so C++ programmers don't have to be
frightened that they will be forced to learn a better language!

Ralph Johnson  --  Smalltalk and C++ programmer

jlhaferman@l_cae05.icaen.uiowa.edu (Jeffrey Lawrence Haferman) (03/02/90)

From article <80500090@p.cs.uiuc.edu>, by johnson@p.cs.uiuc.edu:
> 
> Tim Hansell is almost right about Objectworks.  ParcPlace does have
> two products, Objectworks for Smalltalk-80 and Objectworks for C++.
> However, the C++ system does NOT compile C++ into byte-codes.
> Instead, Objectworks for C++ is a programming environment for C++
> that is written in Smalltalk.  It uses regular C++ compilers (in
> particular, the AT&T one), but executes them on the command of
> the Smalltalk program.  Of course, Smalltalk is invisible to the
> user of Objectworks for C++, so C++ programmers don't have to be
> frightened that they will be forced to learn a better language!
> 

Could someone please tell me what machines Objectworks for C++ is available
for?  Specifically, I am looking for a C++ for the Macintosh.  I know
Objectworks for Smalltalk-80 is available for the Mac, but the only
C++ compiler for the Mac I know of is part of MPW.  



Jeff Haferman  jlhaferman@icaen.uiowa.edu
University of Iowa
Department of Mechanical Engineering

benson@blake.acs.washington.edu (Dan Benson) (03/03/90)

In article <776@ns-mx.uiowa.edu> jlhaferman@l_cae05.icaen.uiowa.edu (Jeffrey Lawrence Haferman) writes:
>
>Could someone please tell me what machines Objectworks for C++ is available
>for?  Specifically, I am looking for a C++ for the Macintosh.  I know
>Objectworks for Smalltalk-80 is available for the Mac, but the only
>C++ compiler for the Mac I know of is part of MPW.  
>
>Jeff Haferman  jlhaferman@icaen.uiowa.edu

I just got some literature from ParcPlace and they only list Objectworks
for C++ (v 1.0) for the Sun-3.  It lists for $2495.

You can verify it by calling ParcPlace at (415) 691-6715

-- 
| Dan Benson                        benson@ee.washington.edu    |
| Dept. of Elec. Engr., FT-10                                   |
| University of Washington          (206) 685-7567              |
| Seattle, WA  98195                                            |

khaw@parcplace.com (Mike Khaw) (03/04/90)

Actually...

ParcPlace Systems has
	(a) Objectworks for Smalltalk-80, which used to be called
		just "Smalltalk-80".
	(b) Objectworks for C++, whose early prototypes were called
		Cynergy (a pun on "C" +(+) "synergy").

The intent of the name "Objectworks" is, among other things
	(a) to emphasize that the Smalltalk-80 product is not only a
		language, but an integrated development environment.
	(b) to assert the "family resemblance" between Objectworks
		for Smalltalk-80 and and Objectworks for C++; i.e.,
		that the latter is also an integrated development
		environment for an object-oriented programming language.
	(c) to capitalize on market interest in object-oriented
		products by including the word "object" in the products'
		names.
	(d) to make clearer to those unacquainted with Smalltalk-80
		that it is an object-oriented programming system
		(we've actually had people ask if Smalltalk was a
		data communications application).

So, as San Franciscans say "don't call it 'Frisco", ParcPlace people
say "don't call it Objectworks" - we won't know whether you mean
"... for Smalltalk-80" or "... for C++" until you've established the
context.
-- 
Mike Khaw
ParcPlace Systems, Inc., 1550 Plymouth St., Mountain View, CA 94043
Domain=khaw@parcplace.com, UUCP=...!{uunet,sun,decwrl}!parcplace!khaw

mdr@reed.bitnet (Mike Rutenberg,c/o Box 539,,6135493346) (03/06/90)

In article <776@ns-mx.uiowa.edu> jlhaferman@l_cae05.icaen.uiowa.edu (Jeffrey Lawrence Haferman) writes:
>Could someone please tell me what machines Objectworks for C++ is available
>for?  Specifically, I am looking for a C++ for the Macintosh.  I know
>Objectworks for Smalltalk-80 is available for the Mac, but the only
>C++ compiler for the Mac I know of is part of MPW.  

My understanding is that Objectworks C++ is a huge huge system that
requires on the order of 24 MBytes of RAM to get started.  This might
almost rule out the Mac as it stands now.

I suspect that Objectworks C++ might be more tied to Unix facilities
than in normal Objectworks Smalltalk since it has to tightly coordinate
with the existing compilers.

Mike

khaw@parcplace.com (Mike Khaw) (03/08/90)

mdr@reed.bitnet (Mike Rutenberg,c/o Box 539,,6135493346) writes:

>My understanding is that Objectworks C++ is a huge huge system that
>requires on the order of 24 MBytes of RAM to get started.  This might

There was a typo in the Objectworks for C++ installation doc. that said
that it needed a Sun with a minimum of 23 Mb. The correct number is 12 Mb.
But it doesn't all go to Objectworks for C++ ...

In fact, I just fired up vanilla version 1.02 (the latest version
shipping) on my Sun3, and "ps axu" shows a resident set size of 4.5 Mb
and a total size of 6.5 Mb.
-- 
Mike Khaw
ParcPlace Systems, Inc., 1550 Plymouth St., Mountain View, CA 94043
Domain=khaw@parcplace.com, UUCP=...!{uunet,sun,decwrl}!parcplace!khaw

khaw@parcplace.com (Mike Khaw) (03/08/90)

atoenne@laura.UUCP (Andreas Toenne) writes:

>In article <77720@tut.cis.ohio-state.edu> Tim Hansell <hansell@cis.ohio-state.edu> writes:
>>The images is built up on top of the virtual machine, and for Smalltalk
>>the compiler compiles st-80 into the byte-codes that the virtual machine
>>executes, while in C++ the compiler is a C++ compiler into byte-codes.

Just to clarify, when you "accept" a new method in Smalltalk-80 the
compiler compiles it into byte codes. When that method is invoked, the
byte code representation is dynamically translated to machine code and
kept in a "native method" cache. The byte code representation saves
space, while dynamic translation is more efficient than interpreting
the byte codes.

>Concerning Objectworks for Smalltalk80....

>it runs on DEC3100 and PCS RCU too.
>Additionaly the version 2.3 runs on PCS Cadmus and the Atari ST.
>(A port to 2.5 is planned but not yet scheduled)

The PCS RCU, PCS Cadmus and Atari ST versions are by Georg Heeg, Dortmund,
W. Germany.

The DecStation version is by ParcPlace systems and runs on all models of
that line (MIPS CPU, Ultrix OS).
-- 
Mike Khaw
ParcPlace Systems, Inc., 1550 Plymouth St., Mountain View, CA 94043
Domain=khaw@parcplace.com, UUCP=...!{uunet,sun,decwrl}!parcplace!khaw

khaw@parcplace.com (Mike Khaw) (03/08/90)

jlhaferman@l_cae05.icaen.uiowa.edu (Jeffrey Lawrence Haferman) writes:

>Could someone please tell me what machines Objectworks for C++ is available
>for?  Specifically, I am looking for a C++ for the Macintosh.  I know

Objectworks for C++ is currently available for Sun3 and Sun4 (aka Sparc).
Please contact sales at ParcPlace Systems for details:

	voice: 800-822-7880
	email: ...!{uunet,sun,decwrl}!parcplace!info
-- 
Mike Khaw
ParcPlace Systems, Inc., 1550 Plymouth St., Mountain View, CA 94043
Domain=khaw@parcplace.com, UUCP=...!{uunet,sun,decwrl}!parcplace!khaw

jans@tekgvs.LABS.TEK.COM (Jan Steinman) (03/10/90)

<khaw@parcplace.com (Mike Khaw)>

<Just to clarify, when you "accept" a new method in Smalltalk-80 the compiler 
compiles it into byte codes.  When that method is invoked, the byte code 
representation is dynamically translated to machine code and kept in a "native 
method" cache. The byte code representation saves space, while dynamic 
translation is more efficient than interpreting the byte codes.>

Assuming you are going to use the method again before the cache flushes, native 
code via "dynamic translation" is faster.  However, DT has it's own overhead, 
which must be amortized over a number of executions just to break even.  DT 
works great on things that loop a lot -- like benchmarks.

Interpreting byte codes is not very expensive if the interpreter is tightly 
coded in assembler.  PPS has chosen a C implementation for portability.  On 
typical, UI intensive Smalltalk code, I find an efficient assembly coded 
interpreter to be faster than a C interpreter with DT.

							   Jan Steinman - N7JDB
					Tektronix Electronic Systems Laboratory
					Box 500, MS 50-370, Beaverton, OR 97077
						(w)503/627-5881 (h)503/657-7703