Processingを心理実験用の言語として使うことの利点と欠点について。
利点
インストール・文法・開発環境が平易である
導入コストが低い
簡潔な文法と描画APIを持つ
ラピッドプロトタイピングに向く(アイデアを素早く形にできる)
無料
教育用途にも使いやすい
欠点
動作速度・時間精度
C系の言語には負ける
心理系のライブラリが無い
PTB(MATLAB) や PsychPy(Python) のような心理系の便利なライブラリが無い
心理系のユーザが少ない
サンプルコードを人からもらう等ができない
考察
欠点としては、何と言っても心理系のユーザが少ないこと、そのため心理実験用のライブラリやサンプルコードなどが無いということが、一番大きいでしょう。Processing で実験を作る場合、基本的にコードを0から自分で全て書く必要があります。画像や音声を出したり、キー入力を取得したりといった基本機能は全て揃っているので、プログラミングの素養があればベーシックな実験を作る分にはそれで特に問題は無いと考えられます。もっとも、ガボールパッチの生成など、PTB や PsychPy であれば関数が用意されているようなものも Processing を使う時は自分で書かねばならず、その点は面倒だと言えます。
実験は全てプログラムコードで書く必要があるので、プログラミング自体に初心者である人にとっては、これはハードルが高いかもしれません(既に腕に覚えのある人にとっては、ここに書いた通り比較的短い時間で習得できると思います)。Processing を使った実験のサンプルコードが豊富にあれば、それでも状況はまた違うと思うのですが、そのようなものは今の所どこにも存在しませんし、またこのサイトが提供する情報やサンプルも現状ではまだ十分とは言えません(多くのコンテンツが未完)。ですので、プログラミング自体にまだ不慣れな人が手っ取り早く心理実験を作成出来るようになりたいという目的の場合には、PsychPy の Builder を使うことが最適な選択であるように思われます。もっとも、これは無料で使える言語の中から何かを選択するとしたらの話で、研究室でメインに使われている言語がある場合にはそれを教えてもらって使うのが手早いし普通のことでしょう。
なお、Processing で書いたコードはブラウザ上で動かしたり(processing.js や p5.js を利用する)、Android端末やiOS端末で動かしたりすることができます(ここやここやここ を参照)。ブラウザ上で動く実験の例はこのサイト内でも公開しています(2AFC課題(画像版))。ブラウザやタブレット端末で実験をしたい場合に便利でしょう。時間精度はあまり良くないことが想定されるので、厳密な知覚実験には不向きだと思いますが、そうでなければ有用だと思います。
なお、Processing の動作速度に関しては金沢工業大学の伊丸岡先生が検証記事を書かれています。
[pdf] 心理実験教育用プログラミング言語としての Processing の利用可能性
http://openweb.chukyo-u.ac.jp/~jkawa/AandC/12/imaruoka.pdf
画像の提示時間の制御が Processing は Psychtoolbox に比べて精度が良くないと議論されています。ただしこの記事が書かれたのは 2010 年であり、現在の Processing は昔に比べて動作の高速化が図られているため、現在でもこの結論が正しいのかは議論の余地があると思います。
コメント