Messages

It does not make a whole lot of sense to think of a traversal without a traveller. In Smalltalk, travellers move around by means of messages. Let’s explore this further.

What is the meaning of requiring that every message has an answer? If we see the process triggered by sending a message as a traversal through a circuit, then sending a message is some sort of evaluation of the circuit. Asking that every message has an answer is equivalent to requiring that every circuit can be evaluated. This, already, has far reaching consequences.

[…]

The basic idea behind exception handling is that client code does not clutter the main logic flow with checks for error codes, but specifies instead an *exception handler* to “catch” exceptions. When something goes wrong, instead of returning an error code, the method that detects the exceptional situation interrupts the main flow of execution by *signaling* an exception. This does two things: it captures essential information about the context in which the exception occurred, and transfers control to the exception handler, written by the client, whi

> […] the consequence of adding exceptions into a language: *we can no longer be sure that a message send will give us an answer*. In other words, once we have exceptions, any message send has the potential not to return to the sender: it may fail.

~

Alan Kay Turing Award Lecture (2004) page > […] "wow, it's all about messages." The reason it's about messages and not about objects so much is that the messages are the abstractions. We spend far too much time in our field worrying about what the objects are.

Communication and collaboration is based upon exchange of polymorphic messages rather than exchange of "executable" code (DNA/RNA in the case of biological cells, machine code in the case of computing. Only the specialized cell can know what behavior to invoke given a certain message. page

What is message passing?

Alan Kay's Turing Award Lecture ends with a demo that shows the drive-a-car thing – a fascinating exploration of object oriented programming, a fulfillment of his expression that "everything is an object."

* See also Computer Science and Its Relation to Mathematics * You have to understand what the actual scope of computing is going to be and you have to help us invent it. (Replace "computing" by "digital humanities".) * Two Dimensions of "Primary Motivations" – 13:36 / 1:07:51: Reasoning & Change – 95% Instrumental reasoners and 5% interested in Ideas. * Literacy – 30:15 * Advance Organizer, big picture