This paper studies {\em why} and {\em how} Smalltalk, although designed as a mono-user and mono-processor programming language, is a very good foundation for concurrent and distributed programming. The two main reasons behind this likely paradox are: the rich and reusable library of classes, and the extreme flexibility of Smalltalk. These two specificities complement more general object-oriented characteristics and advantages. As examples supporting our claim, we overview two different Smalltalk-based software platforms for concurrent and distributed programming.