Leveraging Alan Kay's Extreme Late Binding on the Web
Design systems you can change while they are still running
Below is an excerpt from my book "RESTful Web API Patterns and Practices Cookbook" from O'Reilly Media
An important aspect of creating reliable, resilient services that can “live on the web” comes from U.S. computer scientist, Alan Kay. He is often credited with popularizing the notion of “object-oriented” programming in the 1990s.
When explaining his view of object-oriented programming (OOP) on an email list in 2003, Kay stated: "OOP to me means only 1) messaging, 2) local retention and pro‐tection and hiding of state-process, and 3) extreme late-binding of all things."
In 2019, Curtis Poe wrote a blog post exploring Kay’s explanation of OOP and,among other things, Poe pointed out: “Extreme late-binding is important because Kayargues that it permits you to not commit too early to the one true way of solving an issue (and thus makes it easier to change those decisions), but can also allow you to build systems that you can change while they are still running!" (emphasis Poe’s)
Just like Kay’s view of programming using OOP, the web -- the Internet itself -- is always running. And any services we install on a machine attached to the Internet is actually changing the existing system while it is running. That’s what we need to keep in mind when we are creating our services for the web.
It is this notion -- that extreme late binding supports changing systems while they are still running -- that can be used as a foundational element in both the design and implementation of services that live on the web.
The 70+ recipies in my book “RESTful Web API Patterns and Practices Cookbook” are all designed to leverage Alan Kay’s Extreme Late Binding on the Web.
For a more direct exploration of the connections between Roy Fielding’s REST and Alan Kay’s OOP, see my 2015 article "The Vision of Kay and Fielding: Growable Systems that Last for Decades"