こどもとIT

「プログラミングを楽しむ『ついでに』社会を変えてほしい」Rubyまつもと氏が次世代に託す想い

中高生国際Rubyプログラミングコンテスト2018 in MITAKA 最終審査会レポート

2018年12月8日に、東京都三鷹市の三鷹産業プラザにて、「中高生国際Rubyプログラミングコンテスト2018 in MITAKA 最終審査会」が行われた。本コンテストは今回で8回目の開催となり、90件の応募があったという。最終審査では1次審査を通過した10作品について作者本人がプレゼンテーションを行い、審査員が技術力・独創性・発表能力・総合力を採点、最優秀賞などを決定した。また、当日は、ゲームプロデューサーの平井武史氏、Rubyの生みの親まつもとゆきひろ氏の特別講演もあるなど、非常に盛りだくさんの内容だった。

開会に先立ち、実行委員長/株式会社ネットワーク応用通信研究所 代表取締役 井上浩氏、総務省 大臣官房審議官 情報流通行政局担当 赤澤公省氏、経済産業省 商務情報政策局 情報技術利用促進課長 中野剛志氏、文部科学省 初等中等教育局情報教育 外国語教育課情報教育振興室 折笠史典氏より一言ずつ挨拶があった(写真は左から、井上氏、中野氏、折笠氏)

コンテストをレポートする前に、ごく簡単にRubyについて紹介しておきたい。Rubyは、1995年にまつもとゆきひろ氏が開発した、純国産のプログラミング言語である。Rubyの最大の特徴は「楽しさ」にあるという。作者のまつもと氏は、使う人が楽しくプログラミングできるような、そんな言語を開発したという。現在では、スタンドアロンのプログラムだけではなく、クックパッドやKickstarterなどWeb上のさまざまなサービスがRubyによって作成され、熱心なRubyのファンも非常に多いことが知られている。

それでは最終選考に残った10作品(ゲーム部門7作品、クリエイティブ部門3作品)を紹介しよう。

ゲーム部門

審査員特別賞:滝沢第二中学校科学技術部 チーム Syake 高橋亮太さん作「岩手の鮭」

「岩手の鮭」をプレゼンテーションする 高橋亮太さん
縦スクロール、横スクロール両方の要素を持つシューティングゲームだ
「岩手の鮭」のデモプレイ動画

作成の動機は「自分も鮭が好きなことから、岩手の鮭をみんなに知ってもらいたくて、ゲームにした」という郷土愛にあふれたものになっている。ゲームはシューティングに、さまざまな要素を入れたものとなっている。ゲームの序盤では鮭を育成、ゲーム中盤では迫りくる困難をクリア、最後にボス熊とのボス戦がある。また、選択するキャラ(オスまたはメス)でボス戦やエンディングの構成を変えるように工夫したという。プログラミングでは、最終ステージでのボスの攻撃パターンや、オスとメスとでの挙動の違いなどを工夫したそうだ。また、ゲームには縦スクロールと横スクロールの2つの要素を入れるのを工夫したという。

最終審査では、1画面の単純なゲームではなく、複数のステージがあり、それぞれ違った遊び方ができること、迫力のあるボス戦などが評価された。高橋さんは表彰式で「トップバッターで緊張したが、すべてを出し切れてよかった」と語ってくれた。

審査員特別賞・Matz(マッツ)賞:滝沢第二中学校科学技術部 チーム はこ 高橋叶汰さん・半澤渉さん作「Calculation BOX」

「Calculation BOX」をプレゼンテーションする高橋叶汰さんと半澤渉さん
3、6、9、7、5……と進むことで合計が30になり、1の桁が「0」でステージクリアとなる、ゲームのルールは簡単で奥が深い
「Calculation BOX」のデモ動画

