Smalltalk: Requiem or Resurgence? {Dr. Dobb's Journal (05/06/06) Chan, Jeremy}

Markus Gaelli gaelli at
Thu May 11 14:25:35 UTC 2006

I think with Smalltalk we made a huge step from the computer centric  
view of computing of

REPL (read / evaluate / print-loop), where
	_the computer_ reads in _text_
	evaluates it,
	and _prints it out text_ to the user

towards a human centric view of computing of what I might call

SEDL (select / evaluate / display-loop), where
	_the user_ is given some context to select a more specific context  
	evaluates it,
	and gets a new context displayed to repeat the loop

Popup-Menus (do it/ print it), tree based browsers, drag n drop, and  
now Etoys are all a logical steps in the journey to follow this  
paradigm shift.

Compare it with the evolution of operating systems, where "in the  
beginning ... was the command line" (a phrase Neal Stephenson is not  
happy anymore with, I understood that he was bashing graphical OSses  
as they even did not allow to descend to the bare bones, which  
certainly should always be possible, he seems happy now with OS-X and  
its shells...) and now everything gets more and more shifted towards  
recognizing and selecting features - and not knowing by heart how to  
type them into some command shell.

We are not there yet, but I think that the editor bound people are  
far behind: I want trees/ drag n drop/ Etoy method-templates/  
examples and tabs for my programming - and certainly always be able  
to execute/debug/inspect/modify _anything_ at anytime.



On May 11, 2006, at 3:59 PM, Alejandro F. Reimondo wrote:

