Scratch
Scratch是麻省理工媒体实验室终身幼稚园组开发的一套以积木块为基础的可视化编程语言开发平台,于150多个国家和地区发行,并提供60多种语言版本。Scratch由Mitchel Resnick和Andrés Monroy-Hernández创立。
![]() | |
指令式,事件驱动 | |
设计者 | Mitchel Resnick、Andrés Monroy-Hernández |
实作者 | 麻省理工媒体实验室 终身幼稚园组 |
2006 | |
当前版本 |
|
型态系统 | 动态 |
实作语言 | Squeak(v1.4前) Actionscript(v2.0) HTML5 (v3.0) |
操作系统 | Mac OS X、Windows、Linux |
许可证 | 开放源码GPLv2和封闭性软件 |
文档扩展名 | .sb、.sprite(v1.4前) .sb2、.sprite2(v2.0) .sb3、.sprite3(v3.0) |
网站 | scratch |
主要实作产品 | |
Scratch | |
启发语言 | |
Logo、Smalltalk、HyperCard、 StarLogo、AgentSheets、Etoys |
Scratch最初可安装在Mac OS X、Windows、Linux的平台上;2.0改使用ActionScript编制,3.0改使用HTML5编制,并可运行于浏览器。
主旨
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-TW (页面存档备份,存于)则搜集了Scratch相关的在线资源、介绍视频、创意程设思维教材 (页面存档备份,存于)[11],并进行中文化,以便台湾用户之使用与推广。均一教育平台 (页面存档备份,存于)也制作了一系列Scratch 3.0基础课程 (页面存档备份,存于),免费开放令教师、家长与学生能在线自学Scratch。
在线社群
Scratch设立了一个在线社群,其口号为「想像·编程·分享」,分享和创意是Scratch最重要的理念[12]。
Scratch最终成品并非原代码,而是所有角色的行为和结合。用户可以将源文件案上传至在线社群以供分享。在线社群的成员可以自由下载该项目的原代码,来研究该项目的结构[13][14]。除此之外,各成员可自由评论、标签和「赞」不同的项目以及发表和分享意见。
在线社群中有不同类型的项目,范围包括游戏、动画、演示文稿和聊天机器人。所有项目都以创用CC的特许方式发布,也可通过Java applet或Flash Player播放。在线社群每月都有着一百万点击率,且拥有74,734,356名注册成员,以及超过八千二百二十六万份作品在在线社群上分享(截至2021年8月6日)[15]。该在线社群随后开设了不同网页,如ScratchEd和ScratchJR等,以促进各用户的交流。[16][17]
云端平台
自Scratch 2.0版本起,Scratch团队搭建了一个网站以供用户们在线上传项目,以及预览他人的项目。[18]
争议
2020年8月,有多家中国大陆媒体指Scratch被发现在注册账户时,将“香港”“澳门”“台湾”与“中国”并列划入“国家”一栏。在平台的开放论坛上有部分用户上传的反中共言论,包括港独、台独、“借中美贸易摩擦抹黑中方”等言论。[21]目前,Scratch官网、论坛和wiki已被中国大陆防火长城屏蔽,在中国大陆无法正常访问,仅能以离线版本编程。[22]
参考数据
- . [2019年1月2日].
- . [2020-06-22]. (原始内容存档于2020-06-26).
- 麻省理工大学; 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. . 麻省理工大学. [25 May 2007]. (原始内容存档于2012-06-26).
- . scratch.mit.edu. [2018-11-20]. (原始内容存档于2018-11-18).
- 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
- . [2018-11-20]. (原始内容存档于2013-04-03).
- 青年协会. . 2011-08-19 [2012-06-26]. (原始内容存档于2015-04-02) (中文(香港)).
- 青年协会. . 2010-05-26 [2012-06-26]. (原始内容存档于2015-04-02) (中文(香港)).
- 青年协会. . 2011-08-16 [2012-06-26]. (原始内容存档于2015-04-02) (中文(香港)).
- . scratch.mit.edu. [2020-05-02]. (原始内容存档于2011-02-22).
- Chung, Karen Brennan, Christan Balch, Michelle. . scratched.gse.harvard.edu. [2016-07-25]. (原始内容存档于2019-07-24).
- . [2017-08-10]. (原始内容存档于2011-02-22).
- 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)
- . [2012-06-26]. (原始内容存档于2012-10-12).
- . [2021-08-06]. (原始内容存档于2021-08-06).
- . [2010-07-28]. (原始内容存档于2011-07-06).
- . scratched.media.mit.edu. [2018-11-20]. (原始内容存档于2014-01-22).
- . scratch.mit.edu. [2018-11-20]. (原始内容存档于2018-11-16).
- . wiki.scratch.mit.edu. [2018-11-20]. (原始内容存档于2011-09-02).
- . byob.berkeley.edu. [2018-11-20]. (原始内容存档于2010-08-23).
- 丁君朋. . 未来网 (中国少年先锋队). 2020-08-11 [2020-08-28]. (原始内容存档于2020-09-05) (中文(中国大陆)).
- 林伊人. . 中国网. 2020-08-21 [2020-08-23]. (原始内容存档于2020-08-22) (中文(中国大陆)).
==外部链接== Link:https://scratch.mit.edu/projects/955957310
- 官方网站 (英文)
- . Scratch官方网站. [2019年1月22日]. (原始内容存档于2019年4月6日) (英语及中文).
- Scratch Wiki (页面存档备份,存于) (英文)
- . scratch-wiki.info. [2019年1月22日]. (原始内容存档于2019年1月23日) (英语).
- "The MagPi Team". [学习用Scratch编代码] (pdf). 树莓派官方网站. [2019年1月22日]. (原始内容存档 (PDF)于2019年2月19日) (英语).
- 台湾宜兰县在线版 (繁体中文)
- Scratch的Twitter帐户 (英文)