2.12. C/C++#
C/C++ は、計算量が大きく、処理速度やメモリ効率が結果に直結する場面において、他の言語に代えがたい存在です。バイオインフォマティクス分野では、分子動力学シミュレーションや構造生物学向けの計算、アラインメントアルゴリズム、アセンブラ、マッピングツールなど、多くの基盤的ソフトウェアが C/C++ で実装されています。さらに、BLAST、BWA、Bowtie といった日常的に利用される代表的なツールの内部処理も、その多くが C/C++ によって書かれています。
一方で、C/C++ は習得や運用の難易度が高い言語でもあります。メモリ管理やポインタといった概念を正しく理解する必要があり、コードを書く際には細心の注意が求められます。そのため、「解析アイデアをすばやく試す」といった用途には必ずしも向いていません。実際の研究現場では、解析全体の流れや前処理、結果の整理には Python や R を用い、計算の中核となる重い処理のみを C/C++ に任せる、という使い分けが一般的です。
C/C++ は表に出ることは少ないが、解析の裏側では静かに、そして確実に働いています。Perl や Python のように華やかさや流行はありませんが、バイオインフォマティクスという分野が巨大なデータと向き合い続ける限り、この無骨な言語が完全に姿を消すことはないでしょう。研究室の最前線ではなく、基盤の奥底で、今日も黙々と計算を続けています。