Aktuelle Änderungen Printable View Änderungen Bearbeiten
AbstractDataType > AbstractSyntaxTree > AbstractSyntaxTrees > ActiveRecord > ActiveXDataObjects > AdHocProgramming > Hacking > AdSenseInXHTML > AdSenseTracking > Agile > AgileSoftwareEngineering > Agility > AgileSoftwareEngineering > Aikido > Ajax > AlanTuring > AlexanderStepanovClear TrailI think that object orientedness is almost as much of a hoax as Artificial Intelligence.
Everybody realizes that strong typing helps in catching errors. I discovered that strong typing, in the context of Ada generics, was also an instrument of capturing designs. It was not just a tool to catch bugs. It was also a tool to think. That work led to the idea of orthogonal decomposition of a component space. I realized that software components belong to different categories. Object-oriented programming aficionados think that everything is an object. When I was working on the Ada generic library, I realized that this wasn't so. There are things that are objects. Things that have state and change their state are objects. And then there are things that are not objects. A binary search is not an object. It is an algorithm. Moreover, I realized that by decomposing the component space into several orthogonal dimensions, we can reduce the number of components, and, more importantly, we can provide a conceptual framework of how to design things.