Por:Scratch

__INDEX__ Scratch é uma linguagem de programação educacional desenvolvida pelo Grupo Lifelong Kindergarten no Instituto de Tecnologia de Massachusetts (MIT) com mais de 48 milhões de usuários registrados e 47 milhões de Projetos. A versão atual, 3.0, pode ser baixada aqui (a versão anterior, 2.0, 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 "programação drag-and-drop".

O URL do website do Scratch é https://scratch.mit.edu.

História
O Scratch começou a ser desenvolvido em 2003 e foi lançado ao público em 2007. O Scratch 1.0, a primeira versão, era muito parecida com o Scratch 1.4. Àquele instante, apenas o editor offline existia; o website era um pequeno blog onde projetos podiam ser compartilhados e jogados. Com o crescimento do Scratch, o site foi expandido. Scratch 1.1, Scratch 1.2, Scratch 1.3 e Scratch 1.4 foram lançados. Nesse ponto, o Scratch já tinha milhões de usuários e projetos, e muitas novas funções.

Junto ao lançamento do Scratch 2.0, em 2013, o site e a interface de usuário foram modificados. O Scratch continuou a crescer, atingindo 30 milhões de usuários e projetos. O Scratch 3.0 foi lançado em 2019.

Em razão do rápido crescimento da comunidade do Scratch, a Fundação Scratch expandiu-se, e lidera o design, desenvolvimento e suporte do Scratch desde 12 de março de 2019. O MIT continuará a trabalhar junto da Fundação Scratch.

Usos
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.

Ambiente
Ao projetar a ferramenta, a maior prioridade dos criadores era fazer uma linguagem e ambiente de trabalho simples, intuitivas e facilmente aprendidas por crianças que não tinham experiência com programação. Há forte contraste entre as funções multimídia poderosas e estilo de programação estilo multi-thread e as possibilidades limitadas da linguagem de programação do Scratch.

A interface de usuário do ambiente de desenvolvimento do Scratch divide a tela em vários painéis: no meio está a paleta de blocos, na direita a área de scripts, e na esquerda o palco e a lista de atores. A paleta de blocos contém fragmentos de código (chamados de "blocos") que podem ser arrastados à área de scripts para criar programas. Para limitar a quantidade de blocos disponíveis na tela e facilitar o uso, a paleta é organizada em nove grupos de blocos: movimento, aparência, som, eventos, controle, sensores, operadores, variáveis e mais blocos.

Origem da Palavra
"Scratch" foi usado como o título para a linguagem de programação do Grupo Lifelong Kindergarten, já que tem a ver com "scratching", referente à música. "Scratch é uma técnica musical utilizada por um turntablist para produzir sons ao "arranhar" o disco de vinil para frente e para trás repetidas vezes em um toca discos para produzir sons percussivos ou rítmicos. Um crossfader de um mixer para DJ pode ser usado com dois toca discos."

- Wikipédia

Assim como no Scratch, onde você junta diferentes partes de códigos (blocos) e cria algo novo. "Pegamos o nome "Scratch" da maneira que DJs de hip-hop fazem scratching com música. Eles juntam pedaços de músicas em combinações inesperadas e criativas."

- Mitchell Resnick, Grupo Lifelong Kindergarten no MIT

Variações da Palavra
A palavra "Scratch" gerou outras expressões notáveis entre usuários do Scratch:
 * Novo Scratcher Um usuário com status de novo Scratcher
 * Scratcher Um usuário do Scratch
 * Scratcheando Um verbo que quer dizer usar Scratch
 * Scratcheado Um projeto que é uma tentativa de réplica de outro jogo, por exemplo: "Pac-man Scratcheado"
 * Horário do Scratch O fuso horário usado nos fóruns (EST/EDT)
 * Equipe Scratch Os moderadores e desenvolvedores do site.
 * Scratch On! Uma frase criada pela Equipe Scratch, usada por ela (e por Scratchers também) para encorajar Scratchers, ela significa "continue usando o Scratch!"

Lema
O lema do Scratch é "Imagine, Programe, Compartilhe". Isto segue os princípios básicos ao criar um projeto: Ter uma ideia ("Imagine"), programar esta ideia no Scratch ("Programe"), e então publicá-la na comunidade ("Compartilhe"). A partir da chegada do Scratch 2.0, o lema esteve menos presente no site; a página inicial não apresenta mais o lema, em seu lugar uma descrição do que o Scratch é.

Versões
Scratch está atualmente na versão 3.0, o editor online lançado oficialmente em 2 de janeiro de 2019, e o editor offline logo em seguida. Seu antecessor é o Scratch 2.0, lançado em 9 de maio de 2013. As versões anteriores, mais antigas, são o Scratch 1.4, Scratch 1.3, Scratch 1.2, Scratch 1.1 e Scratch 1.0. Cada versão teve mudanças significativas, especialmente o salto de 2.0 para 3.0. Não apenas o programa foi atualizado com a versão 2.0 e 3.0, mas todo o site foi refeito.

Features

 * Scratch é Turing completo.
 * É primeiramente baseada em eventos.
 * Se ela é ou não orientada por objetos é debatido pela comunidade.
 * O Scratch tem variáveis e listas para guardar dados, e arranjos podem ser replicados.
 * Scratch não é atômico em repetição, há uma leve pausa entre repetições em loops, mas isso pode ser simulado com programação de frame único.
 * O Scratch 2.0 não suporta procedimentos, e recursão.
 * O Scratch tem muitas regras simples de conversão. Contudo, dados não são de primeira classe você não pode ter listas, atores ou procedimentos de primeira classe (lambda).

Permissões do SO
O Scratch tem acesso limitado ao hardware/sistema operacional e é um programa muito seguro. O Scratch pode obter acesso a:
 * Volume do microfone
 * Posição do mouse em relação à janela do Scratch
 * Teclas pressionadas, apenas se o Scratch estiver em foco
 * No Scratch 2.0 e 3.0, alguns movimentos podem ser detectados como valores numéricos, usando uma webcam como entrada de imagem.
 * O sistema de arquivos pode ser acessado ao desenvolver projetos, mas não ao rodá-los.
 * O Scratch pode se conectar a um Lego WeDo ou PicoBoard plugado ao seu computador.

Algumas modificações do Scratch requerem mais permissões do SO.

ScratchJr
ScratchJr é uma linguagem de programação baseada no Scratch que utiliza conteúdo baseado em visuais, para introduzir crianças de 5 a 7 anos (seu público-alvo) ao mundo de programação. Foi desenvolvido em parte por alguns membros da Equipe Scratch, e está disponível para iOS e Android como um aplicativo.

Informações Notáveis

 * O Scratch trabalhou com o Cartoon Network para promover o Ursos Sem Curso encorajando Scratchers a fazer projetos sobre o desenho.
 * O Scratch foi renomeado Neigh temporariamente por causa de uma piada de Primeiro de Abril feita pela Equipe do Scratch em 2012 como uma piada sobre a versão 2.0. Houveram também muitas referências ao desenho My Little Pony. Mais informações aqui.
 * O Scratch se encheu de projetos sobre o Gato do Scratch por causa da ScratchCation em 2016, onde o gato tirou férias do Scratch. A Equipe Scratch mostrou uma nota deixada pelo Gato do Scratch em uma notificação aos usuários, tornando este um evento no site todo.

Veja também

 * Começando com Scratch
 * Scratch 3.0 a versão atual do site e do programa
 * Scratch 2.0 a versão passada do site e do programa
 * Scratch na Wikipédia descrição do Scratch por um website externo
 * Linha do Tempo do Scratch
 * Wiki do Scratch
 * Linguagem de Programação o que são e seus usos no mundo da ciência da computação

Referências
Scratch Скретч Scratch Scratch introductie Scratch Scratch Wiki Accueil/autre/langage scratch