Scratch(全球少儿图形化编程语言)
Scratch(全球少儿图形化编程语言)是由麻省理工学院(MIT)媒体实验室终身幼儿园团队开发,后由 Scratch 基金会独立运营的免费图形化编程语言,面向全球 8 至 16 岁青少年设计,同时支持全年龄段用户使用[1]。该语言通过拖拽色彩分明的积木式代码块替代传统文本代码,让零基础用户可以快速理解编程逻辑,创作互动故事、游戏、动画、音乐等数字作品,是目前全球应用最广泛的少儿编程工具之一[5]。截至 2025 年,Scratch 平台全球用户已突破 1.3 亿,覆盖 150 多个国家和地区发行,用户累计创建项目超过 10 亿个[2]。
| Scratch | |
|---|---|
| 中文名 | Scratch |
| 英文名 | Scratch |
| 开发者 | 麻省理工学院(MIT)媒体实验室终身幼儿园团队 Scratch 基金会 |
| 首次发布 | 2007年5月15日[1] |
| 最新稳定版本 | Scratch 3.29.1 |
| 支持语言 | 70 余种 |
| 运行平台 | 网页端、Windows、macOS、Android、iOS |
| 适用人群 | 8-16 岁青少年(全年龄段可用) |
| 全球用户规模 | 超 1.3 亿[2] |
| 当前版本系列 | 3.x.x[3] |
| 类型系统 | 动态 |
| 文件格式 | .sb、.sprite (v1.4前) .sb2、.sprite2 (v2.0) .sb3、.sprite3 (v3.0) |
| 官方网站 | scratch.mit.edu[1] |
| 源代码仓库 | github.com/scratchfoundation[4] |
Scratch编程语言的源代码完全公开,并托管于GitHub平台[4]。该语言的标志性橘色猫咪图案以及“Scratch”这一名称的字体设计均受到版权法的保护[2]。位于scratch.mit.edu的Scratch官方网站,其后端系统、基于DjangoBB构建的论坛,以及利用MediaWiki搭建的Scratch维基,并不属于开源项目。
发展历程
项目起源
Scratch 项目由麻省理工学院媒体实验室的米切尔·雷斯尼克(Mitchel Resnick)教授及其带领的 “终身幼儿园” 团队于 2003 年启动,项目的设计初衷是为了降低编程的学习门槛,让儿童也能通过创作数字作品来学习编程思维,而非仅仅学习代码语法[6]。团队的灵感来源于此前乐高公司推出的 Mindstorms 机器人套装,该产品首次将图形化编程与实体机器人结合,让团队意识到图形化编程在儿童教育中的巨大潜力[7]。
经过 4 年的研发,2007 年 5 月,Scratch 1.0 正式向公众发布,首次推出了桌面端的编程环境,让儿童可以通过下载安装的方式使用该工具[8]。
运营主体变更
在发布后的十余年里,Scratch 一直由麻省理工学院媒体实验室负责开发与运营。随着项目的全球普及,为了更好地推动项目的长期发展,2019 年,Scratch 项目正式转入 Scratch 基金会独立运营,基金会负责后续的版本迭代、社区维护以及全球教育推广工作[9]。
设计理念
Scratch 的核心设计哲学是 “低门槛,高天花板,宽墙壁”(Low Floor, High Ceiling, Wide Walls)[6]:
- 低门槛:通过积木式的拖拽操作,消除了文本编程中语法错误的门槛,让零基础的儿童也能快速上手,在短时间内完成自己的第一个作品。
- 高天花板:工具并非仅面向入门用户,其支持变量、函数、克隆、消息广播等高级编程概念,用户可以创作复杂的游戏、模拟程序甚至人工智能相关的作品,满足用户从入门到进阶的学习需求。
- 宽墙壁:Scratch 不限制用户的创作方向,用户可以创作游戏、动画、故事、音乐、艺术作品、模拟实验等多种类型的内容,鼓励用户跨学科的创作与学习。
功能特点
积木式编程体系
Scratch 最核心的特点就是积木式的编程体系,所有的编程逻辑都被封装为不同颜色、不同形状的积木块,用户只需要将积木块拖拽到编辑区进行拼接,就可以完成程序的编写,无需输入任何文本代码,也不会出现语法错误[5]。
这些积木块按照功能被分为不同的类别,包括运动、外观、声音、事件、控制、侦测、运算、变量、自制积木等,覆盖了顺序、循环、条件判断、事件驱动等核心编程逻辑。
图 1: Scratch 3.0 编辑器界面,左侧为积木块分类区域,中间为代码编辑区,右侧为舞台与角色管理区
多媒体创作支持
Scratch 内置了完整的多媒体创作工具,用户可以自行绘制角色与背景,也可以导入外部的图片、声音、视频素材,还可以使用内置的声音编辑器录制与编辑音频,让用户可以完整地完成一个多媒体作品的创作,无需依赖其他工具[5]。
跨平台与扩展支持
Scratch 3.0 版本之后,基于 HTML5 技术重构了整个编辑器,实现了全平台的适配,用户可以在现代浏览器中直接使用在线编辑器,也可以下载桌面端客户端,同时还支持在平板、手机等移动设备上使用对应的 App 进行创作[10]。
此外,Scratch 还支持扩展功能,用户可以通过扩展模块连接外部的硬件设备,比如 micro:bit、乐高机器人等,实现从数字创作到物理世界的交互,也可以接入人工智能相关的扩展,实现语音识别、文字识别等 AI 功能[9]。
版本迭代
1.x 版本
Scratch 1.x 系列是 Scratch 的初代版本,基于 Smalltalk 语言开发,仅提供桌面端的安装程序,这一版本奠定了 Scratch 积木式编程的基础框架,初步建立了在线社区,让用户可以分享自己的作品[9]。
2.0 版本
2013 年,Scratch 2.0 正式发布,该版本基于 Flash 技术开发,首次推出了在线编辑器,用户无需下载安装就可以在浏览器中直接创作,同时也保留了离线的桌面端版本。这一版本新增了自制积木、云变量等功能,进一步提升了创作的能力[8]。
3.0 版本
2019 年 1 月 2 日,Scratch 3.0 正式发布,这是 Scratch 的一次重大技术升级,放弃了 Flash 技术,转而使用 HTML5 与 JavaScript 进行重构,解决了 Flash 逐渐被淘汰的问题,同时实现了移动端的适配,让用户可以在平板等设备上使用 Scratch[10]。该版本还新增了大量的新积木、新角色素材,重构了声音编辑器,并且引入了扩展功能体系,支持更多的硬件与 AI 能力。截至 2025 年,3.x 系列仍然是 Scratch 的主流稳定版本,持续进行小版本的更新与优化。
4.0 版本规划
2025 年,Scratch 基金会宣布将推进 Scratch 4.0 版本的开发,计划重构在线社区功能,并且引入创新性的 AI 工具,帮助用户更好地进行创作,进一步降低创作的门槛,同时提升社区的互动体验[2]。
社区生态
Scratch 不仅是一个编程工具,同时也是全球最大的儿童创作社区,用户在完成自己的作品之后,可以将作品上传到 Scratch 的在线社区,与全球的用户分享,其他用户可以对作品进行评论、点赞,还可以 “remix”(二次创作)他人的作品,在原有作品的基础上进行修改与创新,形成了开放的创作生态[5]。
截至 2025 年,社区内的用户累计创建的项目已经超过 10 亿个,涵盖了游戏、动画、故事、模拟实验等多种类型,其中游戏类作品占比超过 70%,是社区中最受欢迎的作品类型[7]。
教育应用
Scratch 目前已经被全球超过 200 个国家和地区引入到中小学的编程教育中,成为少儿编程教育的标准工具之一[6]。通过 Scratch,学生可以在创作的过程中学习计算思维、逻辑思维,同时锻炼解决问题的能力、创造力与协作能力。
同时,Scratch 也支持跨学科的教学,教师可以将 Scratch 融入到数学、艺术、语文、科学等多个学科的教学中,比如通过 Scratch 制作数学题的互动演示,或者制作语文课文的动画故事,帮助学生更好地理解学科知识,实现知识的融会贯通[11]。
影响与评价
Scratch 的出现极大地推动了全球少儿编程教育的普及,其积木式编程的设计思路也成为了后续大量少儿编程工具的参考标准,带动了整个图形化编程教育领域的发展。
学术研究表明,Scratch 能够有效提升儿童的计算思维能力、问题解决能力,同时能够激发儿童的学习兴趣与创造力,在儿童编程教育中具有显著的效果[11]。截至目前,Scratch 已经成为全球应用最广泛、影响力最大的少儿编程工具,帮助数以亿计的儿童开启了编程的学习之路。
衍生软件
Scratch程序有派生出其它软件[12],例如Snap!,Turbowarp(将Scratch项目转换为JavaScript以优化性能),02Engine,Bilup,clipcc(增强了扩展系统、高质量笔、舞台布局等)、Gandi和AstraEditor等。
参考文献
- ↑ 1.0 1.1 1.2 Scratch Wiki. Scratch
- ↑ 2.0 2.1 2.2 2.3 少儿编程网. Scratch 全球用户破 1.3 亿 新一代 4.0 版本即将到来
- ↑ Scratch 3.0 is here!, 2019
- ↑ 4.0 4.1 github.com
- ↑ 5.0 5.1 5.2 5.3 Scratch. FAQ
- ↑ 6.0 6.1 6.2 36 氪. Scratch:解码少儿编程的过去、现在与未来
- ↑ 7.0 7.1 小码王。图形化趣味编程 (scratch 编程)
- ↑ 8.0 8.1 快懂百科. Scratch [简易图形化编程工具]
- ↑ 9.0 9.1 9.2 CSDN 博客. scratch 简介_scratch3.30.5
- ↑ 10.0 10.1 Scratch. Discuss Scratch 常见问答
- ↑ 11.0 11.1 孙立会,周丹华。国际儿童编程教育研究现状与行动路径. 《开放教育研究》,2019
- ↑ Blocks - Scratch Wiki