Talks
Speakers
Events
Topics
Search
Sign in
Search
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
search talks for
⏎
Suggest modification to this talk
Title
Description
by Brian Knapp “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).” - Alan Kay Object oriented programming is what gets a lot of attention, and it is often set in opposition to functional programming. However, it seems that OOP with its focus on classes, inheritence, and polymorphism missed what Alan Kay was really working on - messaging systems. In this talk we will examine the fundamental pieces to what I am calling message oriented programming. We will look at the request/response message pattern, we will look at the structure of messages themselves, and we will look at how protocols can be created to enforce a sane message passing system. We will also look at how this fits with Ruby, OOP, FP, and modern distributed computing patterns like REST, SOA and microservices. They are all related an it’s clear that message oriented programming has a place in the programmer’s toolbox. In fact, we are already using message oriented program to power modern applications, we just don’t know it yet. Help us caption & translate this video! http://amara.org/v/GWI7/
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In this talk, Brian Knapp delves into the concept of message-oriented programming, exploring how it differs from and enhances traditional object-oriented programming (OOP) and functional programming (FP). He emphasizes that the core idea behind OOP, as originally envisioned by Alan Kay, centers not on objects or classes, but on messaging systems. This talk outlines the following key points: - **The Fragility of Modern Code**: Knapp discusses the prevalence of broken and fragile code in our systems, highlighting the urgency to improve software reliability, especially in critical systems that affect everyday life. - **Comparison of Programming Paradigms**: While OOP and FP are often viewed as opposing approaches, Knapp argues that both paradigms can produce brittle code under poor input conditions. He describes how input, processing, and output form a foundational concept in programming. - **Definition of Messaging**: He presents messaging as the fundamental method of communication between software components and compares it to input-output processes familiar in applications and games. - **Importance of Protocols**: Protocols, which dictate how messages are communicated, are crucial in maintaining clear communication among components. This can be likened to languages that facilitate understanding, such as English. - **Computers as Objects**: Knapp relates Kay’s view of computers as objects that have local state and communication capabilities through messaging, suggesting that many implementations of OOP fall short of this vision. - **Refining Code for Robustness**: Through a practical coding example, he illustrates how code may appear straightforward yet overlooks critical error handling and context considerations. By enhancing documentation and error management, systems can achieve greater reliability. - **Shifting Focus in Development**: Knapp concludes that developers should prioritize communication and protocols over mere algorithmic efficiency, especially as systems grow more complex and interconnected. The talk emphasizes the necessity for programmers to acknowledge the role of messaging in software systems and improve communication protocols for better code reliability and effectiveness. Knapp encourages developers to integrate these principles into their practices to harness the full capabilities of modern technology.
Suggest modifications
Cancel