「Calculation BOX」は数字を使ったパズルゲーム。画面上にはスタートとゴール、数字が配置される。プレイヤーはスタート地点から進み、通ったマス目の数を加えていく。ゴールに到達した場所で、それまでに加算された合計の1の位が「0」になると、その面がクリアとなる。なお、同じマス目は通ることができなくなっていて、決められた歩数を超えたり、制限時間を過ぎたりするとゲームオーバーになる。また、合計の1の位が「0」にならないときはクリアできないようになっている。

「Calculation BOX」の制作では高橋叶汰さんがプログラムを担当、半澤渉さんが素材を担当し、チームでプログラムを作成した。プログラムをデザインするときは、小学生でも簡単に遊べるようにしたことと、ゲームに学習機能を入れることで、楽しく学習できるようにしたとのことだった。また、配列を活用してランダムな出題ができるようにしたこと、ステージの情報にYAMLを使い、オリジナルなステージを作成できるようにした点などを工夫したという。プログラムの制作過程ではクリアできない盤面が生成されてしまい、矛盾のない盤面を生成するのが難しかったことや、配列など複雑なプログラムを理解するのが大変だったそうだ。今後は、さらにプログラミングのスキルを向上させるとともに、ランキング機能を追加したいとのことだった。

最終審査では、数理的なパズルになっている点や、パズルの盤面を自動生成する仕組みをちゃんと作りこんでいた点などが評価された。最後まで優秀賞争いに加わっていたというこの作品は、Matz(マッツ)賞も受賞した。高橋さんと半澤さんは表彰式で「制作をしたときも達成感があり嬉しかった、プレゼンテーションでも良い経験ができた」「去年はプログラムを作ったけど応募できなかった、今年は賞を頂けて良かった」と語ってくれた。

審査員特別賞:滝沢第二中学校科学技術部 チーム 免疫 畠山響さん・佐藤零峻さん作「Immunity's War」

「Immunity’s War」のプレゼンテーションをする畠山響さんと佐藤零峻さん
登場するプレイヤーキャラクターは、キャラクターによって得手不得手があるなど趣向を凝らしている
「Immunity’s War」のデモプレイ動画

「Immunity's War」は免疫を題材としたゲームで、プログラムは畠山響さん、画像は佐藤零峻さんが担当した。ゲームの題材を考えているときに、免疫についての本を読み、それをゲームにしたら面白いのではないかと思ったという。ゲームは、免疫細胞を操作して、病原菌を倒していくもの。10回の病原菌の襲撃を凌ぐとボスが登場し、ボスを倒すとゲームクリアとなる。プレイヤーが操作できるキャラクターは、マクロファージ、B細胞、キラーT細胞、ナチュラルキラーT細胞の4種類で、これらのキャラクターで病原菌を倒していくことでゲームを進める。破壊力のあるキャラクターは多くの補給が必要など、それぞれのキャラクターにメリットとデメリットがあるのが特徴となっている。

実際にプレイした人の意見を聞き、操作がしやすいようにフィードバックするなどの工夫をしたそうだ。また、現実の免疫細胞の特徴を調べて、それらをゲームのキャラクターとして成立させるように実装するのが大変だったと語った。今後は、ステージセレクト機能やタイムアタック機能などを実装したいとのことだった。

最終審査では、免疫をゲームにするという着想、キャラを変えて戦うというのがユニークである点などが評価された。畠山さん、佐藤さんは表彰式で「来年はもっと上を目指していきたい」と語ってくれた。

最優秀賞:伊賀 成啓さん作「EASY CODING」

「EASY CODING」のプレゼンテーションを行う伊賀成啓さん
UIは、一般的なビジュアルプログラミング言語を参考にデザインしたという
「EASY CODING」のデモプレイ動画

「EASY CODING」は、ビジュアルプログラムとシミュレーションゲームを融合させたもので、探査機のプログラムを組んでステージをクリアするというプログラミング教育のためのゲームだ。一般のビジュアルプログラミング言語は、まず「何を作るか」ということを考えなければいけないが、「EASY CODING」は、ステージをクリアするという目的があるため、目的を見失うことなく、ゲームを楽しみながらプログラミングを学ぶことができるようになっている。また、プログラミングに使うブロックも「前進」「後退」「回転」「ループ」のみにして、複雑なことを覚えなくてもプレイできるようになっている。

