React 19: Mulla Sadra vs Plato?

Masoud Bonabi
2 min readFeb 21, 2024

--

Object-oriented thinking was the idea that programmers used for many years to implement their programs and model the world of their applications. This thought and worldview included three separate definitions:

  • substance (object or class),
  • characteristic (property),
  • and behavior (method or trait).
Painting of a scene from Plato’s Symposium. Anselm FeuerbachsQGa34z2sZaRmgGoogle Arts & Culture

In most of the programming applications, this thought which was the result of the Platonic worldview (Platonism), led to the creation of programs through which we could model our desired world for the computer and receive the desired output.

But a few years ago, React’s team noticed some flaws in this mindset for implementing interface software that prevented it from being comprehensive enough to describe a world that includes the interface between a user and a server.

The mindset that they finally reached to solve the problem was the same idea that Mulla Sadra brought to philosophy for the first time. This idea, instead of giving value to the characteristics of the substance in its definition, saw them as a secondary product of the behavior of the material, which was called Substantial Movement.

So, instead of defining the substance based on its behavior and characteristics, the substantial movement justifies and models the substance based on its behavior and considers the characteristics to be the secondary product of its behavior. To model this mindset in programming, React succeeded in creating a concept called “a hook”, which is equivalent to behavior that results in characteristics.

For example, in the following code snippet:

const { isLoading, data } = useFetchData();

The two defined variables are the result of the behavior of the substance (or the component) and based on that, one can understand the possible characteristics of the material.

Now, the new version of React (React Forget) is being born with the promise of more simplicity, which, ironically, has created a lot of enthusiasm around it :)

The two hooks useMemo and useCallback will be removed, which is a great place to be happy about and will eliminate our concern about the optimal performance of the software.

The mentality of development with React is different from what we see in OOP or functional programming, and the new learners need to keep in mind that this mentality will change their thinking process for application development.

They don’t need to worry about it. Pieces of this mentality will eventually shape as they gradually take small steps in developing applications with React.

--

--