Yeah, agent vs object is the main thought I have as well after reading this post.
Coming from the perspective of affordances as belonging to the object, I have been thinking about the following recently. In programming, one of the big reasons to “choose the right tool for the job” is because of affordances. For example, suppose you have a bunch of functions that you want to wrap in a namespace. You can have a class and then make all of the functions static methods of the class. This is something I see Ruby programmers do. However, a class affords a few important things that aren’t being used here. Mainly object instantiation and inheritance (if you don’t need inheritance you can use a factor instead of a class). So then, due to the misleading affordances, I see a class with static methods as the wrong tool for the job.
Yeah, agent vs object is the main thought I have as well after reading this post.
Coming from the perspective of affordances as belonging to the object, I have been thinking about the following recently. In programming, one of the big reasons to “choose the right tool for the job” is because of affordances. For example, suppose you have a bunch of functions that you want to wrap in a namespace. You can have a class and then make all of the functions static methods of the class. This is something I see Ruby programmers do. However, a class affords a few important things that aren’t being used here. Mainly object instantiation and inheritance (if you don’t need inheritance you can use a factor instead of a class). So then, due to the misleading affordances, I see a class with static methods as the wrong tool for the job.