さらに、マウスのみで操作できるようにしたことや、既存のビジュアルプログラミングを参考にしてUIをわかりやすくしたこと、プログラム内部の部品化を徹底してプログラム自身の拡張や修正を簡単にできるようにしたことなどの工夫がされている。今後は、さらに高度なブロックを実装や、制作したステージの最適解を計算するようなアルゴリズムを実装したいと語った。

最終審査では、教育の目的を狙いながらもきちんとゲームになっている点、コンセプトや思想もしっかりしていて、ビジュアルも工夫されているといった点が評価され最優秀賞を受賞した。伊賀さんは、表彰式で「このような賞を頂けたのを大変光栄に思う、審査員から頂いたアドバイスを今後の作品に活かしていきたい」と語ってくれた。

優秀賞:愛媛県立松山工業高等学校 千原 安司さん作「SUPER NOVA」

「SUPER NOVA」のプレゼンテーションを行う千原安司さん
チュートリアルを充実させ、ルールやギミックの解説を行うモードによって、まったくルールを知らないプレイヤーでも楽しく遊べる
「SUPER NOVA」のデモプレイ動画

「SUPER NOVA」は、宇宙をテーマにしたパズルアクションゲーム。画面には地球、月、太陽の3つのキャラクターが登場、プレイヤーは太陽と地球を操作してパズルのクリアを目指す。地球と月を重ねると、パズルのクリアとなるが、月や地球が太陽に触れると爆発してしまいクリアできない。プレイヤーが自由に操作できない月は地球に引き寄せられるように動く。それぞれのキャラクターが動くことや、特定のキャラクターしか通れないギミック、一方通行のギミックなどの妨害があるため、非常に奥が深いパズルとなっているのが特徴だ。

やや複雑なルールのゲームなので、誰でもわかるようにチュートリアルを作成。ストーリーを作りチュートリアルをプレイすることで、プレイヤーにルールや楽しさを理解してもらえるように工夫したとのことだ。また、約60のマップ、スコアを競うモード、制限時間にクリアしなければいけないモードなど、さまざまなプレイ方法ができるように工夫したという。

最終審査では、ゲームの難易度は難しくてなかなか最後までクリアできないが、ゲームのアイデアがとても良く練られている点などが評価されて優秀賞を受賞した。千原さんは、表彰式で「優勝を狙っていたのでこの結果は複雑な心境、来年こそは優勝したい」と語った。

審査員特別賞:愛媛県立松山工業高等学校 林 晃太郎さん作「one rabbit」

「one rabbit」をプレゼンテーションする林 晃太郎さん
プレイヤーはウサギのキャラクターの操作とステージを回転させることでウサギをゴールに移動させる
「one rabbit」のデモプレイ動画

「one rabbit」はウサギをモチーフにしたパズルゲーム。このゲームの最大の特徴は、プレイヤーキャラクター(うさぎ)を操作するだけではなく、ゲームのステージそのものを回転させることができる点だ。ステージを回転させると、回転に応じてステージ内に配置されたブロックやうさぎも落下するようになっている。そのため、かなり難易度は高いが、ステージを回転することによってゴールへの道が1つではない、非常に面白いゲームになっているのが特徴だ。また、うさぎが硬直することでプレイヤーに考える時間を与える、ウサギの向きや色を変えることによって操作感をプレイヤーにフィードバックする、ワープブロックを追加することでさまざまな方法でゴールができるようにするなど、工夫をこらしたという。今後は、うさぎ以外のキャラクターを使えたり、ブロックの種類を追加したりといった実装をしたいと話していた。

