Company:
Sun Microsystems, Inc.
Role:
Experience Lead & Manager
Dates:
2002 - 2006
Creating GUIs in Java required the use of 'layout managers'. Layout managers were algorithmic engines that determined the size and location of widgets within a window. Various factors, such as the localized string length, contributed to the decisions about the size and location of widgets. While technically flexible, layout managers were notoriously difficult to use. (See "Totally Gridbag" for a humorous example.)
I created a vision document describing how layout managers thwart people's attempts to create GUIs in a natural way and detailed the changes needed to address this problem in the Java SE platform and the NetBeans GUI builder tool. This document formed the basis for Project Matisse, the GUI builder shipped in NetBeans 5.0 and Java SE 6 (1 | 2). This single feature was a major selling point for the NetBeans 5.0 release and garnered very favorable reviews and awards (1 | 2).
There were 4 important aspect of Matisse in the NetBeans IDE. Matisse helped designers group semantically-related widgets. Edges of related widgets could be aligned visually by using the provided "guide lines". The edges of the window could be used to place and align widgets. Two widgets containing text could be aligned according to the baseline of the text visualized with "guide lines".