What makes Smalltalk different

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

What makes Smalltalk different

Bert Freudenberg
(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 -


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: What makes Smalltalk different

David T. Lewis
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 -
>
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: What makes Smalltalk different

Gary Dunn-2
In reply to this post by Bert Freudenberg

Well put! Please can someone with permissions capture this on our swiki?

Gary Dunn
Open Slate Project
http://openslate.org

On Nov 22, 2011 1:35 AM, "Bert Freudenberg" <[hidden email]> 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 -


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: What makes Smalltalk different

Yoshiki Ohshima-2
In reply to this post by Bert Freudenberg
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
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: What makes Smalltalk different

Bert Freudenberg

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
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners



_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: What makes Smalltalk different

Bert Freudenberg
In reply to this post by Gary Dunn-2
On 22.11.2011, at 18:44, Gary Dunn wrote:
> Well put! Please can someone with permissions capture this on our swiki?

Everybody on this list has write permissions. The password is a shared secret to keep spammers out. It is explained on the home page of the swiki, under the "About this Site" heading:

"if you want to edit any page of this wiki, click the edit link in the upper menu of the page and when asked use squeak as username and viewpoints as password"

- Bert -

> Gary Dunn
> Open Slate Project
> http://openslate.org
>
>
>> On Nov 22, 2011 1:35 AM, "Bert Freudenberg" <[hidden email]> 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 -
>>
>>
>> _______________________________________________
>> Beginners mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
> _______________________________________________
> Beginners mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: What makes Smalltalk different

Hannes Hirzel
In reply to this post by Gary Dunn-2
Yes, a good concise summary.

A candidate for a module an www.cnx.org. I'd like to put it there.

Bert, may I ask you to allow me to do that. The license for that web
site with e-learning modules is
http://creativecommons.org/licenses/by/3.0/

--Hannes



On 11/22/11, Gary Dunn <[hidden email]> wrote:

> Well put! Please can someone with permissions capture this on our swiki?
>
> Gary Dunn
> Open Slate Project
> http://openslate.org
>
> On Nov 22, 2011 1:35 AM, "Bert Freudenberg" <[hidden email]> 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 -
>
>
> _______________________________________________
> Beginners mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: What makes Smalltalk different

Bert Freudenberg
On 22.11.2011, at 19:45, H. Hirzel wrote:

> Yes, a good concise summary.
>
> A candidate for a module an www.cnx.org. I'd like to put it there.
>
> Bert, may I ask you to allow me to do that. The license for that web
> site with e-learning modules is
> http://creativecommons.org/licenses/by/3.0/
>
> --Hannes

Yes, of course.

- Bert -

>
> On 11/22/11, Gary Dunn <[hidden email]> wrote:
>> Well put! Please can someone with permissions capture this on our swiki?
>>
>> Gary Dunn
>> Open Slate Project
>> http://openslate.org
>>
>> On Nov 22, 2011 1:35 AM, "Bert Freudenberg" <[hidden email]> 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 -
>>
>>
>> _______________________________________________
>> Beginners mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>>



_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: What makes Smalltalk different

Hannes Hirzel
Thank you, Bert!
Now available under http://cnx.org/content/m41628/latest/ with a link
to an existing module http://cnx.org/content/m36331/latest/

--Hannes

On 11/22/11, Bert Freudenberg <[hidden email]> wrote:

> On 22.11.2011, at 19:45, H. Hirzel wrote:
>
>> Yes, a good concise summary.
>>
>> A candidate for a module an www.cnx.org. I'd like to put it there.
>>
>> Bert, may I ask you to allow me to do that. The license for that web
>> site with e-learning modules is
>> http://creativecommons.org/licenses/by/3.0/
>>
>> --Hannes
>
> Yes, of course.
>
> - Bert -
>
>>
>> On 11/22/11, Gary Dunn <[hidden email]> wrote:
>>> Well put! Please can someone with permissions capture this on our swiki?
>>>
>>> Gary Dunn
>>> Open Slate Project
>>> http://openslate.org
>>>
>>> On Nov 22, 2011 1:35 AM, "Bert Freudenberg" <[hidden email]> 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 -
>>>
>>>
>>> _______________________________________________
>>> Beginners mailing list
>>> [hidden email]
>>> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>>>
>
>
>
> _______________________________________________
> Beginners mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: What makes Smalltalk different

Göran Krampe
In reply to this post by Bert Freudenberg
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 mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners