| 傷 | |
|---|---|
2015年10月16日から使用されているロゴ | |
Scratch 3.0 エディター | |
| パラダイム | イベント駆動型、ブロックベースのプログラミング言語 |
| 開発者 | スクラッチ財団 |
| 初登場 | |
| 安定版リリース |
|
| 実装言語 | Squeak (Scratch 1.x) ActionScript (Scratch 2.0) [ 3 ] HTML5 , JavaScript (Scratch 3.0) [ 3 ] [ 4 ] |
| OS | Microsoft Windows、macOS、Linux(レンダラー経由)、HTML5(Web ブラウザー経由)、iOS、iPadOS、Android。 |
| ライセンス | |
| ファイル名拡張子 | .sb、.sprite (Scratch 1.x) .sb2、.sprite2 (Scratch 2.0) .sb3、.sprite3 (Scratch 3.0) |
| Webサイト | スクラッチ |
| 影響を受けた | |
| Logo、Smalltalk、HyperCard、StarLogo、AgentSheets、AgentCubes、Etoys、Snap ! | |
| 影響を受けた | |
| Catrobat、[ 6 ] ScratchJr、[ 7 ] Snap !、[ 8 ] mBlock、[ 9 ] Turtlestitch [ 10 ] | |
Scratchは、主に5歳から16歳までの子供向けの教育ツールとして開発された、高水準のブロックベースのビジュアルプログラミング言語およびウェブサイトです。 [ 11 ] [ 12 ]ユーザーは、ブロックのようなインターフェースを使ってウェブサイト上でプロジェクトを作成できます。Scratchは、ミッチェル・レズニックとヤスミン・カファイが共同で受給した国立科学財団の助成金によって考案・設計されました。[ 13 ]
ScratchはMITメディアラボによって開発され、70以上の言語に翻訳されており[ 12 ] 、世界中のほとんどの地域で使用されています。Scratchは、放課後児童センター、学校、大学、その他の公共知識機関で教えられ、使用されています。2023年2月15日現在、この言語の公式ウェブサイトのコミュニティ統計によると、1億2,300万件以上のプロジェクトが1億300万人以上のユーザーによって共有されており、月間ウェブサイト訪問数は9,500万回を超えています[ 14 ] 。全体として、合計11億5,000万件以上のプロジェクトが作成されており、2024年4月12日にはサイトが10億番目のプロジェクトに到達しました。
Scratchという名称は、ディスクジョッキーが用いる「スクラッチ」と呼ばれる技術に由来しています。これは、レコードをクリップで留め、ターンテーブルで操作することで、様々な効果音や音楽を生み出す技術です。スクラッチと同様に、このウェブサイトでは、ユーザーが様々なメディア(グラフィック、サウンド、その他のプログラムを含む)をクリエイティブな方法で組み合わせ、ビデオゲーム、アニメーション、音楽、シミュレーションなどのプロジェクトを作成および「リミックス」することができます。[ 15 ]
スクラッチ3.0
ユーザーインターフェース

Scratchのインターフェースは、ステージエリア、ブロックパレット、そしてブロックを配置してスクリプトを作成するコーディングエリアの3つのセクションに分かれています。コーディングエリアでは、緑の旗を押すかコード自体をクリックすることでスクリプトを実行できます。ユーザーは独自のコードブロックを作成することもできます。作成したブロックは「マイブロック」セクションに表示されます。
ステージエリアには、アニメーションやタートルグラフィックスなどの結果が、小さいサイズまたは通常サイズで表示されます。全画面表示も選択可能です。また、すべてのスプライトのサムネイルが下部エリアに一覧表示されます。ステージはx座標とy座標を使用し、0,0がステージの中心となります。[ 16 ]
ステージングエリアの下部でスプライトを選択すると、ブロックパレットからコードブロックをコーディングエリアにドラッグすることで適用できます。コスチュームタブでは、ベクターエディタとビットマップエディタを使ってスプライトの外観を変更し、アニメーションを含む様々なエフェクトを作成できます。[ 16 ]サウンドタブでは、スプライトにサウンドや音楽を追加できます。[ 17 ]
スプライトや背景を作成する際には、ユーザーは手動でスプライトを描いたり、[ 16 ]ライブラリからスプライトを選択したり、画像をアップロードしたりすることができます。[ 17 ]
以下の表は、プログラミング ブロックのカテゴリを示しています。
| カテゴリ | 注記 | |
|---|---|---|
| モーション | 角度や方向などのスプライトの動き。 | |
| 見た目 | スプライトのビジュアルを制御します。 | |
| 音 | オーディオ ファイルとエフェクト を再生します。 | |
| イベント | イベント ハンドラーとブロードキャスター。 | |
| コントロール | 条件文、ループ、クローン作成。 | |
| センシング | スプライト、マウス ポインター、および背景 間の相互作用。 | |
| オペレーター | 数学演算子、接続詞、比較。 | |
| 変数 | 変数にアクセスして設定するためのブロック。クラウド変数は、プロジェクトの実行中のすべてのバージョン間で同期されます。 | |
| リスト | リストにアクセスして操作するためのブロック。 | |
| マイブロック | ユーザー定義関数はブロックとしてアクセス可能です。入力値を持つことができ、画面を更新せずに実行することもできます。 | |
| 拡張機能 | いつでもプロジェクトに追加できるブロックの追加カテゴリ (例: ペン、音楽)。 | |
オフライン編集


