That certainly applies to the web, which has become a platform for all kinds of components to plug into. Moreover, it is naturally open, thanks to HTML – although there are some worrying attempts by Google, Microsoft and the BBC to start closing it down. This means that it's easy to learn from and build on the work of others. Additionally, the web has become such a pervasive part of modern life that people may not think of writing HTML as coding – an important detail when many scientists probably feel they don't have the time, inclination or skills to become fully-fledged coders.
That also fits in well with Mozilla's recent efforts to increase web literacy, for example, through its Webmaker initiative (something that's invoked in the job title "Director, Webmaking Science Lab"):
The goal: help millions of people move from using the web to making the web. As part of Mozilla’s non-profit mission, we want to help the world increase their understanding of the web, take greater control of their online lives, and create a more web literate planet.
So, assuming this vision is realised, and we have a new generation of web-savvy scientists, what kind of thing might we hope to see? As it happens, Nick Barnes, who also made an appearance in my previous column on open source in science, has put together a fascinating post that explores this very idea.
It's extremely detailed, and offers a compelling vision of what a web-based world of open source open science might look like. It's well-worth reading all of it (and a follow-up post on the same subject), but here's a short sample to whet your appetite:
Whether [the scientist] Binita and her colleagues are coding in their browsers, or on their own machines, they are using CodeNotebook*, a descendant of iPython Notebook+, which allows them to interactively develop “notebook” pages, incorporating code, charts, text, equations, audio, and video. They can work on separate computations, or connect together to the same notebook server (on the notebook hub) and code interactively together. Since 2012, people have been using this technology to write websites, academic papers, and even textbooks. The CodeNotebook system is not language-specific: Binita can use her favourite language (which happens to be some species of Python+) and adds interfaces to some third-party Fortran+ libraries to do heavy numeric lifting, and a C+++ subsystem for audio processing.
Several times during the research project, starting with those Fortran and C++ modules, Binita realises that she can save effort by re-using other pieces of code. These might be her own modules from previous projects, or sections of other researchers’ projects. These modules are separate projects on that hub, or maybe some other one. She adds these versioned dependencies to the project configuration, and the code is automatically integrated by the version control system, and added to the citations section of her notebook pages. The other researchers whose code she is re-using are notified, and some get in touch to see whether they can contribute (and maybe get additional credit as contributors).
I hope that vision sounds as exciting to you as it does to me, because there's another important aspect here. This isn't just about scientists learning how to use the web to do science, or how to code HTML. It's also a huge opportunity for the open source world to embark on a wide range of new projects designed to support that move. These are likely to lead to the creation of major new codebases and throw up intriguing new issues that need resolving through some deep hacks. Both of those will be invaluable in attracting more programmers into the free software sphere – perhaps a new breed of coder scientist – who will help maintain its vitality and vibrancy, and push it ever deeper into not just science, but all fields of knowledge.