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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
Scratch
Scratchlogo.svg
Scratchのロゴ
パラダイム 教育用英語版イベント駆動型
登場時期 2006年~
設計者 ミッチェル・レズニック
開発者 MITメディアラボ Lifelong Kindergarten Group
最新リリース 3.0/ 2019年1月2日
型付け ダイナミック
主な処理系 Scratch
影響を受けた言語 LOGO, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys
プログラミング言語 Squeak, HTML, CSS, Javascript
プラットフォーム 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才のユーザーをメインターゲットにすえた無料の教育プログラミング言語及びその開発環境である。全世界の登録ユーザー数は約6300万で、日本はその1%の69万である(2020年10月時点)[1]

概要[編集]

Scratch 3.0開発環境のスタートアップ時のスクリーンショット

初心者が最初に正しい構文の書き方を覚えること無く実行できる、遊び心のある実験やアニメーション、ゲームなどの制作を通してさらなる学習のやる気を起こさせることを意図している。Scratchという名称はディスクジョッキー(DJ)がレコードを手でこするスクラッチングに由来しており[2]、DJが気軽に曲をミックスすることと、Scratch言語によって簡単にプロジェクトをミックスすることを関連付けている。

2006年に最初のバージョンがMITメディアラボのミッチェル・レズニックが主導するライフロング・キンダーガーテン・グループにMITに来たEtoys開発チームのジョン・マロニーを招いて開発された[3]。Scratchは制作者の最優先事項を子供達が可能な限り簡単に学習するように作成できるため触覚的なプロセスを通した構築とテストが可能となっている。

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

ScratchはWindowsmacOSLinuxRaspberry 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.0開発環境のユーザインタフェースは複数の枠に分かれており、左側はブロックパレット、真ん中はスクリプトエリア、右側がステージとスプライトのリストである。

ブロックパレットにはプログラムを作るためにスクリプトエリアにドラッグできるブロックがある。全てのブロックを表示するにはあまりにも多すぎるため、ブロックは主に動き、見た目、音、制御、調べる、演算、変数、ブロック定義の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]

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

またScratcherによるオンライン百科事典「Scratch Wiki」が存在し、日本語版は2015年3月23日に作成された。また、MITが運営していないサイトで、「Scratchstats」という、日本や世界中での順位が分かるものもある。

Scratch Day[編集]

Scratch Day[21]は、年に一度世界中で行われる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では、エイプリルフール限定のイベントが毎年必ず行われる。2020年は、「旗が押されたとき」などのイベントブロックが猫の形に変化していた。2019年は、eggと検索バーで検索すると、検索結果のプロジェクトの形が四角から卵型に変化していた。

派生[編集]

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

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

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

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

展開[編集]

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

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

関連項目[編集]

以下の若者向けコンピューティングプロジェクトも、MITライフロング・キンダーガーテングループから起こったものである。

  • コンピュータ・クラブハウス
  • Lego Mindstorms
  • プログラマブル・クリケット

加えてStencylゲーム制作ツールもScratchから直接感化された「コードブロック」ベースのビジュアルプログラミング言語を使用している。他の教育用プログラミング言語には以下のようなものがある。

脚注[編集]

[脚注の使い方]
  1. ^ a b https://scratch.mit.edu/statistics/
  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. ^ Scratch Statistics
  17. ^ http://kids.sapo.pt/scratch
  18. ^ http://scratch.uaeu.ac.ae/
  19. ^ http://www.aec.at/prix_history_en.php?year=2008
  20. ^ http://scratched.media.mit.edu
  21. ^ Scratch Day” (日本語). Japanese Scratch-Wiki. 2019年12月7日閲覧。
  22. ^ http://wiki.scratch.mit.edu
  23. ^ Scratchのバージョン1.4はSmalltalk処理系のひとつであるSqueak2.8から派生して作られたMIT Squeakを使用して記述されている。
  24. ^ http://wiki.scratch.mit.edu
  25. ^ BYOB homepage http://byob.berkeley.edu
  26. ^ Jens Mönig user contributions page
  27. ^ Mönig's blog post announcing BYOB as bringing protypal inheritance to Scratch
  28. ^ Brian Harvey homepage
  29. ^ Brian Harvey user contributions page
  30. ^ The Beauty and Joy of Computing course homepage
  31. ^ 田近一郎、本多一彦、杉江晶子、森博「タブレット端末を活用したプログラミング教育(3) ―プログラミング・オン・モバイル―」『名古屋文理大学紀要』第15号、2014年、17-27ページ。
  32. ^ 子ども向けプログラミングワークショップ 「未来実現IT教室 Children's Technology Challenge」開催
  33. ^ 『FujiSankei Business i.』2016年(平成28年)10月21日付14面。
  34. ^ TEDxBeaconStreet
  35. ^ ミッチェル・レズニック 「子供達にプログラミングを教えよう」 ted.com
  36. ^ 2013.09.23 Let's teach kids to code 「子どもにプログラミングを教えよう」ミッチェル・レズニック 2013年9月23日放送分

外部リンク[編集]