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

Hernan Wilkinson hernan.wilkinson at
Fri May 12 20:22:41 UTC 2006

Waldemar Dick wrote:

> Hi,
> I'm a Smalltalk newbie and just want to drop my 2 cents to this
> discussion and maybe vent my frustration a little. Please don't take
> it anyone personal.

No problem.... but let me just say that because you are new to 
Smalltalk, your point of view is not "big" enough, you haven't have the 
time to taste Smalltalk... now, please don't you take it personal.
I have worked with Assembler, C, C++, Java and some C#... but Smalltalk 
is a "one way street". You take it and when you understand it, you don't 
want to go back.

> Hernan Wilkinson schrieb:
> <snip>
>>    I think the problem with Smalltalk is not technical, nor a problem 
>> of education either. We all now that Smalltalk has nothing to envy 
>> from Java, C++, .Net and the like, but the other way around.
> <snip>
>> We all know that Smalltalk has a great VM, has a great environment 
>> and tools and no other main stream language can compete with 
>> Smalltalk on this features.
> <snip>
>>    The problem with Smalltalk is a MARKETING problem, no technical. 
> Sorry, but I don't agree with you. And I will tell you why.
> It depends what you mean by "Smalltalk". If you just mean the language 
> by itself, then you are right,
> no other main stream language can compete with Smalltalk
> If you mean the hole environment, then I can't agree with you.
> One thing Java and .Net have in common, C++ is trying to get and 
> Smalltalk is missing, is a standard
> library set. Every dialect of Smalltalk has its own set.

I don't see this as a problem. The main classes are similar and I don't 
go from one Smalltalk to other coding. We develop in with one Smalltalk, 
why would I need to use other Smalltalk?.
I used to think that one standard library was really important (in my 
Java days), I bought that... but now that I work with Smalltalk, I 
realized I don't need it.

> The languages mentioned above, offer a huge choice in libraries. 
> Smalltalk offers also
> quite a good choice in libraries, but scattered to different dialects.

But what I like about Smalltalk is that if something I look for does not 
exists, I can build it really fast... and also I don't care about the 
number of "libraries" that exists, I care about how good they are, and I 
found Smalltalk solutions to be better that Java and C# ones because 
when you create programs in Smalltalk, your mind set is different, 
therefore the solutions too.

> Which makes finding all needed libraries for a project quite 
> difficult, without
> porting libraries to the preferred dialect.
> Porting Libraries is not a beginners task and actually all the 
> "speedup" I gain
> by using Smalltalk is in vain if I can't reuse a library.

But why do you need to port "libraries"? Anyway, if that's your problem, 
I understand it, but if you want a broad support for different 
platforms, just choose VisualWorks that works in almost all platforms... 
(Squeak also ;-) )

> I don't believe marketing is the main problem, because almost all 
> programmers
> I know, know what Smalltalk is. So, they had contact with  the 
> product, somewhere,
> somehow, but they didn't buy it.

Almost all programmers I know,  "believe" they know Smalltalk, but they 
see Smalltalk from what they know, they see Smalltalk from a Java, C# 
point of view, so they missed a lot of things. For example, they have no 
idea about metaprogramming and its importance (¿how do you find all 
subclasses of a class in java?, no way!), they do not know the 
advantages of programming in the debugger!, every time you want to make 
a change they have to stop the system, make the change and restart!, no 
need for that in Smalltalk. They have no idea about inspectors, they are 
not use to go and touch objects with the inspectors and test the 
changes, they don't understand that the debugger is no more that an 
inspector on the process stack! and because execution contexts are 
objects they can change them, play with them, etc. Almost all people 
that use Java and  C# have no idea about lambda expression (blocks in 
Smalltalk) and its importance in programming... more over, until Java 
came out, they confuse Interfaces with Classes, and still today a lot of 
people don't understand the difference.
Don't get me wrong, I'm not saying you don't, but people that has not 
seriously programmed in Smalltalk for more that six months, will not 
really appreciate all its benefits and its comparison with other 
languages will not be complete.

