Lauren McCarthy氏はp5.jsのパブリックベータ版をリリースした。p5.jsはアーティストやデザイナ、教育者や初心者がJavaScriptを簡単に利用できるようにするライブラリだ。
McCarthy氏が、NYU ITPのp5.jsワーキンググループやほかの貢献者たちとともに開発したp5.jsはProcessingの派生であり、プログラマでない人がJavaScriptのコードを書き、ビジュアルプロジェクトを作成できる。
GitHubでのp5.jsについての説明では、McCarthy氏は次のように書いている。
ソフトウエアのスケッチブックを目指しているp5.jsは描画に関する一式の機能をすべて備えています。さらに、描画するカンバスには制限がありません。ブラウザのページ全体をスケッチに使えます。このため、p5.jsはアドオンのライブラリを持っています。アドオンによって、テキストやインプット、動画やウェブカメラ、音声などのHTML5のオブジェクトを扱えます。
p5.jsはある面ではProcessingに似ている。しかし、大きな違いもある。McCarthy氏はProcessing transitionという項で説明している。
- スケッチを単なるカンバス以上のものと捉えることができるため、size()はcreateCanvas()に置き換えられました。この名前によって、他の要素を作成できることを示しています。
- frameRate(num)はフレーム率を設定します。しかし、frameRate変数は削除されました。現在のフレーム率を取得するには、frameRate()を引数なしで呼びます。
- JavaScriptは常に同期で動作するとは限りません。いくつかの選択肢で対処できます。
- すべての読み込みメソッドはオプションのコールバック引数があります。この引数は、ファイルが読み込まれた後呼び出される関数です。
- また、setup()の前に呼ばれるpreload()の中でロードを実施することもできます。preloadメソッドがある場合、setupはロードがすべて完了するまで待ちます。例をご覧ください。
Hacker Newsの議論、"P5.js: Processing for Today’s Web"では、ScrimmageのBrad Greenwald氏は、この発表について次のようにコメントしている。
私はナイーブです。P5.jsはどのような点で、D3.js、EaselJS、Three.js、Raphaël、KineticJS、Paper.js、Famo.us、Impactに匹敵する、あるいは、これらよりもすばらしいのでしょうか。こららのライブラリは同じ機能を提供しませんが、私には、P5.jsのどこがすばらしいのか、新しいのか、わかりません。
Gui Ambros氏は、Wundermanのマーケティング兼技術革新部門のシニアバイスプレジデントだが、次のように答えている。
Dan Shiffman氏の"The Nature of Code"を読むといいでしょう。そうすれば、Processing(とp5.js)と他の言語/フレームワークの違いがわかりますよ。
ArduinoがハードウエアハッキングとIoTを大衆化したのと同じように、Processingはクリエイティブコーディングを大衆化します。しかし、Processingを使ってデータ視覚化やインタラクティブはインストレーション、ゲームなどを開発しているハードコアは開発者は多くはありません。
p5.jsは基本的にはProcessingのパワーをモノリジックなディスクトップアプリからブラウザまでに広げます。これは大きな第一歩です。Laurenはすばらしい仕事をして、コミュニティを作り上げています。
p5.jsの公式サイトの説明によれば、p5.jsは鋭意開発中であり、"エミュレーションやポートではなく、新しい処理機構"だ。また、これから提供される予定の機能の中には、"公式の編集環境"も含まれている。
P5.jsのライセンスは GNU GPLライセンス。オープンソースプロジェクトのため、InfoQの読者もさまざまな方法でプロジェクトに関わってみるのもいいだろう。プロジェクトはデザイナやアーティスト、ライターやオーガナイザなどの参加を歓迎している。プロジェクトに協力したいのなら、hello@p5js.orgへ連絡してみるといいだろう。