最終審査では、ウサギを導くために画面を回転させると上からブロックが落ちてくるというクリアの難しさはあるが、こういう発想は頭が柔らかくなければできない、このような柔軟な発想をずっと持ち続けてほしい、と評価された。林さんは表彰式で「今回の発表は結構緊張したが、とても良い経験ができた。呼んでくれてありがとう」と語ってくれた。

審査員特別賞:愛媛県立松山工業高等学校 篠﨑侑雅さん作「Panel Vanish」

「Panel Vanish」をプレゼンテーションする篠﨑侑雅さん
時間とともにパネルがどんどんせりあがっていき、上限を超えてしまうとゲームオーバーになる
「Panel Vanish」のデモプレイ動画

誰もが簡単にできる楽しいゲームを作りたい、というコンセプトで作ったのが「Panel Vanish」だ。いわゆる落ちモノゲームの基本ルールを逆さにしたようなパズルゲームで、空間が空くとパネルが落ちる、複数のパネルの色がそろうとパネルが消えるといった要素に加え、時間の経過とともにパネルが下から出現し、パネルをクリックすると、そのパネルが最上段に移動するようになっている。

制作過程では、なかなかアイデアで出ずに、納得のいくものが作れなかったが、友人に相談しながらトライアンドエラーを繰り返していくうちに今の形になったと語っていた。今後は、コンピュータとの対戦などを実装してみたいそうだ。

最終審査では、ゲームとしての完成度が非常に高い点、落ちモノゲームというある意味出尽くした感があるゲームに、新しいアイデアを取り入れた点などが評価された。篠﨑さんは、表彰式で「優秀賞を取れなかったのは残念。ゲーム系の専門学校に行くので、今回の経験を糧にして頑張りたい」と語ってくれた。

クリエイティブ部門

審査員特別賞:愛媛県立松山工業高等学校 篠﨑侑雅さん作「自動インデント機能」

「自動インデント機能」のプレゼンテーションをする篠﨑侑雅さん
インデントする前のプログラム
「自動インデント機能」を使うと、きれいにインデントし、プログラムを見やすくすることができる

「自動インデント機能」はプログラムを自動的にインデントしてくれるツール。対応している言語はRuby、Java、Cの3つの言語で、言語に合わせたインデントを実行してくれる。また、「{」、「}」、「end」などの数が合わないときに、警告してくれる機能を持ち、入力ミスなどを見つけられるようになっている。このプログラムを作成するにあたっては、Rubyのインデントのタイミングを判断することや、コメントを無視することが難しかったそうだ。今後は、入力するソースプログラムの文字コードを自動的に判別する機能や、インデント以外のプログラムの整形機能を実装したいと語ってくれた。なお。篠﨑さんはゲーム部門の作品「Panel Vanish」と合わせて2作品の受賞となった。

最終審査では、インデント機能は昔からあるものだが、今でもどのようにインデントするかがたびたび論議されることもあり、古くからあるものに新たに挑戦してみたという点が評価された。篠﨑さんは表彰式で「ゲーム部門とクリエイティブ部門、どちらかで最優秀賞をとりたかった。3年間頑張ってきたので悔しい」と語ってくれた。

最優秀賞:小林 心さん作「Quiz Note」

「Quiz Note」のプレゼンテーションをする小林 心さん
「Quiz Note」はプログラミングの知識がなくても、あらかじめ用意されている競技クイズのルールを設定することで得点表示をしてくれる
「Quiz Note」の得点表示画面。所属と氏名、正当数、誤答数、順位、失格したのかどうかなど、競技クイズ大会で必要なスコアをわかりやすく表示できる

