Scratch(スクラッチ)は、アメリカにある非営利団体Scratch財団がマサチューセッツ工科大学(Massachusetts Institute of Technology、MIT)のMITメディアラボ(MIT Media Lab)内にあるライフロング・キンダーガーテン・グループ(Lifelong Kindergarten Group)と共同開発する、8歳から16歳のユーザーをメインターゲットとする無料教育ビジュアルプログラミング言語及びその開発環境、コミュニティサイトである。ウィキペディアと同様、収録されている全ての内容がオープンコンテントで、商業広告が存在しないことが特徴の一つである。

ScratchはWindows、Mac、Linux、Raspberry Pi、Android、iPadなどに対応しており、ソースコードはGPLv2ライセンスとScratch Source Code LicenseとしてGitHubにて公開されている。

## 概要

Scratchは、コミュニケーション能力の育成をすることを意図している。また、8歳から16歳の子供向けに開発されたものであるが、子供から大人まで幅広い年代が使用している。

Scratchという名称はディスクジョッキー(DJ)がレコードを手でこするスクラッチングに由来しており、DJが気軽に曲をミックスすることと、Scratchで簡単にプロジェクトをミックス(リミックスと言う)することを関連付けている。2006年に最初のバージョンがMITメディアラボのミッチェル・レズニックが主導する「ライフロング・キンダーガーテン・グループ」にMITに来たEtoys開発チームのジョン・マロニーを招いて開発された。

Scratchの視覚的GUIは、子供達がプログラムブロックをスプライトやステージ、スペースにドラッグ・アンド・ドロップすることでアニメーション、アート、ストーリーやゲーム制作をゲーム感覚で簡単にできるようにしている。Scratchでは、正しい構文を読み書きできない人のために視覚的にグループ分けされたブロックをクリックすることでテストできたり、リミックスや修正、プロジェクトの新バージョンを制作するためにブロックを容易に書き換えることができるようなデザインとなっている。

2013年5月にScratch 2.0が公開され、ウェブアプリケーションとなり、開発環境のインストールが不要となった。そのためリミックス(プログラムの改造)が容易になり、従来のバージョンにはなかった、ウェブアプリケーションならではの機能が追加された。

2019年1月にScratch 3.0が公開された。Scratch 2.0まで使用していたAdobe Flashを使用せず、HTML5を使用しているため、Internet Explorerなど一部のブラウザでは動作しなくなったが、スマートフォンやタブレット端末(Android, iPhone, iPad等)での利用がサポートされるようになった(開発グループは画面の大きさの関係でタブレット端末を推奨している)。また、いくつかの拡張機能の追加、ブロックの文字の読みやすさ向上、機能性や画質の向上などの変化があった。

### ユーザインタフェース

Scratch 3.0のユーザインタフェース(エディター)は複数の枠に分かれており、左側はブロックパレット、真ん中はスクリプトエリア、右側がステージとスプライトのリストである。

プログラムを作るために必要なブロックはブロックパレットに並んでおり、スクリプトエリアにドラッグできる。全てのブロックを表示するには多いため、ブロックは主に動き、見た目、音、制御、イベント、調べる、演算、変数、ブロック定義の9つのカテゴリーに分けられている。また、拡張機能により、ペンや外部機器との連携などの機能が追加できる。

| カテゴリー | | 説明 |
| --- | --- | --- |
|  | 動き | スプライトの動きを制御するブロック。 |
|  | 見た目 | スプライトやステージの見た目を制御するブロック。 |
|  | 音 | あらかじめプロジェクトに読み込ませておいた音を実行、制御するブロック。 |
|  | イベント | スクリプト実行のきっかけとなるブロック。 |
|  | 制御 | スクリプトを制御するブロック。 |
|  | 調べる | プロジェクトのさまざまな要素について調べるブロック。 |
|  | 演算 | 数式や計算、文字列を扱うブロック。 |
|  | 変数・リスト | 変数やリストに数値や文字列を保存して使うブロック。 |
|  | ブロック定義 | 定義ブロックの下に繋げたプログラムを1つのブロックとして使用できるブロック。 |
|  | 拡張機能 | ブロックを追加してプロジェクトを拡張するブロック。(後述) |

#### サイトの色の更新

障害等の有無にかかわらずサイトをアクセシブルにするため、2023年6月28日にユーザインタフェースやウェブサイト上部のナビゲーションバーの色が青から紫に変えられたほか、ユーザインタフェースのナビゲーションバーからブロックの色をハイコントラストに変更できる機能の追加などが行われた。

### Scratch Lab

Scratch Labは、まだScratchに実装されていない機能を試すことができるWebサイトである。2024年10月現在、video sprites、Face Sensing、Animated Text、New Block Colorsを試すことができる。このうち、New Block Colorsが2023年6月28日にScratchに実装され、Scratchではユーザインタフェースを含むすべてのページの色が変更された。また、ここで作った作品はScratchのコミュニティに共有できない。

## ユーザーコミュニティ

Scratchは教育施設(学校やプログラミング教室など)、博物館、コミュニティセンター、そして家庭内といった多くの場所で使われている。例として、低年齢の子供達は親や友達とプログラムを書くとき、大学生ではいくつかの計算機科学入門クラス(ハーバード大学の初級コンピュータクラス)でScratchが使われたりしている。Scratchは、表示される言語を変えることで世界中で使えるようになっている。ジョンズ・ホプキンス大学のCenter for Talented Youth (CTY) ではCTYオンラインプログラムにて6年生の生徒向けにScratchプログラミングのオンラインコースを提供している。

