コンテンツにスキップ

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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Scratchキャットから転送)
Scratch
Scratchのロゴ
パラダイム 教育用、イベント駆動型
登場時期 2006年(正式リリースは2008年
設計者 ミッチェル・レズニック
開発者 MITメディアラボ Lifelong Kindergarten Group
最新リリース 3.0 / 2019年1月2日[1]
型付け ダイナミック
主な処理系 Scratch
影響を受けた言語 LOGO, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys
プログラミング言語 Smalltalk(~1.4), ActionScript(2.0), JavaScript(3.0~)
プラットフォーム Windows, macOS, Linux, Android, iOS, iPadOS 他
ライセンス GPLv2とScratch Source Code License
ウェブサイト scratch.mit.edu ウィキデータを編集
拡張子 .scratch(初期Scratch)
.sb(~Scratch 1.4)
.sb2(Scratch 2.0)
.sb3(Scratch 3.0)
.sprite(~Scratch 1.4)
.sprite2(Scratch 2.0)
.sprite3(Scratch 3.0)
テンプレートを表示

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

Scratchは世界中で使われており、1億6400万個以上の共有されたプロジェクト、15億個以上の未公開のプロジェクト、1億3500万ユーザー以上の登録ユーザー、約10億個のコメント、約3500万個のスタジオが存在している。日本のユーザーはそのおよそ1.8%にあたる230万人以上となっている。[2]

ScratchはWindowsMacLinuxRaspberry PiAndroidiPadなどに対応しており、ソースコードGPLv2ライセンスとScratch Source Code LicenseとしてGitHubにて公開されている[3]

概要

[編集]
プロジェクト作成時のスクリーンショット

Scratchは、初心者が最初に正しい構文の書き方を覚えることなく実行でき、遊び心のある実験やアニメーションゲームなどの制作を通してさらなる学習意欲を起こさせることおよび、色々な人とのコメントやディスカッションフォーラムなどでのコミュニケーション能力の育成をすることを意図している。8歳から16歳の子供向けに開発されたもの[4]だが、子供から大人まで幅広い年代が使用している。2024年10月現在では、13歳で登録するユーザーが最も多い[5]

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

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

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

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

Scratchユーザインタフェース

[編集]

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

Scratchのインターフェースのスクリーンショット

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

ハイコントラストのscratchエディター

サイトの色の更新

[編集]

障害等の有無にかかわらずサイトをアクセシブルにするため、2023年6月28日に画面上部のナビゲーションバーの色が青から紫に変わったほか、エディター画面のナビゲーションバーからブロックの色をハイコントラストに調整できる設定が追加されるなどの変更が行われた[12]

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

Scratch Lab

[編集]

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

拡張機能

[編集]

Scratchの拡張機能を使用すると、様々な種類のブロックが追加され、ロボットPCを接続させることなどができる[15]。以下は、Scratch 3.0での拡張機能の一覧である。

カテゴリー 説明
音楽 音符や楽器等を演奏する。
ペン スプライトを利用し、絵を描く。
ビデオモーションセンサー カメラで動きを検知する。使用するとクラウド変数が無効になる
音声合成 言葉をしゃべるプロジェクトを作る。(インターネット環境が必要(APIから取得するため[要出典]))
翻訳 指定した言語に翻訳する。(インターネット環境が必要)
Makey Makey Makey Makeyを利用する。(Makey Makeyが必要)
micro:bit micro:bitを利用する。(micro:bitが必要)
LEGO MINDSTORMS EV3 LEGO MINDSTORMS EV3を利用する。(LEGO MINDSTORMS EV3が必要)
LEGO BOOST LEGO BOOSTを利用する。(LEGO BOOSTが必要)
LEGO Education WeDo 2.0 LEGO Education WeDo 2.0を利用する。(LEGO WeDo 2.0が必要)
Go Direct Force and Acceleration Go Direct® Force and Acceleration Sensorを利用する。(Go Direct Force and Accelerationが必要)

ユーザーコミュニティ

[編集]

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

オンラインコミュニティ

[編集]

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

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

Scratchユーザーはコメントをしたり、プロジェクトに好き(高評価の類)やお気に入り(「好き」と大差はない)をつけたり、プロジェクトを共有したりすることができる[注釈 2]

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

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

イベント

[編集]

Scratch Day

[編集]

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

Scratch Week

[編集]

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

展開

[編集]

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

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

Scratcher

[編集]

Scratcher (スクラッチャー) とは、広義には、Scratchのユーザー。狭義には、「Scratcher」になるまでの「New scratcher」を除いたユーザー。この節では後者のScratcherについて説明する。

Scratcherになると、Scratchのウェブサイト上にプロジェクトを公開できるほか、クラウド上にプロジェクトの変数を保存する「クラウド変数」や、コメントの連続投稿の規制が緩和される[33]。さらに、ディスカッションフォーラムでの投稿の合間に待つ時間が、120秒から60秒(60秒ルール)になったり、Scratchでスタジオを作成できるようになるなど[34]、複数の制限が撤廃される。

Scratchの機能

[編集]

Scratchウェブサイトにある機能やページの一部を紹介する。

作る

[編集]
Scratchの新しいプロジェクトを作成するツール。作ったプロジェクトをコンピューター内にファイル形式に保存できる。(.sb .sb2 .sb3形式がサポートされている[35]。)また、Scratchのアカウントを所持していると、自動で保存がされ、「私の作品」からいつでも見れるようになる。最後に保存されたステージの画面が、プロジェクトのサムネイルとなる。

見る

[編集]
見るには「傾向」「人気」「最近」がある。7つのカテゴリに分けられており、「すべて」「アニメーション」「アート」「ゲーム」「音楽」「物語」「チュートリアル」がある。そして、「すべて」以外はタグ付けをしなければならない[要出典]

リミックス

[編集]
リミックスとは人が作ったプロジェクトを複製し、編集して作り替えることである。リミックスしたプロジェクトには、利用規約に則るだためにオリジナルの作者名とオリジナルのプロジェクトへのリンクが添付される。

アイデア

[編集]
初心者向けの動画や入門者用プロジェクトを見ることができる。バージョン2.0では「ヒント」と呼ばれていた。

ディスカッションフォーラム

[編集]
Scratchに関係あることについて質問や会話を行う場所である[36]。システムにはDjangoBBを採用している。

Scratchアプリ

[編集]

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

3.16.1 以前まではScratch Desktopと呼ばれていたが、3.16.1で名称がScratch 3に変更された[38]

ScratchのMOD

[編集]

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

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

Pyonkee

[編集]

Pyonkeeは、Scratch 1.4と同等の環境をiPadで再現したもので、2014年に登場した[47]伊藤忠テクノソリューションズが児童向けに開催するプログラミング教室でも採用されている[48][49]

Smalruby

[編集]

Smalrubyは、日本発祥のプログラミング言語であるRubyをScratchと同一の操作性でプログラムする為に、任意団体スモウルビーにより作られたもの。

TurboWarp

[編集]

プロジェクトをJavaScriptにコンパイルして1FPSから250FPSまでの速度で実行できるようにする。Scratch、Scratchチーム、Scratch財団とは提携していない[50]。他にも補完機能、ペンのHD化などがあり、「高度な設定」で細かな設定ができる[51]。TurboWarpには、Scratchのプロジェクトをロードする機能があり2022年11月9日まで非共有プロジェクトの閲覧、編集が可能だった。2022年11月10日にScratch APIの仕様が変更された為、非共有プロジェクトは基本的に閲覧、編集共に不可能になった[52]。しかし、ダウンロードしたプロジェクトを開くことや、共有されたプロジェクトについては、従来通り閲覧可能。また、ゲームをアプリ化することもできる。

Penguinmod

[編集]

ScratchとTurboWarpをベースに作成された[53]ビジュアルコーディングサイト。penguinmod独自の拡張機能41個に加え、TurboWarpの拡張機能13個も使用できる。

Snail IDE

[編集]

ScratchとTurbowarpとPenguinModをベースに作成されたビジュアルコーディングサイト。PenguinModとTurbowarpの拡張機能に加え、Snail IDE独自の拡張機能13個が使用できる。

Forkphorus

[編集]

Forkphorusは、Scratch 3.0のプロジェクトをHTML化して実行できるツールである[54]

Stretch3

[編集]

Stretch3は、人工知能(AI)を使用することができる拡張機能や、QRコードを読み取ることができる拡張機能なども追加されている[要出典]

Snap!

[編集]

Snap!は、Scratchのソースコードを見本にカノニカルが開発したプログラミング言語。ブロックなどはほぼScratchを元にしているが、こちらはブロックを追加できるのが特徴。また、プロジェクトをScratchと同様に公開機能がある。

検閲

[編集]

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

脚注

[編集]

注釈

[編集]
  1. ^ スプライト選択時のみブロックが表示され、背景選択時は動きブロックを扱うことはできない。
  2. ^ 共有の機能は、メールアドレスを認証していないと使えない。
  3. ^ Scratch内の再利用は一部制限されている。
  4. ^ Scratchのバージョン1.4はSmalltalk処理系のひとつであるSqueak2.8から派生して作られたMIT Squeakを使用して記述されている。

出典

[編集]
  1. ^ 出典URL: https://scratch.mit.edu/discuss/topic/326861/, 題名: Scratch 3.0 is here!, 閲覧日: 2019年1月2日
  2. ^ Scratch - Imagine, Program, Share”. scratch.mit.edu. 2023年11月3日閲覧。
  3. ^ Scratch source-code download page http://info.scratch.mit.edu[リンク切れ]
  4. ^ Scratch - For Parents”. scratch.mit.edu. 2023年6月17日閲覧。
  5. ^ Scratch - Imagine, Program, Share”. scratch.mit.edu. 2024年1月30日閲覧。
  6. ^ Schorow, Stephanie (2007年5月14日). “Creating from Scratch”. MIT News Office. http://web.mit.edu/newsoffice/2007/resnick-scratch.html 2014年1月25日閲覧。 
  7. ^ Scratch: imagine, program, share”. Massachusetts Institute of Technology. 2007年5月25日閲覧。
  8. ^ Scratch website
  9. ^ Scratch: Programming for All. Resnick, M., Maloney, J., Monroy-Hernandez, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum, E., Silver, J., Silverman, B., Kafai, Y. (2009). Scratch: Programming for All. Communications of the ACM, November 2009
  10. ^ Scratch 2.0 オフラインエディター”. 2020年4月9日閲覧。
  11. ^ Scratch - FAQ”. scratch.mit.edu. 2024年5月12日閲覧。
  12. ^ ceebee* (2023年6月5日). “Coming Soon: Color Contrast in Scratch!”. Scratch. 2023年8月3日閲覧。
  13. ^ Scratch Lab”. lab.scratch.mit.edu. 2023年2月17日閲覧。
  14. ^ Scratch - Imagine, Program, Share”. scratch.mit.edu. 2023年6月29日閲覧。
  15. ^ 【5限目】拡張機能の使い方 | スクラッチ(SCRATCH)を使ったプログラミング教材・学習サイト| TechKidsACADEMY”. 2024年1月5日閲覧。
  16. ^ Scratch Day at Science Museum of Minnesota
  17. ^ Scratch for budding computer scientists
  18. ^ Scratch for budding computer scientists
  19. ^ CTYOnline Scratch Programming Course
  20. ^ Monroy-Hernández, A. and Resnick, M. (2008). Empowering kids to create and share programmable media. ACM interactions 15, 2 (March 2008), 50-53
  21. ^ Monroy-Hernández, A., Hill, B. M., González-Rivero, J., boyd, d. (2011) Computers Can't Give Credit: How Automatic Attribution Falls Short in an Online Remixing Community. In Proceedings of the 29th International Conference on Human Factors in Computing Systems (CHI '11)
  22. ^ Hill, B.M, Monroy-Hernández, A., Olson, K.R. (2010) Responses to remixing on a social media sharing website. In AAAI International Conference on Weblogs and Social Media (ICWSM '10)
  23. ^ よくある質問と答え(FAQ)”. 2017年9月3日閲覧。
  24. ^ http://kids.sapo.pt/scratch
  25. ^ http://scratch.uaeu.ac.ae/
  26. ^ http://www.aec.at/prix_history_en.php?year=2008
  27. ^ ScratchEd
  28. ^ Scratch Day”. Japanese Scratch-Wiki. 2019年12月7日閲覧。
  29. ^ Scratch in Practice” (英語). sip.scratch.mit.edu. 2024年10月4日閲覧。
  30. ^ TEDxBeaconStreet
  31. ^ ミッチェル・レズニック 「子供達にプログラミングを教えよう」 ted.com
  32. ^ Let's teach kids to code 「子どもにプログラミングを教えよう」”. 日本放送協会 (2013年9月23日). 2017年7月10日時点のオリジナルよりアーカイブ。2023年11月26日閲覧。
  33. ^ New Scratcher - Japanese Scratch-Wiki
  34. ^ Scratcher”. Japanese Scratch-Wiki. 2022年7月29日閲覧。
  35. ^ Scratchプロジェクトのダウンロード時のファイル形式”. Japanese Scratch-Wiki. 2024年10月4日閲覧。
  36. ^ Scratch - Imagine, Program, Share”. scratch.mit.edu. 2024年10月4日閲覧。
  37. ^ Scratch - Scratch Offline Editor”. 2024年1月7日閲覧。
  38. ^ Scratch 3 (アプリ)”. Japanese Scratch-Wiki. 2022年9月23日閲覧。
  39. ^ Scratch Modification - Scratch Wiki "http://wiki.scratch.mit.edu"
  40. ^ http://wiki.scratch.mit.edu
  41. ^ BYOB homepage http://byob.berkeley.edu
  42. ^ Jens Mönig user contributions page
  43. ^ Mönig's blog post announcing BYOB as bringing protypal inheritance to Scratch
  44. ^ Brian Harvey homepage
  45. ^ Brian Harvey user contributions page
  46. ^ The Beauty and Joy of Computing course homepage
  47. ^ タブレット端末を活用したプログラミング教育(3) - プログラミング・オン・モバイル -” (PDF). 名古屋文理大学紀要 第15号. 名古屋文理大学 (2014年). 2017年8月21日時点のオリジナルよりアーカイブ。2023年11月26日閲覧。
  48. ^ 子ども向けプログラミングワークショップ 「未来実現IT教室 Children's Technology Challenge」開催
  49. ^ 『FujiSankei Business i.』2016年(平成28年)10月21日付14面。
  50. ^ TurboWarp - Japanese Scratch-Wiki”. Japanese Scratch-Wiki. 2023年12月19日閲覧。
  51. ^ 60 FPS (Custom FPS) | TurboWarp Documentation” (英語). docs.turbowarp.org. 2022年2月19日閲覧。
  52. ^ Unshared projects are no longer visible | TurboWarp Documentation” (英語). docs.turbowarp.org. 2022年12月23日閲覧。
  53. ^ PenguinMod - Home” (英語). penguinmod.com. 2024年7月7日閲覧。
  54. ^ Forkphorus”. Japanese Scratch-Wiki. 2024年2月3日閲覧。
  55. ^ China bans Scratch, MIT’s programming language for kids” (英語). TechCrunch. 2022年5月4日閲覧。
  56. ^ China appears to be blocking access to children's programming language Scratch - Computer - News” (英語). World Today News (2020年9月7日). 2022年5月4日閲覧。
  57. ^ 未来网评:开放的中国不“排外”,但必须要“排毒” _未来网”. view.k618.cn. 2022年9月21日閲覧。
  58. ^ La Chine bannit Scratch, le langage d'apprentissage à la programmation - Le Monde Informatique” (フランス語). LeMondeInformatique (2020年9月8日). 2023年7月11日閲覧。

関連項目

[編集]

外部リンク

[編集]