Scratch (プログラミング言語)
Scratch(スクラッチ)は、Scratch財団がマサチューセッツ工科大学(MIT)メディアラボ ライフロングキンダーガーデングループ(MIT Media Lab Lifelong Kindergarten Group)と共同開発する、8歳から16歳のユーザーがメインターゲットの無料教育プログラミング言語及びその開発環境、コミュニティサイトである。
2023年4月2日の時点で、共有されたプロジェクトの数はおよそ127,886,238個、投稿されたコメントはおよそ780,248,070件、作成されたスタジオの数はおよそ32,560,062個、ユーザー登録数はおよそ
107,091,862ユーザー、日本はそのおよそ1.68%にあたる1,717,698ユーザーである。
初心者が最初に正しい構文の書き方を覚えること無く実行できる。遊び心のある実験やアニメーション、ゲームなどの制作を通してさらなる学習意欲を起こさせることを意図している。また色々な人とのコメントや、ディスカッションフォーラムなどでコミュニケーション能力の育成も図れる。そして、使用年齢は子供から大人まで、幅広い年代の人が使用している。
Scratchという名称はディスクジョッキー(DJ)がレコードを手でこするスクラッチングに由来しておりDJが気軽に曲をミックスすることと、Scratchで簡単にプロジェクトをミックス(リミックスと言う)することを関連付けている。2006年に最初のバージョンがMITメディアラボのミッチェル・レズニックが主導する「ライフロング・キンダーガーテン・グループ」にMITに来たEtoys開発チームのジョン・マロニーを招いて開発された。Scratchは制作者の最優先事項を子供達が可能な限り簡単に学習するように作成できるため触覚的なプロセスを通した構築と実行が可能となっている。
Scratchの触覚や視覚的GUIは子供達がプログラムブロックをスプライトやステージにドラッグ・アンド・ドロップすることでアニメーション、アート、ストーリーやゲーム制作をゲーム感覚で出来るようにしている。正しい構文を読んでも書けない人のために視覚的にグループ分けされたブロックはそれらをクリックすることでテストできたり、リミックスや修正、プロジェクトの新バージョンを制作するために違うブロックを容易に書き換えることができる。
ScratchはWindows、Mac、Linux、Raspberry Pi、Android、iPadなどに対応しており、ソースコードはGPLv2ライセンスとScratch Source Code LicenseとしてGitHubにて公開されている。
2013年5月にScratch 2.0が公開され、ウェブアプリケーションとなり、開発環境のインストールが不要となった。そのためリミックス(プログラムの改造)が容易になり、従来のバージョンにはなかった、ウェブアプリケーションならではの機能が追加された。
2019年1月、Scratch 3.0が公開された。Scratch 3.0では、Scratch 2.0まで使用していたAdobe Flashを使用せず、HTML5を使用しているため、Internet Explorerなど一部のブラウザでは動作しなくなったが、その一方でスマートフォンやタブレット端末(Android, iPhone, iPad等)での利用がサポートされるようになった(開発グループは画面の大きさの関係でタブレット端末を推奨している)。さらに、いくつかの拡張機能の追加、ブロックの文字の読みやすさ向上など機能性や画質が向上した。
Scratch 3のユーザインタフェースは複数の枠に分かれており、左側はブロックパレット、真ん中はスクリプトエリア、右側がステージとスプライトのリストである。
プログラムを作るために必要なブロックはブロックパレットに並んでおり、スクリプトエリアにドラッグできる。全てのブロックを表示するにはあまりにも多すぎるため、ブロックは主に動き、見た目、音、制御、イベント、調べる、演算、変数、ブロック定義の9つのグループに分けられている。また、拡張機能により、ペンや外部機器との連携などの機能が追加できる。
Scratch LabはまだScratchに実装されていない機能を試すことができる場所である。2023年3月現在、Face Sensing、Animated Text、New Block Colorsを試すことができる。しかし、ここで作った作品はコミュニティに共有できない。
Scratchの拡張機能を使用すると、様々な種類のブロックが追加され、実際にロボットを作りそのプログラムを設定するなどのことができる。
以下は、Scratch3.0での拡張機能の一覧である。
Scratchは教育施設(学校やプログラミング教室など)、博物館、コミュニティセンター、そして家庭内といった多くの場所で使われている。例として、低年齢の子供達は親や友達とプログラムを書くことが出来たり、大学生はいくつかの計算機科学入門クラス(ハーバード大学の初級コンピュータクラス)でScratchが使われたりしている。表示される言語を変えることで世界中で使えるようになっている。ジョンズ・ホプキンス大学のCenter for Talented Youth (CTY) ではCTYオンラインプログラムにて6年生の生徒向けにScratchプログラミングのオンラインコースを提供している。 様々な機能に関して実証研究が行われた。直感的な学習に干渉する機能は放棄され、初心者を励まし、探究・学習を容易にするような機能は残された。いくつかの成果は驚くべきもので、Scratchを他の教育言語(BASIC、LOGO、Alice)と全く異なるものにしている。
Scratchのオンラインコミュニティのスローガンは「Imagine, Program, Share(想像・プログラム・共有)」でScratchの背後にある哲学の重要な部分として共有と創造性の社会的背景を指している。
またScratchのプロジェクトは新たなプロジェクトを作るためのリミックスに向けたものになっている。プロジェクトは開発環境からScratchのウェブサイトに直接アップロードでき、プログラムをリミックスして学習や、新たなプロジェクトとして共有することもできる。
Scratchユーザーはコメント、好き(高評価の類)・お気に入り(「好き」と大差はないがユーザーが直近「お気に入り」をつけたプロジェクトを確認できるようになる)をつけたり、プロジェクトを共有することが出来る。
プロジェクトはゲームからアニメーション、3Dにまで範囲が及んでいる。
共有されたプロジェクトには、クリエイティブ・コモンズ 表示-継承2.0ライセンスが適用され、商用利用が出来る。
ウェブサイトでは頻繁に「Scratch Design Studio (SDS)」というユーザーが基本デザインコンセプトを使って制作、共有を奨励するチャレンジが開催されている。メキシコやイスラエル向けのカスタムホームページでは幾つかのセクションにローカルコンテンツが置かれている。ポルトガル やアラブ首長国連邦 でも独立したScratchウェブサイトがある。2008年、Scratchのオンラインコミュニティプラットフォーム(ScratchRと命名されている)がArs Electronica PrixのHonorary Mentionを受賞した。教育者向けのオンラインコミュニティとして「ScratchEd」というものもあったが、2019年5月にサイトが閉鎖された。
またScratcherによるオンライン百科事典「」が存在し、は2015年3月23日に作成された。
Scratch Day は、年に一度世界中で行われるScratchのイベントである。 だれでもイベントを主催することができ、どこでも開催することができるが、基本的に5月15日の前後の休日(土日)に行われるのが伝統である。これは、Scratchというサービスそのものが2007年の5月15日に始まったことに由来する。
2009年にMITのKaren Brennanが、Scratchのリリース日にイベントをしようと思いたち、開催したのが初めてのScratch Dayである。 以後、Scratch Dayは毎年世界各地で行われている。
日本では主に東京で毎年2009年から毎年開催されている  や、各地域のCoderDojoなどが主催するScratch Dayがある。
現在はScratch Weekと名前を変え開催されている。
Scratchでは、エイプリルフール限定のイベントが毎年必ず行われる。2021年、2020年は、「旗が押されたとき」などのイベントブロックが猫の形に変化していた。2022年では、大きなものでいうと、特定ワードで検索すると検索結果が変化したり、エディターの上部に「モード」というのが追加された。また、Scratch Wikiでは、一部の記事がに変化していた。
Scratchのいくつかの派生 はScratch Modificationsと呼ばれ、Scratchのバージョン1.4のソースコード を使って制作された。これらのプログラムは通常「ブロック」が追加されたり GUIが変更されたScratchのバリエーションである。
BYOB (プログラミング言語) (BYOB)のようにそのうちのいくつかはさらにコンピューティングへの基礎的アプローチへのシフトを導入しているがBYOBにのみユーザーを許容しないものの、Scratchの一部ではないファーストクラス手続き(ラムダ)、ファーストクラスリスト(リストのリストを含む)、プロトタイプ継承を備えたファーストクラス真オブジェクト指向スプライトがある。BYOBはイェンス・ムーニッヒが開発し、カリフォルニア大学バークレー校のブライアン・ハーベイがドキュメンテーションを提供し、計算機科学専攻ではない学生への計算機科学初級コースにおける「The Beauty and Joy of Computing」を教える時に使用された。
2014年にはScratch 1.4と同等の環境をiPadで再現した「Pyonkee」が登場した。伊藤忠テクノソリューションズが児童向けに開催するプログラミング教室でも採用されている。
日本国内では更にJavaScriptではなく、日本発祥のプログラミング言語であるRubyを同一の操作性でプログラムする為に、任意団体スモウルビー(2014年6月1日に「NPO法人Rubyプログラミング少年団」へ改名)により「Smalruby」というものも作られて展開している。
ScratchJr(スクラッチジュニア)は、Scratchを使うのに必要な文字の読み書きや算数を使えないより小さい子供たちのためにMITメディアラボが、タフツ大学とThe Playful Inventor Companyと協力して開発した。
「Scratcher」スクラッチャー。Scratchのユーザーを示す。
「New Scratcher」ニュースクラッチャー。始めてすぐのScratchのユーザーを示す。
「Scratching」 スクラッチング。Scratchを使うという動作を示す。
「Scratchチーム」 Scratchウェブサイトの管理/開発チームのこと。(STと略される(Scratch Teamの略))
「Scratch On!」 Scratchチームが作り、使用する用語。「Scratchをがんばって続けよう」という意味で、ユーザーを励ます言葉。
「F4F」フォローされた人をフォローするという意味。日本語では「フォロバ」という。ただ、有名なScratcherはフォロバしない人が大半。
「無差別フォロー」フォロバ目当てに、適当にフォローすること。無差別フォローは、嫌う人が多いのでプロフィールをよく読んでからの方がいいが、基本しない方が良い。
「スク友」scratcher同士の友人を指す
このうち「Scratcher」「New scratcher」「Scratchチーム」に関しては、ユーザーのプロフィールに表示されるなどウェブサイト内で公式な使われ方をしている。また、「New scratcher」から「Scratcher」になるところにも明確な基準が存在しているとされる。詳しくは下記を参考にしてほしい。
ミッチェル・レズニック本人による、Scratchを題材としたプレゼンテーション「Let's teach kids to code. (子供たちにプログラミングを教えよう)」が、2012年11月におこなわれたTEDxBeaconStreetにて講演され、その模様がTEDによって公開されている。この中でミッチェル・レズニックは、Scratchを利用して子供にプログラミングを覚えさせることの優位性、特にコーディングを通して得られる様々な経験が、その子供がプログラマになるかならないかに関わらず、将来職に就き、仕事をこなすうえでとても有益である、と説いている。
また、TEDやTEDxの講演イベントでおこなわれたプレゼンテーションから英会話を学ぶことを目的とした、NHKによる教育番組「スーパープレゼンテーション」でもこのプレゼンテーションが取り上げられている。NHK Eテレでは『Why!?プログラミング』で公式にプログラミングソフトとして採用されたり、民放では千葉テレビ放送・BSフジの『GP LEAGUE プログラミングコロシアム』で放送される「GP LEAGUE」での公式言語の1つにもなっている。
Scratcher (スクラッチャー) とは、Scratchのユーザーの一つの称号であり、Scratchチームが荒らしやスパム、「コミュニティーガイドライン」に違反をしていない安全なユーザーと確認したユーザーに与えられる。Scratcherになると、クラウド上にプロジェクトの変数を保存する「クラウド変数」や、コメントの連続投稿の規制が解除される。さらに、ディスカッションフォーラムでの投稿の合間に待つ時間が、120秒から60秒(60秒ルールともいわれている)になったりScratchのスタジオを作成できるようになるなど、複数の制限が撤廃される。
だが、アカウントを作成したときは「New Scratcher」となっている。Scratcherになるための条件は明示化されていない。
Scratchにある機能の一部を紹介する。
Scratchの新しいプロジェクトを作成するツール。Scratchのアカウントを所持していると、自動で保存がされ、「私の作品」からいつでも見れるようになる。最後に保存されたステージの画面が、プロジェクトのサムネイルとなる。
「傾向」はScratch内で人気のプロジェクトを掲載する、YouTubeなどにある急上昇ランクのようなものである。「人気」は傾向よりプロジェクトの参照数が多かったり、お気に入りに登録されたりすると掲載される。これらは7つのカテゴリに分けられており、「すべて」「アニメーション」「アート」「ゲーム」「音楽」「物語」「チュートリアル」がある。また、2019年8月までは、傾向は「流行」と呼ばれていた。
人が作ったプロジェクトを複製し、編集して作り替えることができる。だが、編集したプロジェクトにはオリジナルの作者名とオリジナルが添付される。
初心者向けの動画や入門者用プロジェクトを見ることができる。バージョン2.0では「ヒント」と呼ばれていた。
Scratchに関係あることについて質問したり話したりする場所である。システムにはDjangoBBを採用している。
フォーラムで投稿をした際、下部に自動的に追加される投稿のこと。プロジェクトの宣伝など、みんなに伝えたいことを署名に表示させている。
Scratchをインターネットに接続しなくても使用ができるオフラインエディターとして、Electronで動作するScratchアプリがWindows、Mac、Android、ChromeOS用に用意されている。
3.16.1 以前まではScratch Desktopと呼ばれていたが、3.16.1で名称がScratch 3に変更された。
以下、ソースコード上では存在したがインストーラー等が存在しないバージョンもあるが、GitHub上のソースコードからコンパイル可能である。
Scratch1.4は、.sb形式である。このファイルは9つに分かれている。以下にその説明を記述する。
Scratch2.0は.sb2形式であり、内容は.jsonファイルと、サウンド(.wavとして保存)および画像(.pngとして保存)を含むzipファイルである。
Scratch3.0は.sb3形式であり、これはScratch2.0の.sb2と非常によく似ているが、違いの1つに音がある。
猫をモチーフにしたキャラクター。Scratchを起動した時に、開発環境画面のステージ(背景)に必ず表示される、オレンジ色の猫が二足で直立しているスプライトである。これは新しくプロジェクトを作成したときに、Scratch3.0において必ず表示される。「Scratch」の象徴となっている。Scratch2.0から見た目が変わり、鼻は茶色から黒になり目や口の形も変わった。
黄色の体で、頭がとがったキャラクター。2011年に、Scratchチームが、Scratchのプロジェクトの中で、「9番目に多く使われているスプライト」と発表した。また、2.0から、絵文字としても使用できるようになった。
以下は、「Goboの友達」と言われている。
2.0から追加されたスプライト。名前の由来は、単位の「ピコ」より。体はオレンジ色で、丸い耳がある。また、Scratchのサーバーエラー(503エラー)時にもピコのイラストが表示される。
2.0から追加されたスプライト。名前の由来は、単位の「テラ」より。体は青く、羽毛がある。2.0以降のScratchのメールアドレス認証成功・失敗時に、テラのイラストが表示される。
2.0から追加されたスプライト。名前の由来は、単位の「ナノ」から。体が灰色で、ほかのキャラクターと比べると、背が低い。Scratch Day 2015で、ナノのイラストが公開された。
2.0から追加されたスプライト。名前の由来は、単位の「ギガ」から。頭の色が濃い赤色である。404エラー時やScratchニュースでイラストを見ることができる。(2.0では、「新しいスプライト」ボタンにもギガが描かれていた)
また、このキャラクターはScratchの商標であり、
Scratch以外のサイトで明示的な許可なく利用することはできない。
TurboWarpは、ScratchのMODの一つ。プロジェクトをJavaScriptにコンパイルして、1FPSから250FPSまでの速度で実行できるようにする。他にも補完機能、ペンのHD化などがあり、「高度な設定」で細かな設定ができるTurboWarpには、Scratchのプロジェクトをロードする機能があり、2022年11月9日まで、非共有プロジェクトの閲覧、編集が可能だった。2022年11月10日に、Scratch APIの仕様が変更された為、閲覧、編集共に不可能になった。
2020年8月、中国政府がScratchのWebサイトへのアクセスをブロックしたことがわかった。原因はScratchに登録する時に選択する国リストに 「香港」「マカオ」「台湾」が含まれていたこと。 当時、中国では300万ユーザーが利用していた。現在、中国本土ではオンラインでScratchは出来ず、オフラインエディターを使用している。