Archive for September, 2007

Lego, DSLs and Naked Objects

I consider myself to be something of an expert on Lego. In 1984 I wrote a book about robotics, which included instructions for building a number of quite sophisticated robots using Lego Technic. The book never sold well, and is now long out of print - but it did make my (substantial) Lego purchases tax deductable! Lego has oft been used as a metaphor for componentised software. I think it’s a poor metaphor, except insofar as it exposes the woolly thinking that surrounds the idea of software componentisation generally. A componentised system is one in which it is possible to replace a component with another implementation that conforms to the same specification: thereby not only giving you the choice of alternative suppliers, but also to encourage innovation. Sound and video systems, desktop PCs, and bicycles are examples Read more »

Comparing Naked Objects with Rails or Grails

In the course of presenting Naked Objects to a new community this week, I was asked how it compared to the Ruby on Rails and/or Grails frameworks  -  a question that comes up quite frequently.

Naked Objects is similar to Ruby on Rails and Grails in the following ways:

  • All three frameworks demonstrate a very high commitment to the principle of Don’t Repeat Yourself (DRY), specifically by deriving the presentation and/or the persistence layers from the domain model.
  • All three frameworks favour convention over configuration as a programming model.
  • All three frameworks can be used to deliver finished applications, but may also used to build prototypes of systems that will eventually be delivered on a different platform.

But there are also some profound differences Read more »

Naked Objects and AOP

Last week I was involved in a teleconference with Ramnivas Laddad  -   a leading proponent of Aspect Oriented Programming and author of  the excellent book ‘AspectJ in Action’.  We were discussing (amongst other things) the potential synergy between Naked Objects and AOP.

We’ve been reluctant to tie Naked Objects specifically to AOP, because that might narrow the community to which it might appeal.  But it seems to me that for anyone who already understands and uses AOP (specifically AspectJ) then there are some very easy advantages Read more »