Talk:Smalltalk

Old comments
Removed the following hilited sections because they're not really approporiate:


 * Smalltalk is a dynamically typed object oriented programming language designed with great love and foresight at Xerox PARC, the birth place of many good things, by Adele Goldberg?, Dan Ingalls?, Alan Kay, Ted Kaehler? and others during the 1970s.

—Preceding unsigned comment added by Dachshund (talk • contribs) 21:55, 15 September 2002

Did Adele Goldberg actually help design Smalltalk, or just write the books? This page mentions lots of things she's done, but when it comes to Smalltalk, it just says, "Solely and with others, Adele wrote the definitive books on the Smalltalk-80 programming system". -- Oliver P. 02:30 15 Jun 2003 (UTC)

Adele collaborated directly with the group from an early stage, so that would seem to count as helping design the language. Sorry I don't have a reference handy. -Lex (lex@cc.gatech.edu)  31 Oct 2004

"Along with Alan Kay, Dr. Goldberg developed Smalltalk and wrote much of the documentation. " --Blouis79 13:33, 9 April 2007 (UTC)

SMALLTALK (1987) Citation Adele Goldberg, Daniel H.H. INgalls, Jr., Alan C. Kay

For seminal contributions to object0oriented programming languages and related programming techniques. The theories of languages and development systems known as "Smalltalk" laid the foundation for explorations in new software methodologies, graphical user interface designs, and forms of on-line assistance to the software development process. --Blouis79 13:37, 9 April 2007 (UTC)

"widely believed" to be such a great language? By whom? I am a programmer and heavily involved in open-source development, and I have barely even heard of it, let alone believe it to be great. Jeeves 18:42, 2 Mar 2004 (UTC)


 * Classic Wikipeda - people who know nothing about a subject pontificating about well-established facts that they have not encountered in their caves. — Preceding unsigned comment added by 86.27.201.110 (talk) 22:16, 24 January 2020 (UTC)

The fact that somebody has not heard of a language does not prove that it is not a great language. You can learn more about it at: WhySmalltalk. BTW, one of the early pioneers of Wiki technology is a Smalltalker i.e. Ward Cunningham. My final comments is that not only is Smalltalk a great language because of what it can currently do but also because of what it has inspired to do. -Charles


 * Similar things could be said about any language, by its fans. Remove. Fredrik 18:45, 2 Mar 2004 (UTC)


 * Removed "In spite of its 20-year history, it is widely believed that the overall programming experience and productivity of Smalltalk is still unsurpassed by other development environments." Fredrik 19:05, 2 Mar 2004 (UTC)


 * The overall programming experience is a big deal for Smalltalk, though. It and the Lisp Machine are the exemplars for what might be called the "dynamic programming style" where you edit live programs and where the code is available for everything you see. Dropping the value judgement is fine, but someone with more time than me should try to write something about the dynamic programming style.  Smalltalk isn't just a language.  -Lex (lex@cc.gatech.edu)  31 Oct 2004


 * Alan Kay won the A.M. Turing Award (2003) because of Smalltalk.So isn't it a great language? -Kamishiro Maiku 13:57, 21 June 2006 (UTC)

The "Hello world" example is hardly illustrative. - Furrykef 14:37, 27 Aug 2004 (UTC)


 * I fleshed it out using what I know from Squeak. Is the Transcript object Squeak-specific? - Furrykef 11:36, 28 Aug 2004 (UTC)


 * Transcript is available in most Smalltalks. I think "Transcript show: 'hello, world'" is actually an excellent way to show how message sending works and how Smalltalk's syntax looks.  I've updated the "hello, world" example to talk about this. -Lex (lex@cc.gatech.edu), 31 Oct 2004

Lex, the "Hello world" example does hardly reflect the nature of Smalltalk. In Smalltalk-80 and Squeak, use
 * 'Hello, World!' asParagraph displayOn: Display at: Sensor waitButton


 * This expression is useful for doIt, for printIt and for inspectIt and exhibits the interplay of text, the Display and the Sensor. Many illuminating facets of #asParagraph, #displayOn:at: and #waitButton could be shown to the curious. -kwl (people.squeakfoundation.org/person/kwl/), 8 Nov 2006

