In Java there are the basic classes of the java.lang and the java.awt, which package the most necessary elements such as control structures and user interface controls. However, the Java basic classes aren t enough to create much more than modest programs. The term foundation is misleading because these are not the most basic classes, but they are often the most frequently used in building real applications. Even at this so-called foundation level, building applications requires programming to connect many parts. When you add beans to the application, you still need a way to integrate all the components.
Integration usually requires a considerable amount of ad hoc programming as well.
For anyone developing more than one application, it quickly becomes apparent that cobbling these pieces together for each application is a waste of time. Yes, and it s called an application framework. I ve always considered application frameworks the most convenient way to bundle code and documentation for all the major elements of an application, including data access, menus, user interface controls, help systems, and error trapping. Reusable application frameworks are exactly what IBM s San Francisco project is all about. Developers build applications by modifying and extending the default business objects and logic of the framework rather than starting an application from the raw requirements and application analysis.