Blockly
Blockly is a client-side JavaScript library for creating visual block programming editors. It is a project of Google and is open-source under the Apache 2.0 License.[1] It runs in a web browser, and resembles Scratch.
Blockly uses blocks that link together to make writing code easier, and can generate JavaScript, Python, PHP or Dart code. It can also be customised to generate code in any computer language.[2]
History
Development of Blockly started in summer of 2011, and the first public release was at Maker Faire in May 2012. Blockly was originally designed as a replacement for OpenBlocks in App Inventor.[3] Neil Fraser started the project with Quynh Neutron, Ellen Spertus and Mark Friedman as contributors.
User interface
The user interface of a Blockly program consists of a toolbox, which holds all the available blocks and a workspace, where you place the blocks. There is a trashcan on the workspace which deletes any blocks dragged onto it.[4]
Customising Blockly
Blockly comes with a basic set of blocks for common operations, but can be customized by adding more blocks. New blocks require a block definition and a generator. The definition describes the block's appearance and the generator describes the block's translation to executable code. There is an example program called Block Factory which makes writing the block definition easier by using Blockly blocks to construct a new block.
Applications using Blockly
Blockly is used in a number of projects:
- Blockly Games, a set of educational games that teach programming concepts such as loops and conditionals.[5][6]
- MIT's App Inventor, to create applications for Android.[7]
- Code.org, to teach introductory programing to millions of students in their Hour of Code program.[8]
- LearnToMod, to teach computer science to kids through the context of making Minecraft modding simpler.[9]
- Wonder Workshop, to control their Dot and Dash educational robots.[10]
- the Open Roberta project, to program Lego Mindstorms EV3 robots.[11]
- snapp, to create apps and prototypes for iOS and Android.[12]
- CodeSpells, a video game on Steam which allows players to craft magical spells to manipulate a 3D world using Blockly code.[13]
- the AMADEOS project,[14] as a supporting facility tool[15] to design System of systems.
- ScratchyCAD, a web based parametric 3D modeling tool which allows users to create 3D objects using Blockly code.[16]
More examples can be found in the Blockly Documentation
Features
- Web based using SVG, no Flash
- Completely client side JavaScript
- Support of major web browsers including: Chrome, Firefox, Safari, Opera, IE
- Mobile support on Android and iOS
- Support for many programmatic constructs including variables, functions, arrays
- Minimal type checking supported, designed for weakly typed languages
- Easy to extend with custom blocks. Use the block factory to make Blockly blocks with Blockly
- Clean code generation[17]
- Step-by-step code execution for tracing and debugging code[18]
- Localised into 50+ languages[19]
- Support for left-to-right and right-to-left languages[20]
See also
References
- ↑ "Google Blockly Lets You Hack With No Keyboard". WIRED.
- ↑ "Google's Blockly Teaches You to Create Apps". NBC Bay Area.
- ↑ "Google Groups".
- ↑ "Google Blockly - A Graphical Language with a Difference". i-programmer.
- ↑ "Google Introduces Kids to Coding Through Blockly Games Project". EWeek.
- ↑ "Blockly: Maze Archives - BrainPOP Educators". BrainPop.
- ↑ "MIT App Inventor 2". MIT.
- ↑ "Translate Code.org". Code.org.
- ↑ "LearnToMod Minecraft Modding". ThoughtSTEM.
- ↑ "Wonder Workshop Blockly". Wonder Workshop.
- ↑ "Open Roberta Lab". Fraunhofer IAIS. Archived from the original on 2015-06-25.
- ↑ "snapp: Create Apps Visually". Foneclay Inc. Retrieved 16 September 2015.
- ↑ "CodeSpells". ThoughtSTEM.
- ↑ "AMADEOS Project".
- ↑ "Blockly4SoS".
- ↑ "ScratchyCAD". scratchycad.
- ↑ "Blockly Demo:".
- ↑ "Blockly Demo: JS Interpreter".
- ↑ "Localisation statistics for the Blockly core module".
- ↑ "Blockly Demo: RTL".