> Hi all,
> IMO we confuse people when we try to talk to them
>  using the same language, and words they use for
>  current tools.
> Some words we use and we *must* think about
>  the convenience to continue doing the same way
>  are:
> -Smalltalk as a (dynamic) language.
>  no comment now on the topic because I have
>  written on it in the past and no answer has been
>  received in this list (why?).
>  -I think it is one of the most important word to confuse
>  people and force them to do not think in other terms
>  than talking to a computer... (instead of building systems
>  or working in a non-declarative manner)
> -"Class"
>  aClass is an element of a formal theory, like aRule
>  but more complex.
>  Java, C++ and all other OOL use classes...
>  because they are languages and can be used *only*
>  declarativelly (in an object ORIENTED way).
>  We use (in Smalltalk) an expression for creating "classes",
>  but really we do not have classes, we have "SPECIES"
>  in smalltalk, because we can use smalltalk in other manner
>  than declarative ways, e.g. doing non-formal activities.
>  I say "sepcies" because they have organic relations
>  conforming an ambience (an open system where
>  evolution can be observed as a subproduct of systems
>  development -not planned- ).
>  Why we talk about "Classes" and not about Species?
>  Have we evaluated the cost of continue talking that way?
>  Why we talk about packages and not about organs
>      and organisms?
>  If we use the same words as scientist used for theory,
>  people will think in terms of known facts, and will
>  compare Smalltalk's syntax, frameworks or other
>  OO povs; but never will be interested in other topics.
>  (most smalltalkers use smalltalk as a very good IDE
>   and design using pieces of paper; and miss the
>   differences between non-formal design and informal
>   design)
> -Image
>  When we talk about "the image", people does not
>  understand the convenience of developing "applications"
>  that way.
>  But also we give people the idea of considering Smalltalk
>   as a container (of objects).
> This kind of argument is valuable for newbies, but must
>  be corrected early in the instruction process, because
>  inhibit people to undestand/realize activities on open
>  systems.
>  The concept of "living" system (I prefer the world "ambient"
>  to do not make analogies to nature)  let people put the
>  formal/declarative way of producing software in its
>  place and recognize that there are situations where
>  we need more than OO techniques to build systems.
> -Variables
>  we use the term "instance variable" for the collaborators
>  of an object.
>  The world variable has well known meaning in traditional
>   computing, and refers to a place in memory that
>  "varies" contents.
>  We put "names" to objects in smalltalk, but do not use
>   variables because we do not consider memory as a
>  directionable (through names nor numbres) device.
> -Assignment
>  we assign a name to an object in smalltalk
>   (we name objects) and the concept is not the same
>   of assigment of a value to a variable as in Pascal.
> -Evolution
>  when we talk about evolution, people understand the
>  term in a colloquial meaning, and most of the time consider
>  that evolution is something that can be produced (an object).
>  Evolution as an emergent/cocnecuence of the survival
>   of a system is something not "natural" for people (nor
>   for Darwin :-P )
> -Message & method
>  people talk about them without paying attention to the
>  differences; if we do not correct the ambiguity sooner
>  the words we say have diferent meaning.
>  If we do the correction, we must not continue talking
>  until sure about the listener undestood the concepts.
>  In both cases dialoge is broken and is not possible
>  to talk to an unknown/big audience.
> -Frameworks and engines
>  It is correct to talk about frameworks in Java and in Smalltalk,
>   because both are usefull to specify anstractions.
>  It is not correct to talk about machines (or engines, an
>   instantiation of a framework) in Java (or C++, or .Net)
>  because they are not ambiences and abstractions
>  are not used/present at the same time as running instances.
> -Code
>  When we talk about (source)code (or genetic code)
>   we are promoting to do not consider the convenience
>   to work with objects.
>  The same occurs when we say that smalltalk is "A/one"
>   language.
>  Smalltalk contains a native language, but can hold many
>   languages each for a diferent context...
> -object ORIENTATED
>  Smalltalk is not object oriented.
>  Java, C++, .net and other oo plataforms and decarative
>  languages are object "oriented" becasue you do not have
>  the object (the instance) to talk to.
> -information
>  people view information as anObject.
>  we can use the ambience to show taht there is another
>  ways of thinking about information (e.g. "information as aProcess")
> ( more on information:
>     spanish version at
> )
> cheers,
> Ale.
> ----- Original Message -----
> From: "Marten Feldtmann" <m.feldtmann at>
> To: "The general-purpose Squeak developers list"
> <squeak-dev at>
> Sent: Thursday, May 11, 2006 3:59 AM
> Subject: Re: Smalltalk: Requiem or Resurgence? {Dr. Dobb's Journal
> (05/06/06) Chan, Jeremy}
>> Klaus D. Witzel schrieb:
>>> Quote:
>>> Jonah Group principal consultant Jeremy Chan cannot verify a
>>> resurgence in  the use of the Smalltalk object-oriented language as
>>> indicated by Georg  Heeg at the recent Smalltalk Solutions  
>>> Conference,
>>> noting that none of his  company's customer requests exhibit a  
>>> desire
>>> for Smalltalk.
>>  I'm not sure, if Georg Heeg means "new" customers. Perhaps he sees
>> reactions
>> from old customers, who remember their investment into Smalltalk 8  
>> years
> ago
>> and these programs are running and runnning ... and now these  
>> customers
>> are updating their application with VW 7.x .
>>  Another story I heard was, that these old customers realized, that
>> money is
>> short and its much cheaper to enhance their old running  
>> applications than
>> to rewrite it from scratch - not knowing, if this would work.
>>  And another rumour was, that these "enhancements" are often against
>> company rules ("we do all with Java in the future") and these  
>> investments
>> are below a magical amount of money, where the local subsidaries of
>> these companies can do the enhancement investment without querying
>> the bosses of the IT departments in the main company.
>>   Another little chance for Smalltalk (again ...) could be a  
>> reborn of
>> dynamically typed languages. I've heard a presentation about what
>> programming languages are missing today and in the future and one of
>> the major points was: meta programming facility. This does not mean
>> reflection as available in .NET or Java - but the powerful systems of
>> LISP and Smalltalk. Signals in this direction comes from some IBM
>> research laboratories and from the .net group from Microsoft.
>>  Marten
>> -- 
>> Marten Feldtmann - Germany - Software Development
>> Information regarding VA Smalltalk and DMS-system
>> "MSK - Mien Schrievkrom" at:

More information about the Squeak-dev mailing list