Scratch (programming Language)
   HOME

TheInfoList



OR:

Scratch is a high-level, block-based
visual programming language In computing, a visual programming language (visual programming system, VPL, or, VPS) is any programming language that lets users create programs by manipulating program elements ''graphically'' rather than by specifying them ''textually''. A VPL ...
and website aimed primarily at children as an educational tool, with a target audience of ages 8 to 16. Users on the site can create projects on the website using a block-like interface. Scratch was conceived and designed through collaborative
National Science Foundation The National Science Foundation (NSF) is an independent agency of the United States government that supports fundamental research and education in all the non-medical fields of science and engineering. Its medical counterpart is the National ...
grants awarded to
Mitchel Resnick Mitchel Resnick (born June 12, 1956) is Lego Papert Professor of Learning Research, Director of the Okawa Center, and Director of the Lifelong Kindergarten group at the Massachusetts Institute of Technology (MIT) Media Lab. , Resnick serves as h ...
and
Yasmin Kafai Yasmin B. Kafai, Ph.D., is a Professor of Learning Sciences at the University of Pennsylvania Graduate School of Education, past president of the International Society of the Learning Sciences (ISLS), and an executive editor of the ''Journal of th ...
. Scratch is developed by the
MIT Media Lab The MIT Media Lab is a research laboratory at the Massachusetts Institute of Technology, growing out of MIT's Architecture Machine Group in the School of Architecture. Its research does not restrict to fixed academic disciplines, but draws from ...
and has been translated into 70+ languages, being used in most parts of the world. Scratch is taught and used in after-school centers, schools, and colleges, as well as other public knowledge institutions. As of 15 February 2023, community statistics on the language's official website show more than 123 million projects shared by over 103 million users, and more than 95 million monthly website visits. Overall, over 1 billion total projects ever created (including unshared projects), exceeding their 1,000,000,000th project in April 2024. Scratch takes its name from a technique used by
disk jockey A disc jockey, more commonly abbreviated as DJ, is a person who plays recorded music for an audience. Types of DJs include radio DJs (who host programs on music radio stations), club DJs (who work at a nightclub or music festival), mobile ...
s called "
scratching Scratching, sometimes referred to as scrubbing, is a DJ and turntablist technique of moving a vinyl record back and forth on a turntable to produce percussive or rhythmic sounds. A crossfader on a DJ mixer may be used to fade between two rec ...
", where vinyl records are clipped together and manipulated on a turntable to produce different sound effects and music. Like scratching, the website lets users mix together different media (including graphics, sound, and other programs) in creative ways by creating and "remixing" projects, like
video games Video games, also known as computer games, are electronic games that involves interaction with a user interface or input device such as a joystick, controller, keyboard, or motion sensing device to generate visual feedback. This feedb ...
,
animations Animation is a method by which still figures are manipulated to appear as moving images. In traditional animation, images are drawn or painted by hand on transparent celluloid sheets to be photographed and exhibited on film. Today, most ani ...
,
music Music is generally defined as the The arts, art of arranging sound to create some combination of Musical form, form, harmony, melody, rhythm or otherwise Musical expression, expressive content. Exact definition of music, definitions of mu ...
, and
simulations A simulation is the imitation of the operation of a real-world process or system over time. Simulations require the use of Conceptual model, models; the model represents the key characteristics or behaviors of the selected system or proc ...
.


Scratch 3.0


User interface

