# Ruby vs Smalltalk

**URL:** <https://www.ruby-forum.com/t/ruby-vs-smalltalk/139865>\
**Category:** Ruby\
**Created:** [June 8, 2008, 12:57pm UTC](https://www.ruby-forum.com/t/ruby-vs-smalltalk/139865 "2008-06-08T12:57:05Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![quik77](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/dec6dc/32.png) [@quik77](https://www.ruby-forum.com/u/quik77)\
**Post date:** [June 8, 2008, 12:57pm UTC](https://www.ruby-forum.com/t/ruby-vs-smalltalk/139865/1 "2008-06-08T12:57:05Z")

</div>

Some time ago we have had ruby vs ~ada discussions, or more generally  
ruby and “large scale applications” - actually, the people that  
contributed their (impressive) knowledge made this quite interesting.

So here I start again - with my lack of knowledge. Ruby vs Smalltalk.

I only wrote a tiny bit of smalltalk so far. Some things remind me of  
ruby like the |block| syntax (but the smalltalk people seem to like to  
do the |block| in a new line and whenever I saw this in ruby, i was  
puzzled, because I am used to having the |block| in the same line).

Actually come to look at it, I dont so much like the syntax of  
smalltalk. I think Ruby’s syntax is cleaner than smalltalk’s and I also  
am not too fond of using := instead of = for assignment. (The Io  
language uses := too and I’d really have it the other way around, so  
that = means assignment, rather than “update slot”)

Anyway, there is one thing which I believe totally rocks in smalltalk  
and I still have not understood it completely.

It is that image thing.

Of course I am interested in this due to the recent exposure of Maglev,  
additionally some older praises towards smalltalk-squeak, but also about  
the general VM discussions regarding ruby. And on IRC drbrain mentioned  
that there are objects which are nearly thirty years old (in some  
images), which I found astonishing. (Havent even thought that objects  
“age” too … can I have my immortal objects in the matrix please? ;\> )

My brain also connects this to other discussions I have had (on  
Gobolinux), where a few talked about a filesystem which uses a database  
rather than the current FHS approach with flat files being spread  
everywhere. I think the idea that an image is used for both storing  
where files are (and then would do away with the problem of requiring  
_absolute_ paths for anything actually, because i think having the need  
to store absolute, hardcoded paths is really bad if one needs  
flexibility), and also the complete OS (in form of objects and their  
data) is simply … well, “cool”.

But it seems as if this whole VM or rather image thing is hardly used  
outside Smalltalk. Which sounds like a shame, unless I missed something  
perhaps? Can ruby have such an image based system additionally?

---

<div class="post-metadata">

**Author:** ![quik77](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/dec6dc/32.png) [@quik77](https://www.ruby-forum.com/u/quik77)\
**Post date:** [June 8, 2008, 1:35pm UTC](https://www.ruby-forum.com/t/ruby-vs-smalltalk/139865/2 "2008-06-08T13:35:44Z")

</div>

> But it seems as if this whole VM or rather image thing is hardly used  
> outside Smalltalk.

Lisp suffers from this approach too.

Anyway, I think you might like to read this for a smalltalk  
perspective:  
[http://c2.com/cgi/wiki?RubyIsSmalltalkMinusMinus](http://c2.com/cgi/wiki?RubyIsSmalltalkMinusMinus)

It was on reddit recently.

> Can ruby have such an image based system additionally?

No!

---

<div class="post-metadata">

**Author:** ![quik77](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/dec6dc/32.png) [@quik77](https://www.ruby-forum.com/u/quik77)\
**Post date:** [June 8, 2008, 1:48pm UTC](https://www.ruby-forum.com/t/ruby-vs-smalltalk/139865/3 "2008-06-08T13:48:39Z")

</div>

Hello,

On Sun, Jun 8, 2008 at 7:55 PM, Marc H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Actually come to look at it, I dont so much like the syntax of  
> smalltalk. I think Ruby’s syntax is cleaner than smalltalk’s and I also  
> am not too fond of using := instead of = for assignment. (The Io  
> language uses := too and I’d really have it the other way around, so  
> that = means assignment, rather than “update slot”)

Back in the old days, the code for the assignment operator in  
Smalltalk produced a left arrow. Now that ASCII is generally used, the  
corresponding code is that of underscore, which does not make clear  
its intent (assignment). This lead to the introduction of the :=  
syntax for assignment.

Squeak S. includes a font that still has the old left arrow.

> Anyway, there is one thing which I believe totally rocks in smalltalk  
> and I still have not understood it completely.
> 
> It is that image thing.

Images are good because they come with persistance and session  
management. On the other hand, they can accumulate a big pile of  
“dust”. I have found I needed a strict discipline while using images  
to not loose track of what is inside and what is not.

> But it seems as if this whole VM or rather image thing is hardly used  
> outside Smalltalk. Which sounds like a shame, unless I missed something  
> perhaps? Can ruby have such an image based system additionally?

There are Lisp or ML systems that use images, too.

---

<div class="post-metadata">

**Author:** ![quik77](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/dec6dc/32.png) [@quik77](https://www.ruby-forum.com/u/quik77)\
**Post date:** [June 8, 2008, 8:30pm UTC](https://www.ruby-forum.com/t/ruby-vs-smalltalk/139865/4 "2008-06-08T20:30:12Z")

</div>

I’ve written quite a bit on this subject so instead of repeating myself,  
here are a few links…

[http://www.sapphiresteel.com/Ruby-The-Smalltalk-Way](http://www.sapphiresteel.com/Ruby-The-Smalltalk-Way)  
[http://www.sapphiresteel.com/Ruby-The-Smalltalk-Way-1](http://www.sapphiresteel.com/Ruby-The-Smalltalk-Way-1)  
[http://www.sapphiresteel.com/Ruby-The-Smalltalk-Way-2-A](http://www.sapphiresteel.com/Ruby-The-Smalltalk-Way-2-A)  
[http://www.sapphiresteel.com/Ruby-The-Smalltalk-Way-3-The-World](http://www.sapphiresteel.com/Ruby-The-Smalltalk-Way-3-The-World)

best wishes  
Huw C.

SapphireSteel Software  
Ruby and Rails In Visual Studio  
[http://www.sapphiresteel.com](http://www.sapphiresteel.com)

---

<div class="post-metadata">

**Author:** ![quik77](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/dec6dc/32.png) [@quik77](https://www.ruby-forum.com/u/quik77)\
**Post date:** [June 8, 2008, 2:33pm UTC](https://www.ruby-forum.com/t/ruby-vs-smalltalk/139865/5 "2008-06-08T14:33:26Z")

</div>

On 8 Jun 2008, at 12:46, Nicolas Pelletier wrote:

> On Sun, Jun 8, 2008 at 7:55 PM, Marc H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> wrote:
> 
> > But it seems as if this whole VM or rather image thing is hardly used  
> > outside Smalltalk. Which sounds like a shame, unless I missed  
> > something  
> > perhaps? Can ruby have such an image based system additionally?
> 
> There are Lisp or ML systems that use images, too.

Not to mention MOO (as in LambdaMOO) and Forth.

Ellie

## Eleanor McHugh Games With Brains [http://slides.games-with-brains.net](http://slides.games-with-brains.net)

raise ArgumentError unless @reality.responds\_to? :reason
