Future

Blockly is in active development with changes landing every day. We are aware of
many deficiencies and are working hard to address them. Many of Blockly's
features come from volunteer developers, so please feel free to dig into the
code and send us contributions.

Running Everywhere

It is important that everyone be able to use Blockly. That means running in as
many environments as possible:

Multi-touch support is important for tablets. Pinch to zoom, two-finger
panning.

Support for blind users using screen readers and refreshable braille
displays.

New Blocks

Different applications need different blocks. There are a few types of blocks
that are repeatedly requested:

2D grids. Arrays of arrays are clumsy and hard to visualize. A new category
of blocks that deals with grid data (spreadsheets) is needed. Most of the
existing list blocks would have grid equivalents.

Multi-line strings. A block with a text area one can type paragraphs into.
Also useful would be a character picker widget that allows one to select
Unicode characters.

Improved UI

Blockly is designed to be clean and simple. We don't want to add clutter. But
there are many ways that the UI may be improved:

Multi-block selection. Hold shift to click many blocks, for group moves,
collapsing, disabling or deleting.

Cursor control for accessibility. Many users don't have good mouse-skills
due to disabilities. Adding keyboard shortcuts to manipulate Blockly would
enable these users to participate. The same shortcuts would also benefit
power programmers.

Trash can contents. Clicking on the trash can should bring up a bubble that
contains everything that has been deleted. These blocks may be dragged out
of the trash and back into the workspace.

Improved variable rename dialog. Shows a preview of how many variables are
going to be renamed, warns of collisions, etc.

Scalability

Writing large programs in most visual programming environments is cumbersome.
There are many interesting problems in allowing one to write large programs
(many are challenging enough to produce publishable academic papers or
dissertations if you feel so inclined). The Blockly team is currently focused
on small educational applications, which means nobody is currently pursuing
these:

Zooming in and out like Google Maps. This is more than just scaling the
workspace, details need to appear and disappear appropriately.

Debugging hooks. Being able to run a program, step forwards and backwards,
inspect variables, set break points.

Search. Find functions, callers, variables, and other code searching
activities. Likewise, a search and replace feature would allow for easier
maintenance of code.

Libraries. How does one bundle code into a reusable, publishable module that
other programs may include and depend on?

Collaboration. Realtime editing of blocks between connected users.

But most important of all, grab a copy of Blockly, integrate it with your apps,
and see how your users like it. We love to see Blockly out in the real world --
from teaching programming to students, to controlling heavy machinery in a
factory.