IBM is dumping Smalltalk? Are you sure? Please provide a reference on the page if so. IBM is normally quite good at supporting products that its customers are using. That's a selling point of both IBM and Smalltalk: they've been around, and will continue to be around. Smalltalk is not massively popular in industry, but let's not get carried away -- it gets SOME industry use. -

Code in ANSI Smalltalk?
Probably better for the smalltalk code section to reference ANSI Smalltalk rather than Smalltalk-80 --Blouis79 13:31, 9 April 2007 (UTC)

A more detailed genealogy
From Methods and Smalltalk-V to current VisualWorks and from ST-80 to Squeak would make a nice section of its own. Also an impact section discussing C++, Ruby, etc. would be useful. Lycurgus 05:24, 31 May 2007 (UTC)

Lead section
I feel like the first quote is too long... —Preceding unsigned comment added by 131.215.170.216  (talk • contribs)  20:28, 1 July 2007
 * I agree. These quotations may be informative, but they need to be in a context where the user will understand them; in my opinion the lead section, where no context has been established yet, is far too early. They just clutter it up. I've removed them. Hairy Dude 20:26, 10 November 2007 (UTC)

Influences section
I propose an Influences section. I wrote a skeleton of it, carved out from the History section. Four key influences are well documented, so I introduced them. The examples given so far relate only to syntax and semantics, but I don't have time to write about the other 3 influences: object-oriented message passing (Objective-C among many others), GUIs, and IDEs (such as Visual C++ and Eclipse). Therefore I have left an expand-section tag, as this would be an interesting short project for anyone that wishes to work on improving the article. --Hroðulf (or Hrothulf) (Talk) 10:47, 29 October 2007 (UTC)


 * Someone added "Cell (biology)" to the influences section; lolwut? Does that mean I can add influences: "Pen, paper, abacus, a ball of string" to the other languages? 216.241.106.56 (talk) 18:57, 27 October 2015 (UTC)


 * It's certainly a bit odd, as is the inclusion of the B5000 in the list (although that to a lesser degree). OTOH, it is specifically quoting from an email written by Alan Kay.  Also, the documentation of Template:Infobox programming language say the following for the "influenced by" parameter: "Name of notable concepts, methodologies, approaches, or practices that influenced the creation of the subject of the infobox."  That's pretty broad.  Rwessel (talk) 19:14, 27 October 2015 (UTC)

Hello world?
The hello world section has a link to the 'main' hello world article? related yes, but this is not a section that talks about hello world, it is one example of it. Maybe have see also, Hello World, but not main article. Just my 2c 220.233.27.104 12:31, 8 November 2007 (UTC)

Image-based persistence
See my remarks in Talk:Lisp (programming language) regarding the issue of whether Lisp uses the same image-persistence thing that Smalltalk does. I've not used Smalltalk, but from the description given here, I'm not sure that's a model used a whole lot by Lisp. There is such a technique available for application deployment, but it's rarely used for development in the way that, for example, MOO does. Assuming anyone even agrees with me on this, and to avoid removing a cross-reference that I think is an interesting one to leave in place, would it suffice to say that Lisp has the capability but that it's more often just used for application deployment rather than for persisting development state? --Netsettler 07:36, 9 November 2007 (UTC)
 * Lisp definitely uses Image based persistence. Of course image-based persistence is inferior in most ways to a real database and most environments these days go more for a true OODB or linking objects up to a relational db, but it's one of the many things that Lisp and Smalltalk have in common, that the first and easiest way to get persistence was to just take a snapshot of the environment and save it as an image. MadScientistX11 (talk) 20:56, 16 December 2013 (UTC)
 * I know you said this many moons ago but I’m new I joined the internet today and I agree with you 2601:3C3:400:C750:0:0:0:905 (talk) 03:59, 30 December 2023 (UTC)

Btw, regardless, shouldn't MOO be cross-referenced here? I'm not a Smalltalk user, so I'm timid about making that correction myself. But I assume someone with a connection to PARC must know both languages and be able to assess whether that's appropriate. --Netsettler 07:36, 9 November 2007 (UTC)

History section
I don't understand the "except variables" mention in the third paragraph. In Smalltalk, everything, including variables, is an object. This remark needs to be explained, or removed.

OldManLink (talk) 00:15, 20 March 2008 (UTC)

Level of Access
"Even the statement true become: false is valid in Smalltalk, although executing it is not recommended."

