Visual programming is the future. After using Unreal Engine daily for about a year now I'm convinced. We gotta start moving to rid ourselves of these purely hand-written text-based systems.
They've been saying Visual Programming is the future since basically the inception of programming, but I feel like we're starting to get real traction now with things like the #nocode movement and first-class support for Visual Programming in Unreal Engine.
One problem is that doing visual programming right requires a lot of effort, comparable to any programming language. Unsurprisingly most visual programming tools are underpowered and not great at general purpose development, but that's because none of them were able to mature.
You can't compare a programming language with a decade+ of engineering effort, hundreds/thousands of contributors and major corporate funding, to visual programming tools built in <12 months by a handful of 20 year olds.
One amazing thing about Unreal Engine is that despite being a C++ engine, their Blueprints Visual Programming environment is 100% a first-class citizen, even above the C++ interface. If you think of visual programming as a toy for newbies, then it will always be a sub-par tool.
The UE visual programming environment is powerful & fun to use. Could be better in a *lot* of ways, but does serve to make the case that Visual Programming can and is already being used to successfully build complex, production-ready systems.
Also of note is that UE exposes multiple different visual programming tools for achieving different tasks. e.g. there's the main Blueprints editor, Material Editor, Animation State Machine Editor, AI Behaviour Tree Editor, etc.
I don't see anything about Unreal Engine that couldn't also be made to work for browser + server technologies, but this isn't something that can get traction by creating yet another visual programming startup, it needs to be a first-class citizen. A standard. Ships in the browser
Yes you can build stuff on top of wasm, or JS, e.g. firefox's WebAudio editor but note that IIUC the webaudio APIs themselves were designed in a manner to be compatible with a flow-based editing tool like this i.e. graph of nodes + connections. We need this but for all web apis.
Anyway, point is that we could and should have a standard, first-class, visual programming environment/format for the web. Doesn't need to define UI specifics, but instead a format for creating nested graphs of interconnected logic & a standard runtime for executing these graphs.
IMO deploying this as first-class web technology would open so many new doors for people to get into development, & IMO would lead to more intuitive, accessible tools and better quality software being written.
Anecdotal speculation: Our brain has a lot of built-in magic for spatial reasoning & deduction & IMO visual programming helps us to better tap into this power.
We would all benefit from getting out of this single-minded, short-sighted idea that physically using our hands to bang text into files is the best/only way to do serious programming. We're stuck in a local maxima, we can do a lot better.
You can follow @timkevinoxley.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: