Scratch

Scratch是麻省理工媒體實驗室終身幼稚園組开发的一套以積木塊為基礎的視覺化程式設計語言開發平台，於150多個國家和地區發行，並提供約60多種語言版本。Scratch由Mitchel Resnick和Andrés Monroy-Hernández創立。

Scratch最初(1.0)可安裝在Mac OS X、Windows、Linux的平台上；2.0改使用ActionScript编制，3.0改使用HTML5（实际上是React）编写，并可运行于各种浏览器。

Scratch编程语言本身的程序源碼完全開放于GitHub，其中橘色猫咪的象徵图案和Scratch名称圖案受版權保护。位于https://scratch.mit.edu的Scratch网站的后端、使用DjangoBB搭建的论坛和使用MediaWiki搭建的Scratch wiki并不是开源的。

主旨
Scratch讓程式設計語言初學者不需先學習語言語法便能設計專案。开发者期望通过學習製作Scratch，启发和激勵用戶在愉快的環境下經由操作（如設計互動故事、多人遊戲）去學習程式設計、數學和計算知識，同時获得創造性的思考、邏輯編程和協同工作的体验。

概覽
Scratch测试版由麻省理工媒體實驗室終身-{zh-cn:幼儿园; zh-tw:幼稚園}-組於2006年發布。

Scratch適用於全年齡層用戶。即便用户从未學过程式設計，通过拖曳预先设定好的积木式程序模件，堆疊出指令，设置或控制角色及背景的行动和变化，从而完成程序撰寫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的1.x版本用Squeak编写，从2.0开始改为ActionScript，自3.0後使用HTML5。Scratch 可安裝其發行的應用程式進行離線編輯。其中，1.x及2.0版本需要flash插件，3.0则不需要使用。

界面與功能
Scratch開發平台的使用者界面分為四部分：程序模件列表，程序設計平台，预览窗口和角色列表。

在1.4版本中，程序模件列表將其分為8類：動作、外觀、聲音、畫筆、控制、偵測、运算、變量。2.0版本中，有动作、外观、声音、画笔、变量、事件、控制、侦测、运算符和逻辑运算，更多模块。3.0版本中，有动作、外观、声音、事件、控制、侦测、运算符和變數（雲端變數）、函式积木等，另外可以通过扩充功能增加更多模組，有畫筆、攝影機、人脸识别等，還能連接遊戲手把。程序模件各有不同的顏色和形狀，以便识别。

Scratch利用「廣播」功能实现事件驱动，協調各個子程式的运行。Scratch能提前导入图片、音频素材，支持一维数组，以功能封装的方式简化了角色碰撞偵測功能。Scratch不易出现导致程序完全无法运行的严重错误。

主要不足：Scratch沒有針對電腦文件的輸入/輸出功能，不支持多維度表格序列的嵌入，自定义子程序不支持设置形式参数也不支持设置返回值，无法进行角色的局部碰撞檢測，缺少并发控制，不方便进行逻辑条件的复杂组合，调试困难。

用戶社群
Scratch被學校、博物館、社區中心等用作教學和展示。例如，香港青年協會經常舉辦Scratch體驗活動，以推動學生自由發揮創意。Scratch程序亦附設不同的語言界面，方便非英语用户使用。

線上社群
Scratch设立了一個線上社群，其口號為「想像·編程·分享」，分享和創意是Scratch官网最重要的理念。

Scratch最终成品并非原始碼，而是所有角色的行為和結合。用戶可以將源文件上傳至線上社群以供分享。線上社群的成員可以自由下載該项目的原始碼，來研究該项目的結構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)。除此之外，各成員可自由評論、標籤和「讚」不同的项目以及发表和分享意見。

線上社群中有不同類型的项目，範圍包括遊戲、動畫、簡報和聊天機器人。所有项目都以創用CC的特許方式發佈，也可透過JavaScript播放。線上社群每月都有着一百萬點擊率，且擁有74,734,356名註冊成員，以及超過八千二百二十六萬份作品在線上社群上分享（截至2021年8月6日）。該線上社群隨後開設了不同網頁，如ScratchEd和ScratchJr
等，以促進各使用者的交流。

雲端平台
自Scratch 2.0版本起，Scratch團隊搭建了一个网站以供用户们在线上传项目，以及预览他人的项目。

衍生软件
Scratch程序有衍生出其它软件，例如Snap!，Turbowarp（将Scratch项目转换为JavaScript以优化性能）,clipcc（增强了扩展系统、高质量笔、舞台布局等）等

争议
2020年8月，有多家中国大陆媒体报道Scratch官网被发现在注册账户时，将香港、澳门、台湾与中国并列划入“国家”一栏。在平台的开放论坛上有部分用户上传的反中共言论，包括港独、台独、“借中美贸易摩擦抹黑中方”等言论。目前，Scratch官网和论坛已被中国大陸防火长城屏蔽，在中国大陆无法正常访问，仅能以离线版本编程，但Scratch wiki在后来又可以被访问。

另见
 Scratch Wiki
 App Inventor
 Micro Bit

參考資料

外部链接


Scratch Wiki  


台灣宜蘭縣線上版 


Category:Scratch
Category:程序设计语言
Category:自由跨平台軟體
Category:視覺化程式設計語言
Category:Smalltalk编程语言家族
Category:2001年建立的程式語言