### オンラインコミュニティ

Scratchのオンラインコミュニティのスローガンは「Imagine, Program, Share(想像・プログラム・共有)」でScratchの背後にある考え方の重要な部分として共有と創造性の社会的背景を指している。

またScratchのプロジェクトは新たなプロジェクトを作るためのリミックスに向けたものになっている。プロジェクトは開発環境からScratchのウェブサイトに直接アップロードでき、プログラムをリミックスして学習や、新たなプロジェクトとして共有することもできる。

Scratchユーザーはコメントをしたり、プロジェクトに好きやお気に入りをつけたり、プロジェクトを共有したりすることができる。また、その共有されたプロジェクトは、Scratchには「見る」という項目があり、傾向と人気と最近といった種類に分かれる。

共有されたプロジェクトには、クリエイティブ・コモンズ 表示-継承2.0ライセンスが適用され、商用利用や再利用ができる。

ウェブサイトでは頻繁に「Scratch Design Studio (SDS)」というユーザーが基本デザインコンセプトを使って制作、共有を奨励するチャレンジが開催されている。メキシコやイスラエル向けのカスタムホームページでは幾つかのセクションにローカルコンテンツが置かれている。ポルトガル やアラブ首長国連邦 でも独立したScratchウェブサイトがある。2008年、Scratchのオンラインコミュニティプラットフォーム(ScratchRと命名されている)がArs Electronica PrixのHonorary Mentionを受賞した。教育者向けのオンラインコミュニティとして「ScratchEd」というものもあったが、2019年5月にサイトが閉鎖された。

### イベント

#### Scratch Day

Scratch Dayは、年に一度世界中で行われるScratchのイベントである。誰でもイベントを主催することができ、どこでも開催することができるが、基本的に5月15日の前後の休日(土日)に行われるのが伝統である。これは、Scratchというサービスそのものが2007年5月15日に始まったことに由来する。始まりは、2009年にマサチューセッツ工科大学のKaren Brennanが、Scratchのリリース日にイベントをしようと思いたち、開催したことにある。以後、Scratch Dayは毎年世界各地で行われている。

#### Scratch Week

Scratch Dayから移行されたイベント。Scratchを世界規模でバーチャル内でお祝いするというもの。2024年から始まった。

## 展開

2012年11月に行われたTEDxBeaconStreetにて、ミッチェル・レズニックによるScratchを題材としたプレゼンテーション「Let's teach kids to code. (子供たちにプログラミングを教えよう)」が講演され、その模様がTEDによって公開されている。この中でレズニックは、Scratchを利用して子供にプログラミングを覚えさせることの優位性、特にコーディングを通して得られる様々な経験が、その子供がプログラマーになるかならないかに関わらず、将来職に就き、仕事をこなすうえでとても有益である、と説いている。

また、TEDやTEDxの講演イベントで行われたプレゼンテーションから英会話を学ぶことを目的とした、NHKによる教育番組『スーパープレゼンテーション』でもこのプレゼンテーションが取り上げられている。NHK Eテレでは『Why!?プログラミング』で公式にプログラミングソフト(一部画面が異なっている部分もある)として採用されたり、民放では千葉テレビ放送・BSフジの『GP LEAGUE プログラミングコロシアム』で放送される「GP LEAGUE」での公式言語の1つにもなっている。

## Scratchアプリ

Scratchをインターネットに接続しなくても使用ができるオフラインエディターとして、Electronで動作するScratchアプリがWindows、Mac、Android、ChromeOS用に用意されている。

3.16.1 より前まではScratch Desktopと呼ばれていたが、3.16.1で名称がScratch 3に変更された。

## ScratchのMOD

Scratchのいくつかの派生はScratch Modificationsと呼ばれ、Scratchのバージョン1.4のソースコード を使って制作された。これらのプログラムは通常「ブロック」が追加されたりGUIが変更されたScratchのバリエーションである。

Build Your Own Blocks (BYOB)のようにそのうちのいくつかはさらにコンピューティングへの基礎的アプローチへのシフトを導入しているがBYOBにのみユーザーを許容しないものの、Scratchの一部ではないファーストクラス手続き(ラムダ)、ファーストクラスリスト(リストのリストを含む)、プロトタイプ継承を備えたファーストクラス真オブジェクト指向スプライトがある。BYOBはイェンス・ムーニッヒが開発し、カリフォルニア大学バークレー校のブライアン・ハーベイがドキュメンテーションを提供し、計算機科学専攻ではない学生への計算機科学初級コースにおける「The Beauty and Joy of Computing」を教える時に使用された。

## 中国政府による検閲

2020年8月、中国政府がグレート・ファイアウォール(GFW)を使用して、ScratchのWebサイトおよびScratch Wikiへのアクセスをブロックしたことが判明した。理由は、Scratchのアカウントを作成する時に選択する国のリストに 「香港」「マカオ」「台湾」が含まれていたこと。 当時中国ではScratchを使用していた人の5.7%にあたる、300万ユーザーが利用していた。現在中国本土ではオンラインでScratchは出来ず、オフラインエディターを使用している。検閲を担当している中国の機関は、「Scratchに掲載されている情報は、中国本土に対して、屈辱的で中傷的、また虚偽のものである」と声明を出している。