Friday, October 10, 2008

Smalltalk: Complaints And Opportunities

Gartner analyst says Smalltalk is making a comeback

We'll see an uptick in Smalltalk momentum over the next few years. I'm not entirely sure it will be enough to change the long-term trend of a declining developer base, but it does my heart good to see a Members Only jacket come back into style nonetheless.

I think this is awesome, and Seaside is a big part of the reason. I built something yesterday in Sinatra and found myself wishing I could build it in Seaside. You know you're looking at extraordinary productivity when Sinatra seems time-consuming.

Why use Ruby instead of Smalltalk?

It seems like Ruby is just reinventing the wheel. So, why don't Ruby developers use Smalltalk? What does Ruby have that Smalltalk doesn't?

I believe the answer's Unix. With Ruby you get the Unix ecology and a syntax that derives from the norms of that ecology.

Smalltalk people overestimate the similarity between Ruby and Smalltalk. While it's true that you can write Smalltalk in Ruby if you want, you can write Lisp in Ruby too, or Perl, or Python. Good Fortran programmers can write Fortran in any language; good Ruby programmers can write any language in Ruby. I've even seen people code Ruby like it was Haskell or Erlang.

However, non-Smalltalk people underestimate that same similarity. It's true the languages are very much alike. The shallow way to interpret that is to call Ruby a Smalltalk cover band. The more reasonable interpretation is that Smalltalk's closed system isolated it, while Ruby's participation in the Unix ecology and habit of appropriating features from every language under the sun gives it an infinitely gentler adoption curve and effortless integration with kickass tools like Git.

Postmodern programming for the win.

The questioner also adds:

For the record: I'm a Ruby guy with little to no experience in Smalltalk, but I'm starting to wonder why.

The answer: because you look to anonymous crowds on social networking sites for approval when you should just follow your curiousity and see where it leads.

Seriously. Always trust your curiousity.