The Small Tools Manifesto For Bioinformatics [Security Too?]

The Small Tools Manifesto For Bioinformatics

From the post:

This MANIFESTO describes motives, rules and recommendations for designing software and pipelines for current day biological and biomedical research.

Large scale data acquisition in research has led to fundamental challenges in (1) scaling of calculations, (2) full data integration and (3) data interaction and visualisation. We think that, because of researchers reaching out to turn-key solutions, the research community is losing sight of the importance of building software on the shoulders of giants and providing solutions in a modular, flexible and open way.

This MANIFESTO counters current trends in bioinformatics where institutes and companies are creating monolithic software solutions aimed mostly at end-users. This MANIFESTO builds on the Unix computer tradition of providing small tools that can be used in a modular and pluggable way to create efficient computational solutions where individual parts can be easily replaced. The manifesto also counters current trends in software licensing which are not truly free and open source (FOSS). We think such a MANIFESTO is necessary, even though history suggests that software created with true FOSS licenses will ultimately prevail over less open licenses, including those licenses for academic use only.

Interesting that I should encounter this less than a week after Back to Basics: Beyond Network Hygiene by Felix ‘FX’ Lindner and Sandro Gaycken.

Linder and Gaycken’s first recommendation:

Therefore, our first recommendation is to significantly increase the granularity of the building blocks, making the individual building blocks significantly smaller than what is done today. (emphasis in original)

Think about it.

More granular building blocks means smaller blocks of code and fewer places for bugs to hide. Messaging between blocks allows for easy tracing of bad messages. Not to mention that small blocks can be repaired and/or replaced more easily than large monoliths.

The manifesto for small tools in bioinformatics is a great idea.

Shouldn’t we do the same for programming in general to enable robust computer security?*

*Note that computer security isn’t “in addition to” a computer system but enabled in the granular architecture itself.

I first saw this in a tweet by Vince Buffalo.

Comments are closed.