提供: Japanese Scratch-Wiki

Scratch(スクラッチ)は、Scratch財団がマサチューセッツ工科大学 (Massachusetts Institute of Technology, MIT) のMITメディアラボ (MIT Media Lab) 内にあるライフロング・キンダーガーテン・グループ (Lifelong Kindergarten Group, LLK) と共同開発する、8〜16歳のユーザーをメインターゲットにすえた無料の教育プログラミング言語及びその開発環境である。
現在のバージョンのScratch 3.0にはオンラインエディターからアクセスできるほか、Windows/Mac版のオフラインエディター(Scratch 3 アプリ)はここから、以前のバージョンのScratch 2.0はここから、Scratch 1.4はここからそれぞれダウンロードできる。
Scratchは、教育・学習が楽しく簡単にできるよう設計されている。Scratchには、インタラクティブストーリー、ゲーム、アート、シミュレーションなどを作成するための様々なツールが用意されており、さらには、オリジナルのペイントエディター、サウンドエディターまで内蔵されている。
Scratchのプログラムは、ユーザーがブロックパレットからブロックをドラッグして、ジグソーパズルのように他のブロックに取り付けることにより作成する。このようにして組み合わせた複数のブロックのかたまりは、スクリプトと呼ばれる。ブロックを使ってコードを作成するこのようなプログラムの作り方を、ビジュアルプログラミングと呼ぶこともある。
ScratchウェブサイトのURLは https://scratch.mit.edu である。
なお、Scratchのロゴは米国にて商標登録されている。
活用方法
Scratchは、世界中の学校で、子どもたちにコンピュータープログラミングの基礎を紹介する手段として使われている。また、学校以外でも利用される場面は多く、子どもだけでなく大人の中にも、Scratchを通じてプログラムの基本知識を学び、やがて他のプログラミング言語(PythonやC#、Visual Basicなど)に進んでいく人がいる。Scratchウェブサイトの利用においては、Scratchプロジェクトの作成、 リミックス、 合作などを通して、他のユーザーと交流を深めることができる。
使用環境
Scratchの設計にあたり開発者が最も大事にしたのは、言語仕様と開発環境を直感的なものにして、プログラム経験のない子どもでも、すぐに使い方がわかるようにすることであった。パワフルなマルチメディア対応やマルチスレッド式のプログラミングスタイルの採用に対して、プログラミング言語としては対象範囲を絞り込んだ対照的な設計がなされた。[要出典]

Scratchのユーザーインターフェース では、画面がいくつかのペインに分割されており、左にブロックパレット、 中央にスクリプトエリア(3.0ではコードエリア)、右にステージとスプライトのリストがある。ブロックパレットにはコードのかけら(ブロック)があり、これらはスクリプトエリアにドラッグして、プログラムを作成するために使用される。とんでもない量のブロックがずらずらとブロックパレットに並ぶと使用するときに不便なので、これらのブロックは動き、見た目、音、変数、イベント、制御、調べる、演算、ブロック定義の10個のグループに分類されている。また、拡張機能により、ペンや外部機器との連携などの高度な技術を使用できる。
名称
由来
「Scratch」という名称は、音楽用語のスクラッチと関連がある。
“ | 「スクラッチする」とは、DJやターンテーブリストが行う、ターンテーブル上のビニールレコードを前後にこすって(時には、DJミキサーのクロスフェーダーを操作しながら)、独特の音をだすテクニックのこと[1]。 | ” |
– Wikipedia |
DJ同様、Scratchでも、さまざまなコードのかけら(ブロック)を組み合わせて、新しい何かが作り出される[2]。
“ | わたしたちは、Scratchという名前をヒップホップDJたちが音楽をスクラッチするやりかたから取ったんだ。DJって、音楽を一度ばらばらにしてから、予想もしなかったクリエイティブなやり方でそれを組み合わせて1つにしていくからね。 | ” |
– Mitchell Resnick, MITライフロングキンダーガーデングループ |
派生語
Scratchという単語からはいろいろな語が派生しており、次のような語がScratchユーザーの間で日常的に使われている:
- Scratcher (スクラッチャー) — Scratchのユーザー。
- New Scratcher (ニュースクラッチャー) — 新しいScratchのユーザー。
- Scratching (スクラッチング) — Scratchを使うという動作を表す。
- Scratched (スクラッチド) — 別のゲームをScratchで再現しようとしたプロジェクト(例:スクラッチド パックマン)。
- Scratchチーム — Scratchウェブサイトの管理/開発チーム(STと略される)。
- Scratch on! (スクラッチオン) — Scratchチームによって作られ、使用されている語(一般のScratcherたちも使うようになっている)。「Scratchをがんばって続けよう」という意味で、ユーザーを励ます言葉。
合言葉
Scratchの合言葉は、「想像、プログラム、共有」。これはScratchプロジェクト作成の基本、「まず、アイディアを考え(想像)次にScratchでアイディアをプログラムにして(プログラム)そして最後は世界中に共有する(共有)」という流れを表す。この合言葉は、私の作品やトップページなどのページ名にもなっている[3]。Scratch 2.0のリリース以降、Scratchウェブサイト全体でこの言葉を見かける機会は少なくなった(トップページでは、Scratchとは何かという説明に取って代わられた)。
バージョン
現在のScratchのバージョンは3.0である。3.0のオンラインエディター・Windows/Mac用オフラインエディター(Scratch 3 アプリ)の公式リリース日は日本時間2019年1月3日であった。
旧バージョンにあたるのは、2013年5月9日にリリースされたScratch 2.0や2009年7月2日にリリースされたScratch 1.4である。さらにその以前には、 Scratch 1.3、 Scratch 1.2、Scratch 1.1、Scratch 1.0といったバージョンが存在した。これまで、Scratchのバージョンが変わるたびに重大な変更が加えられてきたが、1.4から2.0、2.0から3.0へのバージョンアップでは、Scratchに特に大きな変化が加えられた。プログラムのバージョンがアップデートされただけではなく、ScratchウェブサイトがScratch自体の機能の一部として取り込まれたり、Scratchを表示するシステムがHTMLに変わったためである。
特色
- 詳細は「プログラミング言語としての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の改造版(mod)においても、同じことが起こることがある。
パズル
Scratchがパズルを解くことによって課題を解決する言語と表現されることがあるが、Scratchにその要素はなく(modの中にはある)開発を主導するミッチェル・レズニック氏はXにて、そのようなパズルを批判している[4]。
ScratchJr
- 詳細は「ScratchJr」を参照
ScratchJr (スクラッチジュニア) は、Scratchを基によりシンプルにしたプログラミング言語である。5〜7歳の子どもに向けて設計されている。ScratchJrはScratchと異なり、タブレット向けのモバイルアプリとして開発された。ScratchJrの開発チームはScratchの開発チームとは若干異なる。ただし、両方のプログラムに貢献しているメンバーも数名存在する。
関連項目
- Scratch Wiki — Scratcherが執筆している、Scratchのウィキ
- Scratchをはじめよう
- Scratch 3.0 — 今のバージョン
- プログラミング言語
脚注
出典
- ↑ wikipedia:en:Scratching
- ↑ scratch:discuss/post/3330774/
- ↑ トップページでは「Imagine, Program, Share」と英語表記になっている
- ↑ https://twitter.com/mres/status/674564329073590272