I think that comparing LCOD and GOOP is like comparing apples and oranges. Sure, both methods allow you to encapsulate data in a private way, but I can't see a way of instansiating objects using the LCOD method, which (for me at least) is the main reason to use OO (that's where the scalability comes in - check out this for an introduction). There's also several other benefits to OO, inlcuding the ability to use inheritance from parent classes, etc... That said, many (but not all) GOOP engines use LCODs in their object repositories, so you could argue that OO extends the LCOD paradigm even further...