What does this statement do? —Preceding unsigned comment added by 76.89.247.164 (talk) 05:08, 14 May 2008 (UTC)
 * In modern Smalltalks, nothing - become: checks for that case. But back in the old days it would swap the "true" object with the "false" object, so that when you thought you were saying " ifFalse:[do something]" it would actually call false's ifFalse: method - and while true's ifFalse: does nothing, false's implementation executes the block. Scrollbars would reverse direction, program logic would be inverted, etc. --Jamoche (talk) 21:38, 9 August 2012 (UTC)

Inheritance
I've added in the article a mention to the single dynamic message dispatch in Smalltalk (as contrasted to the multiple dispatch found in some other languages).

Currently, I think that something still missing in the article is a section (or at least a small subsection) that mentions and describes the inheritance feature of ANSI Smalltalk's class library (present in Smalltalk-80 and in most other Smalltalk dialects too). Some important points to be mentioned:


 * It is a singly-rooted hierarchy;
 * It supports only single inheritance (as contrasted to multiple inheritance supported by some other languages).

IMHO, no Smalltalk overview would be satisfactory without at least a small description of inheritance. --Antonielly (talk) 11:25, 14 October 2008 (UTC)

Byte
Like many programmers of my generation I first encountered Smalltalk though the pages of Byte magazine's August 1981 special. The magazine that month had a particularly memorable cover--possibly the most famous cover illustration in the history of computer magazines--featuring Smalltalk as a balloon floating away from an ivory tower on an island. The illustration (see here) does seem to show up from time to time. The balloon has become the symbol of Smalltalk-80 (see here).

In my opinion that illustration is historic. As an important part of the long neglected iconography of programming languages, there is a very solid case for including a picture of that magazine cover on this article.

In a previous issue of Byte, on Pascal, the cover illustration showed a conceptual map of other programming languages, in which Smalltalk had been shown as an ivory tower on a solitary island. The cover picture of the Smalltalk issue was a sharp ripost to the ideas presented in that picture, showing Smalltalk escaping from its constraints by balloon.

Before I obtain and upload such a picture with a view to including it in the article under the fair use defense in US law, I'd like to hear comments from others. --TS 02:00, 8 November 2009 (UTC)

{tim Rowledge} The Byte August '81 cover illustration is now in the public domain; the rights to it were purchased from the artist by Cincom in order to allow it to be used in relation to Smalltalk (see http://groups.google.ca/g/7f67feeb/t/e601c5e0999bc6cc/d/9b8cd9c1a1602dcb?hl=en&ie=UTF-8&q=smalltalk+balloon+image+public+domain#9b8cd9c1a1602dcb for evidence) It would be perfectly proper and lawful to display or link to the image. —Preceding unsigned comment added by 99.199.170.131 (talk) 01:00, 2 July 2010 (UTC)

Fabrik (software)
This is an academic visual programming environment/experiment for Smalltalk. It has been nominated for deletion. It seems widely cited though. Pcap ping  07:43, 6 February 2010 (UTC)

List of implementations
Should the List of Implementations include defunct ones? I notice that Softsmarts is not listed. The company and product are long dead, but should I add them to the list, anyhow?

Aside: I used Softsmarts ST-80 on MS-DOS (version 3 or 4, I think) in the late 1980s. I recently found some of those old files, including the st80.exe file, but I can't find the st80v2.im and st80v2.st files... if anyone has them, please send me a message! NCdave (talk) 14:40, 21 June 2010 (UTC)

Doesn't anyone read the references?
The first version, known as Smalltalk-71, was created by Ingalls in a few mornings on a bet that a programming language based on the idea of message passing inspired by Simula could be implemented in "a page of code."[1] 

Good grief. This is grossly wrong, and I'm afraid to read the rest of the article. It was Smalltalk-72, not -71, that resulted from the bet, and it was Kay who worked mornings to produce a system that could be defined on one page -- and the bet didn't specify Simula or message passing, it was to develop the "most powerful language in the world". After Kay defined it, Ingalls -- who was one of those who challenged Kay with the bet -- implemented it in BASIC, most certainly not on one page, and the reference says he took several days -- not mornings. -- 98.108.210.171 (talk) 05:47, 30 October 2010 (UTC)

