I want to know in which applications/programming domain are most suitable for Smalltalk. Could anyone please provide me some useful links that could answer my query?

Through googling I learned that some companies use it for:

logistics and foreign trade application desktop, server and script development data processing and logistics, scripts and presentations but I cant find documents/research papers that can tell me which programming domain Smalltalk-80 (or Smalltalk) is best suited.

Some of the programming domains are: - Artificial intelligence reasoning - General purpose applications - Financial time series analysis - Natural language processing - Relational database querying - Application scripting - Internet - Symbolic mathematics - Numerical mathematics - Statistical applications - Text processing - Matrix algorithms

I hope you guys can help me. I am doing this for my case study. Thanks in advance.

  • 6
    "in the past" was my first thought ;-) Nov 30 '10 at 14:45
  • @Steven A. Lowe. My thought was in a time machine. Nov 30 '10 at 22:58
  • Too bad this is closed. I think Smalltalk is an outstanding student language for teaching concepts of computer science, mainly because of the ready access to everything, down to Method, Class, Behaviour, and even Context. Because of the tight integration of system-level structures and the Smalltalk-80 IDE, students can readily explore things, and even change them and see what happens! For example, one might change the search algorithm for Dictionary, an see what happens. Few other systems make such learning opportunities so readily available. (No, "go read the source code" does not count!) Dec 27 '18 at 7:19

Smalltalk is a general-purpose programming language that is used for all sorts of stuff.

A lot of consulting companies treat Smalltalk as their "secret weapon" that allows them to outbid and outperform their competitors, for example. Some of them even go so far as to develop their own Smalltalk implementations.

E.g. Smalltalk/X is the in-house platform for eXept Software. In a similar vein, Lesser Vision-Smalltalk is the secret weapon of Lesser Software. They actually use it for Windows desktop applications.

It is widely used in the financial industry for modeling complex financial products such as derivatives, swaps, etc. So widely, in fact, that some Smalltalk community leaders have jokingly accepted full responsibility for the 2007 meltdown.

Smalltalk excels the more complex the domain is. Trendly uses an interesting mix of languages and its lead developer, Avi Bryant, gave a good description of what the particular languages are useful for. He said something like "we use Smalltalk for the thinking, Java for the muscle, ECMAScript for the pretty face and Ruby to glue it all together". So, the complex statistical models and algorithms are in Smalltalk, the actual brute-force calculations are done in Java and the results are rendered dynamically on the client-side in ECMASCript.

  • "Smalltalk as their "secret weapon"" That sound like a joke or a conspiracy theory.
    – jinawee
    Dec 5 '20 at 15:39

Asking the question "where is (programming language X) best used?" is equivalent to asking "which road is (car brand X) best driven on?". The question cannot be answered. I've used (and continue to use) Smalltalk for a wide variety of problems. From your list, I've used Smalltalk for artificial intelligence, general purpose applications, relational database querying, text processing, matrix algorithms, and other uses (although once one has said "general purpose applications" one has probably covered just about everything). I strongly suspect that Smalltalk (and just about any language out there) has been used for all the categories you mentioned. Having said that, what has been "proved"? Nothing, IMHO. Smalltalk is a Turing-complete language and can thus be used for nearly any purpose. Same-same for Autocoder, PL/I, COBOL, Java, C, C#, C++, FORTRAN, BASIC, Visual Basic, assembler for any particular processor, Ruby, Forth, Python, PERL, SPL, APL, Pascal, Delphi, B, BCPL, ALGOL, PL/SQL, etc, etc, etc. And you can probably find someone out there who will argue that each of the above is The Best Language for any particular purpose. YMMV.


I have the impression it's nowadays mostly used for Seaside-projects. Some rare counter-examples:

In general it should be usable in any context where you find dynamically typed OO-programming languages.