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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
Scratch
Scratchlogo.svg
Scratchのロゴ
パラダイム 教育用英語版イベント駆動型
登場時期 2006年 -
設計者 ミッチェル・レズニック
開発者 MITメディアラボ Lifelong Kindergarten Group
最新リリース 3.0/ 2019年1月2日
型付け ダイナミック
主な処理系 Scratch
影響を受けた言語 LOGO, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys
プログラミング言語 Smalltalk(~1.4), ActionScript(2.0), JavaScript(3.0~)
プラットフォーム Windows, macOS, Linux, Android, iOS他
ライセンス GPLv2とScratch Source Code License
ウェブサイト 公式サイト
拡張子 .sb(~Scratch 1.4)
.sb2(Scratch 2.0)
.sb3(Scratch 3.0)
テンプレートを表示

Scratch(スクラッチ)は、Scratch財団がマサチューセッツ工科大学メディアラボ ライフロングキンダーガーデングループ(MIT Media Lab Lifelong Kindergarten Group)と共同開発する、8〜16才のユーザーをメインターゲットにすえた無料の教育プログラミング言語及びその開発環境である。2021年11月時点での全世界の登録ユーザー数は約8050万人で、日本はその1.37%の約102万である[1]

概要[編集]

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

初心者が最初に正しい構文の書き方を覚えること無く実行できる、遊び心のある実験やアニメーション、ゲームなどの制作を通してさらなる学習のやる気を起こさせることを意図している。また、色々な人とコメントや、ディスカッションフォーラムなどでコミュニケーション能力の育成も図ることができる。

Scratchという名称はディスクジョッキー(DJ)がレコードを手でこするスクラッチングに由来しており[2]、DJが気軽に曲をミックスすることと、Scratch言語によって簡単にプロジェクトをミックス(リミックスと言う)することを関連付けている。2006年に最初のバージョンがMITメディアラボのミッチェル・レズニックが主導する「ライフロング・キンダーガーテン・グループ」にMITに来たEtoys開発チームのジョン・マロニーを招いて開発された[3]。Scratchは制作者の最優先事項を子供達が可能な限り簡単に学習するように作成できるため触覚的なプロセスを通した構築と実行が可能となっている。

Scratchの触覚や視覚的GUIは子供達がプログラムブロックをスプライトやステージにドラッグ・アンド・ドロップすることでアニメーション、アート、ストーリーやゲーム制作をゲーム感覚で出来るようにしている[4][5]。正しい構文を読んでも書けない子供達のために視覚的にグループ分けされたブロックはそれらをクリックすることでテストできたり、リミックスや修正、プロジェクトの新バージョンを制作するために違うブロックを容易に書き換えることもできる。

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

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

2019年1月、Scratch 3.0が公開された。Scratch 3.0では、Scratch 2.0まで使用していたAdobeAirを使用せず[7]HTML5を使用しているため、Internet Explorerなど一部のブラウザでは動作しなくなったが、その一方でスマートフォンタブレット端末Android, iPhone, iPad等)での利用がサポートされるようになった(開発グループは画面の大きさの関係でタブレット端末を推奨している)。

Scratchユーザーインタフェース[編集]

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

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

バージョン1.3.1以前では「オペレーター」は「ナンバー」と名付けられていた。メッセージパッシングのあるマルチスレッドコードはScratchにとって重要だが、現バージョンは最初のクラス構造の手続きを扱っておらず、ファイルI/Oオプションも無く、リストのような1次元配列しかサポートしていない。浮動小数点数文字列はバージョン1.4以降でサポートされているが、文字列操作機能に制限がある。またScratchプログラミング言語のかなり限定された範囲においてパワフルなマルチメディア機能とマルチスレッドプログラミングスタイルとの間に強い差異がある。

ユーザーコミュニティ[編集]

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

様々な機能に関して実証研究が行われた。直感的な学習に干渉する機能は放棄され、初心者を励まし、探究・学習を容易にするような機能は残された。いくつかの成果は驚くべきもので、Scratchを他の教育言語(BASICLOGOAlice)と全く異なるものにしている。

オンラインコミュニティ[編集]

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

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

Scratchユーザーはコメント、好き(高評価の類)をつけたり、アイデアを共有することが出来る。プロジェクトはゲームからアニメーション、3Dにまで範囲が及んでおり、全てのプロジェクトはクリエイティブ・コモンズの表示と継承ライセンス下で公開され、商用利用が可能である[15]。(プロジェクトを公開した時点で商用利用になる)

