Update: Firstly, Marcel Weiher gently reminds me of a fairly important point,

In regards to OOP — Smalltalk is at the very foundation of classic Object Oriented Programming.

via [Vista:SmallTalk] On Alan Kay: It’s *ALL* About Messaging

Smalltalk is not only NOT its syntax or the class library,
it is not even about classes. I’m sorry that I long ago
coined the term “objects” for this topic because it gets
many people to focus on the lesser idea.

The big idea is “messaging” — that is what the kernal of
Smalltalk/Squeak is all about (and it’s something that was
never quite completed in our Xerox PARC phase). The Japanese
have a small word — ma — for “that which is in between”
- perhaps the nearest English equivalent is “interstitial”.

The key in making great and growable systems is much more to
design how its modules communicate rather than what their internal
properties and behaviors should be.

Think of the internet — to live, it
(a) has to allow many different kinds of ideas and realizations
that are beyond any single standard and
(b) to allow varying degrees of safe interoperability between
these ideas.

Secondly, I think one of the O’Reilly servers needs a bit of a tune-up on the system clock — Regardless of what it might seem, I promise, I didn’t reply to Marcel *BEFORE* he made his original comment. ;)

None-the-less, thanks for the reminder, Marcel!

[Original Post]
As promised, Peter Fisk has followed up yesterdays post with an overview of using JSON Arrays together with Smalltalk messages,

JSON Arrays and Smalltalk Messages � Microsoft .Net and Smalltalk

JSON (Javascript Object Notation) is a simple, lightweight data-interchange format which has libraries available for most languages. Using JSON, simple arrays of objects can be sent between Vista Smalltalk sessions.

And this method in class Object can then execute the arrays as Smalltalk messages:
performArray: anArray
self perform: anArray first asSymbol withArguments: anArray withoutFirst

As an example, the TmsTicTacToe game sends two kinds of messages to the opposing player:
- a text message which appears in the chat window
- a “mark tile” message which marks a tile on the opposing player’s board

For those of you who would rather chew on tinfoil than muck around with angle brackets, my guess is that this is something you will find most exciting. :)

Couple of things to note,

* Smalltalk is *FUN* to program in.
* Smalltalk is *EASY* to learn (the syntax is *WONDERFUL*)
* In my own opinion, Smalltalk brings life to Object Oriented Programming, as the objects themselves take on more of the characteristics that you and I, as humans, are used to. In other words, communicating information instead of representing that information (if that makes sense.)

To think of it another way, when two people are communicating, there is interaction taking place, an ongoing dialogue between two action-oriented figures. The same is true about Smalltalk — theres always a constant dialogue taking place, messages being passed from one “actor” to the next, processed, acted and reacted upon, responding as necessary with the information that is needed to continue forward.

Classic OOP, on the other hand, is less about the dynamic communication of data, and more about the static representation of that same data.

The bottom line: If your an OOP kind of hacker, yet like the idea of programming in a more interactive, dynamic environment, and/or if your the type that thinks AJAX is the greatest “invention” in the history of *ALL* inventions –

You’re going to like Smalltalk.

Thanks Peter! :)