Scratch é uma linguagem de programação educacional desenvolvida pelo Grupo Lifelong Kindergarten no Instituto de Tecnologia de Massachusetts (MIT) com mais de 27 milhões de usuários registrados e 31 milhões de Projetos. A versão atual, 2.0, pode ser baixada aqui (a versão anterior, 1.4, pode ser baixada aqui) ou acessada pelo editor online aqui. O Scratch é orientado para crianças entre 8-16 anos e do segundo ano ao ensino médio.
Scratch é feito para ser divertido, educativo, e fácil de aprender. Ele tem as ferramentas necessárias para criar histórias interativas, jogos, arte, simulações, e mais, usando programação baseada em blocos. O Scratch também tem o seu próprio editor de imagem e editor de som.
Usuários programam no Scratch arrastando blocos da paleta de blocos e encaixando-os em outros blocos, como um quebra-cabeça. Estruturas de vários blocos são chamadas de scripts. Este método de programação (construir código com blocos) se chama "Drag-and-drop programação drag-and-drop".
O Scratch é usado em escolas ao redor do mundo como uma maneira de introduzir programação de computador básica para crianças. Também é usado fora de escolas. Alguns professores usam contas de professor para monitorar estudantes enquanto estão usando a comunidade do Scratch. Crianças e até adultos ganham entendimento dos fundamentos da programação com Scratch e normalmente começam a usar outras linguagens de programação. Durante seu uso do Scratch, pessoas podem remixar, e colaborar com outros em projetos.
- Main article: Scratch User Interface
In designing the language, the creators' main priority was to make the language and development environment simple, intuitive and easily learnable 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 user interface for the Scratch development environment divides the screen into several panes: in the middle is the blocks palette, on the right the scripts area, and on the left the stage and sprite list. The blocks palette has code fragments (called "blocks") that can be dragged onto the scripts area from the palette to make programs. To keep the palette from displaying a lot of blocks and for ease of use, it is organized into 10 groups of blocks: motion, looks, sound, pen, control, events, sensing, operators, variables, and more blocks.
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 sounds by moving a vinyl record back and forth on a turntable while optionally manipulating the crossfader on a DJ mixer.||”|
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:
— A user of Scratch
— A verb which means to use Scratch
— A project that is an attempted replica of another game. e.g. "Pac-man Scratched"
— The timezone that the forums are set in (EST/EDT)
— The moderators and developers of the website.
- Scratch On!
— A phrase coined by the Scratch Team, and used by them (although has been adapted by other Scratchers as well) to encourage users, meaning "carry on using Scratch"
Scratch's motto is "Imagine, Program, Share". This follows the basic principle of creating a project: one comes up with an idea ("Imagine"), programs the idea in Scratch ("Program"), and then publishes it in the community ("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.
- Main article: Scratch Versions
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. It was announced that Scratch 3.0 is a future version still under development. It is expected to be released sometime during late 2018.
- Scratch is Turing complete.
- It is primarily event-driven.
- Whether or not it is OOP is debated in the community.
- Scratch has variables and lists for data storage, and arrays 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).
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, some 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.
- Main article: ScratchJr
ScratchJr is a programming language based on Scratch that utilizes visual-centric content to introduce 5 to 7 year olds (its intended audience) to the programming world. It was developed impart by some of the members of the Scratch Team, and it is available on iOS and Android as a mobile app.
Scratch worked with Cartoon Network to promote We Bare Bears by having Scratchers make We Bare Bears projects. Scratch's place on the Cartoon Network website is available 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 several references incorporated from the show My Little Pony. More information is available 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.
— the current version of the Scratch website and program
— the upcoming version of the Scratch website and program
— the description of Scratch on an external website
— what they are and their uses to the world of computer science