子どもに「プログラミング」の学習をさせたいと考えた時に
「どのようなプログラミングの方法があるのか知りたい」
「大人になっても通用するプログラミングを学習させたい」
という方もいらっしゃると思います。

今回はプログラミングを行うために必要な「プログラミング言語」にはどのようなものがあるかを解説したいと思います。

「やりたいこと」からプログラミング言語を探そう

プログラミング言語は100種類以上ある

「どんなプログラミング言語があるのだろう?」という観点で調べていくと、確実に混乱します。
プログラミング言語は100種類以上あるうえ、言語の特徴を見ても専門的すぎて理解が難しいのです。
プログラミングすることを仕事としている「ITエンジニア」でも、分野によっては説明できないと思います。

「どんなプログラミング言語があるか?」
ではなく
「プログラミング言語で何をやりたいか?」
ということを考えるのが良いでしょう。

ゲームを作りたい

とにかく「ゲームを作ってみたい」、と言い始めた子どもにお勧めしたいのは「Scratch」です。
Scratchはビジュアルプログラミング言語で、初めてプログラミングをする人には最適です。
Scratchについて詳しくはこちらの記事で紹介しています。

まずは、「何を作りたいか」と「どうやったら完成するのか」という点に特化して学習してみてください。
「大人になっても通用する言語でゲームを作りたい」
という場合も、まずはScratchをお勧めします。
いきなりタイピングから始まるプログラミング言語だと、ハードルが高くなってしまうからです。
Scratchでは実現できないことがやりたくなってから次のステップに移るのが良いでしょう。

もっと本格的なゲームを作りたい

Scratchでは物足りない、もっと本格的なゲームを作りたいと思ったときは「C++」「C#」がお勧めです。

近年リリースされているiPhoneやAndroidで動くゲームの多くは「Unity」というゲームエンジンを用いており、そのUnityで使われているのが「C#」という言語です。
例えば、こちらの記事で紹介している「Digital Puppet(デジタルパペット)」というスマートフォン用ゲームはUnityで開発されています。

このゲームアプリは「Unity」が用いられている



「C++」はPlayStationなどをはじめとする家庭用ゲーム機のゲーム開発に以前から使われている言語で、
C#よりもハイスペックなゲームの開発に用いられることが多いです。

C++もC#も、元をたどると「C言語」という言語をベースに作られているため、兄弟のような存在です。
ただし、C#のほうが新しくできたプログラミング言語で比較的わかりやすいので、本格的なゲームを作りたい場合はまずはC#から始めるのがお勧めです。

スマートフォン向けアプリを作りたい

小学生でもスマートフォンをもつ時代になりました。
カメラアプリやSNSなど、スマートフォンで使うアプリを作りたい!という人もいると思います。
その場合、実は「iPhone」や「Android」ではそれぞれ使用できる言語が異なります。
iPhone(iPad)では「Swift」、Androidでは「Kotlin」という言語を使用します。iPhoneとAndroidのアプリを両方作りたいとなった場合、2つのプログラミング言語を習得する必要があり、少し大変です。

そのため、両方に対応した開発環境が続々登場しています。その一つが先ほど紹介した「Unity」です。そのほか、JavaScriptを使用した開発環境もいくつか登場しています。
本格的なゲームを作る場合と同様、まずはUnityを学ぶのが近道でしょう。

ブラウザで動くゲームを作りたい

「ブラウザ」というのは、インターネットのサイト(ウェブサイト)を見るためのソフトです。今、この記事を見ているソフトがブラウザになります。
特別なアプリをインストールするという手間をかけず、ブラウザだけで動くゲームを作りたいという人もいると思います。

その場合、欠かせないのが「HTML+CSS」「JavaScript」です。

ブラウザで動くゲームで遊ぶためには、ブラウザで見ることができるウェブサイトが必要になります。
「HTML+CSS」はウェブサイトの「見た目」を作るために必要です。
HTMLはウェブサイトを作るために一番基本となるものです。
ウェブサイトのすべてがHTMLを使っていると言っていいでしょう。
CSSはHTMLの見た目を装飾するための設定を行います。ウェブサイトのイメージを作るにはCSSが欠かせません。

「HTML+CSS」 は厳密にはプログラミング言語ではありませんが、ウェブサイトを作るのに必須の知識なので、こちらの習得も必要になってきます。


文字の大きさやフォントなどを変更することもできる



それではゲーム部分は何で開発するかというと、よく使われているのが「JavaScript」というプログラミング言語になります。
JavaScriptは、元々ウェブサイトの動きを華やかにするために利用されてきましたが、近年ではブラウザで動くゲームを作ることもできるようになりました。

例えば、Yahoo!きっずにあるゲームは多くがJavaScriptを使っています。ブラウザさえあればプレイできるので、気軽に遊ぶことができるのが特長です。

ゲーム以外の部分でも、例えばウェブサイトに「パソコン」からアクセスしたのか「スマートフォン」からアクセスしたのかを判断するにはJavaScriptが必要です。
また、画面をクリック(タップ)したら詳しい情報が表示されるように、動的なページを作るのにJavaScriptが一役買っています。

みらいごとラボのEクラス(Webサービス&アプリ開発コース)では、このJavaScriptでゲームの開発を行っています。


AIを使ったプログラミングがしたい

AI(人工知能)が最近話題となっています。
AIを扱うプログラミング言語として今注目を集めているのは「Python(パイソン)」です。

AIを扱うプログラミングをする上で一番大事なのは、実は数学です。
Pythonは、その算術系が得意なプログラミング言語であり、ほかの言語に比べてかなり簡単に計算を行わせることができます。

その使いやすさから大学などの研究者が好んで使っているため、「AI=Python」というイメージが強いのですが、Pythonでアプリやゲームを作ることもできますし、他のプログラミング言語でAIを扱うこともできます。
ただ、Pythonは他のプログラミング言語よりも記述が少なく読みやすいため、学習を始める際のハードルが低いと言われています。Pythonを使うプログラマーの人口は年々増えており、わからないところを調べたり、サンプルプログラムを探したりするのも比較的楽にできると思いますので、AIを扱いたいと思っているのならば、最初に習得するのはPythonがお勧めです。


おわりに

世の中にはたくさんのプログラムが動いており、それぞれが違うプログラミング言語を使って作られています。
プログラミングの勉強をしてほしい!と思ったときは
何を作ってほしいのか、もしくは作りたがるか。
そこから「どうしたら作ることができるのか?」を考えることが重要です。

実は、プログラムのコードを書き始める前から、プログラミング教育は始まっています。
プログラミングを仕事にしている「ITエンジニア」も、プログラミングそのものよりも、設計(何をどう作るのかを考えること)のほうにより多くの時間をかけているのです。

プログラミング言語の習得も大事ですが、まずは本人が作りたいものをベースに考えた方が、楽しく学習することができるのではないでしょうか。