The science of scientific software
Scientific research increasingly relies on software to drive experiments. Funding agencies are faced with increased requests to fund software development but what happens when the experiment is completed? When the grant terminates? When the student graduates? Big science - the supercolliders, space exploration, etc. – have permanent staff devoted to software development. Medium size consortia have continuity through overlapping grants but still rely heavily on student programmers whose primary focus is the experiment needed for their degree. Individual investigators hire students some of whom have prior programming experience but seldom at a professional level.
Beakers are washed and reused for many experiments, why not the software? What are the essential practices needed for sustainable scientific software development? How do we convey these practices to the scientific community at all levels? Through a scientific software platform? There are successful examples in specific domains such as Cytoscape, which provides network data integration, analysis, and visualization, and NAMD, which supports molecular dynamics computation.
An ecosystem may be the answer to sustaining scientific software. Even relatively small research groups have interactions with similar researchers and often have support from multiple sources. This is the beginnings of a sustainable ecosystem. A standardized and simplified software development environment that provides general facilities such as version control and configurable build tools and specialized science content such as numerical libraries might be very useful to the emerging ecosystem. The Eclipse IDE provides a proven basis for this platform. In this presentation I would like to start a dialog about the types of facilities that could be provided to science enterprises of various scopes and disciplines and how the Eclipse community might support that development.