早稲田高校クイズ研究部所属にも所属している小林さんの作品は、競技クイズ大会のスコアを表示してくれるプログラムだ。競技クイズにはさまざまなルールがある。たとえば、「5〇2×」というルールは5回の正解で勝ち抜け、2回の誤答で失格。「7〇up-down」は、7回の正解で勝ち抜け、誤答で正解数がリセットされる。「Quiz Note」は、こうしたさまざまな競技クイズのルールを利用者自身が設定して、誰もが簡単に競技クイズ大会の得点表示を作成できるプログラムだ。クイズの人気とともに得点表示の需要は高まっているが、誰もが作れるというわけではないため、自分が作ってみようと思ったのが動機だったという。実際に、周りのクイズ研究部の人たちに使ってもらったところ、「使い勝手が良くて驚いた」という意見が多く「神か何か?」と言われたこともあったそうだ。今後は、ユーザー登録機能や、クイズのログ、得点などを保存する機能を実装したいそうだ。

最終審査では、身近な課題をテクノロジーでシンプルに解決している点、周りの意見を聞いてどんどん磨きをかけて、アップデートしていけば、世界的に使われるクイズサービスになっていくのではないかといった点が評価され最優秀賞を受賞した。小林さんは表彰式で「まさか最優秀賞を取れるとは思っていなかったのでびっくりしている。今回のプログラミングコンテストを通して、何よりも自分の作りたいものを作れたというのが一番大きいところだと思う。プログラミングを始めるきっかけになった両親や、プログラミングを教えてくださったRubyクラブの皆さん、Quiz Noteを使ってくれたクイズ研究部の方々にお礼を言いたい」と語ってくれた。

優秀賞:佐野 晴輝さん作「minepics」

「minepics」のプレゼンテーションをする佐野晴輝さん
投稿された一覧が表示されるページから作品の詳細を表示でき、作品には「いいね」を付けることもできる
ユーザーのプロフィールページもあり、全体的に非常に完成度が高いコミュニケーションツールだ

プレゼンテーションでは、マインクラフトの簡単な紹介と、佐野さん自身も「マインクラフター」でもあることを紹介。従来のSNSなどのコミュケーションサービスは、マインクラフター同士のコミュニケーションがやりづらいため、マインクラフトに特化したコミュニケーションサービスを作ろうと思ったという。「minepics」はそうした考えから生まれたマインクラフトに特化したコミュケーションサービスで、作品を美しく見せる場として、サービスのデザインが洗練されたものになるように心がけたそうだ。さらに、すべてのユーザーの作品を一括で閲覧できる機能もある。サービス開始から半年で登録ユーザー数は約1800人、投稿された作品は約1900作品と、多くの人の支持を得ている。「自分が作ったサービスが多くの人に影響を与えて、喜んでもらえることを実感できた、プログラミングは夢のような道具」だと語ってくれた。今後は、Rubyをもっと学習してプログラマーとしての実力をつけたいそうだ。

なお、「minpics」は次のURLからアクセスができる。
https://www.minepics.jp/

最終選考では、すでにユーザー数1800人を超え、コミュニティサービスとして完成度が高い点、ニーズがあり、グローバルに展開できる可能性がある点などが評価され優秀賞を受賞した。佐野さんは表彰式で「はじめてプレゼンテーションをしたけれども、このような賞を頂けてとても嬉しい、これからも頑張りたい」と語ってくれた。

ネイロ株式会社 CEO 平井武史氏による特別講演「現代のゲーム開発レシピ」

最終審査の合間に、「現代のゲーム開発レシピ」という題材で、ネイロ株式会社 CEO/クリエイティブプロデューサー 平井武史氏による特別講演が行われた。平井氏は、「ゲームはどのように作られているのか、ゲーム制作の現場から伝えたい」と語り、「ゲームとは何か」、「ゲームプログラマーになるには?」という2つのテーマで講演を進めた。

ネイロ株式会社 CEO/クリエイティブプロデューサー 平井武史氏、主な作品にシェンムー、メテオス、ラブライブスクフェスACなどがある

