|
Scratchのロゴ | |
|
Scratchのプロジェクトエディター | |
| パラダイム | ビジュアルプログラミング、イベント駆動型 |
|---|---|
| 登場時期 | 2007年 |
| 設計者 | ミッチェル・レズニック |
| 開発者 | Scratch財団、マサチューセッツ工科大学MITメディアラボ |
| 最新リリース | 3.0 / 2019年1月2日 |
| 型付け | 動的型付け |
| 主な処理系 | Scratch |
| 影響を受けた言語 | LOGO、Smalltalk、HyperCard、StarLogo、Etoys |
| プログラミング言語 | Smalltalk、ActionScript、JavaScript |
| プラットフォーム | Microsoft Windows、macOS、ChromeOS、Android、iOS、iPadOS など |
| ライセンス | AGPL-3.0 など |
| ウェブサイト | https://scratch.mit.edu/ |
| 拡張子 | .sb、.sb2、.sb3 |
Scratch(スクラッチ)は、Scratch財団が運営するビジュアルプログラミング言語およびオンラインプログラミング環境である。マサチューセッツ工科大学(MIT)MITメディアラボのライフロング・キンダーガーテン・グループ(Lifelong Kindergarten Group)で開発が始まり、2007年に公開された。主に8歳から16歳程度の子どもや若者を対象として設計されているが、年齢を問わず利用できる。
Scratchでは、プログラムを文字によるコードではなく、命令を表すブロックを組み合わせて作成する。ユーザーはアニメーション、ゲーム、インタラクティブストーリーなどを制作し、オンラインコミュニティで作品を共有できる。
2026年現在、Scratch財団はScratchを150か国以上で利用されている創造的コーディングのプラットフォームとして紹介しており、10億件以上のプロジェクトが作成されているとしている。Scratchは80言語に対応している。
ScratchはMIT Media LabのLifelong Kindergarten Groupで開発された。開発チームはミッチェル・レズニックを中心に、ジョン・マロニー、ナタリー・ラスク、アンドレス・モンロイ=ヘルナンデスらが参加した。Scratchの設計では、従来の文字ベースのプログラミング言語における構文の記述を必要とせず、ブロックを組み合わせてプログラムを作成できる方式が採用された。
Scratchの公開版は2007年に公開された。MIT Newsは2007年5月14日、ScratchをMIT Media Labで開発された新しいプログラミング言語として紹介している。
初期のScratchは、ダウンロードして使用するデスクトップ型の開発環境として提供された。作品をオンラインコミュニティに共有する仕組みも開発され、2007年にはScratch Online Communityが開設された。
2013年5月9日、Scratch 2.0が公開された。Scratch 2.0ではオンライン上でプログラムを作成できるウェブベースの開発環境が導入され、ユーザーはブラウザー上で作品を作成、共有、リミックスできるようになった。
2019年1月2日、Scratch 3.0が公開された。Scratch 3.0ではエディターが再設計され、拡張機能の仕組みが導入された。また、タブレット端末でも作品の作成や実行が可能になった。
Scratch 3.0では、HTML5やJavaScriptを利用した構成へ移行し、従来のScratch 2.0で利用されていたAdobe Flashに依存しない環境となった。拡張機能を追加することで、micro:bitやLEGO製品などの外部機器との連携や、音楽、ペン、翻訳などの機能を利用できる。
2019年、Scratchの運営はMITから独立した非営利団体であるScratch財団へ移管された。Scratch財団はScratchのプラットフォームとオンラインコミュニティの開発・維持を担っている。
MIT Media LabのLifelong Kindergarten Groupは現在もScratchの開発に関与しており、Scratch財団とMITの協力関係が続いている。
Scratchでは、命令を表すブロックをドラッグ・アンド・ドロップして組み合わせることでプログラムを作成する。ブロックには形状や色による区別があり、構文上組み合わせることのできないブロックを接続しにくい構造になっている。これにより、文字によるプログラムコードを直接入力することなく、プログラムの構造を視覚的に組み立てることができる。
Scratchのエディターでは、主に「動き」「見た目」「音」「イベント」「制御」「調べる」「演算」「変数」「ブロック定義」などのカテゴリーにブロックが分類されている。さらに拡張機能を追加することで、追加のブロックを利用できる。
Scratchでは、画面上で動作するキャラクターやオブジェクトを「スプライト」と呼ぶ。スプライトにはプログラムを設定でき、ステージ上で移動、外観の変更、音の再生などを行わせることができる。
ステージは、スプライトや背景などの動作を表示する領域である。ユーザーは複数のスプライトと背景を組み合わせて、ゲームやアニメーションなどを制作できる。
Scratch 3.0では拡張機能を追加することで、標準のブロックにはない機能を利用できる。拡張機能には、ペン、音楽、音声合成、翻訳、カメラ、micro:bit、LEGO製品などに対応するものがある。
Scratchでは、他のユーザーが共有したプロジェクトを基に新しいプロジェクトを作成する「リミックス」がコミュニティの主要な機能の一つとなっている。Scratchのオンラインコミュニティは、作品の共有だけでなく、他のユーザーの作品を閲覧・改変しながら学習することを目的として設計された。
Scratchには、作品を共有するためのオンラインコミュニティが併設されている。ユーザーはプロジェクトを共有し、他のユーザーの作品を閲覧したり、コメントしたり、リミックスしたりできる。
オンラインコミュニティは2007年のScratch公開時からScratchの主要な構成要素の一つとして開発された。2007年9月時点で、Scratchのオンラインコミュニティには約3万人のユーザーが参加し、2万4000件以上のプロジェクトが共有されていた。
現在のScratchコミュニティでは、プロジェクトの共有に加えて、スタジオ、コメント、フォローなどの機能が提供されている。
Scratch Labは、Scratch Teamが開発中の実験的な機能を公開し、ユーザーからフィードバックを得るためのウェブサイトである。
2026年10月現在、Scratch Labでは「Animated Text」と「Video Sprites」が実験機能として公開されている。また、「Face Sensing」はScratch Labから正式なScratchへ移行した「Graduated Features」として掲載されている。
Scratchは学校、家庭、図書館、博物館、コミュニティセンターなどで利用されている。Scratchの設計は、プログラミングそのものだけでなく、ユーザーが自分で考えた作品を制作し、他者と共有しながら学習することを重視している。
Scratchは教育研究でも利用されており、2024年の研究では、外国語教育におけるコンピュテーショナル・シンキングの学習ツールとしてScratchが主要なツールの一つとして扱われている。
Scratchには、インターネット上のScratchエディターとは別に、オフラインでプロジェクトを作成できるScratchアプリが提供されている。Scratch財団によれば、2026年現在、ScratchアプリはWindows、macOS、ChromeOS、Android向けに提供されている。
Scratchのプロジェクトファイルには、バージョンに応じて異なる形式が使用されている。
Scratch 3.0のプロジェクトファイルは、JSON形式のプロジェクト情報、画像、音声などをまとめたアーカイブとして構成されている。
Scratchのソフトウェアはオープンソースとして公開されており、Scratch財団はGitHub上でScratchのエディターや仮想マシンなどのソースコードを公開している。
2026年現在、Scratchのエディターを構成する主要なソフトウェアをまとめた`Scratch Editor`リポジトリは、AGPL-3.0-onlyのライセンスで公開されている。
Scratch Editorでは、従来個別に管理されていた`scratch-gui`や`scratch-vm`などのリポジトリをモノレポジトリへ移行する作業が進められている。
Scratchのオープンソース性を背景として、Scratch互換またはScratchを基盤とした開発環境が複数存在する。
TurboWarpは、Scratchプロジェクトをより高速に実行することを目的としたScratch互換環境である。JavaScriptへのコンパイルなどによってScratchプロジェクトを高速に実行できるほか、Scratchにはない拡張機能を利用できる。
TurboWarpはScratch財団やScratch Teamとは別のプロジェクトであり、Scratch公式サイトとは独立して運営されている。
PenguinModは、Scratchを基盤とするビジュアルプログラミング環境の一つである。Scratch互換のプロジェクトを作成でき、独自の拡張機能などを提供している。
Pyonkeeは、Scratch 1.4を基にしたiPad向けのプログラミング環境として開発されたアプリケーションである。
Scratch Dayは、Scratchをテーマとしたイベント。2009年にはMIT Media LabのScratchチームが世界各地で開催されるイベントを紹介しており、100以上の会場が41か国に広がっていた。
Scratch Weekは、Scratchの活動や作品を紹介するオンラインイベント。Scratch Dayから発展したイベントとして2024年から開催されている。
Scratchは、プログラミング教育やコンピュテーショナル・シンキングの研究対象としても扱われている。
2009年に発表された論文「Scratch: Programming for All」では、Scratchが子どもやプログラミング未経験者を対象に、インタラクティブなストーリー、ゲーム、アニメーション、シミュレーションなどを制作するための環境として設計されたことが説明されている。
Scratchに関する研究はMIT Media Lab以外の大学・研究機関でも行われている。Scratch公式の研究一覧には、Scratchを利用した教育やオンラインコミュニティに関する研究が多数掲載されている。
2020年、中国本土からScratchのウェブサイトへのアクセスが制限されたと複数の報道機関が報じた。当時の報道では、中国のScratchユーザーが数百万人規模に達していたとされ、Scratchの国・地域選択に「台湾」「香港」「マカオ」が含まれていたことなどが背景として報じられた。
このアクセス制限について、中国側からScratch上の情報に対する批判的な説明も示された。