A modern cynical view of Alchemy can pretty much be summarised as the expectation of "something for nothing". That from some minimal poor quality resource may be extracted some high quality product. This is the "Alchemist's Dream".

The Cut The Crap Alchemist

The claim of the Cut The Crap Alchemist, is that from relatively simple design decisions a complete and consistent object model may be inferred, and furthermore, the code for that model may be generated.

How?

At the level of entity properties, it is well accepted that simple classes and code can be generated - along with provisional database schemas, for example.

In the development of systems using Generic Persistent Objects (GPOs) it has been noted that there are a number of other design patterns that appear quite mechanical. Specifically those relating to system initialization, object access and object lifetime functions.

This kind of functionality has normally been specified under "business" methods, and thus been ignored by any attempt at generation. It has been the experience that the vast majority of system code can in fact be inferred from simple object relationship specifications.

At each stage of semi-mechanical code writing, the question was asked "Why am I doing this?", and surprisingly often it was possible to realise a simple rule that could be used to trigger a specific pattern.

Critical to the realisations made was the underlying persistence model. This dramatically reduced the amount of code needed and made the implemented patterns more apparent.