Scratch 3.0用のオフライン「デスクトップエディター」は、Microsoft StoreでMicrosoft Windows 10以降、AppleのmacOS、ChromeOS、Android、そして非公式にLinuxでも利用可能です[ a ]。Scratchはオープンソースパートナーと協力して、将来的にLinuxにも対応する予定です[ 18 ] 。これにより、Scratchプログラムをオフラインで作成・プレイできるようになります。以前のバージョンのオフラインエディターにもアクセスできます。
拡張機能
Scratchでは、拡張機能によってプロジェクトで使用できるブロックや機能が追加されます。Scratch 2.0では、拡張機能はすべてハードウェアベースで、ペンは通常のカテゴリでした。Scratch 3.0では、テキスト読み上げ機能などのソフトウェアベースの拡張機能に加え、micro:bitなどの新しいハードウェアベースの拡張機能も追加されました。拡張機能は以下のとおりです。

物理的な
- LEGO Mindstorms EV3 – モーターを制御し、LEGO Mindstorms EV3からセンサーデータを受信します。
- Makey Makey – Makey Makey を使用してプロジェクトを制御する
- LEGO Education WeDo 2.0 – モーターを制御し、LEGO WeDoからセンサーデータを受信します
- micro:bit – プロジェクトを制御するための micro:bit の使用
- LEGO BOOST – ロボット作品に命を吹き込む
- 直接的な力と加速 – 引っ張る、押す、動く、回転する感覚をつかむ
デジタル
Scratch 3.0のデジタル拡張機能の多くは、以前は通常のブロックカテゴリでしたが、煩雑さを軽減するために拡張機能セクションに移動されました。これには以下が含まれます。
- 音楽 – デジタル楽器(ドラム、トランペット、バイオリン、ピアノなど)を演奏できます。以前はサウンドカテゴリーに含まれていました。
- ペン – ステージ上に様々な太さと色で描画できます。以前は通常のブロックのカテゴリーでした。
- ビデオセンシング –カメラで動きを検知します。以前はセンシングカテゴリにありました。
- 顔認識 -カメラで動きを検出し、ユーザーの顔と相互作用する衣装やゲームを作成します。[ 19 ]
商業企業とのコラボレーションにより、新たなデジタル拡張機能も追加されました。これには以下が含まれます。
- テキスト読み上げ – テキスト内の単語を音声出力に変換します。特に言語オプション(Amazon が提供するさまざまな音声)があります。
- 翻訳 – Google 翻訳を使用して、ある言語のテキストをアラビア語、中国語、オランダ語、英語、フランス語、ギリシャ語、ノルウェー語、日本語など、さまざまな言語に翻訳します。
- Makey Makey – キーの押しやすさを向上させたり、複数のキーを順番に押したりするためのオプション。拡張機能をより細かく制御したい場合は、結合ブロックを掴むことができます。
2019年にニューヨーク大学が発表した論文では、Scratchで音楽をコーディングすることについて、「現在Scratchに実装されている音楽とサウンドブロックは、Scratchのコアユーザーベースである子供たちにとって意味のある音楽制作を制限し、妨げる可能性がある」と主張し、例示している。[ 20 ]
スクラッチラボ
Scratch Lab [ 21 ]では、Scratchチームによる実験が公開されており、将来的にウェブサイト全体に新しい機能を追加できるかどうかを検討しています。現在開発中の実験的な機能には、以下のものがあります。
- ビデオスプライト – スプライトにライブビデオを埋め込みます。
- アニメーションテキスト - 色、フォント、アニメーションを使用して言葉に命を吹き込みます。
ユーザーコミュニティ

Scratchは、学校、博物館、図書館、コミュニティセンター、家庭など、 さまざまな場所で使用されています。 [ 22 ] [ 23 ] [ 24 ] Scratchは主に8〜16歳のユーザー向けに設計されていますが、すべての年齢層で使用されており、2009年の時点でかなりの数の成人ユーザーベースがあります。[ 12 ] [ 25 ]この幅広い普及により、物理的およびデジタルの両方で多くの周辺コミュニティが形成されました。[ 14 ] 2020年4月、世界のプログラミング言語のTIOBEランキングで、Scratchはトップ20に含まれていました。TIOBEによると、Scratchで書かれたプロジェクトは5000万あり、毎月100万の新しいプロジェクトが追加されています。[ 26 ]
教育ユーザー
Scratch は、面白いプログラムを作成するのが比較的簡単で、習得したスキルをPythonやJavaなどの他のプログラミング言語にも応用できるため、入門言語として使用されます。
Scratchはゲーム作成専用ではありません。提供されるビジュアル素材を使って、プログラマーはアニメーション、テキスト、物語、音楽、アートなど、様々なものを作成できます。数学、歴史、さらには写真といった分野を学ぶためのプログラムはすでに数多く存在します。Scratchを使えば、教師は難しい概念を視覚的に理解できるアニメーションを用いて、概念的で視覚的な授業や科学実験課題を作成できます。社会科学分野では、インタラクティブな要素を取り入れたクイズ、ゲーム、チュートリアルを作成できます。Scratchを使うことで、若者はプログラミングのロジックや、創造的に構築し、協力する方法を理解することができます。[ 27 ]
Scratchはインドと世界各地のDAV組織の800以上の学校と70以上の大学で教えられています。 [ 28 ] [ 29 ]
高等教育では、ハーバード大学のCS50入門コンピュータサイエンスコースの最初の週にScratchが使用されています。 [ 30 ] [ 31 ]
オンラインコミュニティ

