|This article has links to websites or programs not trusted by Scratch or hosted by Wikipedia. Remember to stay safe while using the internet, as we cannot guarantee the safety of other websites.|
The Source Code for Scratch is available under different open source licenses. It is usually used for:
- Understanding how Scratch works
- Building future versions of Scratch
- Making Scratch modifications
- scratch-blocks — the code editor
- scratch-render — draws the backdrop and sprites using WebGL
- scratch-vm — the virtual machine that runs Scratch projects
- scratch-gui — the user interface
- scratch-paint — the Paint Editor
- scratch-audio — plays sounds and instruments
- scratch-l10n — translations
- scratch-storage — saves and loads projects
- scratch-sb1-converter — converts .sb files to .sb2
- scratch-parser — parses and validates .sb2 and .sb3 files
- scratch-auth — authentication utilities used by server code
- scratch-www — parts of the website
The Scratch 2.0 source code is now officially available on GitHub here. It is written in ActionScript and now provides the necessary tools for users familiar with the language to create mods of Scratch 2.0. From the source code page, users can view the pull requests for Scratch 2.0 as well as analyze the current issues that need debugged.
Before the release of the source code on May 13, 2014, Scratch 2.0 could only be used in compiled form. Compiling takes code written in a human-friendly or high-level programming language and converts into code in a low-level language, which is more compact and can be interpreted faster. However, Scratch is and always will be open-source, and updates to the source code can be viewed on GitHub.
- Main article: Scratch 1.4 Source Code
The source code for Scratch 1.x is stored in two files, SqueakV2.sources and the changes file, the former containing the original source code for Squeak 2.0 and the latter containing everything written since then, including Scratch itself. The Scratch Team has published these separately from the ordinary version of Scratch, as explained below. (If the source code is absent, Squeak will automatically decompile methods, so Scratch can still be modified; however, comments are removed and temporary variable names are replaced with t1, t2, t3, etc. which can make the code difficult to understand.)
- "License" redirects here. For the license Scratch projects are published under, see Scratch Project License.
For Scratch 1.4, there are two different versions of the source code, available under two different licenses and intended for different purposes. The first, available since Scratch was created, contains a non-branded image file with a generic sprite and no uploading. This is released under the Scratch Source Code License. Another version, added in March 2012, is licensed under the GNU General Public License, version 2. It contains all of the media included with the regular Scratch distribution and was created to make it easier to put versions of Scratch on open source repositories, especially for Linux distributions.
The free version of Scratch 2 is under the GNU GPLv2 or any later version; it is complete except for the media library, help, and cloud variables.
All Scratch 3.0 source code except for Scratch Blocks is licensed under the BSD 3-clause license. Scratch Blocks is licensed under the Apache License v2.0, which is a fork of Google's Blockly, that is also under the Apache License.
- ↑ speakvisually. (13/08/14). "We've open sourced the Scratch 2.0 editor code!" topic:38754
- ↑ Lightnin. (03/30/12). "Scratch 1.4 Source code now available under the GPL v2[title]" ar-topic:93538
- ↑ https://github.com/LLK/scratch-blocks/blob/develop/LICENSE
- ↑ https://github.com/google/blockly/blob/master/LICENSE