>> So, the problem with Smalltalk is that it is OLD. 
> The only problem with "OLD" is, if you are looking for documentation and
> find something form like 1996, I always think: this can't be up to date.
> I learned that is doesn't count for the language itself. But if it is 
> some
> library, it it ether really stable or abandoned.

That's good, but not everybody think like you do.... Smalltalk came out 
in the 80's after 10 years or research, so it is really stable. If you 
see at the main hierarchies they have not change!, the Collection 
hierarchy, the Behavior hierarchy, the Number hierarchy.. (another great 
example of what you can not do in Java or C#: just try to get 1000 
factorial.... or just one divided by 3 (1/3)... the Number hierarchy has 
such a polimorphism that no other language I know have...)

> I think the hole Smalltalk community is bigger than it
> appears to be, but sadly scattered and wasting their energy
> reimplementing problems solved in different dialects.

Hey!, the C# community is wasting more money copying Java and vice 
versa! I don't think the Smalltalk community is wasting more money than 
they do!... and the worse thing is that Java and C# will be obsolete in 
10 years or so and Smalltalk will still be alive... of course I can not 
prove it, but just looking how OO languages are getting closer and 
closer to Smalltalk every ten years or so... In ten years we will all 
agree that dynamic typing is better than static typing, that an image is 
better that ten thousand files, etc. Now people accepts that a VM is 
better than not having a VM, that a garbage collector is better than not 
having one, etc. Ten years ago, we do not use to think that way..... So 
I believe it is a matter of time...

> I found in some archives someone bitching about Cincom reimplementing
> the Java Servlets API for their Visualworks WebToolKit. Sure the API  
> is no
> way Smalltalk style, but the idea itself is brilliant. I, as a Java 
> programmer, felt
> immediately at home and comfortable. Though is was a known API to me,
> it felt much easier to use, because of all the advantages of Smalltalk.
> This left a deep impression. And there is the brilliance of this idea:
> Combining something known with something as elegant as Smalltalk,
> is quite attractive.
> Sadly, I came pretty fast to the described library problem. I couldn't 
> find
> a library to write JPEG images. I know Squeak has one, but it doesn't
> have the WebToolKit and porting is beyond my abilities.
> The same goes for databases, etc., etc.

I understand your frustration... it is rare that VisualWorks does not 
handle Jpeg images, but hey, if you like to use other libraries get one 
in C or C++ and use it from Smalltalk! ;-)
About databases, have you try something completely different as 
GemStone?... if you didn't then again, you don't have the whole picture

> So, here I am, trying to decide which dialect I should use,
> if any.

I hope you can make up your mind. My advise, don't take too hard, you 
will be able to do amazing things with either one...
And again, I hope you did not get mad, as you said, it is not personal 
and if I made an invalid presumption about your knowledge, I apologize.


> Thank you for reading.
> Geetings,
> Waldemar Dick

Lic. Hernán A. Wilkinson
Gerente de Desarrollo y Tecnología
Mercap S.R.L.
Tacuari 202 - 7mo Piso - Tel: 54-11-4878-1118
Buenos Aires - Argentina
Este mensaje es confidencial. Puede contener informacion amparada 
por el secreto profesional. Si usted ha recibido este e-mail por error, 
por favor comuniquenoslo inmediatamente via e-mail y tenga la 
amabilidad de eliminarlo de su sistema; no debera copiar el mensaje 
ni divulgar su contenido a ninguna persona. Muchas gracias. 
This message is confidential. It may also contain information that is 
privileged or otherwise legally exempt from disclosure. If you have 
received it by mistake please let us know by e-mail immediately and 
delete it from your system; you should also not copy the message nor 
disclose its contents to anyone. Thanks. 

More information about the Squeak-dev mailing list