The Scratch interface is divided into three main sections: a ''stage area'', ''block palette'', and a coding area to place and arrange the blocks into scripts that can be run by pressing the green flag or clicking on the code itself. Users may also create their own code blocks, which will appear in the "My Blocks" section. The ''stage area'' features the results (e.g., animations,
turtle graphics In computer graphics, turtle graphics are vector graphics using a relative cursor (the " turtle") upon a Cartesian plane (x and y axis). Turtle graphics is a key feature of the Logo programming language. Overview The turtle has three attri ...
, either in a small or normal size, with a full-screen option also available) and all sprites' thumbnails being listed in the bottom area. The stage uses x and y
coordinates In geometry, a coordinate system is a system that uses one or more numbers, or coordinates, to uniquely determine the position of the points or other geometric elements on a manifold such as Euclidean space. The order of the coordinates is si ...
, with 0,0 being the stage center. With a sprite selected at the bottom of the staging area, blocks of code can be applied by dragging them from the block palette into the coding area. The Costumes tab allows users to change the look of the sprite with a
vector Vector most often refers to: *Euclidean vector, a quantity with a magnitude and a direction *Vector (epidemiology), an agent that carries and transmits an infectious pathogen into another living organism Vector may also refer to: Mathematic ...
and
bitmap In computing, a bitmap is a mapping from some domain (for example, a range of integers) to bits. It is also called a bit array or bitmap index. As a noun, the term "bitmap" is very often used to refer to a particular bitmapping application: th ...
editor in order to create various effects, including animation. The Sounds tab allows attaching sounds and music to a sprite. When creating sprites and also backgrounds, users can draw their own sprites manually, choose a sprite from the library, or upload an image. The table below shows the categories of the programming blocks:


Offline editing

An offline "Desktop Editor" for Scratch 3.0 is available for Microsoft
Windows 10 Windows 10 is a major release of Microsoft's Windows NT operating system. It is the direct successor to Windows 8.1, which was released nearly two years earlier. It was released to manufacturing on July 15, 2015, and later to retail on ...
and above in the Microsoft Store, Apple's macOS, ChromeOS, and Android; this allows the creation and playing of Scratch programs offline. The offline editor can also be downloaded in previous versions, such as Scratch 2.0 and Scratch 1.4 (an archive of older versions is foun
here
.


Extensions

In Scratch, extensions add extra blocks and features that can be used in projects. In Scratch 2.0, the extensions were all hardware-based and Pen was a normal category. Software-based extensions were added in Scratch 3.0, such as text-to-speech voices, along with some new hardware-based extensions like the micro:bit. The extensions are listed below.


Physical

*
LEGO Mindstorms EV3 LEGO Mindstorms EV3 is the third generation robotics kit in LEGO's Mindstorms line. It is the successor to the second generation LEGO Mindstorms NXT kit. The "EV" designation refers to the "evolution" of the Mindstorms product line. "3" refers t ...
– Control motors and receive sensor data from the Lego Mindstorms EV3 *
Makey Makey Makey Makey: An Invention Kit for Everyone is an invention kit designed to connect everyday objects to computer keys. Using a circuit board, alligator clips, and a USB cable, the toy uses closed loop electrical signals to send the computer either ...
– Use Makey Makey to control projects * LEGO Education WeDo 2.0 – control motors and receive sensor data from the Lego WeDo * micro:bit – Use of a micro:bit to control projects * LEGO BOOST – Bring robotic creations to life * Go Direct Force & Acceleration – Sense pull, push, motion, and spin


Digital

Many of the digital extensions in Scratch 3.0 used to be regular block categories that were moved to the extensions section to reduce clutter. These include: * Music – Play digital instruments (drums, trumpets, violins, pianos, and more). Previously part of the Sound category. * Pen – Draw on the Stage with a variety of thicknesses and color. Previously a normal block category. * Video Sensing – Detect motion with the camera. Previously in the Sensing category. New digital extensions have also been added in collaborations with commercial companies. These include: * Text to Speech – Converts words in a text into voice output (variety of voices, supplied by Amazon) * Translate – Uses
Google Translate Google Translate is a multilingual neural machine translation service developed by Google to translate text, documents and websites from one language into another. It offers a website interface, a mobile app for Android and iOS, and an A ...
to translate text from one language into a variety of other languages, including Arabic, Chinese, Dutch, English, French, Greek, Norwegian, and Japanese * Makey Makey – Options for better key pressing and press multiple keys in order. You can grab a join block if you want more control on the extension. A paper published in 2019 by NYU argues and illustrates, for coding music with Scratch, "that the music and sound blocks as currently implemented in Scratch may limit and frustrate meaningful music-making for children, the core user base for Scratch."


