To sum up what's different about MicroBlocks:
* It is blocks based.
* It is live. That means you can change scripts in real time while they're running. You can see the result of running any block in real time. You don't have to wait for any compilation/upload cycles.
* It is autonomous. You can disconnect the board at any point, and the program will keep running in it.
* It is parallel. You can run multiple tasks at the same time.
* It is portable. It runs in several boards thanks to our VM approach.
There was no language that did all these, so we made our own :)