Scratch (プログラミング言語)

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

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

## 概要
Scratchは、コミュニケーション能力の育成をすることを意図している。また、8歳から16歳の子供向けに開発されたものであるが、年齢に関わらず使用可能で、子供から大人まで幅広い年代が使用している。世界においては1.35億人、日本においては2018年10月現在、33万人以上の登録ユーザーがいるとされる。そして、Scratchのプロジェクト（Scratchを用いてプログラミングされた作品のこと）総投稿数は、10億以上である。

Scratchという名称はディスクジョッキー（DJ）がレコードを手でこするスクラッチングに由来しており、DJが気軽に曲をミックスすることと、Scratchで他人が作ったプロジェクトを簡単にリミックス（プログラムの改造、ミックス）することを関連付けている。

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

ライフロング・キンダーガーテン・グループにEtoys開発チームのジョン・マロニーを招いて、2006年に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つのカテゴリーに分けられている。また、拡張機能を追加すれば、音楽、ペン、カメラ、合成音声、外部機器との連携などの機能が使えるようになる。

### Scratch Lab
**Scratch Lab**は、まだScratchに実装されていない機能を試すことができるウェブサイトである。2025年9月現在、Video Sprites、Face Sensing、Animated Textを試すことができる。また、このサイトで作ったプロジェクトは、Scratchウェブサイトに共有できない。また、Face Sensingは既にScratchに実装されている。

#### Scratchの色の更新
障害等の有無に関わらずサイトをアクセシブルにするため、当時Scratch Labの機能の一つであったNew Block Colorsが、2023年6月28日にScratchに実装された。ブロックの色をハイコントラストに変更できる機能の追加が行われたほか、ユーザインタフェースの色が青から紫に変えられるなどした。

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

### オンラインコミュニティ
Scratchのオンラインコミュニティのスローガンは「Imagine, Program, Share」（想像・プログラム・共有）であり、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日に始まったことに由来する。Scratch Dayの始まりは、2009年にマサチューセッツ工科大学のKaren Brennanが、Scratchのリリース日にイベントをしようと思いたち、開催したことにある。以後、Scratch Dayは毎年世界各地で行われている。

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

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

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

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

Windows、macOS用のアプリは、3.16.1 より前までは**Scratch Desktop**と呼ばれていたが、3.16.1で名称が**Scratch 3**に変更された。

## ScratchのMOD

ScratchのMODはScratch 1.4のソースコード を使って制作され、ブロックが追加されたりGUIが変更されたりしている。

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

; Pyonkee
: Scratch 1.4と同等の環境をiPadで再現したもので、2014年に登場した。伊藤忠テクノソリューションズが児童向けに開催するプログラミング教室でも採用されている。
; TurboWarp
:プロジェクトをJavaScriptにコンパイルして1FPSから250FPSまでの速度で実行できるようにする。Scratch、Scratchチーム、Scratch財団とは提携していない。他にも補完機能、ペンのHD化など様々な機能がある。TurboWarpにはScratchのプロジェクトをロードする機能があり、2022年11月9日まで、Scratchウェブサイトでは非共有になっているプロジェクトの閲覧が可能だった。しかし、11月10日にScratch APIの仕様が変更された為、非共有プロジェクトは基本的に閲覧が不可能になった。ただし、ダウンロードしたプロジェクトを開くことや、共有されたプロジェクトを閲覧することは、従来通り可能。また、ゲームをアプリ化することもできる。
:また、TurboWarpにはScratch Labと同じく、Scratchにはない拡張機能が多数存在する。中にはネットワークとやり取りできるものもある。ただし、これらの拡張機能を使用したプロジェクトはScratchにアップロードできない。また、「AnimationText」拡張機能は一部のブロックを除いてScratch Labと互換性がある。
; Penguinmod
:ScratchとTurboWarpをベースに作成されたビジュアルコーディングサイト。Penguinmod独自の拡張機能41個に加え、TurboWarpの拡張機能13個も使用できる。
; Stretch3
:Scratchの拡張機能に加え、Stretch3独自の拡張機能24個が使用できる。また、NHK Eテレで放送されている「Why!?プログラミング」の一部の回でもStretch3が使用されている。

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

## 脚注

### 注釈

### 出典

## 関連項目
* Lego Mindstorms
* LOGO
* 
* コンテンツ利用プログラミング

## 外部リンク
* 
* Scratch Lab
* Scratch Wiki