まずは会場に向け「ゲームとは何か皆さんわかりますか?」と問いかけ、ゲームの本質についての説明を始めた。ゲームには「勝敗」と「ルール」があるのが大切で、野球やサッカーなどのリアルスポーツに限らず、テーブルゲーム、アクションゲーム、RPGやアドベンチャーゲームなどのコンピュータゲームのほとんども、すべて勝敗とルールが存在している。さらに、ゲームに大切なことは、「面白いこと」であり、「ゲームは人の心に残って、はじめて商品になること。人の心に残らないものは、単なる作品でしかないと」述べた。

次に、ゲームの面白さについて説明。面白いゲームを作るには「かけひき」を作ることが大切であるという。代表的な駆け引きには「タイミング」、「リスク・リターン」、「3すくみ」があり、それぞれについての説明を行った。

まず、タイミングとはプレイヤーに考えて行動させること。エポック社のゲームを例に、防御と攻撃のタイミングで勝敗が決まることや、「スーパーマリオ」などのアクションゲームの例ではタイミングを合わせてジャンプしないとキャラクターを失ってしまうことなど、ゲームにおけるタイミングの重要さを説明した。

リスク・リターンについては、リスクがある操作はリターンも大きくする必要がある、と解説。格闘ゲームの必殺技を例に、コマンドを失敗すると長い硬直がおきる(リスク)、成功するとダメージが大きいことや長距離でも攻撃があたる(リターン)を説明した。例えとしては、バスケットボールのシュートがわかりやすい。スリーポイントラインを超えた場所からのシュートはリスク(ポイントしづらい)があるがリターン(得点)が大きい、格闘ゲームも同様にプレイヤーにとってリスクのある攻撃がリターンが大きい。

3すくみは、じゃんけん、格闘ゲーム、RPGなどを例に、3つの要素にそれぞれ利点、弱点を存在させることでゲームに深みが生まれることを説明した。例えば「ファイヤーエムブレム」(RPG)では武器、魔法それぞれに得手、不得手がある。魔法なら、炎属性は風属性に強く、雷属性には弱いという性質を持っている。3すくみの要素をゲームに取り入れることで戦略性を持つ面白いゲームを作ることができる。

さらに、かけひきだけでは必ずしも面白いゲームにはならない。「モチベーションサイクル」や「ゲームサイクル」と呼ばれる要素を組み込むことが大切だと語った。

モチベーションサイクルとは、目的、課題、報酬の3つの要素をうまく循環させること。ピザの宅配や、「どうぶつの森」を例にモチベーションサイクルをわかりやすく説明した。「どうぶつの森」では、多額の借金を返済する(目的)ために、果物を取るなどの作業(課題)が必要で、それによってお金(報酬)をもらうことができる。プレイしていくうちに、採取や収穫などの作業がユーザーの興味になり、楽しくプレイできるようになるのが、良いモチベーションサイクルである

モチベーションとはプレイヤーの興味であり、ゲームのルールや作業を、興味に代えるためのものがモチベーションサイクルであるという。ゲームルールの中でユーザーも成長して報酬も与えられるのがモチベーションサイクルの基本で、プレイヤーがやらされているつもりが、やりたいという感情にかえるのがゲームの上で大切だと語り。目的、課題、報酬を分けて、興味の循環を作ることが大切だと述べた。

プレイヤーのモチベーションをどのように保つかについては、ポケモンの収集を例にして説明。ポケモンは赤と緑で151匹いるが、最初から151匹いるから集めなさいというと大変なイメージを与えてしまう。それよりも、プレイヤーが146匹くらい集めてから、あと5匹くらいでコンプリートできますよ、といったデザインにするという。そうすれば、ルール(作業)が興味に代わるという。

話はゲームのマーケティングについても及んだ。現在はリリースされるゲームのタイトルが非常に膨大であることを語り、その中で目立つことが大事だという。そのためには、商品力や作品力を向上させることが大切である。さらには、ゲームを通じてプレイヤーに新しい体験をしてもらうことが大切だと語った。

