いちいちソースコードを書くのは面倒くさい
「Flower」はデータの流れを見ながら、簡単なマウスや画面タッチ操作でプログラミングができる、新世代のビジュアルプログラミング言語。
業務フローの可視化、スケジューリングの構築などさまざまな場面に応用でき、すでにARMプロセッサを搭載したシングルボードコンピュータ「RaspberryPi」を利用したセンサーネットワーク構築の事例も出ているという。
──新しいビジュアルプログラミング言語の開発というと、ワクワクしますね。どういうきっかけがあったのですか。
部谷:大学在学中の2010年にIPAの未踏ユース採択プロジェクトで「CloudMDD」というのを開発していました。ソフトウェア開発手法のひとつとして、モデルからコードを自動生成するモデル駆動開発(MDD)というものがあるんですが、あまり普及していません。
そこで、クラウド上にMMDの開発環境を構築することで、だれもが簡単にアプリ開発ができるようしようというプロジェクトです。
クラウド上の開発環境を実現するため、ブラウザで動作するモデルエディタと、サーバ上で動作するモデルコンパイラ、モデル管理サーバなどのサブシステムを開発しました。
ソフトウェア開発の歴史は抽象化の歴史とも言えるわけですが、もともと僕は、ソフトウェア開発を行うときに、いちいちソースコードを書くのが面倒くさいと思うほうなんです。やりたいことは簡単なことなのに、複雑な言語を利用しなければいけない。それが辛い。
そこで、MDDに関心を持っていたのですが、中でもグラフィカルな記述で抽象化したシステムモデルを生成するモデリング言語に関心があって、これはUML(統一モデリング言語)というのが昔からあるけど、UMLはどうにも古くさい。これからは、同じモデリング言語でもDSML(Domain Specific Modeling Language;ドメイン特化モデリング言語)だろうと思って、それを研究していました。
そこで「CloudMDD」の次に立ち上げたのが、WebベースのDSLプラットフォーム「clooca(クルーカ)」でした。DSLのツール群をWeb上で共有することで、例えばグラフィカルな状態遷移図から動くソースコードを生成することができます。僕らはそれを「ソーシャルDSLプラットフォーム」と呼んでいます。
「clooca」は、2012年以降、いくつかの大学や専門学校などで、ソフトウェアモデリングの授業に使われるようになりました。
子供でも理解できるアルゴリズム。プログラムを意識せず開発できるツール
──なかなか「Flower」が登場してきませんが(笑)
部谷:もうすぐです(笑)。「clooca」を展開するうちに気づいたのは、やはりこれでもまだまだ敷居が高い。もっといろいろな人々がプログラミングを簡単にできるようにするためには、モデリング言語をさらに進化させる必要があるなあということでした。
私にはもう子どもがいるんですが、うちの子がNHK教育テレビの「ピタゴラスイッチ」が大好きで、一緒に見ているうちに、これって一種のアルゴリズムの考え方を伝えている番組なんじゃないかと思ったことがあるんです。だったら、子どもで理解できるプログラミング言語ってありだし、必要なんじゃないかと。言い替えれば、プログラムを意識しなくても作れるような視覚的言語の必要性ですね。
このデータとこのデータが結ばれると、こういうふうに展開されるみたいなデータの流れが視覚的に理解できれば、プログラムの構造を把握しやすい。福岡で仲間たちとハッカソンしながら、そんなアイデアが浮かんだので、プロトタイプは一晩で作りました。それが昨年秋のこと。「Flower」の誕生でした。
──一晩で、ですか。ところで、部谷さんと花田さんはどういう役割分担ですか。
花田:福岡の技術系の勉強会で知り合った仲で、大学も同じだしということで、部谷の「clooca」には興味を持っていました。どちらかというと僕はUI/UXが専門なので、ユーザーインターフェイスの部分でアドバイスしたりしていました。
「Flower」の最初のプロトも、UIとかメチャクチャだったので、僕がきれいにしてあげました(笑)。
2012年に仲間たちと「Technical Rockstas」という学生ベンチャーを作ります。「Flower」はそのキーになるプロダクトの一つです。言語開発の主担当が部谷で、サービス全般が私の担当ということに、一応はなっています。
ビジュアルでデータフロー型言語の構造がわかる
──あらためて「Flower」はどういう言語なんですか。
花田:まず、データフロー型言語です。特徴としては、実行が視覚化されること、ブラウザ上で動くので環境構築が簡単であること、マウスやタッチパネルでのコーディングに特化させたUI──などがあります。
ジョブという部品が配置し、ポートとポートをつなぐことでプログラミングができます。ジョブはさまざまな計算を自動的にしてくれます。口でいうよりも「Flower」のサイトでサンプルを直接触っていただくのが早い。
Youtubeにもいくつかデモンストレーションの動画をアップしているので、だいたいの様子はご理解いただけると思います。また私、花田の技術ブログの方に簡単な紹介と使い方を書いています。
ちなみに「Flower」のネーミングは「Data flow」と僕の名前の一部の「花」からつけました。「華やかな」というイメージも込めたかな。
──たしかに、これは小さな子どもでも触っていると楽しいでしょうね。
部谷:プログラミングのわかりにくさを極力排除したつもりです。プログラミングはしたいけど、学習の手間ヒマ、コストはなるべく下げたい。もっとインタラクティブに作業をしたい、役割を分担して共同作業でシステムを組みたい、並列処理をしたい、というような人には向いている言語だと思います。
⇒<後編>第二のRubyになれるか?福岡のハッカー文化から生まれた「Flower」を世界共通基盤に育てたいに続く
Flower言語でフィボナッチ数列を作ってみよう!
今回インタビューに協力してくれた花田さんから、Flower言語に関する問題を出題してもらいました。ぜひチャレンジしてみてください!
- 問題挑戦はこちらから
- 挑戦受付締切:2014年4月14日 AM10:00
1989年福岡市生まれ。九州大学芸術工学部音響設計学科在学。福岡Haxe勉強会主催。Unity Fukuoka主催。個人で受託開発し学費を賄う。DSL勉強会で部谷氏と知り合い、Technical Rockstars設立に参加。CTO就任。
ブログ:nobkzのブログ
CodeIQコード銀行にあなたのコードを預けてみませんか?
- CodeIQコード銀行ではあなたのコードを財産と考えます。
- お預かりいただいたコードは、CodeIQコード銀行がしっかり評価し、フィードバックいたします。
- 当コード銀行にお預けいただいたコードは、企業がみてスカウトをかける可能性があります。
- 転職したい方や将来転職することを考えている方で、今の自分のスキルレベルを知りたい方はぜひ挑戦してみてください。
- 企業からスカウトがきたら困る人は挑戦しないでください。
興味を持った方はこちらからチャレンジを!
1988年福岡市生まれ。九州大学大学院システム情報科学府在学。2010年度未踏ユース採択、IPA認定スーパークリエータ。2012年、株式会社Technical Rockstars設立。CEOに就任。