2021年10月時点で8000万以上の登録ユーザーがおり(しかし、プロジェクトを共有しているのは80万程度のユーザーのみとされる[1])、8,900万以上のプロジェクトがある(50秒ごとに複数のプロジェクトがアップロードされる計算)[1]。またウェブサイトでは頻繁に「Scratch Design Studio (SDS)」というユーザーが基本デザインコンセプトを使って制作、共有を奨励するチャレンジが開催されている。メキシコイスラエル向けのカスタムホームページでは幾つかのセクションにローカルコンテンツが置かれている。ポルトガル[16] やアラブ首長国連邦[17] でも独立したScratchウェブサイトがある。2008年、Scratchのオンラインコミュニティプラットフォーム(ScratchRと命名されている)がArs Electronica PrixのHonorary Mentionを受賞した[18]。教育者向けのオンラインコミュニティとして「ScratchEd」というのもあるが、2019年5月にサイトが閉鎖された[19]

またScratcherによるオンライン百科事典「Scratch Wiki[※ 1] が存在し、日本語版[※ 2] は2015年3月23日に作成された。また、MITが運営していないサイトで、「Scratchstats[※ 3] という、日本や世界中でのフォロワー数、「好き」、「お気に入り」の順位が分かるものもある。

Scratch Day[編集]

Scratch Day[20] は、年に一度世界中で行われるScratchのイベントである。 だれでもイベントを主催することができ、どこでも開催することができるが、基本的に5月15日の前後の休日(土日)に行われるのが伝統である。これは、Scratchというサービスそのものが2007年の5月15日に始まったことに由来する。

Scratch Dayの始まりは、2009年にMITのKaren BrennanがScratchのリリース日にイベントをしようと思いたち、開催したのが初めてのイベントである。 以後、Scratch Dayは毎年世界各地で行われている。

日本では主に東京で毎年2009年から毎年開催されている Scratch Day in tokyo や、各地域のCoderDojoなどが主催するScratch Dayがある。

エイプリルフール
Scratchでは、エイプリルフール限定のイベントが毎年必ず行われる。2021年、2020年は、「旗が押されたとき」などのイベントブロックが猫の形に変化していた。2019年は、eggと検索バーで検索すると、検索結果のプロジェクトの形が四角から卵型に変化していた。

Scratchの派生[編集]

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

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

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

日本国内では更にJavaScriptではなく、日本発祥のプログラミング言語であるRubyを同一の操作性でプログラムする為に、任意団体スモウルビー(2014年6月1日に「NPO法人Rubyプログラミング少年団」へ改名)により「Smalruby」というものも作られて展開している。

ScratchJrは、Scratchを使うのに必要な文字の読み書きや算数を使えないより小さい子供たちのためにMITメディアラボが、タフツ大学とThe Playful Inventor Companyと協力して開発した。

展開[編集]

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

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

Scratcher[編集]

Scratcher(スクラッチャー)とは、Scratchのユーザーの称号であり、Scratchチームが荒らしスパム、「コミュニティーガイドライン」[35] に違反をしていない安全なユーザーと確認したユーザーに与えられる。クラウド上にプロジェクトの変数を保存する「クラウド変数」や、コメントの連続投稿の規制が解除される[36]。だが、アカウントを作成したときは「New Scratcher」となっている。Scratcherになるための条件は明示化されていないが、アカウント作成から時間がたっていること、いくつかの作品を共有していること、コミュニティで活動していることなどが求められる。アイコンの横にScratcherかNew Scratcherと記載されている。今現在7082万人のユーザーがいる[37]

Scratchの機能[編集]

以下はScratchのナビゲーションバーにある機能の一覧である。

作る
Scratchの新しいプロジェクトを作成するツール。Scratchのアカウントを所持していると、自動で保存がされ、「私の作品」からいつでも見れるようになる。
傾向(見る)
「傾向」はscratch内で人気のプロジェクトを掲載する、youtubeなどにある急上昇ランクのようなものである。傾向には7つのカテゴリがあり、「すべて」「アニメーション」「アート」「ゲーム」「音楽」「物語」「チュートリアル」がある。「すべて」以外の傾向に掲載されるには「タグ付け」をしなければならない。例えば、アニメーションの傾向に掲載されたければ「#animations」とつけることで掲載される候補に入れる。また、2019年8月までには、傾向は「流行」と呼ばれていた。[38]
アイデア
初心者向けの動画や入門者用プロジェクトを見ることができる。バージョン2.0では「ヒント」と呼ばれていた。

Scratchアプリ[編集]

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

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

以下、ソースコード上では存在したがインストーラー等が存在しないバージョンもあるが、GitHub上のソースコードからコンパイル可能である。

