Welcome to the MicroBlocks blog!

In this first post, it would be nice take a moment to explain where MicroBlocks came from.

One thread of this story is about ideas.

Although the MicroBlocks project itself began in 2017, it built on a long history. John Maloney's explorations of programming systems for children goes back to 1995, when he joined Alan Kay's group. In Alan's group, John helped develop Squeak and the Etoys blocks programming system. Then, in 2003, John joined the Lifelong Kindergarten Group at the MIT Media lab, where he was a co-designer and lead developer of Scratch for its first eleven years.

The big ideas behind MicroBlocks go back much further. MicroBlocks was deeply influenced by Logo (created by Seymour Papert, Cynthia Solomon, and Wally Feurzeig in 1967) and Smalltalk (created by Alan Kay's research group at Xerox PARC in the 1970's). MicroBlocks was also inspired by LogoChip, created by Brian Silverman and Robbie Berg, and by Citilab's White Cat research project.

But the immediate inspiration for MicroBlocks -- the spark that got it started -- was a presentation on the BBC micro:bit by Sue Sentance at the 2017 SIGCSE (Special Interest Group in Computer Science Education) Technical Symposium in Seattle, attended by both John Maloney and Jens Mönig. From the moment Sue demoed it, John loved the micro:bit and recognized its potential to inspire and motivate young people.

Sue gave John the micro:bit she had brought to demo. The next day, John tried it with the 14-year old child of the Seattle friends he was visiting. The result was disappointing. Although initially intrigued, after an hour of tediously downloading .hex files to run on the micro:bit, the 14-year old lost interest. Since John was used to seeing beginners grow more rather than less engaged and excited as they worked with Scratch, this loss of interest after only an hour was surprising. John hypothesized that it was caused by "download fatigue" and speculated that a live system that allowed users to run their code on the micro:bit right away as they worked would be much more engaging.

The other thread to this story centers around friendship.

John met Jens Mönig at the first MIT Scratch conference in 2008. That was beginning of a long and fruitful series of collaborations. Jens made many contributions to Scratch, but he also did his own experiments. His Smalltalk Elements system allowed the entire Smalltalk system to be viewed and edited as blocks. Later, Jens created a system for adding user-defined blocks to Scratch that he called Build Your Own Blocks (BYOB). Although the Scratch team decided not to incorporate BYOB into Scratch, Jens continued to develop it, with encouragement from Brian Harvey. Eventually, it was ported to Javascript, re-named "Snap!" and became the programming language for Berkeley's Beauty and Joy of Computing computer science course.

Jens and John met Bernat Romagosa in person at the first European Scratch conference in 2013 and immediately recognized a kindred spirit. Bernat was interested in Smalltalk and other live programming systems, and had created a blocks-based programming system called Snap! for Arduino. It was clear that Bernat would be great to work with, but there didn't seem to be a way to do that.

In 2014, John, Jens, and Yoshiki Ohshima, now at SAP's CDG research lab led by Alan Kay, began work on GP Blocks, a research project exploring the question: "What if an entire program system were implemented in a blocks language, just as the Smalltalk development environment is implemented entirely in Smalltalk?"

When the CDG research group was disbanded by SAP in mid-2016, John and Yoshiki left to join a new research group, while Jens remained at SAP. Although John and Jens wanted to continue working together, Jens had promised SAP that he would discontinue work on GP Blocks when CDG was disbanded. But MicroBlocks created a new opportunity. Since MicroBlocks was not GP Blocks, Jens could collaborate on it without breaking his promise to SAP.

All the pieces came together when John returned from SIGCSE in March 2017. The opportunity to collaborate with both Jens and Bernat, combined with John's already strong interest in the project, was enough. The three began sketching the outlines of MicroBlocks via email, while John began building an interpreter as a proof-of-concept. With contributions from all three, MicroBlocks made its public debut at the Scratch conference in July 2018.

Of course, the 2018 debut was only the beginning of the MicroBlocks story. In the four years since then, others have joined the effort, become friends, and made major contributions. I look forward to exploring new ideas and meeting new friends as the MicroBlocks story continues to unfold.