Tuesday, October 23, 2007

Automation is the Key

I've been working on programming problems at work. They are pretty much run of the mill create, retrieve, update and delete user interfaces. Unlike other interfaces that I've done in the past, these are very focused, mostly dealing with modifying data from a single table. The problem at hand, of how to allow the user to modify such data in a coherent and reasonable way, presented a solution for each individual interface that had much in common similar solutions for each of the other similar tables. This was true to such an extent that I was able to generalize more than three quarters of the interface, the remaining quarter or so followed reasonable conventions and design choices that were directly the result of the structure of data and and its constraints. This set me to thinking about automating that design and implementation process, even if such a process resulted in code that was 95% complete with only minimal manual customization. We already generate 100% of our simple data access layer artifacts. We do this thorough a generator driven by simple declarative data in XML. Since we already do it for the data access layer in a very primitive template driven way, why couldn't we use a design rules and design implementation rules engine driven "expert system" code generator to create useful and coherent user interface from simple declarative data about the data the interface presents and how that data is to be manipulated.

Since I've written a very basic expert system for plant identification in an AI course, and written it in Lisp, this gives me a practical reason for (re)-learning LISP and learning it in greater depth. I'll elaborate on my thoughts on this in later posts

No comments: