Parsing a FASTA file or any file format can be hard. But mostly writing a parser can be cumbersome. Thus, people don't do it properly or just copy someone elses work.
For reading FASTA files a lot of bioinformatics tools use kseq.h. However, tool writers fail to get the latest version and instead use some version available to them. At the time of writing that leads to the following situtation:
- current kseq.h
- Mash: nine year old version It was already way out of date at the creation of mash.
- FastANI same super old version
- SNP-dists latest version
This diversification means that tools are left vulnerable to old bugs. Shared libraries allow for easy mitigation of this problem. They can just be updated and all installed programs benefit from the new version.