date: '2005-03-13 14:03:00' layout: post slug: taking-plato-out-of-software status: publish title: Taking Plato Out Of Software wordpress_id: '67' categories: Programming


Object-oriented methods are considered the best way to build large, maintainable software systems. Languages such as C++, Java, and Python now dominate in many areas, and the conventional wisdom encourages us to do analysis and design in an object-oriented manner.

It seems pretty obvious to me that object-oriented thinking is a direct application of Plato’s philosophy of ideal types that has been the foundation of much of Western philosophy and religion. If we look outside this parochial tradition we find that Buddhism proposes that there are no such ideal types, that objects and people are constantly in flux, and have indefinite boundaries. It proposes that the perception of type, or even self, is an illusion.

Imagine there was a software methodology that was based on Buddhist philosophy rather than Plato’s philosophy. What would it look like?