提供: Japanese Scratch-Wiki

このきじは ひらがなのページがあります。ひらがなでよむ
分岐.png:この項目はプログラミング言語を説明しています。フォントについては、Scratch (フォント)をご覧ください。

Scratch公式マスコットキャラクターのScratchキャット(Scratch Cat)。
Scratchのロゴ。

Scratch(スクラッチ)は、Scratch財団がマサチューセッツ工科大学メディアラボ ライフロングキンダーガーデングループ(MIT Media Lab Lifelong Kindergarten Group)と共同開発する、8〜16才のユーザーをメインターゲットにすえた無料の教育プログラミング言語である。現在、4400万以上のScratcherが登録しており、4300万以上のプロジェクトが共有されている[1]。現在のバージョンのScratch 3.0にはオンラインエディターからアクセスできるほか、Windows/Mac版のオフラインエディター(Scratch デスクトップ)はここから、以前のバージョンのScratch 2.0ここから、Scratch 1.4ここからそれぞれダウンロードできる。

Scratchは、教育・学習が楽しく簡単にできるよう設計されている。Scratchには、インタラクティブストーリー、ゲーム、アート、シミュレーションなどを作成するための様々なツールが用意されており、さらには、オリジナルのペイントエディターサウンドエディターまで内蔵されている。

Scratchのプログラムは、ユーザーがブロックパレットからブロックをドラッグして、ジグソーパズルのように他のブロックに取り付けることにより作成する。このようにして組み合わせた複数のブロックのかたまりは、スクリプトと呼ばれる。ブロックを使ってコードを作成するこのようなプログラムの作り方を、ドラッグ&ドロッププログラミングと呼ぶこともある。

ScratchのウェブサイトのURLは https://scratch.mit.edu である。

利用方法

Scratchは世界中の学校で、子どもたちにコンピュータープログラミングの基礎を紹介する手段として使われているが、学校以外でも利用される場面は多く、子どもだけでなく大人の中にも、Scratchを通じてプログラムの基本知識を学び、 やがて他のプログラミング言語に進んでいく人がいる。Scratchの利用においては、Scratchプロジェクトの作成、 リミックス合作 などを通して、他のユーザーと交流を深めることができる。

使用環境

プログラミング言語の設計にあたり、開発者がもっとも大事にしたのは、言語仕様と開発環境を直感的なものにして、プログラム経験のない子どもでも、すぐに使い方がわかるようにすることであった。パワフルなマルチメディア対応やマルチスレッド式のプログラミングスタイルの採用に対して、プログラミング言語としては対象範囲を絞り込んだ対照的な設計がなされた。

Scratch 3.0の初期状態の開発環境
Scratchのユーザーインターフェース では、画面がいくつかのペインに分割されており、左にブロックパレット、 中央にスクリプトエリア(3.0ではコードエリア)、右にステージスプライトのリストがある。ブロックパレットにはコードのかけら(ブロック)があり、これらはスクリプトエリアにドラッグして、プログラムを作成するために使用される。とんでもない量のブロックがずらずらとブロックパレットに並ぶと使用するときに不便なので、これらのブロックは動き、見た目、音、変数、イベント、制御、調べる、演算、ブロック定義の10個のグループに分類されている。また、拡張機能により、ペンや外部機器との連携などの高度な技術を使用できる。

名称について

ライフロングキンダーガーデングループのプログラミング言語として使われている「Scratch」という単語は、音楽の世界のスクラッチと関連がある。

「スクラッチする」とは、DJやターンテーブリストが行う、ターンテーブル上のビニールレコードを前後にこすって(時には、DJミキサーのクロスフェーダーを操作しながら)、独特の音をだすテクニックのこと。[2]

– Wikipedia

DJ同様、Scratchでも、さまざまなコードのかけら(ブロック)を組み合わせて、新しい何かが作り出される。[3]

わたしたちは、Scratchという名前をヒップホップDJたちが音楽をスクラッチするやりかたから取ったんだ。DJって、音楽を一度ばらばらにしてから、予想もしなかったクリエイティブなやり方でそれを組み合わせて1つにしていくからね。

– Mitchell Resnick, MITライフロングキンダーガーデングループ

Scratchの派生語

Scratchという単語からはいろいろな用語が派生しており、次のような語がScratchユーザーの間で日常的に使われている:

  • Scratcher スクラッチャー。スクラッチのユーザー
  • Scratching スクラッチング。スクラッチを使うという動作を表す
  • Scratched スクラッチド。別のゲームをScratchで再現しようとしたプロジェクト(例:スクラッチド パックマン)
  • Scratchチーム Scratchウェブサイトの管理/開発チーム。(STと略される)
  • Scratch On! Scratchチームが作り、使用する用語(ほかのScratcherたちも使うようになっている)。「Scartchをがんばってつづけよう」という意味で、ユーザーを励ます言葉。

合言葉

