BBC micro:bit is a piece of hardware wich allows to to run code, such as Python or Javascript, that is custom made for the micro:bit chip. However, it in itself is not a programming language.
Instead, it allows people to use 4 different coding languages to manipulate it:
- Python, with a custom module, microbit
- JavaScript block editor, similar to Scratch or Google Blockly
- Microsoft Block Editor, again similar to Scratch or Google Blockly
- Microsoft Touch Developer
Obviously, as all of these languages are Turing complete, they can compete here. So how do we submit solutions in them?
For example, a Hello, World! program can be written in 4 different languages with the BBC micro:bit, all with different scores and with different code, but that all work the same way.
A Python micro:bit answer for Hello, World! would be
import microbit
microbit.display.scroll("Hello, World!")
which scores 56
bytes. However, if I wrote the same program in Microsoft Touch Developer, it would
a) Use a different encoding, similar to TIBasic
b) Be shorter, because of this encoding.
This is what the program in Microsoft Touch Editor looks like:
Now this brings up a whole separate issue of how to count these bytes but for now, we'll stick with bytes like this
[script ][a][newline]
[function main()][newline]
[tab][basic][-> show string][(]["Hello, World!"][,][1][)][newline]
[end function]
which comes out as 15 bytes (I'll explain why in the post about counting bytes).
So the competition doesn't become about language tricks, but rather what language you choose to use, which isn't fair.
Therefore, what should be do about submissions in BBC micro:bit programs? How should answers in them be formatted/answered?