未踏ジュニアの詳細については、前回の記事を参照してください。
今回お話を伺った方々
大野智葵(おおの・ともき)さん【2017年度未踏ジュニアスーパークリエータ】
コードアカデミー高等学校3年次在学中。2017年度未踏ジュニアに採択され、「FRPの概念に触れられるビジュアルプログラミング言語の開発」を行い、未踏ジュニアスーパークリエータに認定される。コードアカデミー高等学校卒業後、AO入試で2018年4月より慶應義塾大学環境情報学部に進学。
鈴木颯介(すずき・そうすけ)さん【2017年度未踏ジュニアスーパークリエータ】
千葉県の県立高校の普通科3年次在学中。2017年度未踏ジュニアに採択され、「FRPの概念に触れられるビジュアルプログラミング言語の開発」を行い、未踏ジュニアスーパークリエータに認定される。普段は株式会社BoostIOでソフトウェアエンジニアとしてアルバイトをしている。
安川要平(やすかわ・ようへい)さん【未踏ジュニアPM/YassLab 株式会社 CEO/一般社団法人 CoderDojo Japan代表理事】
YassLab代表取締役。CoderDojo Japan代表理事。早稲田大学情報理工学科卒(修士)。米国留学中に開発した震災対策アプリのヒットを契機に起業。東京と沖縄を軸としてRuby/Railsの開発支援・教材制作・翻訳/組版技術研究の事業を展開。IPA認定未踏スーパークリエータ、TEDxRyukyuスピーカー。RailsチュートリアルやRailsガイドの共同発起人で、同教材を使った講義を産業技術大学院大学(AIIT)や筑波大学、工学院大学で受け持つ。
黒い画面でカタカタがかっこよくてプログラミングを始めた
――お二人は、いつくらいから、なんでプログラミングを始めたんですか?
大野:小学校3年生のときに、WRO(World Robot Olympiad)というLEGOマインドストームを使ったロボットコンテストの大会に出たことがきっかけです。もともとLEGOマインドストームが欲しくて親にねだってたんですが買ってもらえず、この大会ではチームごとに貸し出しがあったので参加して、はじめてプログラミングを体験しました。
鈴木:中学生のときに、Life is Tech!というプログラミングキャンプに参加したことがきっかけです。はじめは、GameSaladというゲーム制作に特化したビジュアルプログラミング環境で、ゲームを作っていました。でもそのうち、Life is Tech!の他のコースで黒い画面に文字を打って難しそうなiPhoneアプリとかを開発している人たちがかっこよく見えてきて。それを見ていると、「あれ、ビジュアルプログラミング環境を使ってプログラミングを習っているのはお金の無駄遣いなのでは?」と思うようになって、徐々にWebやアプリ開発の勉強も始めました。
大野:そうそう。僕も、最初はビジュアルプログラミング環境を使ってLEGOマインドストームを制御してたんだけど、そのうちCでもプログラムを書いて制御できることを知って、『やさしいC』という本を買ったんだけど、これがまったく優しくなくて(笑)。それで挫折して、しばらくプログラミングから離れていたんですけど、たまたまTENTOというプログラミングスクールを知り合いの知り合いが立ち上げたことを知って参加して、そこでJavaScript(ジャパスクリプト:プログラミング言語の一つ)を勉強しだしたら面白いな、って。
――その後、なぜ大野さんと鈴木さんは出会って、未踏ジュニアに一緒に応募するまでに仲良くなったんですか?
大野:僕が通っていたTENTOに通う中高生を中心としたtento.techというコミュニティがあって、そこに鈴木くんが参加したことがきっかけです。もともとは1人でIPAの未踏事業に応募しようとしていたアイデアだったんですけど、書類が書き終わらなくて未踏ジュニアに出そうと決めたときに、今回の提案のコアになる関数型プログラミング言語の考え方が面白い、というところで意気投合して、2人で出すことに決めました。僕は高校の入学祝いでHaskell(ハスケル:関数型プログラミング言語の一つ)の本を買ってもらうくらい、その考え方が好きなんですよ。
――未踏ジュニアでどんなものを開発したのか簡単に説明してもらえますか?
大野:「vamboo」という名前の、Elm(エルム:プログラミング言語の一つ)から着想を得た、ビジュアルプログラミング環境を開発しました。関数型の宣言を積み重ねることで簡単なアプリを開発することができ、その過程で関数型言語を学ぶことができます。例えば、あるテキストボックスに表示されるある変数は、この変数とこういう関係性です、というのをドラッグアンドドロップで定義していきます。
もともと、JavaScriptでWeb開発をしていたときに、なんで変数が変化したときに、いちいち画面に表示されるラベルにも変わったよ、と人間が教えてあげる必要があるのか、という問題提起からスタートしています。本当は、このラベルとこの変数はこういう関係で紐付いているからと先に定義すれば、変数が変化したときに自動でそのラベルは書き換わるべきですよね。vambooは、そんな関数型プログラミングの考え方を学べるビジュアルプログラミング環境です。
――チームでの開発は大変だったんじゃないですか?
鈴木:もともとはエディタ(プログラムを書くツール)とランタイム(プログラムの実行環境)の部分を切り分けて2人で別々に開発する予定でしたが、途中で思ったよりも密に結合していることに気づき、その役割分担自体は徐々に破綻していきました。でも、2人ともインターンやアルバイトでチーム開発の経験が豊富だったので、役割分担があいまいになってからもチーム開発自体はまったく問題になりませんでした。僕は、今着ているパーカーにロゴも書かれているBoostnoteという開発者向けのノートアプリの開発をしているBoostIOでフロントエンドエンジニアとしてアルバイトをしていますし、大野はクックパッドで働いていました。
大野:クックパッドでは、Ruby on Rails(ルビー・オン・レイルズ:Webアプリを作成するフレームワークの一つ)で書かれたアプリケーションのバグ修正などをしていました。未踏ジュニアのPMもされている笹田さんが同期入社で隣の席でした(笑)。
――インターンとかアルバイトは、どうやって探しているのですか?
鈴木:僕の場合は面白くて、Boostnoteを愛用していたので、少しでも貢献しようと今着ているパーカーをBoostIOから購入して、それをハッカソンに着ていったら、そこにBoostIOの関係者がいて。しかも、もともとは福岡に拠点があったところ、最近東京に移転したことも分かり、そこからはトントン拍子に話が進んで働けることになりました。オープンソースプロジェクトへ貢献したり、ハッカソン(ソフトウェアの開発合宿のようなイベント)に出たり、いろいろな方法はありますが、1人でコードを書くだけでなく外にも出て発信していくことは、運をつかむ上で重要だと感じました。