Scratchのユーザーは「Scratcher(スクラッチャー)」と呼ばれます。Scratcherはプロジェクトを共有し、フィードバックを受けることができます。プロジェクトは開発環境からScratchウェブサイトに直接アップロードでき、コミュニティのメンバーは誰でもソースコード全体を閲覧・ダウンロードして、研究したり、新しいプロジェクトにリミックスしたりすることができます。[ 32 ] [ 33 ] Scratcherはプロジェクトスタジオを作成したり、他のメンバーのプロジェクトにコメントしたり、お気に入りに登録したり、「いいね!」したり、他のメンバーをフォローしてプロジェクトや活動を確認したり、アイデアを共有したりすることもできます。プロジェクトはゲームやアニメーションから実用的なツールまで多岐にわたります。さらに、ユーザー間の創作と共有を促進するため、ウェブサイトでは「Scratchデザインスタジオ」チャレンジが頻繁に開催されています。
教育者には、ハーバード大学教育大学院が開発・支援する「ScratchEd」と呼ばれる独自のオンラインコミュニティがあります。このコミュニティでは、Scratch教育者が体験談を共有したり、リソースを交換したり、質問したりしています。[ 34 ]
スクラッチスタジオ
Scratcherは自分のプロジェクトをスタジオにアップロードできます。他のScratcherも自分のプロジェクトをスタジオにアップロードし、他のScratcherがそれを閲覧したり、コメントしたり、リミックスしたりできます。スタジオは通常、Scratcherが作成した様々なプロジェクトで構成されています。Scratcherが作成したスタジオの中には、すべてのプロジェクトを1つのライブラリにまとめるものがあります。作成者または管理者は、ユーザーをキュレーターとして招待したり、管理者に昇格させたりすることができます。スタジオを削除できるのは、作成者またはホストのみです。[ 35 ]

スクラッチウィキ
Scratch Wikiは、Scratchのサポートリソースであり、Scratchのウェブサイト、歴史、そしてScratchを取り巻く現象に関する情報を提供しています。Scratchチーム(Scratchの開発者)によってサポートされていますが、主にScratchユーザー(Scratcher)によって作成されており、Scratchのメインウェブサイトとは独立してホストされています。[ 36 ]
役割
役割は、プロフィールページやフォーラム投稿のユーザー名の下にラベルとして表示されます。荒らし行為を防ぐため、新規アカウントは通常の「Scratcher」役割ではなく、「New Scratcher」役割が割り当てられます。New Scratcherアカウントには、クラウドデータを使用できないことや、コメント投稿の間に最低30秒間のクールダウン期間を設けるなど、いくつかの制限が課せられます。一定期間交流やプロジェクト作成を行った後、アカウントはScratcher役割を取得できるようになります。[ 37 ]
Scratchの公式モデレーターと開発者は「Scratchチーム」のメンバーとして登録されており、通常、ユーザー名の末尾にアスタリスクが付いています。また、Scratchを教室で使用できる生徒と教育者向けの特別なアカウントも用意されています。
検閲
2020年8月、GreatFireは中国政府がScratchウェブサイトへのアクセスをブロックしたと発表しました。当時、中国では300万人以上がScratchを利用していたと推定されていました。[ 38 ] GreatFireは、ウェブサイトにマカオ、香港、台湾が国名として記載されていたことを理由に挙げています。[ 38 ] [ 39 ]
コードベース
プロジェクトエディターのソースコードは、3つのメジャーバージョンすべてと、現在のウェブサイトの大部分がGitHubの様々なリポジトリで公開されています。Scratch 3.0はJavaScriptベース、2.0はActionScriptでプログラムされています。[ 4 ]また、1.xバージョンはSqueakをベースにしており、Squeak自体はSmalltalk -80をベースにしています。[ 40 ]
2.0には、ActionScriptバージョンと並行して開発されていた実験的なJavaScriptベースのインタープリタがありました。[ 41 ]
Scratch 2.0のリリースから1年後の2014年5月13日、Scratchフォーラムの開発者が2.0をオープンソース化すると発表しました。[ 42 ]
3.0では、Scratchブロックは、ブロックベースのビジュアルプログラミング言語を作成するためにGoogleが開発したJavaScriptライブラリであるBlocklyを使用して実装されています。[ 43 ] [ 44 ]
イベント
Scratch教育者は、Scratch教育者ミートアップに直接集まることができます。これらの集まりでは、Scratch教育者は互いに学び合い、計算創造性を支援するアイデアや戦略を共有します。[ 45 ]
毎年5月には、「スクラッチ・ウィーク」(以前は「スクラッチ・デー」と呼ばれていました)が制定されます。コミュニティのメンバーは、この日またはその前後に、規模の大小を問わず、スクラッチを祝うイベントを開催することが奨励されています。これらのイベントは世界中で開催されており、イベントリストはスクラッチ・デーのウェブサイトでご覧いただけます。スクラッチ・ウィークは、スクラッチ・ウェブサイト上でスクラッチ関連のアクティビティに焦点を当てたシリーズです。[ 46 ]

