Scratch

维基百科,自由的百科全书

这是Scratch当前版本,由~2026-28934-44留言编辑于2026年5月14日 (四) 00:29。这个网址是本页该版本的固定链接。

(差异) ←上一修订 | 最后版本 (差异) | 下一修订→ (差异)
跳转到导航 跳转到搜索
Scratch
File:Scratchlogo.svg
编程范型指令式事件驅動
設計者Mitchel Resnick、Andrés Monroy-Hernández
實作者麻省理工媒体实验室 終身幼稚園組
发行时间2006
当前版本
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    型態系統動態
    實作語言Squeak(v1.4前)
    Actionscript(v2.0)
    HTML5 (v3.0)
    操作系统WindowsmacOSLinuxAndroidChromeOS
    許可證開放源碼GPLv2和封閉性軟件
    文件扩展名.sb、.sprite(v1.4前)
    .sb2、.sprite2(v2.0)
    .sb3、.sprite3(v3.0)
    網站scratch.mit.edu
    主要實作產品
    Scratch
    受影响于
    LogoSmalltalkHyperCard
    StarLogoAgentSheetsEtoys

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

    Scratch最初(1.0)可安裝在Mac OS XWindowsLinux的平台上;2.0改使用ActionScript编制,3.0改使用HTML5(实际上是React)编写,并可运行于各种浏览器。

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

    主旨[编辑]

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

    概覽[编辑]

    Scratch测试版由麻省理工媒體實驗室終身幼儿园組於2006年發布[3]

    Scratch適用於全年齡層用戶。即便用户从未學过程式設計,通过拖曳预先设定好的积木式程序模件,堆疊出指令,设置或控制角色及背景的行动和变化,从而完成程序撰寫[4][5]

    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被學校博物館[6]社區中心等用作教學展示。例如,香港青年協會經常舉辦Scratch體驗活動,以推動學生自由發揮創意[7][8][9]。Scratch程序亦附設不同的語言界面,方便非英语用户使用。[10]

    線上社群[编辑]

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

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

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

    雲端平台[编辑]

    自Scratch 2.0版本起,Scratch團隊搭建了一个网站以供用户们在线上传项目,以及预览他人的项目。[17]

    衍生软件[编辑]

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

    争议[编辑]

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

    另见[编辑]

    參考資料[编辑]

    1. ^ Scratch Foundation. GitHub. [2026-02-06] (English). 
    2. ^ 存档副本. (原始内容存档于2012-06-18). 
    3. ^ 麻省理工大学; Mitchel Resnick, John Maloney, Andres Monroy-Hernandez, Natalie Rusk, Evelyn Eastmond, Amon Millner, Jay Silver, Eric Rosenbaum, Karen Brennan, Amos Blanton, Brian Silverman, Paula Bonta, Yasmin Kafai, Kylie Peppler. Scratch: imagine, program, share. 麻省理工大学. [25 May 2007]. (原始内容存档于2012-06-26). 
    4. ^ Scratch - Imagine, Program, Share. scratch.mit.edu. [2018-11-20]. (原始内容存档于2018-11-18). 
    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. ^ Bricolage. [2018-11-20]. (原始内容存档于2013-04-03). 
    7. ^ 青年協會. Scratch創意體驗學習活動 ─ IVE Tsing Yi. 2011-08-19 [2012-06-26]. (原始内容存档于2015-04-02) (中文(香港)). 
    8. ^ 青年協會. Scratch Day Hong Kong 2010 – 記者現場報導. 2010-05-26 [2012-06-26]. (原始内容存档于2015-04-02) (中文(香港)). 
    9. ^ 青年協會. LEAD @ e-zone科技創意夏令營2011. 2011-08-16 [2012-06-26]. (原始内容存档于2015-04-02) (中文(香港)). 
    10. ^ Scratch - About. scratch.mit.edu. [2020-05-02]. (原始内容存档于2011-02-22). 
    11. ^ 存档副本. [2017-08-10]. (原始内容存档于2011-02-22). 
    12. ^ 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)[永久失效連結]
    13. ^ 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). [2012-06-26]. (原始内容存档于2012-10-12). 
    14. ^ Scratch usage statistics. [2021-08-06]. (原始内容存档于2021-08-06). 
    15. ^ 存档副本. [2010-07-28]. (原始内容存档于2011-07-06). 
    16. ^ ScratchEd. scratched.media.mit.edu. [2018-11-20]. (原始内容存档于2014-01-22). 
    17. ^ Scratch - Imagine, Program, Share. scratch.mit.edu. [2018-11-20]. (原始内容存档于2018-11-16). 
    18. ^ Blocks - Scratch Wiki. wiki.scratch.mit.edu. [2018-11-20]. (原始内容存档于2011-09-02). 
    19. ^ Snap! (Build Your Own Blocks) 4.2. byob.berkeley.edu. [2018-11-20]. (原始内容存档于2010-08-23). 
    20. ^ 丁君朋. 未来网评:开放的中国不“排外”,但必须要“排毒”. 未来网 (中国少年先锋队). 2020-08-11 [2020-08-28]. (原始内容存档于2020-09-05) (中文(中国大陆)). 
    21. ^ 林伊人. 少儿编程平台Scratch被曝辱华 行业人士:应大力发展本土计算机编程语言. 中国网. 2020-08-21 [2020-08-23]. (原始内容存档于2020-08-22) (中文(中国大陆)). 

    外部链接[编辑]