Naked Objects

From LtU, A brief introduction to Naked Objects. This sprung up in response to a question on squeak-dev along the lines of “if squeak if so OO, why do we use so much ascii text?”. This is closely related to work done on the Self language, which I looked at a few weeks ago. Self is a runtime-typed OO language, but without the notion of classes. Objects aren’t instanstances of a class. They just are. Self also has a morphic-esque direct manipulation GUI whereby you can leap in an manipulate any object directly. The big idea behind Self is one of a consistenly present world of manipulatable objects, much like the real world. Unfortunately, the Self runtime is only available on Mac and Sparc, of which I have neither, so I can’t play with it. But, the ideas are interesting. C++ certainly doesn’t present a “consistent” view of the world – using a std::map from the “source world” and using it in the “executable world” with the debugger are as different as night and day. Or at least they will be until someone writes a nice debugger plugin API for displaying custom types.

The other gem I’ve recently discovered is the ever-popular Big Ball of Mud programming pattern.

1 reply on “Naked Objects”

Some short notes…

–Naked objects require a grammar to decide which UI to display. Java uses the type declariations as a grammar declaration. Smalltalk doesn’t have type declarations for its ivars so it won’t work: objects cannot be ‘naked’ we need to add some sort of grammar declaration before such a UI can be synthesized.

–Self is not Morphic-esque, AFAIK it’s the other way around: Morphic was designed on and for Self and was later ported to Squeak. So Squeak has a Morphic-esque UI 😉

–There _are_ self VMs for Windows/Linux86 but they are experimental, see


Comments are closed.