Blockly lets you focus on applying blocks to your domain without worrying about the complexities of how those blocks should be rendered, dragged, or connected.
It is applicable to a wide range of educational use-cases, such as:
- Working students toward text-based programming.
- Encouraging computational thinking.
- Exploring other concepts (e.g. physics) computationally.
As well as many many industry use-cases, such as:
- Data analysis and cleaning.
- Automation (e.g. in robotics, process workflows, etc).
- Configuration (e.g. in online shops, IoT, etc).
Strengths
Blockly has a number of strengths that make it the most popular option for building a block-based programming environment.
- Availability. Blockly is published on NPM, so you can require it in the same way you require any other web dependency.
- Fully featured. Blockly comes bundled with common blocks that generate code in 5 popular programming languages (JavaScript, Python, Lua, Dart, and PHP). Plus it has a thriving plugin ecosystem that gives you even more capabilities.
- Customizability. Blockly lets you easily define your own blocks, fields, and inputs. Plus many of its core functionalities can be swapped out for your own custom ones.
- Internationalization. Blockly's core library of blocks comes with translations in 90+ languages, including right-to-left versions for Arabic and Hebrew.
- Open Source. Google shares Blockly's technology with everyone so, together, we can educate the next generation of developers.
Alternatives
There are some use cases where it makes sense to use a library other than Blockly. Here are some other options:
- PXT: This is an editor built on Blockly that powers MakeCode. It outputs JavaScript exclusively, which enables it to convert from code to blocks. It also comes bundled with a compiler and a simulator.
- Droplet: This is the editor that powers Pencil Code. It lets you type to create blocks without dragging, and also supports going from code to blocks.
- Node-red: This is a node-based rather than block-based programming editor, but it fulfills a similar function. It is popular for wiring together hardware devices, often in industry contexts.