Objective-C is hands-down my favorite programming language. Even though I was taught primarily C++ in college, and indeed spend most of my time coding in that language, I consider knowledge of Objective-C to have given me the most useful insights into software design and architecture.
Objective-C and Ruby are both descendants of Smalltalk. All three languages are object-oriented, and have the notion of message passing as a central construct. Message passing is not found in more popular languages like C++ and Java, yet understanding it can give any developer an invaluable new perspective.
In an attempt to further my understanding of these concepts, I’ve recently been studying Smalltalk. While having been around for more than 30 years, the concepts behind the language are still considered state-of-the-art and its influence is broad. That influence extends all the way to the web, as I discovered in a recent entry by James Robertson.
HTTP was design as a distributed realization of the Objective C (originally Smalltalk) message passing infrastructure: the first few bytes of every HTTP message are a method name: GET or POST. Uniform Resource Locator is just the result of squeezing the term object reference through the IETF standardization process.
Recent projects have caused me to view the web as just such a distributed object system. However, I was not aware of the historical link to Objective-C and Smalltalk. Seen in that light, though, the message passing approach is remarkably consistent.
David Heinemeier Hansson, the creator of Ruby on Rails, is a true innovator in the web application frontier. His addition of Active Resource to edge Rails is the natural next step in this line of thinking. In his keynote address at RailsConf 2006, he gives a compelling presentation about the benefits of discovering a world of resources.
Message passing languages are efficient and productive for application development. Unfortunately, they have a minority stake of developer mindshare. Ruby and Rails are currently improving this situation. It may be wishful thinking, but I’d like to see these trends renew interest in Objective-C and Smalltalk as well.