バージョン履歴[40]
バージョン 更新日 内容
1.2.0 2019/1/2 最初のリリース
1.2.1 2019/1/11 保存に関するバグ修正
3.3.0 2019/3/24 1~3月分のScratchの更新を含む。
3.4.0 2019/6/26 4~6月分のScratchの更新を含む。
3.5.0 2019/8/2 読み込み画面、バージョン情報、Windowsでの全ユーザー用インストールに対応
3.5.1 不明 アプリストアに対応
3.5.2 不明 使用状況調査の対象を追加
3.6.0 2019/9/13 7~8月分のScratchの更新や、3.5.2の内容を含む。
3.7.0 不明 コスチューム等保存時のエラー修正や、9~11月分のScratchの更新を含む。
3.8.0 不明 内部変更など
3.9.0 2020/3/12 内部変更など、バージョン3.7.0以降の更新や2019年12月~2020年3月分の更新を含む。
3.10.0 不明 macOSでのカメラ・マイクを修正
3.10.1 不明 内部のバグ修正など
3.10.2 2020/5/4 内部変更など、バージョン3.7.0以降の更新や2020年4月分の更新を含む。
3.10.3 不明 内部のバグ修正など
3.10.4 不明 内部のバグ修正など
3.11.0 不明 32bit版のWindows対応など
3.11.1 2020/6/9 内部変更など、バージョン3.10.3以降の更新や2020年5月分の更新を含む。
3.12.0 2020/6/29 2020年6月分の更新を含む。
3.13.0 不明 このバージョンでは、アプリ名が「Scratchデスクトップ」から「Scratch 3」に変更された。ただし、このバージョンは公開されず、次のバージョンで変更は撤回された。
3.13.1 不明 アプリ名変更の撤回。(バージョン3.12.0と基本的に同じ内容)
3.14.0 2020/8/15 Scratch Linkへのインターネット接続なしでの接続対応
3.15.0 2020/9/1 macOSでの保存時のバグ修正など
3.16.0 2020/9/30 アプリの改名、コマンドライン引数対応、2020年9月分の更新。
3.16.1 2020/10/1 開発時のバグ修正
3.17.0 2020/10/10 脆弱性修正
3.17.1 2020/10/20 脆弱性修正
3.18.0 2020/10/27 2020年10月分の更新
3.18.1 2020/10/29 ビルド時のバグ修正
3.19.0 不明 2020年11月~2021年1月分の更新・プライバシーポリシーの追加等
3.19.1 不明 バグ修正
3.19.2 2021/2/1 バグ修正
3.19.3 2021/7/7 「scratchスタジオ」のデザイン、機能変更
3.20.0 不明 2021年2月分の更新
3.20.1 2021年3月10日 バグ修正
3.21.0 2021年4月2日 音声合成拡張機能が利用できないバグの修正など
3.22.0 2021年5月17日 バグ修正
3.23.0 不明 写真撮影機能の削除など
3.23.1 2021年6月11日 バグ修正

公式キャラクター[編集]

Scratchキャット
をモチーフにしたキャラクター。Scratchを起動した時に、開発環境画面のステージ(背景)に必ず表示される、オレンジ色の猫が二足で直立しているスプライトである。これは新しくプロジェクトを作成したときに、Scratch3.0において必ず表示される。「Scratch」の象徴となっている[41]。Scratch3.0から見た目が変わり、鼻は茶色から黒になり目や口の形も変わった。
gobo(ゴボ)
黄色の体で、頭がとがったキャラクター。2011年に、scratchチームが、scratchのプロジェクトの中で、「9番目に多く使われてるスプライト」と公式発表した。また、2.0から、絵文字としても、使用できるようになった。
以下は、「goboの友達」といわている。
pico(ピコ)
2.0から追加されたスプライト。名前の由来は、単位の「10−12(10の-12乗)」より。体は、オレンジ色で、まるい耳がある。また、scratchのサーバーエラー(504エラー)時にもピコのイラストが表示される。
tera(テラ)
2.0か追加されたスプライト。体が青い。名前の由来は、単位の「1012(10の12乗)」より。体は青く、羽毛がある。2.0以降のscratchのメールアドレス認証成功・失敗時に、テラのイラストが表示される。
nano(ナノ)
2.0から追加されたスプライト。名前の由来は、単位の「10−9(10の-9乗)」から。体が灰色で、ほかのキャラクターと比べると、背が低い。scratch day 2015 で、ナノのイラストが公開された。
giga(ギガ)
2.0から追加されたスプライト。名前の由来は、単位の「109(10の9乗)」から。頭の色が濃い赤色である。404エラー時やscratch news画面でイラストを見ることができる。(2.0では、「新しいスプライト」ボタンにもギガが書かれていた)