毎年エイプリルフールになると、スクラッチ チームはユーザーにいたずらをしてイースター エッグを追加します。その一例として、プロジェクト内のすべてのイベント ブロックが同じブロックの猫バージョンに変わることが挙げられます。
歴史
2000年代初頭、 MITメディアラボの生涯幼稚園グループ(LLK)は、子供向けのビジュアルプログラミング言語を開発していました。[ 47 ] 2003年に、ミッチェル・レスニック、ヤスミン・カファイ、ジョン・マエダは、子供たちがコードで自分自身を表現するための新しいプログラミング環境の開発に対して、全米科学財団の助成金を獲得しました。 [ 13 ]ミッチェル・レスニックが率いるLLKは、UCLAのヤスミン・カファイのチームと提携して、ボストンとロサンゼルスのコンピュータクラブハウスと密接に協力し、これらの放課後青少年センターの実践と社会的ダイナミクスに設計の基礎を置きました。[ 13 ]それは、ラベル付けされたカテゴリもグリーンフラッグもない、基本的なプログラミング言語として始まりました。[ 48 ] AgentSheetsと同様に[ 49 ] Scratchは、後にブロックベースプログラミングとして知られる触覚プログラミングの概念を採用しました。 Scratchは、子供たちにプログラミングを教えることを目的として作られました。[ 48 ]
Scratchの理念は、チームのスローガン「想像し、プログラムし、共有する」に見られるように、コードの共有、再利用、そして組み合わせを奨励しています。[ 50 ]ユーザーは独自のプロジェクトを作成することも、他の人のプロジェクトを「リミックス」することもできます。Scratchで作成およびリミックスされたプロジェクトは、クリエイティブ・コモンズ表示-継承ライセンスの下でライセンスされます。[ 51 ] Scratchは、プロジェクトページの上部に、元のプロジェクトとプログラムを作成したユーザーのクレジットを自動的に表示します。[ 24 ]
Scratchは、コンピュータクラブハウスの若者とスタッフとの継続的な交流に基づいて開発されました。コンピュータクラブハウスでのScratchの活用は、他の放課後児童センターにとって、非公式な学習環境がテクノロジーの流暢性を高める上でどのように役立つかを示すモデルとなりました。[ 52 ]
Scratch 2.0は2013年5月9日にリリースされました。[ 16 ]このアップデートによりサイトの外観が変更され、オンラインプロジェクトエディタとオフラインエディタの両方が追加されました。[ 53 ]プロジェクト内でカスタムブロックを定義できるようになり、その他にもいくつかの改善が加えられました。[ 54 ] Scratch 2.0オフラインエディタはWindows、Mac、Linux版がScratchのウェブサイトから直接ダウンロードできましたが、Linux版のサポートは後に廃止されました。非公式のモバイル版はScratchフォーラムからダウンロードする必要がありました。[ 55 ] [ 56 ]

Scratch 3.0は、2016年にScratchチームによって初めて発表されました。2018年1月までに複数のパブリックアルファ版がリリースされ、その後、プレベータ版である「プレビュー」版がリリースされました。Scratch 3.0のベータ版は2018年8月1日にリリースされました。[ 57 ]ほとんどのブラウザで使用できますが、 Internet Explorerは例外です。[ 58 ]
Scratch 3.0は、3.x系の最初のリリースバージョンであり、2019年1月2日にリリースされました。2023年6月28日には、[ 59 ] Scratchウェブサイトのヘッダーとリンクが青から紫に変更され、新しいオプションの高コントラストブロックカラーが導入され、色覚異常の人がサイトを読みやすく使いやすくなりました。[ 60 ]
2013年にScratch財団(旧Code-To-Learn財団)が設立され、2019年3月11日にScratchチームはMITメディアラボから分離し、Scratch財団に移りました。[ 61 ] MITメディアラボはScratch財団と緊密に協力し続けています。
2025年、スクラッチは寄付金制度として特典を提供するスクラッチメンバーシップを導入しました。[ 62 ]
スクラッチ財団
Scratch Foundation(旧Code to Learn Foundation)は、ScratchとScratchJrの所有権を保有するために2013年に設立された企業です。MITメディアラボは2019年にScratchとScratchJrをScratch Foundationに移管しました。Scratch Foundationのウェブサイトはこちらです。
ファイルタイプ
Scratch 1.4 では、プロジェクトを保存するために *.sb ファイルを使用するファイル形式でした。
*.sb ファイルは 4 つのセクションに分かれています。
- 「ヘッダー」、この10バイトのヘッダーには、Scratch 1.2以降のバージョンではASCII文字列「ScratchV02」が含まれ、Scratch 1.2以下のバージョンでは「ScratchV01」が含まれます。
- 「infoSize」は、プロジェクトのinfoObjectsの長さをエンコードします。4バイト長、32ビット、ビッグエンディアン整数です。
- 「infoObjects」は辞書形式のデータセクションです。以下の情報が含まれています。「thumbnail」(プロジェクトのステージのサムネイル)、「author」(プロジェクト作成者のユーザー名)、「comment」(プロジェクトメモ)、「history」(保存とアップロードのログ)、「scratch-version」(ファイルの保存に使用したScratchのバージョン)。
- 「contents」は、ステージをルートとするオブジェクトテーブルです。プログラム内のすべてのオブジェクトは、ここに参照として保存されます。
Scratch 2.0は*.sb2ファイル形式を使用します。これらは基本的にzipファイルで、 .jsonファイルに加えて、Scratchプロジェクトのコンテンツ(サウンド(.wavファイルとして保存)と画像( .pngファイルとして保存))が含まれています。[ 63 ] project.jsonを除く各ファイルタイプは、0から始まり、ファイルが追加されるごとにカウントアップする番号として保存されます。「0.png」というラベルの画像ファイルは常に480×360の白い画像ですが、「0.wav」は削除されていない最も古いファイルになります。
Scratchの実験版であるScratchXでは.sbxファイル形式が使用されていました。[ 64 ]
Scratch 3.0 では *.sb3 形式が使用されます。.sb3 ファイルは .sb2 ファイルとほぼ同じです。
旧バージョン
Scratchのメインウェブサイトでは現在、最新バージョン(Scratch 3.0)のみが稼働していますが、Scratch 2.0(および以前のScratch 1.4)のオフラインエディターは引き続きダウンロード可能であり[ 65 ]、ローカルでゲームを作成して実行するために使用できます。[ 66 ] Scratch 2.0ランチャーからプロジェクトをアップロードすることは引き続き可能であり、メインサイトにアップロードするとすぐにScratch 3.0に変換されます。[ 67 ] Scratch 3.0のオフラインバージョンもあります。
テクノロジー
Scratch 1.4以前のエディターはSqueakで書かれていましたが、オンラインプロジェクトビューアーはJavaで書かれ、後にAdobe Flashで書かれたプレイヤーが追加されました。[ 40 ] [ 68 ] Scratch 2.0では、オンライン版はAdobe Flash、オフラインエディターはAdobe AIRに依存していました。これらは人気がなくなり、Adobeは2020年末にサポートを終了しました。[ 69 ] [ 70 ]
Scratch 2.0ではサウンドのインポート方法が変更されたため、Scratch 1.4の多くのサウンドが動作しなくなりました。(プロジェクトファイルは*.sbから*.sb2に変更されました。)[ 71 ]
インタフェース