平井氏はゲームプログラマーの採用時に、開発言語や開発環境、Unityなどの知識は重視していない。プログラムを書けることやプログラミングの知識は大事だが、それよりも表現力と再現力が大切であるという。現代は、より本物に近いゲームが嗜好される時代である。リアリティのあるゲームを作るには、数学や物理といった頭の中にある知識だけではだめで、「表現力」や「再現力」が大切であり、表現力や再現力を高めるには「自分自身が、さまざまな体験をすることが重要」だと語り「ゲームプログラマーになるには、プログラミング以外の経験をたくさん積み重ねていってほしい」と締めくくった。

Rubyの生みの親 まつもとゆきひろ氏が中高生に語る「プログラミングの世界」

最後に、一般財団法人Rubyアソシエーション理事長で中高生国際Rubyプログラミングコンテスト審査委員長のまつもとゆきひろ氏より、講評と「プログラミングの世界」というタイトルの講演が行われた。

一般財団法人Rubyアソシエーション理事長 中高生国際Rubyプログラミングコンテスト審査委員長 まつもとゆきひろ氏

まずゲーム部門を振り返る。「岩手の鮭」は郷土愛にあふれている点が評価された。「Calculation BOX」は最後まで優秀賞の選考に残り、シンプルなルールだが非常に奥が深い点が評価されて「審査委員特別賞」と「Matz賞」のダブル受賞となったという。「Immunity's War」は、キャラクターを切り替えて、それぞれのキャラクターの特性を使って遊ぶといったゲーム性の深さが評価された。「EASY CODING」については、プログラミング経験のない人にビジュアルプログラミングを体験させると、たいていの人が途方にくれてしまうと前置きしたのち、課題を明確に定義することでビジュアルプログラミングをわかりやすくゲームとして体験できることが評価された。さらに、「SUPER NOVA」はパズルとしてのゲーム性の深さ、「One Rabbit」はゲームが難しいが発想が良かった点、「Panel Vanish」はまつもと氏自身が非常にバランスの良いゲームだと感じた点などが評価されたという。

クリエイティブ部門では、プログラミングの生産性を上げるためのツールは、最近特に注目されているジャンルであり、「自動インデント」はその部分に注目した着眼点を評価した。さらに、「Quiz Note」は「全国のクイズ研究会の人たちが泣いて喜ぶのではないか」とニーズにぴったりとあったツールを作ったこと、「minepics」は「実用レベルの実装をして、2000人近いユーザーを集めるのは簡単にできることではない」とそれぞれの作品を評価した。

まつもと氏の語る「プログラミングの世界」

講評の後、まつもと氏は「島根からきました。遠いけれど、今は飛行機のおかげで日帰りができる」と話しはじめた。「江戸時代なら島根から東京に行こうと思ったら片道1か月はかかるだろう。仕事や打ち合わせなどで頻繁に島根と東京を往復しているが、飛行機というテクノロジーに依存している。テクノロジーによってライフスタイルや社会がかわっていく。コンピュータもテクノロジーであり、世界を大きく変えてきた」とテクノロジーの重要性や、テクノロジーで社会が変わっていくことについて述べた。

さらに、コンピュータの歴史を紹介しながら「時代とともにコンピュータの役割が変化してきた」と続ける。もともと「コンピュータ」は計算という意味で、かつては複雑な計算はたくさんの人間が筆算や計算尺でやっていたこと、最初のコンピュータ(ENIAC)は砲弾の弾道を計算するために作られたことなどを紹介し、「今では、コンピュータでは計算はしない。YouTubeで動画を見たり、Twitterでコミュニケーションをしたりというように、計算をする役割をする機械が、時代とともに変化し、社会でどんどん拡大している。その結果、コンピュータは目的が限定されない機械になった」と語った。

「今やコンピュータはなんでもできる機械になった。ゲームをしたければゲームができる。クイズの点数計算もできる、マインクラフトのファンたちが集う場所を作ることもできる」と、コンピュータの「やればできる」はソフトウェアによって実現されていること、「コンピュータで適切なソフトを作ってやれば、ゲームもできるしコミュニティサイトを作ることもできる。ソフトウェアの作成が非常に重要になってくる」と述べた。

