| Cross-platform user interfaces are time-consuming to develop and even more time-consuming to maintain. To solve this problem we introduce the Interface Markup Language, a language we developed to represent platform-independent user interfaces, along with a system of software patterns that provide a consistent way for user interfaces to interact with application models. To support our approach, we have implemented translators that convert VisualWorks Smalltalk user interfaces to the Interface Markup Language, and others that convert from this format to operating system resources, HTML forms, Java Swing and AWT frameworks. |