Scratch Lab

The Scratch Lab displays experiments from the Scratch Team, intended to explore whether new features may be added to the full website in the future. Experimental features currently under development include: * Video Sprites – Fill sprites with live video. * Face Sensing – Make animated costumes and games that interact with your face. * Animated Text – Bring words to life with colours, fonts, and animations.


Community of users

Scratch is used in many different settings: schools,
museum A museum ( ; plural museums or, rarely, musea) is a building or institution that cares for and displays a collection of artifacts and other objects of artistic, cultural, historical History (derived ) is the systematic study and th ...
s,
libraries A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
,
community centers Community centres, community centers, or community halls are public locations where members of a community tend to gather for group activities, social support, public information, and other purposes. They may sometimes be open for the whole co ...
, and homes. Scratch is designed primarily for users aged 8–16, but it is used by all ages and has a sizeable adult user base as of 2009. This wide outreach has created many surrounding communities, both physical and digital. In April 2020, the Tiobe ranking of the world's programming languages included Scratch in the top 20. According to Tiobe, there are 50 million projects written in Scratch, and every month one million new projects are added.


Educational users

Scratch is used as the introductory language because the creation of interesting programs is relatively easy, and skills learned can be applied to other programming languages such as Python and
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
. Scratch is not exclusively for creating games. With the provided visuals, programmers can create animations, text, stories, music, art, and more. There are already many programs that students can use to learn topics in math, history, and even photography. Scratch allows teachers to create conceptual and visual lessons and science lab assignments with animations that help visualize difficult concepts. Within the social sciences, instructors can create quizzes, games, and tutorials with interactive elements. Using Scratch allows young people to understand the logic of programming and how to creatively build and collaborate. Scratch is taught to more than 800 schools and 70 colleges of the DAV organization in India and across the world. In higher education, Scratch is used in the first week of Harvard University's CS50 introductory computer science course.


Online community

Users of Scratch are called "Scratchers". Scratchers have the capability to share their projects and receive feedback. Projects can be uploaded directly from the development environment to the Scratch website and any member of the community can view and download the full source code to study or to remix into new projects. Scratchers can also create project studios, comment, favorite, and "love" others' projects, follow other members to see their projects and activity, and share ideas. Projects range from games and animations to practical tools. Additionally, to encourage the creation and sharing amongst users, the website frequently establishes "Scratch Design Studio" challenges. The MIT Scratch Team works to ensure that this community maintains a friendly and respectful environment for all people. Educators have their own online community called ScratchEd, developed and supported by the Harvard Graduate School of Education. In this community, Scratch educators share stories, exchange resources, and ask questions.


Scratch Wiki

The Scratch Wiki is a support resource for Scratch and information about its website, history, and phenomena surrounding it. Although supported by the Scratch Team (the developers of Scratch), it is primarily written by Scratch users (Scratchers) and is hosted independently of the main Scratch website. There are other wikis in languages besides English available on the Scratch Wik
base domain


Roles

Roles are displayed as a label under a user's username on profile pages and on forum posts. To prevent
vandalism Vandalism is the action involving deliberate destruction of or damage to public or private property. The term includes property damage, such as graffiti and #Defacement, defacement directed towards any property without permission of the owne ...
, new accounts have the "New Scratcher" role, as opposed by the usual "Scratcher" role. Some restrictions are imposed onto New Scratcher accounts, including the inability to use cloud data and a minimum 30 second cooldown period between posting comments. After a period of time of interacting and creating projects, an account will be eligible to gain the Scratcher role. Official moderators and developers of Scratch are labeled as part of the "Scratch Team" and usually have an asterisk at the end of their username. The site also has special types of accounts for Students and Educators to use Scratch in the classroom.


Censorship

