世界には数多くのプログラミング言語があり、本連載では言語を毎回一つずつ取り上げています。今回取り上げるのは、これまで紹介した言語と一線を画した画期的な言語で、ビジュアルプログラミング言語のScratchです。プログラミング教育の盛り上がりと共に大きな話題となっているので、本稿をきっかけにプログラミング入門してみるのはどうでしょうか。

  • Scratchは大人気の教育用プログラミング言語

    Scratchは大人気の教育用プログラミング言語

Scratchについて

Scratchは2006年にMITメディアラボが開発したプログラミング言語です。プログラミング教育で使えることを目標に開発されました。Scratchの最も際立った特徴は、プログラムを書かないことです。どういう事かと言うと、画面上に並んだブロックを並べることで、プログラムを組み立てることができます。

  • 画面上に並んだブロックを並べてプログラムを作る

    画面上に並んだブロックを並べてプログラムを作る

教育を主眼に置いているため、子供の遊び心をくすぐる仕掛けが施されています。絵を動かしたり音を鳴らしたり、物語を作ったり、ゲームを作ったり、楽しいプログラムを手軽に作ることができます。

  • 子供の遊び心をくすぐる機能がたくさん!

    子供の遊び心をくすぐる機能がたくさん!

Scratchが人気の理由は、気合いをいれてプログラムを作るというよりは、絵を描いてそれを動かしたり、音を出したりと、コンピューターの中に「仕掛け絵本」を作る感覚です。そのため、子供だけでなく大人も楽しめるものになっています。

しかも、2019年に公開されたScratch3ではWebブラウザ上でScratchを動かすことができるようになりました。そのため、タブレットなどでも動かすことができます。ScratchのWebサイトにアクセスするだけで、作品の制作をはじめることができます。そして作成した作品を手軽に世界中へ公開する機能もあります。

  • Webブラウザで動かすことができるScratch

    Webブラウザで動かすことができるScratch

Scratch事始め

それでは、実際にScratchを使ってみましょう。Scratchを使うには、こちらのサイトにアクセスするだけです。日本語にも対応しています。英語が表示されたら画面の一番下にある言語選択ボックスから「日本語」を選択しましょう。そして、画面上部にあるメニューにある「作る」ボタンを押しましょう。

すると、次のような画面が表示されます。簡単なチュートリアルが表示されるので、これを一回見るだけでも、勘の良い方なら基本的な使い方が分かるでしょう。

  • 親切なチュートリアルも表示される

    親切なチュートリアルも表示される

多言語対応しており、日本語だけでなく英語・中国語・韓国語と世界の主要な言語に対応しています。メニューの地球儀のアイコン(画面の左上)より切り替えることができます。

  • 多言語対応もしています

    多言語対応もしています

また、サインアップしてユーザー登録すると作った作品をクラウド上に保存することができますが、Scratchを使うのにサインインは絶対に必要な条件ではないので、そのまま使いはじめることができます。

さて、実際に使ってみましょう。画面の左側には、ブロックの一覧(スクリプトパレット)が表示されています。このブロックを並べることでプログラムを完成させます。パソコンで使う場合には、ブロックを選んだら、画面中央の白いパネル(スクリプトエリア)までドラッグ&ドロップします。よく見るとブロックには凹凸があるのに気づくでしょう。この凹凸の部分に他のブロックをくっつけることができます。

なお、プロジェクトが作成されたばかりの状態では、ネコのマスコット(名前はScratchキャットと言います)が選択状態となっており、このネコをどう動かすのかをプログラミングできるようになっています。

ここでは、ネコを動かすプログラムを作ってみましょう。画面の一番左端から「イベント」グループをクリックし、「(緑の旗)が押された時」を選んで画面中央のスクリプトエリアに配置しましょう。続けて、「動き」グループにある「10歩動かす」をドラッグして、「(緑の旗)が押された時」にくっつけてみましょう。以下のような状態です。

  • 旗を押すと動くというスクリプト

    旗を押すと動くというスクリプト

この状態で、画面右側にあるステージ(ネコの絵がある部分)の上にある緑の旗をクリックしてみましょう。すると、クリックする度にネコがちょっと動きます。簡単ですし面白いですよね。

  • 旗をクリックするとネコが動く

    旗をクリックするとネコが動く

恒例のFizzBuzzも作れる

とは言え、Scratchのようなビジュアルプログラミング言語にも欠点があります。条件分岐や繰り返しを表現できるものの複雑なプログラムを作るのが難しいという点です。それでも、本連載恒例のFizzBuzz問題程度のプログラムなら作ることができます。

なお、FizzBuzz問題とは次のようなものです。

> 1から100までの数を出力するプログラムを書いてください。ただし、3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」と表示してください。3と5の倍数の時は「FizzBuzz」と表示してください。

これを、Scratchで解くプログラム(左側)と実行結果(右側)が以下です。

  • FIzzBuzzのプログラム

    FIzzBuzzのプログラム

「繰り返す」ブロックと「もし」ブロックを入れ子状に組み合わせることで作っています。

作成した作品を共有しています。こちらにアクセスすると、実際にScratchで動作を確認することができます。

まとめ

以上、今回はScratchについて紹介しました。Scratchがすごいのは、ブロックを並べてプログラムを作るだけでなく、絵を描く機能も充実しています。気軽に使えるお絵かきツールとしても優秀です。このように、楽しくプログラミングのエッセンスを身につけることができるのが、Scratchの素晴らしい点です。

また、ビジュアルプログラミング言語が良いのは、構造的に構文エラーが起きないので、「どうして動かないの?このエラー一体何?」という初心者のやる気をそぐ要素が少ないのも良い点です。Scratchでプログラミングに興味が出たら、一般的な言語に移行するというも良い方法だと思います。魅力たっぷりのScratchで皆さんも遊びながらプログラミングを学ぶのはどうでしょうか。

自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2004年度未踏ユース スーパークリエータ認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。