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財団 がマサチューセッツ工科大学 (Massachusetts Institute of Technology、MIT)のMITメディアラボ (MIT Media Lab)内にあるライフロング・キンダーガーテン・グループ(Lifelong Kindergarten Group)と共同開発する、8歳から16歳のユーザーをメインターゲットとする無料教育ビジュアルプログラミング言語 及びその開発環境、コミュニティサイト である。ウィキペディア と同様、収録されている全ての内容がオープンコンテント で、商業広告が存在しないことが特徴の一つである。
Scratchは世界中で使われており、1億6400万個以上の共有されたプロジェクト、9億個以上の未公開のプロジェクト、1億3500万ユーザー以上の登録ユーザー、約10億個のコメント、約3500万個のスタジオが存在している。日本 のユーザーはそのおよそ1.8%にあたる230万人以上となっている。[ 2] 。
ScratchはWindows 、Mac 、Linux 、Raspberry Pi 、Android 、iPad などに対応しており、ソースコード はGPLv2 ライセンスとScratch Source Code LicenseとしてGitHub にて公開されている[ 3] 。
概要
プロジェクト作成時のスクリーンショット
Scratchは、コミュニケーション能力の育成をすることを意図している。また、8歳から16歳の子供 向けに開発されたもの[ 4] であるが、子供 から大人 まで幅広い年代が使用している。
Scratchという名称はディスクジョッキー (DJ)がレコードを手でこするスクラッチングに由来しており[ 5] 、DJが気軽に曲をミックスすることと、Scratchで簡単にプロジェクトをミックス(リミックスと言う)することを関連付けている。2006年 に最初のバージョンがMITメディアラボのミッチェル・レズニック が主導する「ライフロング・キンダーガーテン・グループ」にMITに来たEtoys 開発チームのジョン・マロニーを招いて開発された[ 6] 。
Scratchの視覚的GUI は、子供達がプログラムブロックをスプライト やステージ、スペースにドラッグ・アンド・ドロップ することでアニメーション 、アート 、ストーリー やゲーム 制作をゲーム感覚で簡単にできるようにしている[ 7] [ 8] 。Scratchでは、正しい構文を読み書きできない人のために視覚的にグループ分けされたブロックをクリックすることでテストできたり、リミックスや修正、プロジェクトの新バージョンを制作するためにブロックを容易に書き換えることができるようなデザインとなっている。
2013年 5月にScratch 2.0が公開され、ウェブアプリケーション となり、開発環境のインストールが不要となった。そのためリミックス(プログラムの改造)が容易になり、従来のバージョンにはなかった、ウェブアプリケーションならではの機能が追加された。
2019年1月にScratch 3.0が公開された。Scratch 2.0まで使用していたAdobe Flash を使用せず[ 9] 、HTML5 を使用しているため、Internet Explorer など一部のブラウザでは動作しなくなったが、スマートフォン やタブレット端末 (Android , iPhone , iPad 等)での利用がサポートされるようになった(開発グループは画面の大きさの関係でタブレット端末を推奨している[ 10] )。また、いくつかの拡張機能の追加、ブロックの文字の読みやすさ向上、機能性や画質 の向上などの変化があった。
ユーザインタフェース
Scratch 3.0のユーザインタフェース(エディター)は複数の枠に分かれており、左側はブロックパレット、真ん中はスクリプトエリア、右側がステージとスプライトのリストである。
Scratchのユーザインタフェースのスクリーンショット
プログラムを作るために必要なブロックはブロックパレットに並んでおり、スクリプトエリアにドラッグ できる。全てのブロックを表示するには多いため、ブロックは主に動き、見た目、音、制御、イベント、調べる、演算、変数、ブロック定義の9つのカテゴリーに分けられている。また、拡張機能により、ペンや外部機器との連携などの機能が追加できる。
カテゴリー
説明
動き
スプライトの動きを制御するブロック[ 注釈 1] 。
見た目
スプライトやステージの見た目を制御するブロック。
音
あらかじめプロジェクトに読み込ませておいた音を実行、制御するブロック。
イベント
スクリプト実行のきっかけとなるブロック。
制御
スクリプトを制御するブロック。
調べる
プロジェクトのさまざまな要素について調べるブロック。
演算
数式や計算、文字列を扱うブロック。
変数・リスト
変数やリストに数値や文字列を保存して使うブロック。
ブロック定義
定義ブロックの下に繋げたプログラムを1つのブロックとして使用できるブロック。
拡張機能
ブロックを追加してプロジェクトを拡張するブロック。(後述)
サイトの色の更新
障害等の有無にかかわらずサイトをアクセシブル にするため、2023年6月28日にユーザインタフェースやウェブサイト上部のナビゲーションバーの色が青から紫に変えられたほか、ユーザインタフェースのナビゲーションバーからブロックの色をハイコントラスト に変更できる機能の追加などが行われた[ 11] 。
Scratch Lab
Scratch Lab は、まだScratchに実装されていない機能を試すことができるWebサイトである。2024年10月現在、video sprites、Face Sensing、Animated Text、New Block Colorsを試すことができる[ 12] 。このうち、New Block Colorsが2023年6月28日にScratchに実装され[ 13] 、Scratchではユーザインタフェースを含むすべてのページの色が変更された。また、ここで作った作品はScratchのコミュニティ に共有できない[ 14] 。
ユーザーコミュニティ
Scratchは教育施設 (学校やプログラミング教室など)、博物館 [ 15] 、コミュニティセンター、そして家庭内といった多くの場所で使われている。例として、低年齢の子供達は親や友達とプログラムを書くとき、大学生ではいくつかの計算機科学 入門クラス(ハーバード大学 の初級コンピュータクラス[ 16] [ 17] )でScratchが使われたりしている。Scratchは、表示される言語を変えることで世界中で使えるようになっている。ジョンズ・ホプキンス大学のCenter for Talented Youth (英語版 ) (CTY) ではCTYオンラインプログラムにて6年生の生徒向けにScratchプログラミングのオンラインコースを提供している[ 18] 。
オンラインコミュニティ
Scratchのオンラインコミュニティ のスローガンは「Imagine, Program, Share(想像・プログラム・共有)」でScratchの背後にある考え方の重要な部分として共有と創造性の社会的背景を指している[ 19] 。
またScratchのプロジェクトは新たなプロジェクトを作るためのリミックスに向けたものになっている。プロジェクトは開発環境からScratchのウェブサイトに直接アップロードでき、プログラムをリミックスして学習や、新たなプロジェクトとして共有することもできる[ 20] [ 21] 。
Scratchユーザーはコメントをしたり、プロジェクトに好き(高評価の類)やお気に入り(「好き」と大差はないが、プロフィールにお気に入りをつけたプロジェクトを見ることが出来る)をつけたり、プロジェクトを共有したりすることができる[ 注釈 2] 。また、その共有されたプロジェクトは、Scratchには「見る」という項目があり、傾向 と人気 と最近 といった種類に分かれる[要出典 ] 。
共有されたプロジェクトには、クリエイティブ・コモンズ 表示-継承2.0ライセンスが適用され、商用利用や再利用ができる[ 22] [ 注釈 3] 。
ウェブサイトでは頻繁に「Scratch Design Studio (SDS)」というユーザーが基本デザインコンセプトを使って制作、共有を奨励するチャレンジが開催されている。メキシコ やイスラエル 向けのカスタムホームページでは幾つかのセクションにローカルコンテンツが置かれている。ポルトガル[ 23] やアラブ首長国連邦[ 24] でも独立したScratchウェブサイトがある。2008年、Scratchのオンラインコミュニティプラットフォーム(ScratchRと命名されている)がArs Electronica PrixのHonorary Mentionを受賞した[ 25] 。教育者向けのオンラインコミュニティとして「ScratchEd」というものもあったが、2019年5月にサイトが閉鎖された[ 26] 。
イベント
Scratch Day
Scratch Dayは、年に一度世界中で行われるScratchのイベントである。 だれでもイベントを主催することができ、どこでも開催することができるが、基本的に5月15日 の前後の休日(土日)に行われるのが伝統である。これは、Scratchというサービスそのものが2007年5月15日に始まったことに由来する。始まりは、2009年にマサチューセッツ工科大学のKaren Brennanが、Scratchのリリース日にイベントをしようと思いたち、開催したことにある。以後、Scratch Dayは毎年世界各地で行われている。
Scratch Week
Scratch Dayから移行されたイベント[ 27] 。Scratchを世界規模でバーチャル内でお祝いするというもの。2024年から始まった。
展開
2012年11月におこなわれたTEDxBeaconStreet[ 28] にて、ミッチェル・レズニックによるScratchを題材としたプレゼンテーション「Let's teach kids to code. (子供たちにプログラミングを教えよう)」が講演され、その模様がTED によって公開されている[ 29] 。この中でレズニックは、Scratchを利用して子供にプログラミングを覚えさせることの優位性、特にコーディングを通して得られる様々な経験が、その子供がプログラマーになるかならないかに関わらず、将来職に就き、仕事をこなすうえでとても有益である、と説いている。
また、TEDやTEDxの講演イベントでおこなわれたプレゼンテーションから英会話を学ぶことを目的とした、NHKによる教育番組「スーパープレゼンテーション 」でもこのプレゼンテーションが取り上げられている[ 30] 。NHK Eテレ では『Why!?プログラミング 』で公式にプログラミングソフト(一部画面が異なっている部分もある)として採用されたり、民放では千葉テレビ放送 ・BSフジ の『GP LEAGUE プログラミングコロシアム 』で放送される「GP LEAGUE」での公式言語の1つにもなっている。
Scratchアプリ
Scratchをインターネット に接続しなくても使用ができるオフラインエディターとして、Electron で動作するScratchアプリ がWindows 、Mac 、Android 、ChromeOS 用に用意されている[ 31] 。
3.16.1 より前まではScratch Desktop と呼ばれていたが、3.16.1で名称がScratch 3 に変更された。
ScratchのMOD
Scratchのいくつかの派生はScratch Modificationsと呼ばれ、Scratchのバージョン1.4のソースコード[ 注釈 4] を使って制作された。これらのプログラムは通常「ブロック」が追加されたりGUIが変更されたScratchのバリエーションである。
Build Your Own Blocks (英語版 ) (BYOB)のようにそのうちのいくつかはさらにコンピューティングへの基礎的アプローチへのシフトを導入しているがBYOBにのみユーザーを許容しないものの、Scratchの一部ではないファーストクラス手続き(ラムダ)、ファーストクラスリスト(リストのリストを含む)、プロトタイプ継承を備えたファーストクラス真オブジェクト指向スプライトがある[ 32] 。BYOBはイェンス・ムーニッヒが開発し[ 33] [ 34] 、カリフォルニア大学バークレー校 のブライアン・ハーベイがドキュメンテーションを提供し[ 35] [ 36] 、計算機科学専攻ではない学生への計算機科学初級コースにおける「The Beauty and Joy of Computing」を教える時に使用された[ 37] 。
Pyonkee
Scratch 1.4と同等の環境をiPadで再現したもので、2014年に登場した[ 38] 。伊藤忠テクノソリューションズ が児童向けに開催するプログラミング教室でも採用されている[ 39] [ 40] 。
TurboWarp
プロジェクトをJavaScript にコンパイルして1FPS から250FPSまでの速度で実行できるようにする。Scratch、Scratchチーム、Scratch財団とは提携していない。他にも補完機能、ペンのHD化などがあり、「高度な設定」で細かな設定ができる[ 41] 。TurboWarpには、Scratchのプロジェクトをロードする機能があり2022年11月9日まで非共有プロジェクトの閲覧、編集が可能だった。2022年11月10日にScratch APIの仕様が変更された為、非共有プロジェクトは基本的に閲覧、編集共に不可能になった[ 42] 。しかし、ダウンロードしたプロジェクトを開くことや、共有されたプロジェクトについては、従来通り閲覧可能。また、ゲームをアプリ化することもできる。
Penguinmod
ScratchとTurboWarpをベースに作成された[ 43] ビジュアルコーディングサイト。penguinmod独自の拡張機能41個に加え、TurboWarpの拡張機能13個も使用できる。
Snail-ide
Scratch,turbowarp,PenguinmodをベースにしたMod。>
中国政府による検閲
2020年8月、中国政府 がグレート・ファイアウォール (GFW)を使用して、ScratchのWebサイトおよびScratch Wikiへのアクセスをブロックしたことが判明した。理由は、Scratchのアカウントを作成する時に選択する国のリストに 「香港」「マカオ」「台湾」が含まれていたこと。 当時中国 ではScratchを使用していた人の5.7%にあたる、300万ユーザーが利用していた。現在中国本土ではオンラインでScratchは出来ず、オフラインエディターを使用している[ 44] [ 45] [ 46] 。検閲を担当している中国の機関は、「Scratchに掲載されている情報は、中国本土に対して、屈辱的で中傷的、また虚偽のものである」と声明を出している[ 47] 。
脚注
注釈
^ 動きブロックはスプライトのコーディングにのみ使用でき、背景をコーディングする際は表示されない。
^ 共有の機能は、メールアドレスを認証していないと使えない。
^ Scratch内の再利用は一部制限されている。
^ Scratchのバージョン1.4はSmalltalk 処理系のひとつであるSqueak 2.8から派生して作られたMIT Squeakを使用して記述されている。
出典
^ 出典URL: https://scratch.mit.edu/discuss/topic/326861/ , 題名: Scratch 3.0 is here! , 閲覧日: 2019年1月2日
^ “Scratch - Imagine, Program, Share ”. scratch.mit.edu . scratch. 2023年12月14日 閲覧。
^ Scratch source-code download page http://info.scratch.mit.edu [リンク切れ ]
^ “Scratch - For Parents ”. scratch.mit.edu . 2023年6月17日 閲覧。
^ Schorow, Stephanie (2007年5月14日). “Creating from Scratch” . MIT News Office . http://web.mit.edu/newsoffice/2007/resnick-scratch.html 2014年1月25日 閲覧。
^ “Scratch: imagine, program, share ”. Massachusetts Institute of Technology . 2007年5月25日 閲覧。
^ Scratch website
^ 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
^ “Scratch 2.0 オフラインエディター ”. 2020年4月9日 閲覧。
^ “Scratch - FAQ ”. scratch.mit.edu . マサチューセッツ工科大学. 2025年1月23日 閲覧。
^ ceebee* (2023年6月5日). “Coming Soon: Color Contrast in Scratch! ”. Scratch. 2023年8月3日 閲覧。
^ “Scratch Lab ”. lab.scratch.mit.edu . 2023年2月17日 閲覧。
^ “Scratch - Imagine, Program, Share ”. scratch.mit.edu . 2023年6月29日 閲覧。
^ “Scratch Lab ”. lab.scratch.mit.edu . 2024年12月10日 閲覧。
^ Scratch Day at Science Museum of Minnesota
^ Scratch for budding computer scientists
^ Scratch for budding computer scientists
^ CTYOnline Scratch Programming Course
^ Monroy-Hernández, A. and Resnick, M. (2008). Empowering kids to create and share programmable media. ACM interactions 15, 2 (March 2008), 50-53
^ 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)
^ 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)
^ “よくある質問と答え(FAQ) ”. 2017年9月3日 閲覧。
^ http://kids.sapo.pt/scratch
^ http://scratch.uaeu.ac.ae/
^ http://www.aec.at/prix_history_en.php?year=2008
^ ScratchEd
^ “Scratch in Practice ” (英語). sip.scratch.mit.edu . 2024年10月4日 閲覧。
^ TEDxBeaconStreet
^ ミッチェル・レズニック 「子供達にプログラミングを教えよう」 ted.com
^ “Let's teach kids to code 「子どもにプログラミングを教えよう」 ”. 日本放送協会 (2013年9月23日). 2017年7月10日時点のオリジナル よりアーカイブ。2023年11月26日 閲覧。
^ “Scratch - Scratch Offline Editor ”. 2024年1月7日 閲覧。
^ BYOB homepage http://byob.berkeley.edu
^ Jens Mönig user contributions page
^ Mönig's blog post announcing BYOB as bringing protypal inheritance to Scratch
^ Brian Harvey homepage
^ Brian Harvey user contributions page
^ The Beauty and Joy of Computing course homepage
^ “タブレット端末を活用したプログラミング教育(3) - プログラミング・オン・モバイル - ” (PDF). 名古屋文理大学紀要 第15号 . 名古屋文理大学 (2014年). 2017年8月21日時点のオリジナル よりアーカイブ。2023年11月26日 閲覧。
^ 子ども向けプログラミングワークショップ 「未来実現IT教室 Children's Technology Challenge」開催
^ 『FujiSankei Business i.』2016年(平成28年)10月21日付14面。
^ “60 FPS (Custom FPS) | TurboWarp Documentation ” (英語). docs.turbowarp.org . 2022年2月19日 閲覧。
^ “Unshared projects are no longer visible | TurboWarp Documentation ” (英語). docs.turbowarp.org . 2022年12月23日 閲覧。
^ “PenguinMod - Home ” (英語). penguinmod.com . 2024年7月7日 閲覧。
^ “China bans Scratch, MIT’s programming language for kids ” (英語). TechCrunch . 2022年5月4日 閲覧。
^ “China appears to be blocking access to children's programming language Scratch - Computer - News ” (英語). World Today News (2020年9月7日). 2022年5月4日 閲覧。
^ “未来网评:开放的中国不“排外”,但必须要“排毒” _未来网 ”. view.k618.cn . 2022年9月21日 閲覧。
^ “La Chine bannit Scratch, le langage d'apprentissage à la programmation - Le Monde Informatique ” (フランス語). LeMondeInformatique (2020年9月8日). 2023年7月11日 閲覧。
関連項目
外部リンク