2020年6月29日月曜日

子どもがはじめてでも使えるオススメ言語はこれ!「Scratch」「Python」「JavaScript」【プログラミング言語のえらびかた】

https://www.google.com/amp/s/valed.press/_amp/_ct/17232188
シェアしました。

前回は「習得しやすいか」「よく使われているか」「応用が利くか」という3つの軸を基準として、プログラミング言語を選ぶのがいいと説明しました。今回はこうした基準をもとに、具体的にどのようなプログラミング言語を選べばよいのかを説明します。

選ぶべきプログラミング言語はこれだ

3つの軸で選べばよいと言われても、たくさんのプログラミング言語があるので、絞り込むのは大変です。そこで今回は、長年、多くのプログラミング言語を使ってきた筆者の経験から、お子さんがはじめてプログラミングをはじめるときにオススメする、代表的なプログラミング言語を選んでみました。それはズバリ、赤枠で囲んだScratch(スクラッチ)、Python(パイソン)、JavaScript(ジャバスクリプト)です。
画像1: 選ぶべきプログラミング言語はこれだ
画像2: 選ぶべきプログラミング言語はこれだ

子どもでもはじめられるビジュアルプログラミング言語「Scratch」

プログラミング言語は、まず大きくビジュアルプログラミングとコードプログラミングに分けられます。前者は命令ブロックをマウスで並べてプログラミングする方法、後者はキーボードから命令を入力してプログラミングする方法です。
画像: ビジュアルプログラミングとコードプログラミングの例
ビジュアルプログラミングとコードプログラミングの例
ビジュアルプログラミング言語の代表は、子ども向けプログラミングでなにかと話題になる無料ソフト「Scratch(スクラッチ)」。
ビジュアルプログラミングのメリットは、プログラムをキーボードから入力する必要がなく、ブロックを並べるだけいので、「キーボードから入力すべき文字を探すのにイライラしないこと」です。せっかちなお子さんや飽きっぽいお子さんだと、キー入力の段階で、プログラミングへの興味を失ってしまう可能性がありますが、ビジュアルプログラミングなら、その心配がありません。
ビジュアルプログラミングでは、ほとんどがマウス操作によるブロックの並び替でありながら、基本的なプログラミングの要素が学べます。まずはじめはビジュアルプログラミングからはじめて、慣れてきたらコードプログラミングに入っていくのはいい選択です。
画像: 子どもでもはじめられるビジュアルプログラミング言語「Scratch」
しかし小学校の高学年ぐらいですと、「Scratchは子どもっぽい」と感じてしまうこともあります。これはScratchの画面周りや構成が派手で子どもっぽいこともあるだけでなく、サンプルや参考書なども、小学校低学年向けに書かれたものも多いためです。ですからお子さんがある程度の年齢になっているのであれば、ビジュアルプログラミングを飛ばして、コードプログラミングから入るのもよいでしょう。
なおビジュアルプログラミングは見た目が簡単なので初心者用というイメージがありますが、決してそのようなことはありません
たとえばIBM社は「NodeRed(ノードレッド)」というビジュアルプログラミング言語をつくっていて、WebのサービスをつくるときやIoTの機器を制御するときなどに、プロの世界でも使われています。

はじめてのコードプログラミングなら「Python」や「JavaScript」

一方でコードプログラミングは、キーボードから命令を入力してプログラムをつくっていくもので、一般的にプログラミングというと、この方法を指します。コードプログラミングで使えるプログラミング言語は、とてもたくさんの種類があります。第1回でも説明しましたが、言語によって得手不得手があり、「どんなアプリをつくるのか」で選ぶのが基本です。
表 主なプログラミング言語と特徴
言語特徴
Python(パイソン)簡単なプログラミングから人工知能まで幅広くこなす。最近、人気
JavaScript(ジャバスクリプト)Webブラウザで実行するプログラムをつくれる。人気が高く、この頃は、スマホアプリや電子工作のプログラミングにも使うこともある
Swift(スイフト)iPhone、iPad、Macのアプリをつくるときに使う
Kotlin(コトリン)Androidアプリをつくるときに使う
Java(ジャバ)Androidアプリの開発や業務アプリ、Webサーバー側のプログラムをつくるときに使う。サーバー側のプログラムを使う場面(とくに堅い業務系)の場面で大きなシェアを占める
C#(シーシャープ)Windowsアプリの開発に使う
Ruby(ルビー)日本人のまつもとゆきひろ氏が開発したプログラミング言語。簡単なプログラミングのほか、Webのサーバー側のプログラムをつくるときにときどは使われる。熱烈的なファンが多い
PHP(ピーエイチピー)Webのサーバー側のプログラムをつくるときに使う。サーバー側のプログラムをつくる場面で大きなシェアを占める
どれを選べばよいのか難しいところですが、はじめてプログラミングするのであれば、「Python」や「JavaScript」をオススメします。その理由は、前回説明した、「習得しやすいか」「よく使われているか」「応用が利くか」の3つの軸をバランスよく、満たしているからです。
「Python」も「JavaScript」も、文法が簡単。そしてよく使われていることから入門書も多く揃っています。そして、どちらも小さなプログラムから本格的なプログラムまで、幅広く使えるプログラミング言語です。

