[Pharo-project] GSoC proposal: Naked Objects using Magritte

Stephan Eggermont stephan at stack.nl
Fri Mar 9 08:43:59 EST 2012

After a discussion with Esteban, Nick challenged me to submit a proposal.
An alternative would be to start from Glamour instead of from Magritte 3.

Proposal: Extend Magritte 3 to create Naked Objects style interfaces
Level: Intermediate
Possible mentor: Stephan Eggermont
Possible second mentor: Esteban Lorenzano


"What if you never had to write a user interface again? What if you could
simply expose your business objects directly to the end user? How would this
affect your productivity? The way you work? The flexibility of your
applications? Is this even possible? Sometimes, yes. This describes a
style of application development, Naked Objects, where you write just the
business objects, and a framework lets your users interact directly with
these objects." (Dave Thomas) 

Technical Details

Using Magritte we can already build (web/glamour)components representing
attributes of domain objects. What should we add to enable a NO UI?
- (better descriptions of) relationships between domain objects;
- descriptions of actions, with and without parameters;
- build a canvas where multiple domain objects can be shown;
- make the domain objects identifiable with an icon and title;
- add drag-and drop to initiate actions and manage relationships;
- add buttons/drop down menus for actions;
(and a few other things, of which I'll think when these are finished :)

Benefits to the student

Learn to use and extend a high quality framework. 
Learn and practice interaction design.
Learn about hexagonal architecture.

Benefits to the community

The Naked Objects UI enables a very short feedback loop when prototyping a 
domain model. It provides a showcase for the superiority of smalltalk as a
rapid development environment. It allows scaling down the engineering effort
needed to create custom solutions. It fits very well with exploratory modeling.
In a mixed UI style it allows focusing effort on only the critical parts of the UI.

More information about the Pharo-dev mailing list