読者です 読者をやめる 読者になる 読者になる

「みんながわかるRで書こう」ハラスメント、的なやつ。

R

というつぶやきをしたら予想外に多くRTされてました。なんで?

たぶんみんなただのR(あるいはR脳なひと)へのdisだと思って原文読んでないだろうなーという気がするので、適当な要約をつけてしまった責任を感じつつブログを書きます。

が、私のダメダメな訳を読むよりは、できれば原文読んでください。

Timothée Poisot | Don't enforce R as a standard

まず断っておくと、原文に明記されているように、この人はアンチR勢ではありません。学部生と院生にRについての講義をしているし、毎日Rを使い、Rのパッケージを書き、他人のRパッケージにコントリビュートし、非力なパソコンしか持ってない同僚のためにラボのサーバでRStudio Serverを走らせています。(すごい…)

なので「Rはクソ、Juliaはこんなにすばらしい」みたいな話を期待した人は残念でした。そういう話じゃないです。


この人は、論文を書くため、図の生成と分析用のJuliaパッケージを作成し、オープンソースとして公開しています。(レポジトリPoisotLab/ProbabilisticNetwork.jl · GitHub

To do the paper, as in, to produce the figures and do the analysis, I wrote a package in Julia. I’m proud of this package. It’s fast, defensively programmed, well tested, already parallelized if you use several CPUs, and all that. It’s also released under the MIT “Expat” license, so you are free to do with it as you please.

しかし、その論文はリライトをくらいました。その理由としてレビュワーのひとりが挙げたのは、Juliaは生態学者の間ではあまり使われていないのでこの手法が有用か疑わしい。Rパッケージが望ましいのでは?、ということでした。

Reviewer 3 states that since Julia is not frequently used by ecologists, and therefore it’s dubious that the methods are usable, or even useful, and a R package would be better.

これに対して筆者は4点反論しています。

1点目。(reproducibilityという観点で?)主張すべきなのは「パッケージを書かないより書く方がいい」というところまでで、「パッケージを書かないより書く方がいい」ところまでで議論は終わりのはずだ。そのパッケージがどんなプログラミング言語で書かれているかは論文の科学的有用性にはまったく関係ないはず。(2015/04/05 追記:コメント欄で指摘をもらって訳を直しました)

First, a package written in anything is better than no package at all. And as far as I’m concerned, this should be the end of the argument. And especially if this is not a software paper (but even then), the language a software is written on has nothing to do with the scientific merit of the paper.

2点目。どのプログラミング言語でソフトウェアを書くのか、というのは意志の問題。自分の場合は、Rでも書けるけど時間がかかって非効率だしそんな時間はないし、効率の悪いコードになるし、興味もわかないので、やらない。(2015/04/05 追記:コメント欄で指摘をもらって訳を直しました)

Second, what to write a piece of software in, as the guy in charge of actually writing the code, is a conscious decision.

Could I write a R version of it? Yes. But I won’t, because I don’t have that much time, it won’t be as efficient, and I’m not interested in doing it.

3点目。(ここうまく訳せないんですけど...)オープンソースでは、無料で手に入るからといってそのソフトについてあらゆる権利を得られるわけではない。リリースされたからといってメンテナがあなたのためにタダ働きしてくれるわけではない。これは超重要。

Third, there is this thing in the open-source crowd, where you don’t get to be entitled about a piece of software that is available for free. This is extremely important. That something is released does not imply that the maintainers will do free work for you.

4点目。Rだけがツールではない。Rではない、というただそれだけの理由で圧力がかかるたび、機会損失が発生している。

Fourth, this points back to a larger issue – R is not the only computational tool we have. Every time these is a pushback about something on the basis that this is not R, we are losing opportunities.

たしかにアクセシビリティは重要で、それがために科学的な研究に使われるソースコードはフリーでオープンであるべき。でも、オープンソースってこういうことじゃないでしょう、と。

I know that accessibility is important – this is what picking FOSS platforms and languages is about, and this is why FOSS licenses for scientific code should be enforced. But beyond that, what should matter is, does it works as advertised?.

感想

なんかすごくデフォルメして言うと、自分がめっちゃがんばって研究のために使った手法をパッケージとしてGithubで公開までして、Issuesに

すばらしいパッケージありがとうございます! でもこれ、マイナーでクソなX言語なので使えません。みんな使ってるY言語バージョンもつくってくれたら使いますよ?(XYには任意のプログラミング言語名を代入してください)

みたいなこと言い出す人がいたらイラっとしますよね? じゃあお前書けよ、みたいな。

そういう話だと私は受け止めました。

オープンソースとか、reproducibilityとか、そういうテーマについて色々考えさせられる記事でした。