In August 2020, GreatFire announced that the Chinese government had blocked access to the Scratch website. At the time, it was estimated that more than three million people in China were using it. The outlet cited the fact that
Macau Macau or Macao (; ; ; ), officially the Macao Special Administrative Region of the People's Republic of China (MSAR), is a city and special administrative region of China in the western Pearl River Delta by the South China Sea. With a pop ...
,
Hong Kong Hong Kong ( (US) or (UK); , ), officially the Hong Kong Special Administrative Region of the People's Republic of China (abbr. Hong Kong SAR or HKSAR), is a city and special administrative region of China on the eastern Pearl River Delta i ...
and
Taiwan Taiwan, officially the Republic of China (ROC), is a country in East Asia, at the junction of the East and South China Seas in the northwestern Pacific Ocean, with the People's Republic of China (PRC) to the northwest, Japan to the northe ...
were listed as countries on the website. They also contain
Abkhazia Abkhazia, ka, აფხაზეთი, tr, , xmf, აბჟუა, abzhua, or ( or ), officially the Republic of Abkhazia, is a partially recognised state in the South Caucasus, recognised by most countries as part of Georgia, which v ...
, Somaliland,
South Ossetia South Ossetia, ka, სამხრეთი ოსეთი, ( , ), officially the Republic of South Ossetia – the State of Alania, is a partially recognised landlocked state in the South Caucasus. It has an officially stated popula ...
, and
Faroe Islands The Faroe Islands ( ), or simply the Faroes ( fo, Føroyar ; da, Færøerne ), are a North Atlantic archipelago, island group and an autonomous territory of the Danish Realm, Kingdom of Denmark. They are located north-northwest of Scotlan ...
are locations, but they only seem to be seen i
Scratch Statistics
on the Scratchers Worldwide section, and nobody has made an account in these countries.


Code base

