User talk:Colby Russell/Draft:The case for object-functional programming

Another subtle benefit of concrete objects (i.e. using the language's built-in syntax and semantics for dealing with objects) over plain closures has to do with types. ("What? A focus on types in a dynamically typed system?"  Yes.)

There are relevant complaints from C programmers like Linus and Joel Spolsky about having to track down, say, what an operator does or what a given method does, based only on what's written at the callsite. But C has function pointers, which sometimes get used like lambdas, and which presents opportunities in pathological cases for the exact same thing confusion.

Two takeaways:

1. It's the pathological use that's the problem and not the opportunity itself

2. By using built-in object syntax tastefully, the programmer can be nudged into "concretizing" the sorts of things that people look to find at written at the callsite to eliminate the confusion/tedium that people complain about when they speak out against "OO".