Python

【プログラムの書き方の例】
a = 0
for b in range(1, 10 + 1):
  a = a + b
print(a)
Pythonは、短いプログラムで、とてもたくさんのことができるのが特徴です。最近では、プログラムの命令を入力して、すぐに行単位で実行できる「Jupyter Note」というソフトもあり、「命令を入力して、結果がすぐにわかる」という使い方ができるので、命令の意味を理解しながら習得しやすい環境が整っています。
反面、ウィンドウを表示するとか、なにかキャラクターをつくって画面上を動くゲームをつくったりするなど、ビジュアルな要素をもつものは少し苦手です。
画像: Jupyter NoteでPythonプログラミング
Jupyter NoteでPythonプログラミング

JavaScript

【プログラムの書き方の例】
a = 0;
for (b = 1; b <= 10; b = b + 1) {
  a = a + b;
}
alert(a);
JavaScriptは、Webブラウザで動かすプログラムをつくれます。ブラウザの画面上に、なにかキャラクターを描いて動かすなどの、きれいなビジュアルがあるプログラムが得意です。ブラウザで楽しめるゲームと同じものがつくれると思ってもらえれば間違いありません。
反面、Pythonに比べてプログラムを書く量が少し多くなるため(とくにビジュアルな要素を含めると、とても長くなります)、「数行入力して、ちょっと試してみよう」というのは少し苦手です。
画像: JavaScript
画像: JavaScriptを使えば、こんなゲームもつくれる
JavaScriptを使えば、こんなゲームもつくれる

スマホアプリはサンプルをまねしてつくる

パソコンで動くアプリではなくて、スマホアプリをつくりたいという人もいるでしょう。残念ながら、その場合少し難しくなります。それは特定のプログラミング言語を使わないとつくれないからです。
具体的には、iPhoneやiPadならSwift(スイフト)、AndroidならKotlin(コトリン)Java(ジャバ)を使う必要があります。こうしたプログラミング言語は少し難しめです。
(※「Java」と「JavaScript」は、まったく違うプログラミング言語です。よく、「グレープ」と「グレープフルーツ」ぐらい違うと、たとえられます。ジャバスクリプトのことを略してジャバと呼ぶと、誤解の原因になるので注意しましょう)
またスマホアプリは、自由な書き方でプログラムをつくることはできず、「決まった作法に則った形式」で書かないといけないという決まりもあるので、それを理解しなければなりません。逆にいうと、決まった作法に則った形式で書けば、プログラミング言語を理解していなくても動きます。実際、市販のiPhoneやiPadアプリのつくり方の書籍には、サンプルがたくさん掲載されていて、その通りに入力すれば動くというつくりになっているものが多いです。
ですから、こうした性質を逆手にとって、プログラミング言語の仕組みを理解してからつくりはじめるというのではなく、「サンプルを流用して、自分がつくりたいものに書き換えてみる」——たとえば、サンプルが画面に「こんにちは」と表示されているなら、それを「こんばんは」に変えてみる、サンプルが画面にひとつしか画像を表示していないなら、それをふたつ表示されるように変えてみる――など、「よくわからなくても、まずはやってみる」というように、手を動かしながら自分に馴染ませて、自然に学んでいくスタイルだと、難しいとはいいつつも、案外すんなりと習得できます。
画像: スマホアプリはサンプルをまねしてつくる
子どもは、こうした「ちょっとやってみよう」というのが得意。お子さんに素質があるなら、こうした性質を活かして、「ともかくまねして、プログラミングをはじめてみる」というのもありです。「なにかつくりたい」という原動力があれば、難しさは克服できます。

0 コメント:

コメントを投稿