PhpPeanuts is MetaClass' third generation of frameworks for (OO) design and programming. The first generation was developed 1993-1996 in Smalltalk. Its aim was prototyping OO design and application interactively in a single environment. It included property behavior, meta-data consistency checking and automatic testing against constraints defined in the metadata.Once we started to use it for development of a GUI application it was merged with a third party persistency framework.
Originally the framework was thought to become sort of an MDA tool (though the term MDA did not yet exist), but history took a different coarse. To improve productivity the generation of default user interface elements and behaviour was added. It tripled the number of function points produced per week in application development. Measuring more about productivity we found that the use of CASE-tool functionality like diagrams and dialogues did not help much. Because we worked with a small team the diagrams where not very important as documentation either. This is why phpPeanuts, though highly dependent on domain model meta data, has no diagramming tools or CASE tool integration.
The second generation was 1998-2001 in Java 1.1. It was targeted to the development of scalable web based applications with a template engine for cooperation with web designers. The idea was to let web designers design the user interface of web based applications with WYSIWYG tools the same way that GUI applications where designed with a screenpainter. This proved to be very difficult as the leading WYSIWYG HTML editor messed up with the integration of Java Beans as IDE components. But in the end this track was left because the cooperation with web designers did not work that way. What worked was to let a designer make a design, then let a software developer turn that into working software. You don't need WYSIWYG tool integration for that. However, the software architecture for scalability is still interesting. MetaClass still has some documentation of this architecture on line.
The php version is simpeler yet more powerful then ever in the crucial areas of application
development and prototyping. It is closer to the original version with respect to prototyping of design and automatic user interface generation, but web based like the second. New is the inclusion of a unit testing tool and hypercode browsers (the last is still not released yet).
We are no longer alone in automatic user interface generation and prototyping of design: Since 2003 www.nakedobjects.org offers a framework that supports a similar approach for GUI applications. is a hyped framework in Ruby that does limited for CRUD operations. HowToExtendScaffolding on the Rails wiki describes extended scaffolding for Ruby on Rails and dates back to 2005. Django is a framework in Python that is said to do extended scaffolding. It seems to date back to 2005. Since 2007 ActiveScaffold offers extended scaffolding for Ruby on Rails. Streamlined also offers extended scaffolding and its news archive goes back to 2006.
In the area of generating behaviour instead of code we also got company: The developers of the MDA tool Codeless claim that from "a decade of know-how in maintaining systems with more than 30 million lines of generated code" they concluded that the best code generation is not to generate any code at all. PhpPeanuts does not generate code, except for the skinDetailsTable, and even then only if the developer chooses to do so. For more info on Codeless google for "chooses not to generate code at all"
PhpPeanuts is web based and highly customizable. It is used in practice for a project information system for our own projects, a CMS that is running a series of websites, including phpPeanuts.org itself, and several other applications. For more information in Dutch, see www.metaclass.nl.