ソフトウェア

科学に貢献するオープンソースソフトウェア開発者たちの知られざる苦労

by Wavebreakmedia

2019年4月にはブラックホールの姿が公開されて話題となりましたが、この科学史に残る快挙はオープンソースで作成されたPythonのグラフ描写ライブラリMatplotlibを使って成し遂げられました。このように、いまやPCを用いた科学研究には欠かせないオープンソースソフトウェアですが、その開発者が突き当たる問題の数々と、その解決方法をサイエンスライターのAnna Nowogrodzki氏がまとめています。

How to support open-source software and stay sane
https://www.nature.com/articles/d41586-019-02046-0

◆ユーザーサイドから見た問題
研究に使われるオープンソースソフトウェアはしばしば科学者自身が作成していますが、科学者はソフトウェア開発の専門家ではないため、コードのドキュメンテーションやテストに関するベストプラクティスを身につけていないことがままあります。しかし、保守が行き届いていないソフトウェアは研究に資するどころか、かえって科学者らの時間と労力を浪費しかねません。

ニューヨークのコールド・スプリング・ハーバー研究所に勤める計算生物学者アダム・シエペル氏は「生物学者は日々、ほかの研究者が書いたコードに四苦八苦させられています。科学者の間で使われている計算ツールの中には、実行して即クラッシュしたり、ろくにコンパイルされていなかったり、サポートしているウェブサイトが存在しなかったりということがよくあるからです」と苦労を語っています。

by Rawpixel

欧州分子生物学研究所のウォルフガング・ハーバー氏は「それでも、やはりオープンソースソフトウェアは科学に資するものです。オープンソースソフトウェアをリリースするなら、サポート作業とFAQの準備が欠かせません。それを準備するのは簡単なことではありませんが、私はそれを楽しんでいますよ」と話しています。

◆開発者目線での苦労
ソフトウェア開発を行う科学者にとって、オープンソースソフトウェアのリリースはゴールではなく苦悩の始まりだといえます。中には、専属のエンジニアまで雇ってしまう人もいるとのことですが、オープンソースソフトウェアに関する作業の大部分は無償のボランティアによってまかなわれています。シエペル氏はゲノム研究に役立つプログラムをひとつにまとめたPHASTというソフトを作っていますが、PHASTのテクニカルサポートは自分でやっているので、よく真夜中までかかってしまうとのこと。

by dolgachov

丁寧なコーディングやサポートには多大な労力がかかりますが、コロンビア大学で機械学習の研究に携わるアンドレス・ミュラー氏は「長く愛用されるソフトウェアには、優れたソフトウェア工学の実践と文書化が不可欠です」と話しています。ミュラー氏が特に重要視するのが、TravisCIなどを使った継続的インテグレーションGitに代表されるようなバージョン管理です。

継続的インテグレーションとは、開発者が自分のコードを定期的にリポジトリマージする開発手法のことです。この手法を採り入れると、コミットするたびに自動的にビルドとテストが行われることになるので、バグの発見が容易になるとのこと。

また、バージョン管理を行うと、万が一最新バージョンで致命的なバグが見つかった時などに、以前のバージョンに適宜戻ることが可能になります。ミュラー氏は「継続的インテグレーションとバージョン管理を採り入れることで、100%時間の節約になります」と太鼓判を押しています。

by David Wagner

カリフォルニア大学バークレー校で計算生物学を研究しているNelle Varoquaux氏は「ソフトウェアのパフォーマンスよりもコードの読みやすさを重視するのがオススメです」と話しています。というのも、ソフトウェアを開発する上では、バグが発生するのは避けられないため、何か問題が起きたときに、それを発見しやすくすることが何よりも大切だとのこと。

また、ハーバー氏は「ユーザーとのやりとりはメールではなくStack Overflowのような、フォーラム形式のナレッジコミュニティで行うのがベスト」だとアドバイスしています。質問と回答が広く公開されることで、それがそのままFAQの役割を果たすからです。また、質問文が広く人目に触れるということはユーザーに「思慮深い質問者であることを促す」とのこと。

オープンソースソフトウェアの開発には多くの資金や時間、労力が必要になり、しばしば大変な苦労を伴います。それでも、苦労にはそれに見合った価値があるとNowogrodzki氏は総括しています。オープンソースソフトウェア開発の現場では、プログラマーは気づくことができなくても科学者なら気づくような微妙な間違いや改良点が発見されるということがしばしばあるからです。

Nowogrodzki氏は「その道の専門家が開発に携わることで、ソフトはより価値あるものになります」と語り、オープンソースソフトウェアの開発に尽力する科学者たちの努力が、科学の発展に寄与しているのだということを改めて強調していました。

この記事のタイトルとURLをコピーする

・関連記事
「オープンソースはお金にならない宿命」とMozillaのプログラマーが主張 - GIGAZINE

従来の2倍の発電効率を誇る次世代の原子炉技術はなぜオープンソース化されたのか? - GIGAZINE

「オープンソースの開発現場の多くは持続可能なほどの収入を得られていない」という指摘 - GIGAZINE

Googleはデジタル著作権管理を用いてどのようにオープンソースのブラウザ開発を独占的な管理下に置いているのか? - GIGAZINE

「無料が基本」のオープンソース文化圏で有料ソフトウェアの販売は受け入れられるのか? - GIGAZINE

「薬が高ければ自分で作ればいい」とバイオハッカー集団が特許フリーなインスリンの開発を目指す「オープン・インスリン・プロジェクト」 - GIGAZINE

in ソフトウェア,   サイエンス, Posted by log1l_ks

You can read the machine translated English article here.