Is Susie an implementation?
Regarding section List of implementations, entry "Susie". Can Susie be considered an implementation given the description at http://sourceforge.net/projects/susie/ or http://dargos.com/Susie?,


 * Susie is an attempt to provide a light weight scripting engine using Smalltalk as the language. it is based on Public Domain Smalltalk, which in turn is based on LittleSmalltalk.

--Mortense (talk) 18:35, 17 June 2012 (UTC)
 * Agreed. I removed it. MadScientistX11 (talk) 20:21, 16 December 2013 (UTC)

Adding JavaScript to the list of influenced languages
Hey,

How would you feel about adding JavaScript to the list of Influenced languages? It says 'some languages like JavaScript have taken Smalltalk concepts in another direction' in the article itself. Also JavaScript creator Branden Eich has named Smalltalk as the greatest influence on JavaScript several times. — Preceding unsigned comment added by 91.135.102.67 (talk) 05:22, 25 February 2013 (UTC)

Smalltalk-80 on Acorn Archimedes
There's some info about Smalltalk-80 on the Acorn Archimedes in Acorn User no. 81 - April 1989 (pgs. 128-129). -- Trevj (talk) 12:35, 28 October 2013 (UTC)

Red Links in List of Implementations
There are a number of red links in the list of implementations. IMO, they should just be deleted, if the implementation isn't notable enough yet to have a Wikipedia article I don't think it needs to be listed. These lists tend to get very long and uninstructive, everyone wants their favorite environment no matter how few people used it. If not deleted, then at a minimum I think the red links should be de-linked per wp:Write the article first I'm not going to make any changes right away, in case anyone has a counter opinion. MadScientistX11 (talk) 15:08, 16 December 2013 (UTC)

Changes to Reflection Section
I made the following changes to the Reflection section, reacting to the tag for expansion and more references: I added four references. Two to document specific details about Smalltalk and metaobjects and a Smalltalk system that uses Reflection called Seascape and then two that cover the general concept of reflection. Those last two are pretty much by people who are most widely known as experts on the topic:Brian C Smith and Ralph Johnson. I took out the last paragraph that went into details about how you can use DoesNotUnderstand: I validated the early stuff said about that in the Goldberg book but the latter stuff -- about how it can be used like CORBA or an OODB (even though I thin what was written was true) I couldn't find in any of those papers and also it seems to be going down the rabbit hole a bit, into detail about how to code specific things in Smalltalk rather than on the general concepts of reflection in the language. Also, while I think that last paragraph was correct, it got a big grandiose in claiming that DoesNotUnderstand: gave you full OODB or message brokering which of course it doesn't but mostly I thought it was just too detailed. MadScientistX11 (talk) 18:54, 16 December 2013 (UTC)

Hello World Example
I don't think that the Hello World example section should have a main that goes to the Hello world article. They aren't really about the same topic. If that article were a detailed description of how to do Hello world in Smalltalk it would make sense but it's about Hello world in general which is a different topic. There should be a link but not a main template. I plan to change it but just wanted to document the reason. MadScientistX11 (talk) 15:03, 17 December 2013 (UTC)

displaying and entering Unicode characters in modern Smalltalk dialects
It seems to me that this topic

displaying and entering Unicode characters in modern Smalltalk dialects

is long over-due.

Today in Pharo 3.0 (latest beta build) I confirmed that by using World | System | Settings I have been able to add a comment to a class in Japanese and then save, quit and restart Smalltalk with my comment intact and displayed in my selected test font of Windows MS Mincho.

In a second Pharo test to FORCE all fonts to MS Mincho, I found it necessary to open a new class browser in order to add methods, temp variables and method comments in Japanese.

In a Pharo method send test in a Workspace I have confirmed that a Japanese-only method can be sent to a default class, WideString.

I confirmed today that I could use 沿 as a kanji in all areas of Amber Smalltalk in a browser ( but in all fairness, this is not what is usually meant by Smalltalk, i.e., a free-standing client-side implementation with image bytecode and sources text.) BUT - at least since Emacs 23 there is adequate Unicode support in Emacs ( Emacs is the UI even for the advanced Oz language in the Mozart env so I try to view Emacs as an IDE however strange that may seem to traditional Smalltalkers) so Amber Smalltalk ( or, if you prefer, 'the Amber language') does have Unicode capacity depending on the terminal that you are working within and its char display, 'paste' and keyboard entry capabilities.)

