Why aren't there more visual programming languages? (An ode to DRAKON)
I think the computer programming industry is about to reach a reckoning. No, not because ChatGPT can poorly plagiarise buggy code - but because a whole generation of kids have grown up with Scratch. And they'll want professional tools which have Scratch's level of usability.
Hand-coding YAML files is a mug's game; one wrong whitespace and everything is broken. Left a semi-colon off the end of a line of code; watch the compiler moan. Mixed up your ints, floats, and strings; the computer has a conniption.
This, frankly, is bollocks. And it isn't solved by having a better IDE gently putting danger lines under errant code.
It's solved by having tools which don't let you make that kind of mistake. For example, Scratch lets you drag and drop elements and makes it really hard to have a syntax error - even in complex code: (Snippet of MD5 in Scratch)
Scratch isn't perfect. It doesn't prevent you from making logical mistakes - but it makes it much easier to visualise and debug what the computer is doing.
I've long been a fan of the DRAKON programming language. It lets you draw a flow chart and then generate code from that chart. Sadly, the desktop software is rather flakey. But, there's a new interactive web editor. It lets you draw flow charts and immediately compile them into JavaScript.
Here's an excerpt from their demo Tetris game:
It takes seconds to design a flow chart and, after a single click, have it spit out relatively optimised JavaScript.
I think you should give https://drakon.tech/ a try. It isn't quite as slick as Scratch in terms of having a strictly defined set of "blocks" to use - but it is a much easier tool for creating conditional statements compared to hand-creating a bunch of nested if-else statements which branch off in a twisted mess.
Are there any other tools which let programmers visually design their algorithms?
sam henri gold said on hachyderm.io:
@Edent There were 0 insurrections while Quartz Composer was being supported. After it was killed, boom, an insurrection on the Capitol. I’m not saying it was the glue holding the country together, but yes I am saying that.
K said on mastodon.social:
@Edent this different from no/lo code options? They still have issues - part walled garden (no git, text version), part lack of maturity (again git, but also search of usages, refactoring, transparency of infra design/scaling decisions).
Weblogic leant pretty hard into workflow visually. Nested modules are hard to reason with, regardless of the electronics design usage (and their tools are decades behind software, from last usage).
Aws step functions, could evolve into something great, but..
Fazal Majid says:
Mostly because of the Deutsch Limit on how much logic you can fit in a screen in visual programming languages.
@edent says:
Sure. But most programmers are stuck using text editors which wrap at 80 characters. How much information density is there in a file containing loads of
RequestProcessorFactoryFactory.StatelessProcessorFactoryFactory
strings?Thomas Rigby said on mastodon.org.uk:
@Edent Big fan of the phrase "ChatGPT can poorly plagiarise buggy code" 😃
Byron Miller said on universeodon.com:
@Edent NI made a billion dollar industry out of a scratch-esque UI..
No one uses it.. not even the kids who grew up on scratch 😀
I hate to even say LabView out loud these days.
My data? Being a First Robotics Mentor trying to assist teams who thought Labview was easier because it was visual when it wasn't easier at all... far from it.
We're all using java and building world championship robots now because of it.
Turns out, code reuse, libraries and ease of debugging was much more important than visual coding.
scratch is great for learning and experimenting, but even kids want to move quicker and think better in "code"
Jonathan Frederickson said on jawns.club:
@Edent If you hadn't seen it, you might find Fructure interesting: https://github.com/disconcision/fructure
It's a bit like Scratch, only for s-expressions. Which turns Lisp's "code is a data structure" and shows you a graphical representation of that structure GitHub - disconcision/fructure: a structured interaction engine 🗜️ ⚗️
Andy Wootton said on fosstodon.org:
@Edent I haven't even found a tool for graphical modelling of functional programming yet; some sort of UML for functions.
nicopap says:
Have you heard of enso? I thought it looked particularly neat as a visual programming language. Though to be fair I never found an excuse to use it.
https://github.com/enso-org/enso
More comments on Mastodon.