TurboWarp[編集]

TurboWarpは、プロジェクトをJavaScriptにコンパイルして、30FPSから二倍の60FPSの速度で実行できるようにする、ScratchのModである。TurboWarpはURLからScratchのカスタムなプロジェクトをロードする機能がある。

関連項目[編集]

注釈[編集]

  1. ^ Scratch Wiki” (日本語). scratch-wiki.info. 2021年9月3日閲覧。
  2. ^ Japanese Scratch-Wiki” (日本語). ja.scratch-wiki.info. 2021年9月3日閲覧。
  3. ^ ScratchStats.com: Scratch community statistics”. scratchstats.com. 2021年9月3日閲覧。
  4. ^ Scratchのバージョン1.4はSmalltalk処理系のひとつであるSqueak2.8から派生して作られたMIT Squeakを使用して記述されている。

脚注[編集]

  1. ^ a b c Scratch - Imagine, Program, Share”. scratch.mit.edu. 2021年11月13日閲覧。
  2. ^ Schorow, Stephanie (2007年5月14日). “Creating from Scratch”. MIT News Office. http://web.mit.edu/newsoffice/2007/resnick-scratch.html 2014年1月25日閲覧。 
  3. ^ Scratch: imagine, program, share”. Massachusetts Institute of Technology. 2007年5月25日閲覧。
  4. ^ Scratch website
  5. ^ 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
  6. ^ Scratch source-code download page http://info.scratch.mit.edu
  7. ^ Scratch2.0 オフラインエディター”. 2020年4月9日閲覧。
  8. ^ Scratch Day at Science Museum of Minnesota
  9. ^ Scratch for budding computer scientists
  10. ^ Scratch for budding computer scientists
  11. ^ CTYOnline Scratch Programming Course
  12. ^ Monroy-Hernández, A. and Resnick, M. (2008). Empowering kids to create and share programmable media. ACM interactions 15, 2 (March 2008), 50-53
  13. ^ 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)
  14. ^ 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)
  15. ^ よくある質問と答え(FAQ)”. 2017年9月3日閲覧。
  16. ^ http://kids.sapo.pt/scratch
  17. ^ http://scratch.uaeu.ac.ae/
  18. ^ http://www.aec.at/prix_history_en.php?year=2008
  19. ^ ScratchEd
  20. ^ Scratch Day” (日本語). Japanese Scratch-Wiki. 2019年12月7日閲覧。
  21. ^ Scratch Modification - Scratch Wiki "http://wiki.scratch.mit.edu"
  22. ^ http://wiki.scratch.mit.edu
  23. ^ BYOB homepage http://byob.berkeley.edu
  24. ^ Jens Mönig user contributions page
  25. ^ Mönig's blog post announcing BYOB as bringing protypal inheritance to Scratch
  26. ^ Brian Harvey homepage
  27. ^ Brian Harvey user contributions page
  28. ^ The Beauty and Joy of Computing course homepage
  29. ^ 田近一郎、本多一彦、杉江晶子、森博「タブレット端末を活用したプログラミング教育(3) ―プログラミング・オン・モバイル―」『名古屋文理大学紀要』第15号、2014年、17-27ページ。
  30. ^ 子ども向けプログラミングワークショップ 「未来実現IT教室 Children's Technology Challenge」開催
  31. ^ 『FujiSankei Business i.』2016年(平成28年)10月21日付14面。
  32. ^ TEDxBeaconStreet
  33. ^ ミッチェル・レズニック 「子供達にプログラミングを教えよう」 ted.com
  34. ^ 2013.09.23 Let's teach kids to code 「子どもにプログラミングを教えよう」ミッチェル・レズニック 2013年9月23日放送分
  35. ^ Scratch - Scratch Community Guidelines
  36. ^ New Scratcher - Japanese Scratch-Wiki
  37. ^ Scratcher” (日本語). Japanese Scratch-Wiki. 2021年9月9日閲覧。
  38. ^ 見る” (日本語). Japanese Scratch-Wiki. 2021年11月8日閲覧。
  39. ^ Scratchアプリ” (日本語). Japanese Scratch-Wiki. 2021年11月13日閲覧。
  40. ^ Scratch 3 (アプリ)” (日本語). Japanese Scratch-Wiki. 2021年2月19日閲覧。
  41. ^ Scratchキャット” (日本語). Japanese Scratch-Wiki. 2021年10月21日閲覧。

外部リンク[編集]