Scratch

来自Local Chinese Wikipedia
~2026-28934-44留言2026年5月14日 (四) 00:29的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

package.lua第80行Lua错误:module 'Module:CGroup/core' not found Template:Otheruses

页面Module:Infobox/styles.css没有内容。

Scratch
File:Scratchlogo.svg
编程范型指令式事件驱动
设计者Mitchel Resnick、Andrés Monroy-Hernández
实作者麻省理工媒体实验室 终身幼稚园组
发行时间2006
当前版本Template:Software version
型态系统动态
实作语言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. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  2. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  3. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  4. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  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. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  7. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  8. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  9. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  10. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  11. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  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. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  14. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  15. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  16. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  17. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  18. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  19. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  20. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  21. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found

外部链接[编辑]

package.lua第80行Lua错误:module 'Module:Navbar/configuration' not found