Scratchの合言葉は、「想像、プログラム、共有」。これはScratchプロジェクト作成の基本、「まず、アイディアを考え(想像)次にScratchでアイディアをプログラムにして(プログラム)そして最後は世界中に共有する(共有)」という流れを表す。Scratch 2.0のリリース以降、Scratchサイト全体でこの言葉を見かける機会は少なくなった(トップページでは、Scratchとは何かという説明に取って代わられた)。

バージョン

現在のScratchのバージョンは3.0である。3.0のオンラインエディター・Windows/Mac用オフラインエディター(Scratch デスクトップ)の公式リリース日は日本時間2019年1月3日であった。旧バージョンにあたるのは、2013年5月9日にリリースされたScratch 2.0や2009年7月2日にリリースされたScratch 1.4である。さらにその以前には、 Scratch 1.3Scratch 1.2Scratch 1.1Scratch 1.0といったバージョンが存在した。これまで、Scratchのバージョンが変わるたびに重大な変更が加えられてきたが、1.4から2.0、2.0から3.0へのバージョンアップでは、Scratchに特に大きな変化が加えられた。プログラムのバージョンがアップデートされただけではなく、ScratchウェブサイトがScratch自体の機能の一部として取り込まれたためである。

特色

  • Scratchはチューリング完全である
  • 根源的にイベントドリブン型である
  • オブジェクト指向型プログラミング であるかどうかはコミュニティ内での議論がわかれている
  • Scratchでデータを格納するには、変数リストを利用する。なお、リストは複製できる。
  • Scratchの「繰り返し」制御では操作はアトミック(不可分)ではないシングルフレーム プログラムにすれば、擬似的なアトミック操作として扱うことができる
  • Scratch 2.0以降ではプロシージャ(ブロック定義)、再帰を使用できる。
  • Scratchにはシンプルな キャスト (型変換)ルールがいくつか存在する。しかし、データは第1級オブジェクトではない。第1級オブジェクトとしてリスト、スプライト、プロシージャ(ラムダ式)を持つことはできない。

OS機能へのアクセス権

ScratchからハードウェアやOSにアクセスできる範囲は限られており、かなり安心して使用できるプログラムといえる。Scratchからアクセス可能な内容は次のとおり:

  • マイクで拾った音のボリューム(音量
  • Scratch画面内でのマウス位置
  • キーが押されたこと(ただし、Scratchがアクティブになっているときだけ)
  • Webカメラから画像を受け取った場合、その画像内の動きを表すモーション値(Scratch 2.0から)
  • プログラムの開発中は、ローカルのファイルシステムにアクセス可能だが、実行中のプログラムからはファイルシステムにアクセスできない
  • Scratchは、ユーザーのコンピューターに接続されたLEGO WeDoや、micro:bitなどと外部通信できる

mod版Scratch(改造版Scratch)には、より多くのOS機能を使用するものもある。

誤解

「Scratch」の語の独り歩き

Scratchの語は米国にて商標登録されている。本来、Scratchは、本項で紹介するプログラミング言語をさすが、「ブロックを使用したプログラミング言語」や「ビジュアルプログラミング言語」がScratchと呼ばれることがある。また、頻度は少ないが、Scratchの改造版(mod)においても、同じことが起こりうる。

パズル

Scratchがパズルを解くことによって課題を解決する言語と表現されることがあるが、Scratchにその要素はなく(modの中にはある)開発を主導するミッチェル・レズニック氏はTwitterにて、そのようなパズルを批判している。[4]

ScratchJr

ScratchJr はScratchに元に、よりシンプルにしたプログラミング言語で、5〜7才の子どもに向けて設計されている。Scratchとは異なり、ScratchJrはタブレット向けのモバイルアプリとして開発された。ScratchJrの開発チームはScratchチームとは若干異なる。ただし、両方のプログラムに貢献しているメンバーも数名存在する。

小ネタ

SandCastleIcon.png このページには、ScratchのWebサイトまたはWikipedia,Scratch Wiki以外へのリンクがあります。 他のサイトの安全を保証することはできないため、インターネットを使用する際は常に安全を忘れないようにしてください。
  • Scratchとカートゥーンネットワークのコラボレーションにより、「ぼくらベアベアーズ」のプロモーション企画として、同番組のプロジェクトを作れるようになっている。日本語版サイトにリダイレクトされるが、米国版のサイトには、こちらに特集ページがある。
  • Scratchは、一時的に「ヒヒーン(Neigh)」に改名したことがある(Scratchチームが2012年のエイプリルフールに行った2.0に向けたジョークだった)。このときは、さらに、サイトのあちこちで「マイリトルポニー」が登場した。くわしくは、こちら(英語版)を参照。

関連項目

脚注

出典

  1. 統計情報
  2. wikipedia:en:Scratching
  3. scratch:discuss/post/3330774/
  4. https://twitter.com/mres/status/674564329073590272