プログラミング言語や開発環境についても歴史をさかのぼりながら紹介した。「昔はスイッチを使って2進数で1バイトずつ数値を書き込んでプログラムを作成した。アセンブラが登場したことでプログラミングが楽になったこと。さらには、FORTRAN、BASIC、C、JAVA、Rubyなど、さまざまなプログラミング言語や開発環境が登場・進化することで、プログラミングにかかるコストが減ったことや、誰もが手軽にプログラミングを楽しむことができるようになった」と語った。

まつもと氏は自身が中学生の子供を持つ親世代であり、Rubyやさまざまなツールを提供することでプログラミングの効率を上げるようにしてきた。「その便利なツールを使って実際に社会を変えていくのは、次の世代である皆さんがやっていくことではないか。社会の変革を皆さんに託したい」とし、「合理的で理不尽のない社会、人間が持っている能力をテクノロジーで拡張する社会になって欲しい」と語った。

しかし、一方でコンピュータがコンテンツを消費するための道具になっているのではないかと警鐘を鳴らす。「情報の消費は受け身であり、誰かが用意した情報を使う。誰かが用意した情報を調べることである。皆さんに本当にやってほしいことは、想像力を使った創造、新しいものを作り出すことであり、能動的なことをしてほしい。コンピュータは本来そういうパワーのあるデバイスであり、そのように使ったときに、人類の能力をテクノロジーで拡張したといえる」と述べた。

現代ではプログラミングの機会が与えられても、1~4割くらいの人たちしかプログラミングができない。プログラミングに限らず、誰もが「心の壁」を持っていると言う。心の壁を乗り越えることで、将来はたくさんの人がプログラミングをできる可能性があると語り、「より良いツールなどでプログラミングの敷居を下げて、プログラミングを簡単に楽しくすれば誰もがプログラミングの適性を持つことができる。プログラミングの楽しさがいろいろな人に伝われば、プログラミングにはまっていく人が増えるのではないか」と述べた。

さらに、まつもと氏がRubyを開発するにあたり、もともとプログラミング言語が好きだったこと、知的好奇心を満足させるのに最適だったこと、プログラミング言語のデザインが楽しかったことなどを紹介。「いまではさまざまなサービスがRubyで作成されている。自分が楽しんでやったことが、ついでに他の人や社会の役にたった」と言い。この「ついでに」がとても大切だと語った。

プログラミングは人生を変えるツールになりえる。プログラミングをすれば自分が変わる、そのプログラムを誰かが使うことで周りが変わる、ひいては社会が変わる可能性もあるという。

「みなさんは最初の一歩を踏み出している。プログラミングを楽しむことによって、『ついでに』社会を変えてほしい」と締めくくった。

大会を終了して、受賞者全員での記念撮影

最後になるが、自身もプログラマーである筆者は「『どうだ!すごいだろう!』はプログラマーの合言葉」を座右の銘にしている。まつもと氏が話された「楽しくプログラミング、そして『ついでに』世の中を変える」という言葉には、筆者と共通する思いを感じることができた。そしてなにより、参加した中高生からは「プログラミングは楽しい!」という思いがにじみ出ているように思えた。発表された作品群はアイデアや技術的にどれも素晴らしいものばかりで、子どもたちの将来がとても楽しみである。

広野忠敏

プログラマ、テクニカルライター。デジタルガジェット、プログラミング、IT全般のテクノロジーに詳しい。主な著書は「できる パソコンで楽しむマインクラフト プログラミング入門 Microsoft MakeCode for Minecraft対応」、「できるWindows 10 パーフェクトブック 困った! &便利ワザ大全」、「できるAccess 2016 Windows 10/8.1/7対応」(インプレス刊)など多数。