November 14th, 2007

Flamingo component suite 3.0 – the vision

After quite a few months of preparations and planning, the Flamingo component suite project has a formal vision. Here is the list of goals for the version 3.0 that will be released in February 2008.

  • To provide a small and cohesive set of powerful UI components that allow creating modern applications that provide visual functionality similar to or superseding that of Vista Explorer and Office 2007.
  • To provide out-of-the-box consistent look across existing and future core and third-party look-and-feels with any specific application or implementation coding.
  • To allow third-party look-and-feel vendors to change the appearance and behavior of the components according to the functionality of the specific look-and-feel (for example, animations).
  • To respect the DPI settings of the current look-and-feel, scaling the components as necessary to account for different base font sizes.
  • To follow the core Swing guidelines in the external APIs and the internal implementation details to ease the learning curve for users, developers and look-and-feel implementors.
  • To provide clean and maintainable blueprints for creating custom production-ready third-party Swing components.

In order to meet these goals, the following changes will be made for the first source and binary drops of Flamingo 3.0dev that will be available early next week:

  • The minimum requirement for the release 3.0 will be JDK 6.0.
  • Components that do not conform to the first goal (such as wizard, file viewer and message dialog) will be removed from the distribution.
  • The package structure, public APIs and class names will be changed to conform to the last goal.

In doing so, i’m following the three principles outlined by Seth Godin for small business success:

  • Removing the functionality that was either partially or poorly implemented and not ready for production use.
  • Willing to introduce binary incompatibilities and higher minimum requirements for greater long-term gain for both the project and the community.
  • Believing that while other component vendors do not provide the target components, they cover the majority of other functionality required from modern Swing applications.