logo

 

     
 
Home
Site Map
Search
 
:: Bitwise Courses ::
 
Bitwise Dusty Archives
 
 
 

rss

 
 

ruby in steel

learn aikido in north devon

Learn Aikido in North Devon

 


Section :: Rants and Raves

- Format For Printing...

Ruby < Smalltalk

How close is the relationship between these two OOP languages?
Wednesday 2 May 2007.
 

Recently I blogged a few thoughts on the attractions of Ruby to programmers who are more familiar with languages of the Pascal family (principally, these days, that means Delphi). I promised I’d have something to say about Ruby in comparison to C# and Smalltalk at a later date. The date is now later and the time has now come... ;-)

Personally, I am keenly aware of the significantly different experience of coding in C# and in Ruby. As I am daily involved in the development of the Ruby In Steel IDE for Ruby, I constantly have to switch between the two languages. All I can say is that this feels like programming schizophrenia! In principle both C# and Ruby are object oriented languages and, as I’m using Ruby In Steel, I can program both C# and Ruby within the same environment (Visual Studio) - or even have Ruby and C# projects within the same VS Solution. So why does it feel that I have to flip so many mental switches when I move from one language to the other?

There is one other important language that I find myself using more and more: Smalltalk. On the face of it, Smalltalk has nothing whatsoever to do with my work on Ruby In Steel. And yet I keep returning to Smalltalk time and again. In theory Smalltalk is the great granddaddy of all real OOP languages and Ruby is often cited as being Smalltalk’s natural successor.

If you’ve programmed in Smalltalk you will definitely see lots of resemblances in Ruby. However, let’s be honest - you will also see some huge differences. For some time, I’ve been trying to get clear in my mind if Ruby really owes as great a debt to Smalltalk as some people would have you believe.

The experience of developing Ruby programs is nothing like the experience of developing Smalltalk programs. Partly that can be explained by the fact that Smalltalk the language and Smalltalk the environment are tightly welded together whereas Ruby is ‘IDE neutral’. But that’s not the whole story.

I had initially planned to throw together a few thoughts on Ruby and Smalltalk in a Blog post. But the more I thought about it, the more I realised that a proper discussion of the subject deserved a much closer look at the two languages. Indeed, to be frank, without spending the time to compare the facets of each language in depth - syntax, environments, class hierarchies, code and style - I wasn’t even sure I could be certain in my own mind of just how much Smalltalk and Ruby resemble each other and where, exactly, are the important points of difference.

Finally, I decided this was worth a series. I’ve just written an introductory article, Ruby The Smalltalk Way, over on the SapphireSteel Software site. If you want to follow along, this article will give you all the links you need to download a free Smalltalk IDE and a wealth of programming documentation.

Meanwhile, I’ll have a longer rant about my thoughts on the C# variant of OOP here on Bitwise in the very near future...

AddThis Social Bookmark Button


Home