An analysis tool extracts class data from Java objects originating from multiple vendors having a particular design specification. A database mining tool then creates training data from the extracted class data to create a definition of objects associated with the particular design specification. Various implementations of the defined classes are compared across various performance metrics, which are output for the program designer as a function of vendor. The designer then selects the best design choices based on the best practices of multiple vendors disclosed by the outputs of the analysis tool when implementing a new Java program.