I will test the old implementation of StrongTalk later today. I assume LivelyKernel would have no issues, but must test. Is there a "post-Slate" type of Smalltalk out there other than, say, Io, the language ?

Consider the situation in moving from UCS to Unicode in the earliest days of the web languages JavaScript and MIT Curl (the language, not cURL ).

I have seen a report that there is an implementation of DrGeo with Pango that displays CJK characters in somelinuc, but I am yet to confirm this.

In fairness, the web language Rebol is only at this time struggling to go Unicode as rebol3 (still in alpha, but now opensource and with an alternative implementation as Red at red-language.org ) but may emerge with no IDE capable handling Unicode.

This appears also to be the case with UI for the latest release of Icon implementation Unicon 12.1 which is nominally the "Unicode" Icon although there is an alternative Icon, ObjectIcon, at code.google.com/p/ObjectIcon ( see build instructions in docs wiki install section.)

btw, I see no link to a CJK language page at the WP article on DrGeo ( which may not mean that DrGeo is in, say, Japanese, But I see no sign of it on the web this morning using Google, fwiw .)

Robert Smalltalk contracting since '91

G. Robert Shiplett 12:13, 30 March 2014 (UTC)


 * I read your note but I have to admit I don't understand what you're proposing. Are you suggesting that we add a section on Unicode? If so, I disagree. Unicode is an implementation detail and is not important to the language. I'll change my mind if you can provide references to reliable sources discussing Unicode support in Smalltalk dialects. Pburka (talk) 14:22, 30 March 2014 (UTC)

This page could use some clarification for people not versatile in Smalltalk.
I tried to get a basic understanding of smalltalk by reading this page, but most of it was very hard to understand for somebody not already fluent in smalltalk. An I *am* fluent in C,C++,Lisp (Scheme) ,Python so it's not for lack of experience in programming in general.

I'm not reall sure how to fix this, but it would be very useful if someone fluent in Smalltalk could team up with someone reading about it for the first time to clarify some parts.

For example the part about how conditionals are implemented using blocks is complete gibberish to me :-)

Smalltalk — a language?
Some discussion recently ensued on the object-composition Google group about the origins of OO and Smalltalk, and Trygve Reenskaug pointed out that Smalltalk was conceived as much more than a language. I don't think anything has changed since then. It is more comprehensively an environment that supports a certain model of computation and human interaction. The language is a small, tidy part of this environment.

The article dwells on the language aspect of Smalltalk and leads to comparing Smalltalk with other languages (see the post just above). There may be a place for such comparisons but it's hardly where the meat lies, and it's not the major contribution of Smalltalk to computing. Kay had other perspectives ranging from models of how humans interacted with computers to how humans learn together with computational extensions of self. Much of the power lies in the classes in the image rather than in the language.

Should this article somehow be refactored or rewritten to emphasize and feature what the creators of Smalltalk would recognize as Smalltalk hallmarks, and perhaps relegate the syntax and semantic issues to a separate article called "The Smalltalk-80 Language"?

Jcoplien (talk) 11:25, 20 May 2017 (UTC)

Answer: This refactoring would be fine.

Article about messages?
Should there be a WP article about 'Smalltalk messages'?

In particular 'keyword messages' with explanations like

http://web.cecs.pdx.edu/~harry/musings/SmalltalkOverview.html#Keyword%20Messages

x.addKeyValue(a, b)    // Java

x addKey: a value: b   "Smalltalk"

Or just better formatting of the paragraph https://en.wikipedia.org/wiki/Smalltalk#Messages

3rd January 2018 — Preceding unsigned comment added by 45.211.166.133 (talk) 16:57, 3 January 2018 (UTC)
 * No. It's a part of language syntax that can be described here. AXO NOV  (talk) ⚑ 18:37, 24 November 2021 (UTC)

Early History Of Smalltalk
There is a nice source on early history, if anyone interested: http://worrydream.com/EarlyHistoryOfSmalltalk/ AXO NOV  (talk) ⚑ 18:37, 24 November 2021 (UTC)

Decline of the Smalltalk
I think it's worth to cover these topics of commercial rise and decline of Smalltalk in 90s. It had huge impact on its future. If anyone interested, here is a link: http://www.wirfs-brock.com/allen/posts/914 AXO NOV  (talk) ⚑ 19:28, 24 November 2021 (UTC)