Sunday, August 07, 2005

One Size Fits All

There has been discussion on the Squeak mailing list about Smalltalk vs. Ruby. It started out as a Rails vs. Seaside question and then turned broader. Personally, I think there is no comparison between Rails and Seaside. Rails includes a simple way to map objects to an OO relational database with a traditional request/response model. Seaside on the other hand does not have a persistence model (they let you decide) and has a more advant-garde yet easier flow model. They both share the simpler is better principle of design, but they have attacked it at different angles. Rails is easier to swallow for most programmers, since it is closer to what they are used to. But, I find Seaside to be the simplest way to build web applications. There are things to learn from both.

On to the broader question of Ruby vs. Smalltalk, there was a lot of discussion of image-based vs. file-based environments. But, I think the one we need to keep in mind is the following quote from Enrico Schwass:
I guess smalltalk and especially squeak get now the chance to spread
wider. Why? Because of the growing ruby community. Smalltalk is
mentioned everywhere. Most of the newer ruby guys are curious enough to
take a look. Like me. This could start a smalltalk renaissance. If you
welcome them friendly :)

The key point is that we should understand that programmers are coming from other backgrounds. We should show them what Smalltalk has to offer and not why we think their language is inferior. We all have things to learn from one another. We need to embrace them with open arms. Smalltalk is cool because it is image-based, but it's a hard sell to a lot of programmers. It presents an alien world that is both strange and unfamiliar. Ruby allows most programmers to stay comfortable in their file-based world, yet take a peak into a pure OO world. One step at a time, I think Ruby prepares programmers for an image-based world. Also, I think they will come to Smalltalk with a different mindset and this will push boundaries. This is a good thing. I am continually amazed at how inventive and creative members of the Ruby comunity truly are. They will be a welcome addition to our community. Besides, who says one language has to rule them all? Let's embrace Ruby for what it's good for and do the same for Smalltalk. I enjoy programming in both and love being a part of their communities. Of course, I enjoy programming in a lot of different languages. Each one has it's pluses and minuses. So, instead of bickering about which one is better, let's learn what's great about each one.

5 comments:

Anonymous said...

Hi Blaine,

first, I agree with you that Seaside is simpler to use than Rails, it works just like a normal application. I do think however that an ActiveRecord-like package to make database-backed website easier would boost Seaside's popularity tremendously.

And I agree with you, the Smalltalk (and also the Ruby) community should be open, friendly, non-snob. People should see more than the language, they should see that it's a great place to get help, meet new people, etc. I do think that the image-source file has tremendous advantages over plain text files, however we need to be able to effectivly, but calmly, demonstrate those advantages; nobody likes someone soving concept down his throat, once you discover something for yourself, you're much more likely to enjoy it than if someone called you a fool on the net for having a different opinion.

Blaine Buxton said...

I think Squeak in general would benefit with better persistence options for legacy systems. I think this in turn would help Seaside. I like the fact that Seaside is a web framework and nothing more. It allows me to pick the persistence mechanism that works for me.

As for the communities, I agree 100%. I think people need to remember that. Snobbery hurt the Lisp community for years. Hell, I didn't mess with PLT Scheme for a long time because of their poor behavior at the Lightweight Languages Conference 2.

Just because someone doesn't your light instantly doesn't make them an idiot. They might have good reasons, listen to them and grow.

Let's all embrace solving complex problems through simplicity.

And let's remember the java community is not evil. Hell, I'm apart of that community too. Lots of old Smalltalkers and aspiring full-time Rubyists are there as well. We just all can't wait to do our jobs better.

Anonymous said...

Hear here!

I couldn't agree with this sentiment more. There are so many things that we can learn from the plethora of languages out there. It is part of why I try to learn at least one new language every year.

Ruby and Smalltalk both have their appeals, and so do Lisp, Objective C, Java, C#, and Delphi (the languages I typically work in). The trick is just to figure out which tasks each language will make easiest and fun.

Anonymous said...

sensual

Anonymous said...

sensual