簡単に奥深いプログラムを作れる「Node-RED」※1)のOSS活動で日立が得たもの【後編】
Node-REDのOSS活動を本格的に日立が開始してから約1年半が経過した。その間に日立はNode-REDのOSS活動に大きな貢献を残してきている。最近ではNode-REDの月間のプログラム提出量の半分ほどが日立からのものになっている。累計で1割強ぐらいの貢献をしている計算になる。こうしたスピード感でプログラムを創出していくと、Node-REDのコミュニティに対して日立がプログラム開発力を持っていることを十分にアピールできると同時に、顧客からの信頼獲得にもつながる。
※本記事は日立製作所の研究開発グループが運営する「開発ストーリー」の抄録です。全文はリンク先をご参照ください。
Node-REDの日本語化を含めOSS活動に日立が大きく貢献
西山:企業別に見ると、開発元のIBMの貢献が一番で、日立は二番手につけている。これまでのOSSでは、コミュニティが大きくなってから日立や日本の企業が参加することが多かった。Linux Foundationなど大きなOSSコミュニティでは、日立が貢献しても全体から見ると割合は低い。しかし、今回のNode-REDでは早い段階からOSS活動に参加することができて、力を発揮することができている。日本の他企業も、Node-REDを使うようになってきてはいるが、もっともっと使ってもらえるようになると、さらに活性化が期待できる。
横井:OSS活動への貢献の1つは、Node-REDの日本語化だ。日本のユーザーがNode-REDを使うとき、英語よりも日本語のほうが直接的に理解できるため、日本語対応を進めた。日立Node-REDエバンジェリストが著者となって「つないでつないでプログラミング〜Node-REDでつくる初めてのアプリ」(リックテレコム)を2017年8月に発行したが、それに間に合わせるように頑張って日本語化を進めた。日立の研究所には外国籍のメンバーも多く、Node-REDの中国語化にも貢献している。2018年9月時点で、Node-REDのコミュニティでは、フランス語対応のソースコードが提案段階にあり、今後ドイツ語への対応も進む予定だ。IoTでの活用が期待されるNode-REDだけに、IoT基盤が盛んなドイツでの今後の利用拡大にも期待ができそうだ。
西山:多言語化だけでなく、例えばバージョン管理を行う機能など、他の機能を付け加えることにも日立は貢献している。Node-REDを使う人は、プログラミングが専業ではなく、本来の業務があってそのためにプログラムを作成する人が多い。楽にプログラミングできるように、Nodeの新しい機能を提案するなど、活動を継続していきたい。
使いやすさと機能のバランスを取りながら利用を広める
西山:Node-REDはビジュアルプログラミング言語の一種と言えるが、他の同種の言語との違いはバランス感覚だと感じている。使いやすさと機能のバランスが他に比べてとても良い。例えば、同種のビジュアルプログラミング言語として、プロ向けのデータフローオーケストレーションツールがある。こちらもWebインタフェースを使って部品を配置して線でつなぐことで、システム間のデータフローの自動化定義が可能だ。しかし、実際に使ってみると結構難しい。機能は豊富だがプロでも面倒な設定があり、プログラミングの素人に近い人が簡単に手出しできるようにはなっていない。一方でNode-REDは、Webインタフェースの画面がシンプルで、見た目からすっきりしている。その上で複雑なプログラムもかなり簡単にできてしまう。そのバランス感が優れている。
横井:Node-REDは、シングルボードコンピューターのRaspberry Piにも標準搭載されるようになったこともあり、コミュニティユーザーでも手軽に使えるようになった。PoCなどで使おうと思ったとき、他の商用のビジュアルプログラミング言語では、設計や企画をきちんとしてからでないとプログラム開発の実践に移しにくい。一方でNode-REDは簡単かつ柔軟に使える。
さらにコミュニティでは開発者が多数決で追加する機能を決めていく。これはNode-REDを開発している場と、実際に利用する側のニーズが限りなく直結しているということでもある。そうした点も急速にNode-REDの利用が広がった理由かもしれない。
日立の「Lumada」に展開
西山:日立は、Node-REDのOSS活動への貢献だけでなく、自社の「Lumada」への活用を進めている。IoTのソリューションを構築するとき、分析を担うような中のシステムとIoTデバイスを集約するような外のシステムとの間を、どのようにつないでいくかが重要になる。そこではソリューションを提供する人材が開発に携わることが多く、プログラミングのプロがプログラムを開発すると限らない。そうしたシステムのつなぎの部分に対して、Node-REDがうってつけかもしれないというのが発想の原点だった。日立のシステムと社外のシステムをつなぐときにも、Node-REDを使った。プロでないと使いにくいツールではなく、誰もが簡単に社内外のシステムをつなぐプログラムを作成できるのがNode-REDだ。Lumadaで様々なソリューションを構築する際に、簡単さと豊富な機能のバランスが取れたNode-REDの力が発揮できる。
横井:Lumadaで利用するために足りない機能があれば、OSS活動として新しい機能を足していくことができる。日立がOSS活動に貢献していることのメリットが、こうしたところで具体的に表れてきている。
国内外の開発者と実践する「協創の面白さ」
西山:これまで研究所で長年仕事をしてきた。その中で付き合う先というと、製品開発の依頼元である日立の事業部や、たまにその先にいるお客さまに会うといった具合だった。今回のNode-REDのOSS活動では、事業部とも協業しているが社外のコミュニティとのやり取りが非常に多い。社内に対しては、「こういう機能をOSS活動で提案したいがどうか?」「この方法では実現が難しいのでやり直したい」といった活発なやり取りが行われている。海外のコミュニティのメンバーとも活発にやり取りしている。先日もイギリスのメンバーとテレカンファレンスをした。イギリスの朝に合わせようとすると、日本では夜になってしまうのでそれなりの苦労もあったりはするが(笑)。
横井:日米欧の3極でコミュニティの議論をすると、時間の調整が難しいのは本当に悩ましい。とはいえ、コンピューターの前の開発だけでなく、コミュニティで活動をしている実態があるので、その活動の内容はできるだけ社内外に紹介できるようにしている。日本だけでなく、サンフランシスコやラスベガスで実施した社外のカンファレンスなどで、日立がNode-REDに対してどのような活動をして、どのようなものを作ったかを発表した実績がある。そうしたセッションに来てくれる人はフィードバックが良いので、やりがいにもつながる。
西山:OSS活動に参加することで、協創をする面白さを実感している。さまざまな会社や立場の開発者と直接やり取りをすることはもちろん、ユーザーや違う視点を持った開発者のコメントを得られることは、従来の研究開発の仕方とは大きく異なる。2017年6月、イギリスに行って日立として提案した機能をNode-REDに採り入れてもらったのがターニングポイントになった。実際にNode-REDのメジャー機能に日立が提案した機能が取り込まれたことがモチベーションにつながり、その後の積極的な活動につながっていると思う。
横井:イギリスの開発部隊は、現地でブートキャンプを実施している。日立からも2週間ほど滞在して一緒に開発をした。協創の人間関係は、オンラインだけではうまく作れない。一緒に開発することで、コミュニティの人間関係の構築にも役立った。その上、日本で開発しているときには時差に悩まされるが、現地では9時から17時まで同じ時間で開発が進められる。ものすごく効率的な環境が得られたのは良い経験だった。
西山:Node-REDを使いやすくしていくための新しい機能を、日立ではいろいろ提案している。コミュニティのメンバーと相談しながらうまく入れていきたい。その1つのターゲットは、より簡単にプログラムができるようにすること。今のNode-REDは素人でも使いやすいといってもやはりプログラミングの経験があったほうがいい。そうした部分をできるだけ排除して、本当に誰でも使えるようなツールにしていきたい。そのうえで、日立が提供する高信頼性を強化し、「簡単に高信頼を実現できるNode-RED」の実現に力を尽くしていきたい。
横井:ブートキャンプに参加して、わがままをいいながらいろいろ教えてもらったようなことを、今度は教える側の立場で実行していきたい。日立だけでなく、多様な企業がNode-REDのコミュニティに入るといいと思う。日立のオープンラボでは、Node-REDのデモを公開している。たとえ競合する企業だとしても“OSS”なのでじっくりと見ていただいて、Node-REDの世界を体験してもらうことが可能だ。
西山博泰(Nishiyama Hiroyasu)
日立製作所研究開発グループ
デジタルテクノロジーイノベーションセンタ主管研究員
博士(工学)
IBMでコンパイラなどを作っていたウォーレン氏の著書「ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか」(ジュニア、ヘンリー・S. ウォーレン著)に影響を受けた。こういうプログラムを作りたいとき、こういうトリックを使うと簡単にできるといったコツがたくさん紹介されている。私自身もコンパイラの研究開発をしていたので、テクニックを使ってマジックのように解法を示すこの本が好きで、そして面白い。こういうマジックのようなことを、Node-REDの活動でもやっていきたい。こんな簡単なプログラミングのシステムを作ったのだけれど、実は裏ですごいことをやっているんだ!といった驚きを与えられたらうれしい。
横井一仁
日立製作所研究開発グループ
研究員
Javaのオブジェクト指向プログラミングのデザインパターンが網羅された書籍「Java言語で学ぶデザインパターン入門」(結城浩 著)は、学生時代に読みたいと思っていたが、生物の実験などがあり実現できなかった。社会人になってこの本で研修してくれた方がいて、ようやく読むことができるようになった。自分で発見したプログラミングや、他人から教えてもらったプログラミングの手法を、この本で確認する。半分ぐらいは合致していて、方法に間違いはなかったなとホッとしたりする。こんな使い方でプログラミングできるのかといった学びにもつながっている。