Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|improve this question

closed as primarily opinion-based by MichaelT, durron597, gnat, enderland, Snowman Oct 19 '15 at 15:00

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

"in the past" was my first thought ;-) – Steven A. Lowe Nov 30 '10 at 14:45
@Steven A. Lowe. My thought was in a time machine. – Conrad Frix Nov 30 '10 at 22:58

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer