Harman Patil (Editor)

Blockly

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

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. It runs in a web browser, and resembles Scratch.

Contents

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.

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

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.
  • MIT's App Inventor, to create applications for Android.
  • Code.org, to teach introductory programing to millions of students in their Hour of Code program.
  • LearnToMod, to teach computer science to kids through the context of making Minecraft modding simpler.
  • Wonder Workshop, to control their Dot and Dash educational robots.
  • the Open Roberta project, to program Lego Mindstorms EV3 robots.
  • snapp, to create apps and prototypes for iOS and Android.
  • CodeSpells, a video game on Steam which allows players to craft magical spells to manipulate a 3D world using Blockly code.
  • the AMADEOS project, as a supporting facility tool to design System of systems.
  • ScratchyCAD, a web based parametric 3D modeling tool which allows users to create 3D objects using Blockly code.
  • 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
  • Step-by-step code execution for tracing and debugging code
  • Localised into 50+ languages
  • Support for left-to-right and right-to-left languages
  • References

    Blockly Wikipedia