Scratch 2.0では、ステージエリアは左側にあり、プログラミングブロックパレットは中央に、コーディングエリアは右側にあります。拡張機能はパレットの「その他のブロック」セクションにあります。[ 25 ]
Scratch 2.0のWeb版ではプロジェクトの自動保存が導入されました。[ 72 ] :23
Scratch 2.0 のブロック パレットは、次から次へとスクロールできない個別のセクションで構成されています。以下の表に、さまざまなセクションを示します。
| カテゴリ | 注記 | |
|---|---|---|
| モーション | スプライトの位置を移動および変更します | |
| イベント | イベントハンドラー | |
| 見た目 | スプライトのビジュアルを制御します | |
| コントロール | 条件文とループ | |
| 音 | オーディオファイル、シーケンス、音楽 | |
| センシング | スプライトインタラクション | |
| ペン | キャンバスに描く | |
| オペレーター | 数学演算子 | |
| データ | 変数、配列、リスト | |
| より多くのブロック | 関数と拡張機能、戻り値は常にvoid | |
Scratch 2.0ではバックパックが導入され、スクリプト、スプライト、コスチューム、サウンドをプロジェクト間で転送できるようになりました。[ 72 ]:14–15
特徴
Scratchは、スプライトと呼ばれる複数のアクティブなオブジェクトを用いたイベント駆動型プログラミングを採用しています。[ 16 ]スプライトは、Scratchに付属するシンプルなエディタでベクターまたはビットマップグラフィックとしてゼロから描画することも、外部ソースからインポートすることもできます。Scratch 3.0は、「リスト」と呼ばれる1次元配列のみをサポートし、浮動小数点スカラーと文字列はサポートされていますが、文字列操作機能は制限されています。強力なマルチメディア機能とマルチスレッドプログラミングスタイルと、Scratchプログラミング言語の比較的限定的な機能範囲との間には、大きな対照があります。
Scratch 2.0の機能
Scratch 2.0は、プロシージャを第一級構造体として扱わず、 Scratch 2.0拡張プロトコルによるファイルI/Oオプションが制限されています。これは、Scratch 2.0と他のプログラム間の相互作用を可能にする実験的な拡張機能です。[ 73 ]拡張プロトコルは、レゴマインドストーム[ 74 ]やArduino [ 75 ]などのハードウェアボードとのインターフェースを可能にします。Scratch 2.0には、次の機能もあります。
- スマートブロックスイッチング
- 2列のカテゴリメニュー
- プロジェクト管理の逆順
- 左側に展示ステージ
- 正方形ブロック入力
- コンパクトエディター
- スプライトプロパティの折りたたみ
- Scratch 2.0のテーマ
スナップ!(自分だけのブロックを作ろう)
Scratchにヒントを得た、より高度なビジュアルプログラミング言語がSnap !である。Snap!は、第一級の手続き(その数学的基礎はラムダ計算とも呼ばれる)、第一級のリスト(リストのリストを含む)、そしてプロトタイプ継承とネスト可能なスプライトを備えた真の第一級のオブジェクト指向スプライトを特徴としているが、これらはScratchには含まれていない。[ 76 ] Snap !(旧称「BYOB」)は、カリフォルニア大学バークレー校のBrian Harvey [ 79 ] [ 80 ]が提供したドキュメントに基づいてJens Mönig [ 77 ] [ 78 ]によって開発され、コンピュータサイエンスを専攻しない学生向けのコンピュータサイエンス入門コース「The Beauty and Joy of Computing」で使用されている。[ 81 ] 2人とも「Snap ! 」を設計する前はScratchチームのメンバーだった。[ 82 ] [ 25 ]
スクラッチジュニア
2014年7月にはiPad向けにScratchJrがリリースされ、2016年にはAndroid向けにScratchJrがリリースされました。Scratchから大きな影響を受け、ミッチ・レズニック氏が共同リーダーを務めたにもかかわらず、5歳から7歳までの幼児向けに完全に書き直されたものです。[ 83 ]
コミュニティによる変更
Scratchはオープンソースであるため、ユーザーエクスペリエンスの向上や改良を目的とした数多くのフォークやブラウザ拡張機能がコミュニティによって作成されています。ScratchToolsやScratch Addonsは、Scratchのウェブサイトやエディターに多くのアップグレードや新機能を追加するオープンソースのブラウザ拡張機能の例です。[ 84 ] [ 85 ]
TurboWarpはScratch 3.0エディタのフォークであり、プロジェクト実行時にScratchをJavaScriptコードにコンパイルすることで、プロジェクトの全体的なパフォーマンスを大幅に向上させます。 [ 86 ]さらに、多くの技術的な設定があり、Scratch Addonsが提供するのと同じアドオンがあります。[ 87 ] TurboWarpはプロジェクトをスタンドアロンのHTML5、バンドル(macOS)、およびEXEファイルにエクスポートすることもできます。[ 88 ]
ユーザーはJavaScriptを使ってScratch 3.0用の独自の拡張機能を作成することもできます。[ 89 ] Scratch 3.0は、ユーザーによる非公式のJavaScript拡張機能の開発を可能にすることを意図していましたが、モデレーションリスクのため断念されました。その結果、公式サイトではJavaScript拡張機能の追加は許可されていませんが、Scratchのいくつかの改変版では許可されています。
参照
- Blockly は、Scratch がコードブロックを作成するために使用するインターフェースです。
- Snap! (プログラミング言語)
- スウィフトプレイグラウンド
- アリス(ソフトウェア)
- Twine(ソフトウェア)
- レゴ マインドストーム EV3
- Koduゲームラボ
- コード.org
- プログラム可能なクリケット
- ビジュアルプログラミング言語
- ペンシルコード(プログラミング言語)
注記
- ^ Linux の Scratch 用のオープンソース プロジェクト。Scratchチームによって作成されたものではありません。
参考文献
- ^マロニー、ジョン、バード、レオ、ヤスミン・カファイ、ナタリー・ラスク、ブライアン・シルバーマン、ミッチェル・レスニック(2004年1月29~30日)。Scratch :先行公開。コンピューティングを通じた創造、つながり、そしてコラボレーションに関する第2回国際会議。第6節:プロジェクトの現状と今後の取り組み。doi :10.1109/C5.2004.33 – ResearchGate経由。
- ^ 「トーク:Scratchタイムライン – Scratch Wiki」 . Scratch Wiki .
- ^ a b Lee, David (2018年12月28日). 「Scratch 3.0について知っておくべきこと」 . Computhink . 2024年2月9日閲覧。
- ^ a b Frang, Corey (2019年2月28日). 「ScratchをFlashからJavaScriptに移植する:パフォーマンス、相互運用性、拡張性」 . bocoup . 2024年2月9日閲覧。
- ^ 「フリーソフトウェアおよびオープンソースソフトウェアへのコミットメント強化」 Scratch Foundation . 2024年12月6日閲覧。
- ^ 「Catrobatホーム」 . catrobat.org .
- ^ 「ScratchJr – ホーム」 . scratchjr.org .
- ^ 「Snap! 自分だけのブロックを作ろう」 . snap.berkeley.edu .
- ^ 「STEAM教育のためのロボットキットとレーザーカッター」Makeblock . 2025年11月4日閲覧。
- ^ 「Code! .. Draw! .. Stitch! / TurtleStitch - Coded Embroidery」 . Code! .. Draw! .. Stitch! / TurtleStitch - Coded Embroidery . 2025年11月7日閲覧。
- ^ 「KS1 / KS2 コンピューティング:ロボットワニのプログラミング」 BBC Teach . 2024年12月8日閲覧。
- ^ a b c「Scratch – About」 . scratch.mit.edu . 2022年10月11日.
- ^ a b c「NSF Award Search: Award # 0325828 – ITR: コミュニティ・テクノロジー・センターにおける非公式学習と技術的流暢性を高めるネットワーク化されたメディアリッチ・プログラミング環境」 www.nsf.gov . 2021年4月15日閲覧。
- ^ a b「コミュニティ統計の概要」 . scratch.mit.edu . 2016年4月6日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ Schorow, Stephanie (2007年5月14日). 「Creating from Scratch」 . MITニュース. 2018年10月13日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ a b c d eマルジ、マジド (2014). Scratch でプログラミングを学びましょう。カリフォルニア州サンフランシスコ: スターチプレスはありません。ページ17、1 ~ 9、13 ~ 15。ISBN 978-1-59327-543-3。
- ^ a b「Science Buddies: Scratchユーザーガイド:Scratchのインストールと使い始め方」 . ScienceBuddies.org . 2019年5月18日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ 「Scratch Desktop」 . 2019年9月19日閲覧。
- ^ 「Scratch - Imagine, Program, Share」 . scratch.mit.edu . 2025年12月10日閲覧。
- ^ 「Scratchで音楽を作る:高い床、低い天井、そして狭い壁? /」 Jitp.commons.gc.cuny.edu. 2019年5月16日. 2022年2月27日閲覧。
- ^ "Scratch Lab" . lab.scratch.mit.edu . 2023年9月27日閲覧。
- ^ Oliveira, Michael (2014年4月30日). 「カナダの学校、子供たちにコンピューターコーディングを教え始める」 . CTV.ca. 2019年5月18日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ 「スクラッチ・デー」ミネソタ科学博物館。2013年4月8日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ a bラム、アネット、ジョンソン、ラリー(2011年4月)。「Scratch:21世紀の学習者のためのコンピュータプログラミング」(PDF)。Teacher Librarian。38 ( 4):64-68。2019年5月18日閲覧。
- ^ a b c Resnick, Mitchel; Maloney, John; Hernández, Andrés; Rusk, Natalie ; Eastmond, Evelyn; Brennan, Karen; Millner, Amon; Rosenbaum, Eric; Silver, Jay; Silverman, Brian; Kafai, Yasmin (2009). 「Scratch: Programming for All」(PDF) . Communications of the ACM . 52 (11): 60– 67. doi : 10.1145/1592761.1592779 . S2CID 229934947 .
- ^ Fay, Joe (2020年4月6日). 「子供向けプログラミング言語 Scratch、最新の開発者ランキングでトップ20にランクイン • DEVCLASS」 . DEVCLASS . 2020年4月27日閲覧。
- ^ Martin, Neil (2015年6月25日). 「Scratchとは何か? AVかITか?」 AV Magazine . 2019年5月18日時点のオリジナルよりアーカイブ。 2019年5月18日閲覧。
- ^ 「DAV CSシラバス」(PDF) 。 2018年7月13日時点のオリジナル(PDF)からアーカイブ。2019年5月18日閲覧。
- ^ 「DAV Jharkhand Syllabus」 . 2019年5月18日閲覧。
- ^ Young, Jeffrey R. (2007年7月20日). 「Scratchという新しいプログラミング言語の核心は、恐怖ではなく楽しさ」 . The Chronicle of Higher Education . ISSN 0009-5982 . 2019年5月18日時点のオリジナルよりアーカイブ。 2019年5月18日閲覧。
- ^ “CS50 シラバス” . 2015年3月17日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ Monroy-Hernandez, Andres; Hill, Benjamin Mako; Gonzalez-Rivero, Jazmin; Boyd, Danah (2011). 「コンピュータはクレジットを付与できない:オンラインリミックスコミュニティにおける自動アトリビューションの限界」第29回国際コンピューティングシステム人間工学会議 (CHI '11) 議事録. ACM. pp. 3421–30 . arXiv : 1507.01285 . doi : 10.1145/1978942.1979452 . S2CID 7494330 .
- ^ Hill, BM; Monroy-Hernández, A.; Olson, KR (2010). 「ソーシャルメディア共有ウェブサイトにおけるリミックスへの反応」. SIGCHI ヒューマンファクターズ・イン・コンピューティングシステム会議論文集. ワシントン D.C.: AAAI Press. pp. 3421– 3430. arXiv : 1507.01284 . Bibcode : 2015arXiv150701284M . doi : 10.1145/1978942.1979452 . ISBN 978-1-57735-445-1. OCLC 844857775 .
- ^ 「Scratch for Educators」 . scratch.mit.edu . 2008年10月5日時点のオリジナルよりアーカイブ。 2010年5月18日閲覧。
- ^ 「Scratch Studiosガイド」(PDF) . Scratchリソース.
- ^ “Scratch Wiki” . en.scratch-wiki.info . 2019年5月12日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ 「Scratcherとは何か、どうすればなれるのか?」 mitscratch.freshdesk.com 2021年11月4日. 2024年2月10日閲覧。
- ^ a b Liao, Rita (2020年9月7日). 「中国、MITの子供向けプログラミング言語Scratchを禁止」 . TechCrunch . 2021年4月27日閲覧。
- ^ 「中国、MITの子供向けプログラミング言語Scratchをブロック」 Developer Tech News、2020年9月8日。 2020年11月19日閲覧。
- ^ a b「Scratch」 . Squeak/Smalltalk . 2021年3月7日閲覧。
- ^ Lightnin (2013年10月29日). 「HTML5 Scratchプレイヤー(オープンソース化!)の完成にご協力いただける方を募集しています」 . Discuss Scratch . 2019年5月18日閲覧。
- ^ speakvisually (2014年5月13日). 「Scratch 2.0 オフライン オープンソースコード!」 . Scratchについて議論する. 2024年1月13日閲覧。
- ^ 「Blockly」。Google Developers。
- ^ Pasternak, Erik (2019年1月17日). 「Scratch 3.0の新しいプログラミングブロック、Blockly上に構築」 . 2019年7月23日時点のオリジナルよりアーカイブ。2019年10月2日閲覧。
- ^ “Scratch Educator” . Meetup.com . 2019年4月21日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ “Scratch Week” . 2019年4月7日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ “LLK – プロジェクト – ビルディングブロックプログラミング” . llk.media.mit.edu . 2001年4月30日時点のオリジナルよりアーカイブ。 2021年12月19日閲覧。
- ^ a b「Scratch 1.0の開発」 . en.scratch-wiki.info . 2019年1月3日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ 「触覚プログラミング:プログラムの理解、構成、共有をサポートする統合操作パラダイム」 。 2021年10月15日閲覧。
- ^ “Scratch – Imagine, Program, Share” . scratch.mit.edu . 2011年2月22日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ 「クリエイティブ・コモンズ・ライセンス」 . wiki.scratch.mit.edu . 2019年5月18日時点のオリジナルよりアーカイブ。 2019年5月18日閲覧。
- ^ 「ITR:コミュニティ・テクノロジー・センターにおける非公式学習と技術的流暢性を高めるネットワーク化されたメディアリッチ・プログラミング環境」国立科学財団。2015年12月30日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ “Scratch Desktop” . scratch.mit.edu . 2019年4月6日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ Biggs, John (2013年5月10日). 「子供向けプログラミングツール Scratch がブラウザで実行可能に」TechCrunch . 2017年7月9日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ Shane (grokblah)、Scratchチームを代表して (2013年8月29日). 「Scratch 2 オフラインエディター(ベータ版)のアップデート版がリリースされました!」 . Discuss Scratch . 2019年5月18日閲覧。
- ^ 「Scratch 2.0 Preview」 YouTube MITScratchTeam 2013年5月1日. 2014年1月24日時点のオリジナルよりアーカイブ。 2019年5月18日閲覧。
- ^ 「Scratch 3.0について知っておくべき3つのこと」。Medium.com 。2019年1月31日。2019年5月12日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ “Scratch 3.0” . scratch.mit.edu . 2019年4月6日時点のオリジナルよりアーカイブ。 2019年5月18日閲覧。
- ^ ceebee、Scratchチームを代表して(2023年6月28日)。「カラーコントラストはここに!」Scratchについて議論する。2023年9月5日閲覧。
- ^ ceebee、Scratchチームを代表して(2023年6月5日)。「近日公開:Scratchのカラーコントラスト!」 Discuss Scratch 。2023年9月5日閲覧。
- ^ Scratch創設者の一人、ミッチェル・レズニック(2019年3月12日)「Scratchの成長を支える - ミッチェル・レズニック - Medium」Medium。2024年3月5日閲覧。
- ^ 「Scratchメンバーシップとは何ですか?」 Scratchヘルプセンター。 2026年1月14日閲覧。
- ^ 「Scratchファイルフォーマット(2.0)」 . Scratch Wiki . 2019年10月2日閲覧。
- ^ “LLK/スクラッチx” . GitHub。 2022 年 8 月 16 日。
- ^ 「Scratch 2.0 オフラインエディター」 . MIT . 2019年9月21日閲覧。
- ^ 「Scratch 3.0について知っておくべき3つのこと」。Scratchチーム。2019年1月31日。 2019年9月21日閲覧。
- ^ 「オフラインエディター(2.0)– Scratch Wiki」 . en.scratch-wiki.info . 2021年4月27日閲覧。
- ^ 「Scratchフォーラム/ベータ版Flashプレーヤー」。Scratchアーカイブフォーラム。 2021年3月7日閲覧。
- ^ O'Donnell, Lindsey (2019年1月14日). 「Mozilla、Firefox 69でAdobe Flashのデフォルトサポートを廃止」 . 2019年9月21日閲覧。
- ^ Adobe Corporate Communications (2019年5月30日). 「Adobe AIRの将来」 . 2019年8月25日時点のオリジナルよりアーカイブ。2019年9月21日閲覧。
- ^ 「リファレンスガイド Scratch 1.4」(PDF)メインEDU Scratch.mit.edu 2025年4月25日閲覧。
- ^ a bマクマナス、ショーン (2013). Scratchプログラミング入門. レミントン・スパ: Easy Steps. ISBN 978-1-84078-612-5。
- ^ “Scratch Extension” . MIT. 2019年5月18日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ 「EV3+Scratch Extension」 . Scratch extension GitHub . Code & Circuit. 2016年1月20日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ 「Firmata を搭載した Arduino ボードと通信するための予備的な Scratch 拡張機能」。GitHubの Scratch 拡張機能。Damellis。2018年1月16日時点のオリジナルよりアーカイブ。 2019年5月18日閲覧。
- ^ 「Snap ! – Build Your Own Blocks」カリフォルニア大学バークレー校。2019年5月16日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ Mönig, Jens. 「Jens on Scratch」 . Scratch . 2019年5月18日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ Mönig, Jens (2011年5月31日). 「BYOB 3.1 – Scratchのプロトタイプ継承」 . Chirp Blog . 2013年12月6日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ “Brian Harvey” . Electrical Engineering and Computer Sciences . 2019年4月3日時点のオリジナルよりアーカイブ。 2019年5月18日閲覧。
- ^ "bharvey" . Scratch . 2019年5月18日時点のオリジナルよりアーカイブ。2019年5月18日閲覧。
- ^ 「CS10:コンピューティングの美しさと喜び」 EECS教育支援グループのホームページ。2014年1月23日時点のオリジナルよりアーカイブ。 2019年5月18日閲覧。
- ^ “Relationship With the Scratch Team” . 2020年1月2日時点のオリジナルよりアーカイブ。2020年1月2日閲覧。
- ^ 「ScratchJrについて」 . scratchjr.org . 2019年9月19日閲覧。
- ^ 「よくある質問」 . Scratch Addons Docs . 2024年1月7日閲覧。
- ^ 「Scratchプログラミング環境はすべての人に理想的か?」(PDF) .第15回国際コンピュータ支援教育会議議事録. ISBN 978-989-758-641-5。
- ^ 「TurboWarpでScratchプロジェクトを10~100倍高速化する方法 | TurboWarpドキュメント」 . docs.turbowarp.org . 2024年1月7日閲覧。
- ^ 「TurboWarp - Scratchプロジェクトをより速く実行」 . turbowarp.org . 2022年4月17日閲覧。
- ^ "TurboWarp Packager" . packager.turbowarp.org . 2024年1月7日閲覧。
- ^ 「Scratch 3.0 Extensions」 . Github . MIT . 2019年9月19日閲覧。