Are objects inherently reactive?

To summarize, my previous post on Key-Value Observing (KVO) and Cocoa Bindings sparked significant discussion and influenced my ongoing work on Objective-Smalltalk. The ideas I presented, particularly regarding talks on software architecture, have led to promising early results which I’ve been able to present.

However, my statement that object-oriented programming (OOP) is inherently reactive, unlike functional programming which requires something additional to become interactive, was met with some pushback. Some, including members of the ReactiveCocoa community, interpreted my statement as a dismissal of Functional Reactive Programming (FRP)’s relevance.

This reaction was unexpected, as my point was primarily about the confusing overload of the term “reactive.” My intention was to highlight the inherent reactivity of objects responding to messages, a concept so fundamental that I didn’t delve into it deeply. This viewpoint is further supported by Conal Elliott, the originator of FRP, who has stated that frameworks like ReactiveCocoa and Elm do not actually constitute FRP.

To clarify, I’ll elaborate on the terminological confusion surrounding “reactive” in future posts. It’s worth noting that Conal Elliott himself has expressed concern over the misapplication of the term “Functional Reactive Programming” to systems deviating from its original definition. He emphasizes the continuous time aspect and precise mathematical meaning inherent in true FRP.

Let’s examine how “reactive” applies to objects. A 1995 article in Communication of the ACMSpecial issue on object-oriented experiences and future trends” states that leading experts recognized the need for objects to become more proactive, contrasting with their existing reactive nature where they respond to messages.

Furthermore, the 1983 Blue Book defines objects as entities that respond to messages through their interface, highlighting this interaction as crucial to their nature. The definition of “respond” aligns closely with “react,” reinforcing the notion of objects being inherently reactive.

This understanding of objects as reactive entities is not limited to these sources. Numerous examples from various computer science literature, documentation, and lectures over the past few decades consistently describe objects as responding to messages. This concept is prevalent even within Apple’s Cocoa/Objective-C documentation.

In conclusion, traditional OOP is inherently reactive, while FRP, as defined by its creator, is not. The classification of frameworks like ReactiveCocoa and Elm remains unclear, but they do not fit the criteria of true FRP.

Stay tuned for a deeper dive into the true meaning of “Reactive Programming.”

Feel free to share your thoughts and comments here or on HN.

[..] Adding reactivity to an object-oriented language is, at first blush

@Javi

@kyleve

January 27, 2015

on first impression

tell them

Essence and Origins of FRP

[What is Functional Reactive Programming:  Something of a misnomer.  Perhaps Functional temporal programming

https://vimeo.com/6686570

The promise and the cost of object technology: a five-year forecast

Smalltalk 80, The Language and It’s Implementation

Design Principles Behind Smalltalk

Foundation of Object-Oriented Languages

The Be Book - System Overview - The Application Kit

Advances in Object-Oriented Graphics I

CS 136 lecture

Object-Oriented Programming with Objective-C

Object-Oriented Information Engineering: Analysis, Design, and Implementation

CLIPS - object-oriented programming

Design Concepts in Programming Languages

Cocoa

Interface Design

What is Functional Reactive Programming:  Something of a misnomer.  Perhaps Functional temporal programming

Licensed under CC BY-NC-SA 4.0
Last updated on Jun 06, 2022 02:39 +0100