Tuesday, September 25, 2007

"Why would you use Ruby when you could use Smalltalk???"

Patrick Logan poses the reasonable question "Why would you use Ruby when you could use Smalltalk???" Looking at things from a development rather than a deployment perspective, I would have a difficult time arguing with Patrick. Squeak provides a good open source platform, many libraries and third party projects, easy headless deployment of Seaside web applications, etc. Commercial Cincom VisualWorks adds the ability to create small executables, great web services libraries, good support for commercial licensing, etc.

Ruby on the other hand also has a lot going for it: many instant install gem libraries, easy installation of Ruby itself, Rails is a nice web app framework, and the best of all: Ruby is already installed on most servers (and is easy to install otherwise) and deployment of Ruby applications and utility scripts is simple. Also JRuby is a very interesting technology for those of us who need to work in "Java land".

One other big win, Ruby-wise, for me is that (like Python) is such a readable and concise language: meaningful algorithms/programs are often just one or two pages of code - great for digesting other peoples code or when you need to look at old work.

2 comments:

Ramon said...

You say that last part as if Smalltalk weren't readable and concise. Smalltalk is far more readable than Ruby, so how is that a Ruby win?

In fact, all the things you cite as a plus for Ruby, Smalltalk has as well except for already being installed on most servers.

Mark Watson, author and consultant said...

Hello Ramon, point taken about Smalltalk's code readability.

I am saying that having the source code to a program or utility in an external file seems simpler (at least to me) as far as deployment, giving code to someone else, etc.

Also, I am very rusty at Smalltalk coding (sporadic use since about 1985) so I always have a little 'getting up to speed' time whenever I do anything in Smalltalk.

I tried becoming a Cincom VAR several years ago, but I could never convince even one customer to allow a Smalltalk project - frustrating, but that is what happened. On the other hand, I get a lot of demand for projects using Ruby, Java, and for one particular customer Common Lisp.

So, no argument abut Smalltalk being a good coding environment and a nice language, and I am pleased that Smalltalk works well for your projects.

Best regards,
Mark