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

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

概要[編集]

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

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

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

Scratchの触覚や視覚的GUIは子供達がコンディション(パラメータ付き)や結果(アクション)のブロックを選択したエージェント(スプライトと呼ばれる)や背景(ステージと呼ばれる)にドラッグ・アンド・ドロップすることでインタラクティブアニメーション、プレゼンテーション、ストーリーやシンプルなゲームを遊び心かつプログラム的に製作することを出来るようにしている[4][5]。文法的に正しい構文を読んでも未だに書けない子供達のために視覚的にグループされたブロックはそれらをクリックすることでテストできたり、リミックスや修正、プロジェクトの新バージョンを製作するために違うブロックを容易に書き換えることもできる。

ScratchはWindowsmacOSLinuxRaspberry PiAndroid(タブレット)に対応しており、ソースコードGPLv2ライセンスとScratch Source Code Licenseとして公開されている[6]

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

2019年1月1日、Scratch 3.0が公開された。Scratch 3.0では、Scratch 2.0で使用していたAdobeAir[7]を使用しなくなったため、Internet Explorerなど一部のブラウザでは動作しなくなったが、その一方でタブレット端末での利用がサポートされるようになった。

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

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

ブロックパレットにはプログラムを作るためにスプライトエリアにドラッグできるScratchではブロックと呼ばれるフラグメントがある。パレットを保持するにはあまりにも大きすぎるため、ブロックは主に動き、見た目、音、制御、調べる、演算、変数、ブロック定義の8つのグループに分けられる。また、拡張機能により、ペンや外部機器との連携などの高度な技術を使用できる。

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

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

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

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

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

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

またScratchのプロジェクトは新たなプロジェクトを作るためのリミックスに向けたものになっている。プロジェクトは開発環境から直接Scratchのウェブサイトやコミュニティのメンバーに直接アップロードができ、ソースコードをダウンロードして勉強や新たなプロジェクトにリミックスすることも可能である[13][14]

Scratcherはプロジェクトのギャラリーやコメント、好きを作ったり、他のプロジェクトを好む意思を示したりアイデアを共有することが出来る。プロジェクトはゲームからアニメーション、3Dまで範囲が及んでおり、全てのプロジェクトはクリエイティブ・コモンズの表示-継承ライセンス下で公開され[15]、商用利用が出来る。

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

また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日放送分

外部リンク[編集]