I’m in the process of writing a presentation that I will be giving in early October entitled Computing to Support Scientific Research: How to stay focused on the science, not the software for the physics department at my alma matter. Given the audience, I want to ensure that all terms and concepts that I would typically use willy-nilly are well defined and concisely used.
One focus of the presentation is tools that have enabled or simplifed development of complex applications. In the abstract, frameworks and toolkits have provided enormous traction toward this goal. I quickly realized that I did not have a concise definition for either term (my thinking tends to be more visual which typically does not allow me to readily translate thoughts into succinct terms). A little searching has resulting in the following:
- Framework: A specification or implementation (code) that provides a general solution to some problem or aspect of applications.
- Toolkit: A collection of programming subroutine libraries that can be used to make development easier.
If the code path is taken, a framework is-a toolkit.