What is Microsoft MakeCode and Compare it with Code.org

As the introduction of Microsoft MakeCode goes, “Microsoft MakeCode is a free, open source platform for creating engaging computer science learning experience that support a progression path into real-work programming.” It indicates that every MakeCode page is related to a physical product. Each page will show a simulator to mimic the response of the physical device.

MakeCode also offers two types of editor: Block Editor and JavaScript Editor. Block editor uses block based language, which looks very similar to Scratch. JavaScript Editor just follows the syntax of JavaScript. Therefore, students could choose the language based on their preferences or learning level.

Consistent Interface

Another important feature of MakeCode is the consistent appearance of workspace across different product page. On the most left side is the simulator area. In the middle is the command bars while on the right is the coding workspace.

Although those devices have different functionalities, some command blocks are common such as Loops, Logic, Variables and Math, so they will appear in each project page. Besides the common blocks, there are also command blocks specific to each device.

For example, both micro:bit and adafruit have Input, Music, Loops, Logic, Variable, Math and Advances tabs, but the command blocks inside the tab might be different, as shown in Music tab.

MakeCode interface of micro:bit

MakeCode interface of adafruit

Support Multiple Hardware

Currently, there are seven products supported by MakeCode. Except Minecraft which is completely software-based, all the other six products have physical devices.

It might be as simple as a piece of micro-processor such as micro:bit, adafruit or Chibi Chip. They could connect to external sensors, circuits or motors to enhance their capability. It might be a smart brick such as LEGO MindStorms EV3 smart hub, which has already had a set of motors and sensors to form a complete system.

It might be a mini game player like Arcade. You can download the self-made game from MakeCode and then play them on the physical device.

It might also be a mini robot like Cue, which is equipped with sensors, motors, IR receivers and speakers. You could write code on its App (same interface as MakeCode) and then let it respond to external environment.

Through MakeCode, you would find that actually there are so many educational devices to choose from, besides the very popular LEGO MindStorms EV3. Some processors such as micro:bit and adafruit looks much simpler but affordable, suitable for large scale educational scenario.

Similarity Between MakeCode and Code.org

If you once visited code.org, you might notice the similarity between MakeCode and Code.org. Both of them are non-profit organizations, and all the tools, tutorials and courses are available to use freely.


Second, both of them provide consistent interface for different products. In Code.org, it has different labs, such as Sprite Lab, Dance Party, App Lab, Game Lab, etc. There are some common command blocks, but some commands are special to each lab. In my previous post, I once compared Code.org with Scratch and suggested to combine all the commands together in Code.org to form a super lab.

but for MakeCode, different hardware has different functionalities, so there are always some commands just specific to one hardware. The separation of product page is necessary under this scenario.

There are just a few things of MakeCode I am not into. The first is the difficulty to debug the code. For most of the product page, you have to download the .uf2 file into your computer, and then copy it to the flash drive of the hardware device. Although it is just an extra step of copy/paste, it is annoying when you are concentrating on the debugging and need to frequently update the code.

In general, MakeCode is a great platform to provide free programming tool for the educational devices. If you are interested or has any of those hardware devices at hand, don’t forget to try it!

Note: All the analysis articles are copyright products of http://www.thecodingfun.com. Anyone re-posting them should credit author and original source. Anyone using them for commercial purposes or translating them into other languages should notify TheCodingFun and get confirmation first. All Rights Reserved.