This is awesome! Is MakeCode a subsidiary of Microsoft? It looks like it’s based on some Microsoft tech similar to Google’s Blockly I hadn’t seen before. I’m curious because I’m working on a product in this space.
Yeah, we're a team at MSFT (same org as VS Code). All* our code is open source. We use Google Blockly, and we've made a number of contributions upstream to them.
What's your product?
* Our server code isn't open source, but it's basically just a node app serving a SPA. Everything is client side. Works offline too.
My product is called Devev. I moonlit the product for the past few years while working at Microsoft. I quit about a month ago to get it over the finish line. I'm still pre-launch but here are some images: https://imgur.com/a/zLS1g0t
I worked on video games for the past few years and saw many less technical colleagues empowered by tools like Unreal Engine's Blueprint (https://docs.unrealengine.com/en-us/Engine/Blueprints). I thought that the same paradigm may apply more widely but the visual languages used outside of games weren't really hitting the mark.
Devev is a framework for creating visual programming languages. They are supported through extensions. For launch I'm working on an extension which parses TS types and allows you to use the existing code in nodes. That's what you'll see in my image above. This will allow early users to tap into existing libraries published on NPM.
I don't expect much traction with the launch version and plan to target a specific domain shortly after that. I'm leaning towards a build system where you can capture your dependencies in a visual graph. One of the applications I'd been thinking about was allowing users to build and share games or other applications in a web-editor similar to Scratch.
Devev is also a JS SPA and the client editor uses Electron. The client editor supports more features like multiple windows, editors panes and plugins. Additionally the client can parse new Typescript files but not the SPA. For the SPA to parse TS I'd need to deliver TSC over the web which I won't figure out for V1.
This is really cool! I've often wondered if a Blueprint-like editting experiences could be used more broadly. Looking forward to seeing this grow. I think there is also great potential for a very approachable debugging experience.
Targeting build systems seems like a great fit as well, since as you pointed out the build DAG is naturally a graph.
I love the idea of using typescript types to define visual code atoms. We do a very simple version of that to create our Blockly blocks, e.g. block definition: https://github.com/microsoft/pxt-microbit/blob/master/libs/r...
although I'm sure you could take that much farther.
Thanks for the reply. If you have any ideas for potential use cases or want to see a short demo of what I have running so far let me know if you'd like to get in contact.