Scratch(スクラッチ)は、Scratch財団がマサチューセッツ工科大学メディアラボ ライフロングキンダーガーデングループ(MIT Media Lab Lifelong Kindergarten Group)と共同開発する、8〜16才のユーザーをメインターゲットにすえた無料の教育プログラミング言語及びその開発環境である。現在、7082万以上のScratcherが登録しており、7611万以上のプロジェクトが共有されている[1]。現在のバージョンのScratch 3.0にはオンラインエディターからアクセスできるほか、Windows/Mac版のオフラインエディター(Scratch 3 アプリ)はここから、以前のバージョンのScratch.0.22222はここから、Scratch 1.4はここからそれぞれダウンロードできる。
Scratchは、教育・学習が楽しく簡単にできるよう設計されている。Scratchには、インタラクティブストーリー、ゲーム、アート、シミュレーションなどを作成するための様々なツールが用意されており、さらには、オリジナルのペイントエディター、サウンドエディターまで内蔵されている。
Scratchのプログラムは、ユーザーがブロックパレットからブロックをドラッグして、ジグソーパズルのように他のブロックに取り付けることにより作成する。このようにして組み合わせた複数のブロックのかたまりは、スクリプトと呼ばれる。ブロックを使ってコードを作成するこのようなプログラムの作り方を、ビジュアルプログラミングと呼ぶこともある。
ScratchのウェブサイトのURLは https://scratch.mit.edu である。
利用方法
Scratchは世界中の学校で、子どもたちにコンピュータープログラミングの基礎を紹介する手段として使われているが、学校以外でも利用される場面は多く、子どもだけでなく大人の中にも、Scratchを通じてプログラムの基本知識を学び、 やがて他のプログラミング言語(PythonやC#、Visual Basicなど)に進んでいく人がいる。Scratchの利用においては、Scratchプロジェクトの作成、 リミックス、 合作 などを通して、他のユーザーと交流を深めることができる。
使用環境
プログラミング言語の設計にあたり、開発者がもっとも大事にしたのは、言語仕様と開発環境を直感的なものにして、プログラム経験のない子どもでも、すぐに使い方がわかるようにすることであった。パワフルなマルチメディア対応やマルチスレッド式のプログラミングスタイルの採用に対して、プログラミング言語としては対象範囲を絞り込んだ対照的な設計がなされた。
Scratch 3.0の初期状態の開発環境
Scratchのユーザーインターフェース では、画面がいくつかのペインに分割されており、左にブロックパレット、 中央にスクリプトエリア(3.0ではコードエリア)、右にステージとスプライトのリストがある。ブロックパレットにはコードのかけら(ブロック)があり、これらはスクリプトエリアにドラッグして、プログラムを作成するために使用される。とんでもない量のブロックがずらずらとブロックパレットに並ぶと使用するときに不便なので、これらのブロックは動き、見た目、音、変数、イベント、制御、調べる、演算、ブロック定義の10個のグループに分類されている。また、拡張機能により、ペンや外部機器との連携などの高度な技術を使用できる。
ほほめなねに**【改変】「Scratch」の由来
Scratchの由来は、音楽界のScratchに関係がある。
「スクラッチするとは、DJやターンテーブリストが行う、ターンテーブル上のビニールレコードを前後にこすって(時には、DJミキサーのクロスフェーダーを操作しながら)、独特の音をだすテクニックのこと。」-Wikipedia
また、Scratchでも、ブロックを組み合わせ、新しい何かを生み出せる。
そのため、Scratchになったとされている。(Scratch関係者が言っていたとのこと。)
ほほめなねに**【改変】「Scratch」の由来
Scratchの由来は、音楽界のScratchに関係がある。
「スクラッチするとは、DJやターンテーブリストが行う、ターンテーブル上のビニールレコードを前後にこすって(時には、DJミキサーのクロスフェーダーを操作しながら)、独特の音をだすテクニックのこと。」-Wikipedia
また、Scratchでも、ブロックを組み合わせ、新しい何かを生み出せる。
そのため、Scratchになったとされている。(Scratch関係者が言っていたとのこと。)
Scratchのユーザーインターフェース では、画面がいくつかのペインに分割されており、左にブロックパレット、 中央にスクリプトエリア(3.0ではコードエリア)、右にステージとスプライトのリストがある。ブロックパレットにはコードのかけら(ブロック)があり、これらはスクリプトエリアにドラッグして、プログラムを作成するために使用される。とんでもない量のブロックがずらずらとブロックパレットに並ぶと使用するときに不便なので、これらのブロックは動き、見た目、音、変数、イベント、制御、調べる、演算、ブロック定義の10個のグループに分類されている。また、拡張機能により、ペンや外部機器との連携などの高度な技術を使用できる。
ほほめなねに**【改変】「Scratch」の由来
Scratchの由来は、音楽界のScratchに関係がある。
「スクラッチするとは、DJやターンテーブリストが行う、ターンテーブル上のビニールレコードを前後にこすって(時には、DJミキサーのクロスフェーダーを操作しながら)、独特の音をだすテクニックのこと。」-Wikipedia
また、Scratchでも、ブロックを組み合わせ、新しい何かを生み出せる。
そのため、Scratchになったとされている。(Scratch関係者が言っていたとのこと。)
ほほめなねに**【改変】「Scratch」の由来
Scratchの由来は、音楽界のScratchに関係がある。
「スクラッチするとは、DJやターンテーブリストが行う、ターンテーブル上のビニールレコードを前後にこすって(時には、DJミキサーのクロスフェーダーを操作しながら)、独特の音をだすテクニックのこと。」-Wikipedia
また、Scratchでも、ブロックを組み合わせ、新しい何かを生み出せる。
そのため、Scratchになったとされている。(Scratch関係者が言っていたとのこと。)
【改変】Scratchの合言葉
合言葉は「想像、プログラム、共有」で、意味は、作る前にどんなプログラムを作るか「創造」、アイデアをもとにScratchで「プログラム」、そして最後に世界中に「共有」する。
ちなみに、2.0以降ではあまりこの言葉を見かける機会がなくなった。いままではScratchの非ログイン時表示されていたと思うが、いまではScratchについてと寄付、動画が表示されている。
ちなみに、2.0以降ではあまりこの言葉を見かける機会がなくなった。いままではScratchの非ログイン時表示されていたと思うが、いまではScratchについてと寄付、動画が表示されている。
バージョン
現在のScratchのバージョンは3.0である。3.0のオンラインエディター・Windows/Mac用オフラインエディター(Scratch 3 アプリ)の公式リリース日は日本時間2019年1月3日であった。旧バージョンにあたるのは、2013年5月9日にリリースされたScratch 2.0や2009年7月2日にリリースされたScratch 1.4である。さらにその以前には、 Scratch 1.3、 Scratch 1.2、Scratch 1.1、Scratch 1.0といったバージョンが存在した。これまで、Scratchのバージョンが変わるたびに重大な変更が加えられてきたが、1.4から2.0、2.0から3.0へのバージョンアップでは、Scratchに特に大きな変化が加えられた。プログラムのバージョンがアップデートされただけではなく、ScratchウェブサイトがScratch自体の機能の一部として取り込まれたり、Scratchを表示するシステムがHTMLに変わったためである。
特色
- Scratchはチューリング完全である(Minecraftもチューリング完全)
- 根源的にイベントドリブン型である
- オブジェクト指向型プログラミングであるかどうかはコミュニティ内での議論がわかれている
- Scratchでデータを格納するには、変数とリストを利用する。
- Scratchの「繰り返し」制御では操作はアトミック(不可分)ではない。 シングルフレームプログラムにすれば、擬似的なアトミック操作として扱うことができる
- Scratch 2.0以降ではプロシージャ(ブロック定義)、再帰を使用できる。
- Scratchにはシンプルな キャスト (型変換)ルールがいくつか存在する。しかし、データは第1級オブジェクトではない。第1級オブジェクトとしてリスト、スプライト、プロシージャを持つことはできない。
OS機能へのアクセス権
ScratchからハードウェアやOSにアクセスできる範囲は限られており、かなり安心して使用できるプログラムといえる。Scratchからアクセス可能な内容は次のとおり:
マイクで拾った音のボリューム(音量)
Scratch画面内でのマウス位置
キーが押されたり、マウスのホイールが動いたこと(ただし、Scratchがアクティブになっているときだけ)
Webカメラから画像を受け取った場合、その画像内の動きを表すモーション値(Scratch 2.0から)
プログラムの開発中は、ローカルのファイルシステムにアクセス可能だが、実行中のプログラムからはファイルシステムにアクセスできない。
Scratchは、ユーザーのコンピューターに接続されたLEGO WeDoや、micro:bitなどと外部通信できる
mod版Scratch(改造版Scratch)には、より多くのOS機能を使用するものもある。
Scratch画面内でのマウス位置
キーが押されたり、マウスのホイールが動いたこと(ただし、Scratchがアクティブになっているときだけ)
Webカメラから画像を受け取った場合、その画像内の動きを表すモーション値(Scratch 2.0から)
プログラムの開発中は、ローカルのファイルシステムにアクセス可能だが、実行中のプログラムからはファイルシステムにアクセスできない。
Scratchは、ユーザーのコンピューターに接続されたLEGO WeDoや、micro:bitなどと外部通信できる
mod版Scratch(改造版Scratch)には、より多くのOS機能を使用するものもある。
誤解
「Scratch」の語の独り歩き
Scratchの語は米国にて商標登録されている。本来、Scratchは、本項で紹介するプログラミング言語をさすが、「ブロックを使用したプログラミング言語」や「ビジュアルプログラミング言語」がScratchと呼ばれることがある。また、頻度は少ないが、Scratchの改造版(mod)においても、同じことが起こりうる。
パズル
Scratchがパズルを解くことによって課題を解決する言語と表現されることがあるが、Scratchにその要素はなく(modの中にはある)開発を主導するミッチェル・レズニック氏はTwitterにて、そのようなパズルを批判している。