Neil's News


19 June 2012

My blog has been abnormally quiet for quite some time. That's usually an indicator that I'm up to something big. This time is no exception. For the past year I've been working hard on Blockly, a visual programming editor.


Academics have been making visual programming languages for a couple of decades, but none have really taken off in a big way. My attempt tries to fix some key issues.

  • Inviting. Novice programmers have nothing invested, thus any barrier to entry will scare then off. Blockly is free, has no downloads, no plugins, and no installation. It is literally a click away.
  • Appealing. For most software function is more important that style. Visual programming languages are an exception. Users are being immersed in an unfamiliar environment and the look and feel can make them decide that they "don't like it". Blockly has a highly polished UI; Gaussian blurs, rounded corners, and auditory feedback.
  • Unlimited. Visual languages are a great starting point. But as one gains experience they become more trouble than they are worth. It is important that users be able to seamlessly migrate to a 'real' language, taking their code with them. Blockly exports the code to JavaScript, Dart, Python, and any other language people write generators for.
  • Relevant. Domain-specific programming languages are always more suitable for that domain than general-purpose programming languages -- especially when one lacks prior experience. Blockly is an editor that can be embedded into any website and populated with blocks that are custom-designed for the task at hand.

Watching the media reaction to Blockly has been fun. Here are a sampling of news clippings in German, Hungarian, Indonesian, Russian, Japanese, Chinese, Greek, Portugese, Arabic, and English.

Blockly still has a long way to go, but at least it's now out in the open. Oh, and it's open source, so dig in and build something with it!

< Previous | Next >

Legal yada yada: My views do not necessarily represent those of my employer or my goldfish.