Squeak SmalltalkJoker Squeak Smalltalk : Philosophy : prevnext Squeak VSE Visualworks Dolphin

VSE is used in serious projects - after its development stopped for years.
It had - and probably still has a very good Windows integration. There was
even a statement from Bill Gates about the good old Digitalk Smalltalk/V.

VW never integrated well into Windows. It has a very sophisticated JIT-VM -
but from design I would prefer Dolphin - which is of course limited to
Windows - but it's superior MVP design can be taken to create a deep
integrated Linux X-Windows version.

It is difficult to argue with a manager today to use Smalltalk - Smalltalk
has it's biggest advantages durin development time - deployment is still
weak.

So the translation to solve the deployment problem is attractive.
And if you can produce Java/ C / C# / C++ or MSIL out of Smalltalk you can
much easier argument with Smalltalk's
Productivity.

And also a problem with almost every Smalltalk if you use an image for
deployment - it is decompilable - so you give
potentially your sources away.

We decided in contrast to SmallScript for our .NET Smalltalk to separate
development ( True Smalltalk ) and
runtime ( translated Smalltalk ).

This argument surely doesn't hold. You can decompile everything (even your
translated code) and the only difference is that selectors, temps and
instance variables give you a pretty good idea what some class is going to
do. You could trivially replace those names that don't interact with your
environment (the API) and change them into something utterly unreadable. And
I want to see the person who can figure out how the balloon engine works if
I rename all the classes to "T1 ... T1000" the selectors to #t1: ... #t1000
and all instVars to t1 ... t1000 ;-) It would even be trivial to make it so
that the names are held in some external map which you can hook up to some
deployed image for debugging.

The point is that any form of a program can be translated in any other
form, given the equivalence theorem of all Turing machines.

It's as easy  to get a C-source from a  machine language "binary" than
it is to get a Smalltalk source from a Smalltalk image. And as easy to
translate   back  to   Smalltalk  from   a  C-source   generated  from
Smalltalk.