The
source code In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
for the project editor in all three major versions, as well as a majority of the current website, is hosted publicly on
GitHub GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, co ...
across various repositores. Scratch 3.0 is
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
-based, 2.0 is programmed in
ActionScript ActionScript is an object-oriented programming language originally developed by Macromedia Inc. (later acquired by Adobe). It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript (meani ...
, and the 1.x versions were based on Squeak, which itself is based on
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by ...
-80. 2.0 had an experimental JavaScript-based interpreter that was being developed in parallel with the ActionScript version. In 3.0, Scratch blocks are implemented using
Blockly Blockly is a client-side library for the programming language JavaScript for creating block-based visual programming languages (VPLs) and editors. A project of Google, it is free and open-source software released under the Apache License 2.0. It ...
, a JavaScript library developed by Google for creating block-based
visual programming language In computing, a visual programming language (visual programming system, VPL, or, VPS) is any programming language that lets users create programs by manipulating program elements ''graphically'' rather than by specifying them ''textually''. A VPL ...
s. On 13 May 2014, a year after the release of Scratch 2.0, it was announced by a developer on the Scratch Forums that 2.0 would become open source.


Events

Scratch Educators can gather in person at Scratch Educator Meetups. At these gatherings, Scratch Educators learn from each other and share ideas and strategies that support computational creativity. An annual "Scratch Week", formerly known as "Scratch Day", is declared in May each year. Community members are encouraged to host an event on or around this day, large or small, that celebrates Scratch. These events are held worldwide, and a listing can be found on the Scratch Day website. Scratch Week is a series focusing on Scratch activities on the Scratch website. Every
April Fools' Day April Fools' Day or All Fools' Day is an annual custom on 1 April consisting of practical jokes and hoaxes. Jokesters often expose their actions by shouting "April Fools!" at the recipient. Mass media can be involved in these pranks, which may b ...
, the Scratch Team will play pranks on users and add Easter eggs, one example being that all event blocks in projects turn into cat versions of the same blocks.


History

In the early 2000s, the
MIT Media Lab The MIT Media Lab is a research laboratory at the Massachusetts Institute of Technology, growing out of MIT's Architecture Machine Group in the School of Architecture. Its research does not restrict to fixed academic disciplines, but draws from ...
's ''Lifelong Kindergarten'' group (LLK) was developing visual programming languages targeted towards children. In 2003,
Mitchel Resnick Mitchel Resnick (born June 12, 1956) is Lego Papert Professor of Learning Research, Director of the Okawa Center, and Director of the Lifelong Kindergarten group at the Massachusetts Institute of Technology (MIT) Media Lab. , Resnick serves as h ...
,
Yasmin Kafai Yasmin B. Kafai, Ph.D., is a Professor of Learning Sciences at the University of Pennsylvania Graduate School of Education, past president of the International Society of the Learning Sciences (ISLS), and an executive editor of the ''Journal of th ...
, and
John Maeda John Maeda (born 1966) is a Vice President of Design and Artificial Intelligence at Microsoft. He is an American technologist and designer whose work explores where business, design, and technology merge to make space for the "humanist technol ...
were awarded a
National Science Foundation The National Science Foundation (NSF) is an independent agency of the United States government that supports fundamental research and education in all the non-medical fields of science and engineering. Its medical counterpart is the National ...
grant for the development of a new programming environment for children to express themselves with code. The LLK, led by Mitchel Resnick, in partnership with
Yasmin Kafai Yasmin B. Kafai, Ph.D., is a Professor of Learning Sciences at the University of Pennsylvania Graduate School of Education, past president of the International Society of the Learning Sciences (ISLS), and an executive editor of the ''Journal of th ...
's team at
UCLA The University of California, Los Angeles (UCLA) is a public university, public Land-grant university, land-grant research university in Los Angeles, California. UCLA's academic roots were established in 1881 as a Normal school, teachers colle ...
worked closely with Computer Clubhouses in Boston and Los Angeles to develop Scratch, grounding its design in the practices and social dynamics of these after-school youth centers. It started as a basic programming language, with no labeled categories and no green flag. Similar to AgentSheets Scratch employed concepts of Tactile Programming later known as blocks-based programming. Scratch was made with the intention to teach kids to program. The philosophy of Scratch encourages the sharing, reuse, and combination of code, as indicated by the team slogan, "Imagine, Program, Share". Users can make their own projects, or they may choose to "
remix A remix (or reorchestration) is a piece of media which has been altered or contorted from its original state by adding, removing, or changing pieces of the item. A song, piece of artwork, book, video, poem, or photograph can all be remixes. The o ...
" someone else's project. Projects created and remixed with Scratch are licensed under the Creative Commons Attribution-Share Alike License. Scratch automatically gives credit to the user who created the original project and program in the top part of the project page. Scratch was developed based on ongoing interaction with youth and staff at Computer Clubhouses. The use of Scratch at Computer Clubhouses served as a model for other after-school centers demonstrating how informal learning settings can support the development of technological fluency. Scratch 2.0 was released on 9 May 2013. The update changed the look of the site and included both an online project editor and an offline editor. Custom blocks could now be defined within projects, along with several other improvements. The Scratch 2.0 Offline editor could be downloaded for Windows, Mac, and Linux directly from Scratch's website, although support for Linux was later dropped. The unofficial
mobile Mobile may refer to: Places * Mobile, Alabama, a U.S. port city * Mobile County, Alabama * Mobile, Arizona, a small town near Phoenix, U.S. * Mobile, Newfoundland and Labrador Arts, entertainment, and media Music Groups and labels * Mobile ...
version had to be downloaded from the Scratch forums. Scratch 3.0 was first announced by the Scratch Team in 2016. Several public alpha versions were released between then and January 2018, after which the pre-beta "Preview" versions were released. A beta version of Scratch 3.0 was released on 1 August 2018. for use on most browsers; with the notable exception of
Internet Explorer Internet Explorer (formerly Microsoft Internet Explorer and Windows Internet Explorer, commonly abbreviated IE or MSIE) is a series of graphical user interface, graphical web browsers developed by Microsoft which was used in the Microsoft Wind ...
. Scratch 3.0, the first 3.x release version, was released on 2 January 2019. On 28 June 2023, the header and links on the Scratch Website changed from blue to purple, and new optional high-contrast block colors were introduced, to make the site easier for colorblind people to read and use. On March 11, 2019, Scratch separated from
MIT Media Lab The MIT Media Lab is a research laboratory at the Massachusetts Institute of Technology, growing out of MIT's Architecture Machine Group in the School of Architecture. Its research does not restrict to fixed academic disciplines, but draws from ...
.


Filetypes

In Scratch 1.4, an * file was the file format used to store projects. An * file is divided into four sections: * "header", this 10-byte header contains the ASCII string "ScratchV02" in versions higher than Scratch 1.2, and "ScratchV01" in Scratch 1.2 and below * "infoSize", encodes the length of the project's infoObjects. A 4-byte long, 32-bit,
big-Endian In computing, endianness, also known as byte sex, is the order or sequence of bytes of a word of digital data in computer memory. Endianness is primarily expressed as big-endian (BE) or little-endian (LE). A big-endian system stores the most si ...
integer. * "infoObjects", a dictionary-format data section. It contains: "thumbnail", a thumbnail of the project's stage; "author", the username of the project's creator; "comment", the Project Notes; "history", the save and upload log; "scratch-version", the version of Scratch used to save the file; * "contents", an object table with the Stage as the root. All objects in the program are stored here as references. Scratch 2.0 uses the * file format. These are zip files containing a .json file as well as the contents of the Scratch project including sounds (stored as ) and images (stored as ). Each filetype, excluding the , is stored as a number, starting at 0 and counting up with each additional file. The image file labeled "" is always a 480x360 white image, but "" will still be the earliest non-deleted file. The ScratchX experimental version of Scratch used the file format. Scratch 3.0 uses the * format, which is very similar to *, one difference being the sound.


Older versions

Although the main Scratch website now runs only the current version (Scratch 3.0), the offline editors for Scratch 2.0 (and the earlier Scratch 1.4) are still available for download and can be used to create and run games locally. It is still possible to upload projects from the Scratch 2.0 launcher, which are immediately converted into Scratch 3.0 when uploaded to the main site. There is also an offline version of Scratch 3.0.


Technology

The editor of Scratch 1.4 and below was written in
Squeak Squeak is an object-oriented, class-based, and reflective programming language. It was derived from Smalltalk-80 by a group that included some of Smalltalk-80's original developers, initially at Apple Computer, then at Walt Disney Imagineering ...
, while its online project viewer was written in
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
, and a player written in
Adobe Flash Adobe Flash (formerly Macromedia Flash and FutureSplash) is a multimedia software platform used for production of animations, rich web applications, desktop applications, mobile apps, mobile games, and embedded web browser video players. Fla ...
was later added. Scratch 2.0 relied on Adobe Flash for the online version, and
Adobe AIR Adobe AIR (also known as Adobe Integrated Runtime and is codenamed Apollo) is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop applications and mobile applicat ...
for the offline editor. These have fallen out of favor, and Adobe dropped support for them at the end of 2020.


Interface

In Scratch 2.0, the stage area is on the left side, with the programming blocks palette in the middle, and the coding area on the right. Extensions are in the "More Blocks" section of the palette. The web version of Scratch 2.0 introduced project autosaving. The blocks palette in Scratch 2.0 is made of discrete sections that are not scrollable from one to the next; the table below shows the different sections: Scratch 2.0 introduced the backpack, which can be used to transfer scripts, sprites, costumes, and sounds between projects.


1.4 sounds

Scratch 2.0 changed how sounds were imported, so many Scratch 1.4 sounds stopped working. (The project file was changed from * to *).


Features

Scratch uses
event-driven programming In computer programming, event-driven programming is a programming paradigm in which the flow of the program is determined by events such as user actions (mouse clicks, key presses), sensor outputs, or message passing from other programs or th ...
with multiple active objects called '' sprites''. Sprites can be drawn, as
vector Vector most often refers to: *Euclidean vector, a quantity with a magnitude and a direction *Vector (epidemiology), an agent that carries and transmits an infectious pathogen into another living organism Vector may also refer to: Mathematic ...
or
bitmap In computing, a bitmap is a mapping from some domain (for example, a range of integers) to bits. It is also called a bit array or bitmap index. As a noun, the term "bitmap" is very often used to refer to a particular bitmapping application: th ...
graphics, from scratch in a simple editor that is part of Scratch, or can be imported from external sources. Scratch 3.0 only supports one-dimensional
arrays An array is a systematic arrangement of similar objects, usually in rows and columns. Things called an array include: {{TOC right Music * In twelve-tone and serial composition, the presentation of simultaneous twelve-tone sets such that the ...
, known as "lists", and floating-point
scalars Scalar may refer to: *Scalar (mathematics), an element of a field, which is used to define a vector space, usually the field of real numbers *Scalar (physics), a physical quantity that can be described by a single element of a number field such a ...
and strings are supported but with limited string manipulation ability. 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.


Scratch 2.0 features

Scratch 2.0 does not treat procedures as first class structures and has limited file I/O options with Scratch 2.0 Extension Protocol, an experimental extension feature that allows interaction between Scratch 2.0 and other programs. The Extension protocol allows interfacing with hardware boards such as
Lego Mindstorms Lego Mindstorms is a hardware and software structure which develops programmable robots based on Lego building blocks. Each version includes computer Lego bricks, a set of modular sensors and motors, and Lego parts from the Technic line to ...
or
Arduino Arduino () is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed und ...
. Scratch 2.0 also has the following features: * Smart block switching * Two-column category menu * Reverse order of project controls * Display stage on left side * Square block inputs * Compact editor * Collapsing sprite properties * Scratch 2.0 themes


Snap''!'' (Build Your Own Blocks)

A more advanced visual programming language inspired by Scratch is Snap''!'', featuring first class procedures (their mathematical foundations are also called ''
lambda calculus Lambda calculus (also written as ''λ''-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation t ...
''), first-class lists (including lists of lists), and first-class truly object-oriented sprites with prototyping inheritance, and nestable sprites, which are not part of Scratch. Snap''!'' (previously "BYOB") was developed by Jens Mönig with documentation provided by
Brian Harvey Brian Lee Harvey (born 8 August 1974) is a British singer from London. He was the lead singer of pop group East 17. The later incarnation of the band, E-17, had two top 20 singles on the UK Singles Chart between 1998 and 1999, with the album ' ...
from
University of California, Berkeley The University of California, Berkeley (UC Berkeley, Berkeley, Cal, or California) is a public land-grant research university in Berkeley, California. Established in 1868 as the University of California, it is the state's first land-grant u ...
and has been used to teach "The Beauty and Joy of Computing" introductory course in CS for non-CS-major students. Both of them were members of the Scratch Team before designing "Snap''!''".


ScratchJr

In July 2014,
ScratchJr ScratchJr is a visual programming language designed to introduce programming skills to children ages 5–7. The app is considered an introductory programming language. It is available as a free app for iOS, Android and Chromebook. ScratchJr is a ...
was released for
iPad The iPad is a brand of iOS and iPadOS-based tablet computers that are developed by Apple Inc. The iPad was conceived before the related iPhone but the iPhone was developed and released first. Speculation about the development, operati ...
, and in 2016, ScratchJr for Android. Although heavily inspired by Scratch and co-led by Mitch Resnick, it is nonetheless a complete rewrite designed for younger children—targeting ages 5 through 7.


Community-made modifications

Due to the open source nature of Scratch, numerous
forks In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods eit ...
and
browser extension A browser extension is a small software module for customizing a web browser. Browsers typically allow a variety of extensions, including user interface modifications, cookie management, ad blocking, and the custom scripting and styling of web pa ...
s have been created by the community that aim to improve or modify the user experience. ScratchTools and Scratch Addons are some examples of open-sourced browser extensions that add many upgrades and new features to the Scratch website and editor. TurboWarp is a fork of the Scratch 3.0 editor that compiles the Scratch blocks into JavaScript code when a project is run, meaning projects can run up to 200x faster, with 60FPS option, results varying heavily depending on the project, and setting and add-ons. TurboWarp can also export projects to
standalone Standalone or Stand-alone may refer to: * Stand-alone DSL, a digital subscriber line without analog telephone service; also known as ''naked DSL'' * Stand-alone expansion pack, an expansion pack which does not require the original game in order to ...
HTML5 HTML5 is a markup language used for structuring and presenting content on the World Wide Web. It is the fifth and final major HTML version that is a World Wide Web Consortium (W3C) recommendation. The current specification is known as the HT ...
,
Bundle (macOS) In NeXTSTEP, OPENSTEP, GNUstep, and their lineal descendants macOS and iOS, a bundle is a file directory with a defined structure and file extension, allowing related files to be grouped together as a conceptually single item. Examples of bundl ...
and EXE files. Users can also create their own extensions for Scratch 3.0 using JavaScript. Although the intention for Scratch 3.0 was to allow unofficial JavaScript extensions to be developed by users, it was abandoned due to moderation risks. As a result, the official site doesn't allow JavaScript extensions to be added, but several modifications of Scratch do. Before 2.0, a number of Scratch forks were created using the source code of Scratch 1.4. These programs usually only included a few extra blocks not present in Scratch.


See also

*
Blockly Blockly is a client-side library for the programming language JavaScript for creating block-based visual programming languages (VPLs) and editors. A project of Google, it is free and open-source software released under the Apache License 2.0. It ...
, an interface used by Scratch to make the code blocks. *
Snap! (programming language) Snap''!'' (formerly Build Your Own Blocks) is a free, block-based educational graphical programming language and online community allowing students to explore, create, and remix interactive animations, games, stories, and more, while learning a ...
* Swift Playgrounds *
Alice (software) Alice is an object-based educational programming language with an integrated development environment (IDE). Alice uses a drag and drop environment to create computer animations using 3D models. The software was developed first at University of ...
*
Twine (software) Twine is a free and open-source tool created by Chris Klimas for making interactive fiction in the form of web pages. It is available on Mac OS X, Windows, and Linux. Software Twine emphasizes the visual structure of hypertext, and does n ...
*
Lego Mindstorms EV3 LEGO Mindstorms EV3 is the third generation robotics kit in LEGO's Mindstorms line. It is the successor to the second generation LEGO Mindstorms NXT kit. The "EV" designation refers to the "evolution" of the Mindstorms product line. "3" refers t ...
*
Kodu Game Lab Kodu Game Lab, originally named ''Boku'', is a programming integrated development environment (IDE) by Microsoft's FUSE Labs. It runs on Xbox 360 and Microsoft Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10 And Windows 11. ...
* Code.org * Programmable Cricket *
PWCT PWCT is a free open source visual programming language for software development. Goal Programming Without Coding Technology (PWCT) is designed to be a general-purpose visual programming language that can be used for applications and systems de ...
*
Visual programming language In computing, a visual programming language (visual programming system, VPL, or, VPS) is any programming language that lets users create programs by manipulating program elements ''graphically'' rather than by specifying them ''textually''. A VPL ...
* Pencil Code (programming language)


References


External links

* *
Scratch Lab
{{Authority control Dynamically typed programming languages Visual programming languages Educational programming languages Free educational software MIT Media Lab Pedagogic integrated development environments Smalltalk programming language family Video game development software Video game engines Video game IDE Software developer communities Programming languages created in 2003 Computer file formats Filename extensions Creative Commons-licensed websites