HOME

TheInfoList



OR:

Scratch is a
high-level High-level and low-level, as technical terms, are used to classify, describe and point to specific goals of a systematic operation; and are applied in a wide range of contexts, such as, for instance, in domains as widely varied as computer scienc ...
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 VP ...
and website aimed primarily at children as an educational tool for programming, with a target audience of ages 8 to 16. Users on the site, called Scratchers, can create projects on the website using a block-like interface. Projects can be exported 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 HTML ...
, Android apps,
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 bundles ...
and
EXE Exe or EXE may refer to: * .exe, a file extension * exe., abbreviation for executive Places * River Exe, in England * Exe Estuary, in England * Exe Island, in Exeter, England Transportation and vehicles * Exe (locomotive), a British locomotive ...
files using external tools. The service 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 ...
, has been translated into 70+ languages, and is 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 May 8, 2022, community statistics on the language's official website show more than 104 million projects shared by over 90 million users, over 686 million total projects ever created (including unshared projects), and more than 100 million monthly website visits. 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 D ...
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 record ...
", 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, game controller, controller, computer keyboard, keyboard, or motion sensing device to gener ...
,
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 anima ...
,
music Music is generally defined as the art of arranging sound to create some combination of form, harmony, melody, rhythm or otherwise expressive content. Exact definitions of music vary considerably around the world, though it is an aspect ...
, and
simulations A simulation is the imitation of the operation of a real-world process or system over time. Simulations require the use of models; the model represents the key characteristics or behaviors of the selected system or process, whereas the s ...
.


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 and they will appear in "My Blocks". The ''stage area'' features the results (e.g.,
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 anima ...
,
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 attribut ...
, 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 sig ...
, with 0,0 being the stage center. With a sprite selected at the bottom of the staging area, blocks of commands can be applied to it 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 A bit array (also known as bitmask, bit map, bit set, bit string, or bit vector) is an array data structure that c ...
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 sprite 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 in the Microsoft Store and Apple's MacOS 10.13; 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 and 3.0, the extensions were all hardware-based. 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. * Music * Pen * Video Sensing * Text to Speech * Translate * Micro:bit *
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 ...
* LEGO WeDo 2.0 * Makey Makey * LEGO SPIKE Prime * LEGO BOOST * Go Direct Force & Acceleration


Physical

* Lego Mindstorms EV3 – 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 eithe ...
– use the Makey Makey to control projects *
Lego Lego ( , ; stylized as LEGO) is a line of plastic construction toys that are manufactured by The Lego Group, a privately held company based in Billund, Denmark. The company's flagship product, Lego, consists of variously colored interlocking ...
Education WeDo 2.0 – control motors and receive sensor data from the Lego WeDo *
Lego Lego ( , ; stylized as LEGO) is a line of plastic construction toys that are manufactured by The Lego Group, a privately held company based in Billund, Denmark. The company's flagship product, Lego, consists of variously colored interlocking ...
Education SPIKE Prime—The main programming language for the Lego SPIKE Prime, including motor control and receiving sensor data *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 * Text To Speech - Make your sprites talk


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) * Pen – Draw on the Stage with a variety of thicknesses and color * Video Sensing – Detect motion with the camera 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 API ...
to translate text from one language into a variety of other languages, including Arabic, Chinese, Dutch, English, French, Greek, Norwegian, and Japanese


Scratch Lab

The Scratch Lab has experimental extensions by the Scratch Team, intended to explore whether the blocks may be added to the full website in the future. Experimental blocks include: * Face Sensing – Make animated costumes and games that interact with your face. * Animated text – Bring words to life with colors, fonts, and animations. * New block colors - Change color of blocks to make easier to read. Users can also create their own extensions for Scratch 3.0 using
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 ...
. Although the intention for Scratch 3.0 was to allow unofficial JavaScript extensions, it was abandoned due to moderation risks. As a result, several modifications of the Scratch Engine allow JavaScript extensions to be added. One of the most popular is E羊icques.


Code base

Scratch 3.0 is a completely new JavaScript-based codebase made up of multiple components such as "Scratch-GUI," now based on a library from
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 ...
, "Scratch-VM," which interprets code, and "Scratch-Render," the rendering engine. The Scratch Blocks are made using Blockly. 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."


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, or scientific importance. Many public museums make these ...
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 into 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 Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
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 List ...
. Scratch is not exclusively for creating games. With the provided visuals, programmers can create animations, text, stories, music, 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 DAV organization in India and across the world. In higher education, Scratch is used in the first week of Harvard University's
CS50 CS50 (Computer Science 50) is an on-campus and online introductory course on computer science taught at Harvard University and Yale University. In 2016, CS50 became available to high school students as an Advanced Placement Computer Science course ...
introductory computer science course.


Online community

