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歳の子供向けに開発されたものであるが、子供から大人まで幅広い年代が使用している。

Scratchという名称はディスクジョッキー（DJ）がレコードを手でこするスクラッチングに由来しており、DJが気軽に曲をミックスすることと、Scratchで簡単にプロジェクト（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つのカテゴリーに分けられている。また、拡張機能を追加すれば、ペンや外部機器との連携などの機能が使えるようになる。

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

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

 Scratch Lab 
Scratch Labは、まだScratchに実装されていない機能を試すことができるウェブサイトである。2024年10月現在、video sprites、Face Sensing、Animated Text、New Block Colorsを試すことができる。このうち、New Block Colorsが2023年6月28日にScratchに実装され、Scratchではユーザインタフェースを含むすべてのページの色が変更された。また、このサイトで作った作品は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による教育番組『スーパープレゼンテーション』でもこのプレゼンテーションが取り上げられている。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の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ウェブサイトでは非共有になっているプロジェクトの閲覧、編集が可能だった。しかし、2022年11月10日にScratch APIの仕様が変更された為、非共有プロジェクトは基本的に閲覧、編集共に不可能になった。ただし、ダウンロードしたプロジェクトを開くことや、共有されたプロジェクトを閲覧することは、従来通り可能。また、ゲームをアプリ化することもできる。
 Penguinmod
ScratchとTurboWarpをベースに作成されたビジュアルコーディングサイト。Penguinmod独自の拡張機能41個に加え、TurboWarpの拡張機能13個も使用できる。

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