Zho:Scratch

Scratch is a free educational programming language that was developed by the 终身幼儿园团队 at the 麻省理工学院(MIT) with over 11 million registered 用户 and 14 million shared 专案 . The current version, 2.0, can be downloaded here (the previous version, 1.4, can be downloaded here) or accessed with the online editor here. It is geared towards kids ages to 8-16 and grades 3rd grade to high school.

Scratch is designed to be fun, educational, and easy to learn. It has the tools for creating interactive stories, 游戏类专案, 美术类专案, simulations, and more, using block-based programming. Scratch even has its own 绘图编辑器 and 音效编辑器r built-in.

Users program in Scratch by dragging 积木 from the 积木选择区 and attaching them to other blocks like a jigsaw puzzle. Structures of multiple blocks are called 程式. This method of programming (building code with blocks) is referred to as "drag-and-drop programming".

The URL of the Scratch 官网 is https://scratch.mit.edu.

用法
Scratch is used in schools around the world as a means of introducing basic computer programming to children. It is also used outside of schools. Children and even adults gain an understanding of the fundamentals of programming with Scratch, and often move on to other programming languages. During their use of Scratch, people can create, remix, and collaborate with others on 专案.

需求环境
In designing the language, the creators' main priority was to make the language and development environment intuitive and easily learned by children who had no previous programming experience. There is a strong contrast between the powerful multimedia functions and multi-threaded programming style and the rather limited scope of the Scratch programming language.

The Scratch 用户介面 for the Scratch development environment divides the screen into several panes: on the in the middle is the blocks palette, on the right the 「程式」 area, and on the left the stage and sprite list. The blocks palette has code fragments (called "blocks") that can be dragged onto the 「程式」 area to make programs. To keep the palette from displaying a great quantity of blocks and for ease if use, it is organized into 10 groups of blocks: motion, looks, sound, pen, control, events, sensing, operators, variables, and 更多积木.

Origin of the Word
"Scratch" was used as the title for The Lifelong Kindergarten Group's programming language, as it is to do with "scratching" referring to music. "Scratching is a DJ or turntablist technique used to produce distinctive 「音效」 by moving a vinyl record back and forth on a turntable while optionally manipulating the crossfader on a DJ mixer."

- Wikipedia

Likewise, within Scratch, you take different bits of code (blocks), put them together, and have made something new. "We take the name "Scratch," from the way that hip-hop disk jockeys scratch with music. They take pieces of music and then combine them together in unexpected and creative ways."

- Mitchell Resnick, Lifelong Kindergarten Group at MIT

Variants of the Word
The word "Scratch" has spawned other phrases that have become popular amongst users of Scratch:
 * Scratcher A user of Scratch
 * Scratching A verb which means to use Scratch
 * Scratched A project that is an attempted replica of another game. e.g. "Pac-man Scratched"
 * Scratch 时区 The timezone that the Scratch 论坛 are set in (EST/EDT)
 * Scratch 团队 The moderators and developers of the website.
 * Scratch On! A phrase coined by the Scratch 团队, and used by them (although has been adapted by other Scratchers as well) to encourage users, meaning "carry on using Scratch"

Motto
Scratch's motto is Imagine, Program, Share. This follows the basic principle of creating a Scratch Project. First of all, you think of an idea (imagine), next, you program your idea in Scratch (program), then finally share it with the world (share). Since the release of Scratch 2.0, the motto has been less apparent throughout the website; the front page no longer has the motto but instead a description of what Scratch is.

版本
Scratch is currently on version 2.0, the online editor officially released on May 9, 2013 and the offline editor on August 26, 2013. Its predecessor is Scratch 1.4, which was released on July 2, 2009. The previous, older versions are Scratch 1.3, Scratch 1.2, Scratch 1.1, and Scratch 1.0. Each version had significant changes, especially the jump from 1.4 to 2.0. Not only did the program update with version 2.0, but the entire website evolved.

主要功能

 * Scratch is turing complete.
 * It is primarily 事件驱动程式.
 * Whether or not it is 物件导向程式 is debated in the community.
 * Scratch has 变量 and 清单 for data storage, and 阵列 can be replicated.
 * Scratch is not atomic in repetition, though that can be simulated with Single Frame programming.
 * Scratch 2.0 does support procedures, and recursion.
 * Scratch has many simplified casting rules. Data is not, however, first-class you cannot have first-class lists, sprites, or procedures (lambda).

OS Permissions
Scratch has limited hardware/OS access, and is a very safe program. The following can be accessed by Scratch:
 * Ambient volume
 * Mouse position relative to the Scratch frame
 * Key presses, only if Scratch is in focus
 * In Scratch 2.0, your movements are provided as sensor values, using a webcam for image input.
 * The filesystem can be accessed while in development, but not while running.
 * Scratch can communicate externally to a Lego WeDo set or PicoBoard plugged into your computer.

Scratch Modifications offer more OS permissions.

ScratchJr
Scratch Jr is a programming language based on Scratch but yet even simpler, so naturally the app is designed for kids ages 5 to 7. The program, unlike Scratch, was developed as a mobile app for tablets. The development team for ScratchJr somewhat differs from the Scratch Team, though a couple of members contribute to both programs.

Notable Things
Scratch worked with Cartoon Network to promote We Bare Bears by having Scratchers make We Bare Bears projects. You can see Scratch's place on the Cartoon Network website here.

Scratch was renamed Neigh temporarily due to an April Fools Joke played by Scratch Team on 2012 as a 2.0 joke. There were also a good number of My little pony references. You can learn more here.

Scratch was full of projects with the well known Scratch Cat, because of ScratchCation in 2016. Scratch Team showed us the note Scratch Cat left on Scratch, along with a notification. Around the same time, The Last SDS came around. All of Scratch knew about it, making it something to reference.

参见

 * Scratch Wiki
 * Scratch 入门
 * Scratch on Wikipedia the description of Scratch on an external website
 * Scratch 2.0 the current version of the Scratch website and program
 * 编程语言 what they are and their uses to the world of computer science