Users of Scratch are called 'Scratchers'. Scratchers have the capability to share their projects and get feedback. Projects can be uploaded directly from the development environment to the Scratch website and any member of the community can 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 its website, history, and phenomena surrounding it. Although supported by the Scratch Team (developers of Scratch), it is primarily written by Scratchers (users of Scratch) for information regarding the program and website. There are also other wikis using languages besides English available on the Scratch Wik
base domain


April Fools' Day

Every year on
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 ...
since 2014, the wiki shows joke versions of many pages instead of the real one, even though the real version of the page can still be accessed at the bottom of the prank version. Also, Scratch hat blocks also have a cat head instead of the usual slope (see the "Events" tab for more info on cat blocks). Additionally, a semicolon has also appeared on the bottom of every page on the wiki on April Fools' Day since 2019.


Developers

Both Scratch 2.0 and Scratch 3.0's GUIs are open source on GitHub, and developers may contribute to Scratch.


Roles

There are 3 roles. The "New Scratcher" is obtained by creating an account. As they progress into more social things, like loving, liking, and sharing projects, they will be asked if they want the "Scratcher" role. The "Scratch Team" role is given out to people who moderate and develop Scratch. Scratch Team roles will have an asterisk at the end of their username.


Modifications

Various Scratchers have created modifications unaffiliated with Scratch, the most notable ones bein
Turbowarp
and the browser extensio
Scratch Addons
Additional popular modifications of Scratch include: * Scratch to JavaScript compile
Forkphorus
* Scratch to JavaScript converte
Leopard
*
Box2d Physics A box (plural: boxes) is a container used for the storage or transportation of its contents. Most boxes have flat, parallel, rectangular sides. Boxes can be very small (like a matchbox) or very large (like a shipping box for furniture), and can ...
br>Griffpatch Scratch GUI
* Custom stage sizes and extension loading from URLs
E羊icques


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 ...
, the Scratch Team will play pranks on users and add Easter eggs, one example being turning all the event blocks into cat versions of the same blocks. These blocks were called "cat blocks" and can be downloaded as one of the many downloadable Scratch add-ons.


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 ...
, 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 technolo ...
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 I ...
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's team at
UCLA The University of California, Los Angeles (UCLA) is a public land-grant research university in Los Angeles, California. UCLA's academic roots were established in 1881 as a teachers college then known as the southern branch of the California St ...
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 A Creative Commons (CC) license is one of several public copyright licenses that enable the free distribution of an otherwise copyrighted "work".A "work" is any creative material made by a person. A painting, a graphic, a book, a song/lyrics ...
. 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.


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 sig ...
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 List ...
, and a player written in
Adobe Flash Adobe Flash (formerly Macromedia Flash and FutureSplash) is a multimedia Computing platform, software platform used for production of Flash animation, animations, rich web applications, application software, desktop applications, mobile apps, mo ...
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 the coding area on the right. Extensions are in the "More blocks" section of the palette. 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:


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 *).


Extensions

In Scratch 2.0, extensions were all hardware-based.


Features and derivatives

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 t ...
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 A bit array (also known as bitmask, bit map, bit set, bit string, or bit vector) is an array data structure that c ...
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 and
strings String or strings may refer to: *String (structure), a long flexible structure made from threads twisted together, which is used to tie, bind, or hang other objects Arts, entertainment, and media Films * ''Strings'' (1991 film), a Canadian anim ...
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 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 unde ...
. Scratch 2.0 was implemented 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 (meaning i ...
, with an experimental JavaScript-based interpreter being developed in parallel. Scratch 1.4 was based on Squeak, which 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 Alan Ka ...
-80. A number of Scratch derivatives called Scratch Modifications have been created using the source code of Scratch 1.4. These programs are a variant of Scratch that normally include a few extra blocks or changes to the
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
. TurboWarp is an unofficial modification of Scratch 3.0 that improves the performance of Scratch by compiling projects to JavaScript and allows the loading of external extensions.


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

A more advanced visual programming language inspired by Scratch is Snap''!'', featuring first class procedures (their mathematical foundations are called also ''
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 ...
''), 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 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 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, operating s ...
, 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 8.


Censorship

In August 2020,
GreatFire GreatFire (GreatFire.org) is a website that monitors the status of websites censored by the Great Firewall of China and helps Chinese Internet users circumvent the censorship and blockage of websites in China. Through an investigation by the Asso ...
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 Delt ...
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 nort ...
were listed as countries on the website.


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 ...
*
Swift Playgrounds Swift Playgrounds is an Educational software, educational tool and development environment for the Swift (programming language), Swift programming language developed by Apple Inc., initially announced at the WWDC 2016 conference. It was introduce ...
*
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 no ...
*
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. It was ...
* Code.org *
Programmable Cricket Programmable Crickets, known commercially as PicoCrickets, are robotic toys in the form of programmable bricks. They are used to construct artistic projects. Crickets were developed at MIT Media Lab, and were launched commercially in Montreal in ...
*
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 VP ...

Scratch Lab


References


External links

* * {{Video game engines , state=collapsed 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