(This is from an answer to a question on StackOverflow http://stackoverflow.com/questions/8222489 It might be helpful to some newbies on this list so I'm re-posting)
=================================== Q: (paraphrased) I want to learn Smalltalk but without the baggage of an IDE. Just let me use my favorite text editor, that's much easier.
A: It is not helpful to learn Smalltalk as just another language. You would be missing the point entirely.
Smalltalk's graphical environment is not just an IDE. The core of the system is simply objects. The interface provides various ways to create objects and interact with them. The language is just a convenient way to create messages to the objects. It is secondary to the objects themselves.
In other OO languages, you write your program, then you run it, which creates objects in memory. Not so in Smalltalk. You create objects in memory (e.g. class objects) and then send messages to e.g. add methods. But a class object is only created once, not every time you "run your program".
There is no such thing as "your program", in fact. There is no "main". It's just a world of objects, some longer-lived, some temporary. In fact, in the system there are objects that were created 30 years ago. Literally. The objects are just frozen to disk as a memory dump (a file which we call "image") and unfrozen later (possibly on a different machine).
That image, the world of objects, is the primary artifact in Smalltalk. There is a sources file, yes, but that's just a database of text snippets to not take up so much RAM. You cannot edit this file by hand (objects in the image use absolute file offsets into the sources file). You cannot re-create the system from the sources file - the system was bootstrapped a long time ago and from then on only modified.
It's true that superficially the Smalltalk GUI looks just like another IDE. No coincidence - Eclipse was originally written by Smalltalkers in Smalltalk. But there is the crucial difference that in regular IDEs you just manipulate text files. A text editor is a valid alternative for that. In Smalltalk, the GUI manipulates objects in memory. A text editor can not do that.
And as for what Smalltalk to use, I would recommend Squeak. Very friendly community, very nice environment, and subscribing to the original Smalltalk vision of creating a great personal computing environment for everyone.
- Bert -
This is a very nice, concise summary :)
Dave
On Tue, Nov 22, 2011 at 12:35:28PM +0100, Bert Freudenberg wrote:
(This is from an answer to a question on StackOverflow http://stackoverflow.com/questions/8222489 It might be helpful to some newbies on this list so I'm re-posting)
=================================== Q: (paraphrased) I want to learn Smalltalk but without the baggage of an IDE. Just let me use my favorite text editor, that's much easier.
A: It is not helpful to learn Smalltalk as just another language. You would be missing the point entirely.
Smalltalk's graphical environment is not just an IDE. The core of the system is simply objects. The interface provides various ways to create objects and interact with them. The language is just a convenient way to create messages to the objects. It is secondary to the objects themselves.
In other OO languages, you write your program, then you run it, which creates objects in memory. Not so in Smalltalk. You create objects in memory (e.g. class objects) and then send messages to e.g. add methods. But a class object is only created once, not every time you "run your program".
There is no such thing as "your program", in fact. There is no "main". It's just a world of objects, some longer-lived, some temporary. In fact, in the system there are objects that were created 30 years ago. Literally. The objects are just frozen to disk as a memory dump (a file which we call "image") and unfrozen later (possibly on a different machine).
That image, the world of objects, is the primary artifact in Smalltalk. There is a sources file, yes, but that's just a database of text snippets to not take up so much RAM. You cannot edit this file by hand (objects in the image use absolute file offsets into the sources file). You cannot re-create the system from the sources file - the system was bootstrapped a long time ago and from then on only modified.
It's true that superficially the Smalltalk GUI looks just like another IDE. No coincidence - Eclipse was originally written by Smalltalkers in Smalltalk. But there is the crucial difference that in regular IDEs you just manipulate text files. A text editor is a valid alternative for that. In Smalltalk, the GUI manipulates objects in memory. A text editor can not do that.
And as for what Smalltalk to use, I would recommend Squeak. Very friendly community, very nice environment, and subscribing to the original Smalltalk vision of creating a great personal computing environment for everyone.
- Bert -
At Tue, 22 Nov 2011 12:35:28 +0100, Bert Freudenberg wrote:
It's true that superficially the Smalltalk GUI looks just like another IDE. No coincidence - Eclipse was originally written by Smalltalkers in Smalltalk. But there is the crucial difference that in regular IDEs you just manipulate text files. A text editor is a valid alternative for that. In Smalltalk, the GUI manipulates objects in memory. A text editor can not do that.
Could this be "Visual Age for Java" rather than Eclipse? (Eclipse superceded VA for Java so transitively it could be true.)
Back when I knew about Java but not Smalltalk, the files Visual Age for Java installed on to my computer were very strange looking. Later, I learned that these were Smalltalk files.^^;
-- Yoshiki
On 22.11.2011, at 18:48, Yoshiki Ohshima wrote:
At Tue, 22 Nov 2011 12:35:28 +0100, Bert Freudenberg wrote:
It's true that superficially the Smalltalk GUI looks just like another IDE. No coincidence - Eclipse was originally written by Smalltalkers in Smalltalk. But there is the crucial difference that in regular IDEs you just manipulate text files. A text editor is a valid alternative for that. In Smalltalk, the GUI manipulates objects in memory. A text editor can not do that.
Could this be "Visual Age for Java" rather than Eclipse? (Eclipse superceded VA for Java so transitively it could be true.)
Precisely. A couple of the IBM Smalltalk people went on to create Eclipse. The product name for IBM's Smalltalk was "Visual Age". That Smalltalk originally came from OTI.
- Bert -
Back when I knew about Java but not Smalltalk, the files Visual Age for Java installed on to my computer were very strange looking. Later, I learned that these were Smalltalk files.^^;
-- Yoshiki _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
On 11/22/2011 07:02 PM, Bert Freudenberg wrote:
On 22.11.2011, at 18:48, Yoshiki Ohshima wrote:
At Tue, 22 Nov 2011 12:35:28 +0100, Bert Freudenberg wrote:
It's true that superficially the Smalltalk GUI looks just like another IDE. No coincidence - Eclipse was originally written by Smalltalkers in Smalltalk. But there is the crucial difference that in regular IDEs you just manipulate text files. A text editor is a valid alternative for that. In Smalltalk, the GUI manipulates objects in memory. A text editor can not do that.
Could this be "Visual Age for Java" rather than Eclipse? (Eclipse superceded VA for Java so transitively it could be true.)
Precisely. A couple of the IBM Smalltalk people went on to create Eclipse. The product name for IBM's Smalltalk was "Visual Age". That Smalltalk originally came from OTI.
VisualAge for Java was a very good Java IDE, IMHO much nicer than Eclipse but that is of course because it was heavily modelled after the Smalltalk environments with browsers etc.
Then they felt (rightly so) that an IDE for language X should be written in language X :) so they first created an IDE called "micro edition something", it was just a toy. But then they went on to do the full enchilada, Eclipse. And created SWT since they rejected Swing as being too complex among other things - IIRC, some people behind Swing actually wrote the UI framework for VisualWorks, but I might be wrong.
regards, Göran
beginners@lists.squeakfoundation.org