Scratch (プログラミング言語)
このページのノートに、このページに関する注意があります。 注意の要約:情報には出典を明記してください。サンドボックスで編集の練習や実験ができます。 また、児童・生徒の方はWikipedia:児童・生徒の方々へもお読みください。 |
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 |
拡張子 |
.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万個以上の共有されたプロジェクト、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ユーザインタフェース
[編集]Scratch 3.0のユーザインタフェースは複数の枠に分かれており、左側はブロックパレット、真ん中はスクリプトエリア、右側がステージとスプライトのリストである。
プログラムを作るために必要なブロックはブロックパレットに並んでおり、スクリプトエリアにドラッグできる。全てのブロックを表示するには多いため、ブロックは主に動き、見た目、音、制御、イベント、調べる、演算、変数、ブロック定義の9つのグループに分けられている。また、拡張機能により、ペンや外部機器との連携などの機能が追加できる。
カテゴリー | 説明 | |
---|---|---|
動き | スプライトの動きを制御するためのブロック[注釈 1]。 | |
見た目 | スプライトやステージの見た目を制御するブロック。 | |
音 | あらかじめプロジェクトに読み込ませておいた音を実行、制御するブロック。 | |
イベント | スクリプト実行のきっかけとなるブロック。 | |
制御 | スクリプトの制御に使用されるブロック。 | |
調べる | プロジェクトのさまざまな要素について調べるためのブロック。 | |
演算 | 数式、計算を使いたい場合や、文字列を扱いたい場合に利用するブロック。 | |
変数・リスト | 変数に数値や文字列を保存して使うためのブロック。 | |
ブロック定義 | 定義ブロックの下に繋げたプログラムを1つのブロックとして使用できるブロック。 | |
拡張機能 | ブロックを追加してプロジェクトを拡張するブロック。(後述) |
サイトの色の更新
[編集]障害等の有無にかかわらずサイトをアクセシブルにするため、2023年6月28日に画面上部のナビゲーションバーの色が青から紫に変わったほか、エディター画面のナビゲーションバーからブロックの色をハイコントラストに調整できる設定が追加されるなどの変更が行われた[11]。
Scratch Lab
[編集]Scratch LabはまだScratchに実装されていない機能を試すことができる場所である。2024年10月現在、video sprites、Face Sensing、Animated Text、New Block Colorsを試すことができる[12]。このうち、New Block Colorsが2023年6月28日にScratchに実装され[13]、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]。
共有されたプロジェクトには、クリエイティブ・コモンズ 表示-継承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年にMITのKaren Brennanが、Scratchのリリース日にイベントをしようと思いたち、開催したことにある。以後、Scratch Dayは毎年世界各地で行われている。
Scratch Week
[編集]Scratch Dayから移行されたイベント[27]。Scratchを世界規模でバーチャル内でお祝いするというもの。2024年から始まった。
展開
[編集]ミッチェル・レズニック本人による、Scratchを題材としたプレゼンテーション「Let's teach kids to code. (子供たちにプログラミングを教えよう)」が、2012年11月におこなわれたTEDxBeaconStreet[28]にて講演され、その模様が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個も使用できる。
検閲
[編集]2020年8月、中国政府がグレート・ファイアウォール(GFW)を使用して、ScratchのWebサイトおよびScratch wikiへのアクセスをブロックしたことが判明した。理由は、Scratchのアカウントを作成する時に選択する国のリストに 「香港」「マカオ」「台湾」が含まれていたこと。 当時中国ではScratchを使用していた人の5.7%にあたる、300万ユーザーが利用していた。現在中国本土ではオンラインでScratchは出来ず、オフラインエディターを使用している[44][45][46]。検閲を担当している中国の機関は「Scratchに掲載されている情報は、中国本土に対して、屈辱的で中傷的、また虚偽のものである」と声明を出している[47]。
脚注
[編集]注釈
[編集]出典
[編集]- ^ 出典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 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. 2024年5月12日閲覧。
- ^ 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日閲覧。