On Apr 7, 2006, at 8:21 AM, John wrote: > Stephen Tashiro wrote: >> This is not a ruby specific topic but since there were some definite >> opinions expressed about systems of writing GUIs in a recent >> thread, let >> me ask it here. >> >> Is there a practical program architecture for separating the gui >> portion >> of a program from the part that does the "real work"? Or is this >> just a >> high flown idea that is rarely practical? > > You need to look into a concept called MVC - it stands for > Model/View/Controller. The original post was a pretty general question. MVC is certainly one approach but it still embeds the 'real work' in the GUI application albeit via a nice internal structure. Another thought is that the 'real work' is done via some sort of a server application with an API that is accessed from clients via inter-process communication of some sort. Think of the separation of functionality between a mail reader application and the back end mailbox server via IMAP or POP. It might be worth exploring the c2.com website which has lots of discussion on software patterns. You might start at http://c2.com/cgi-bin/wiki? ModelViewController Gary Wright