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: Part of the MD5 algorithm expressed in colourful Lego blocks. (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:

A colourful state machine diagram.

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?


Share this post on…

  • Mastodon
  • Facebook
  • LinkedIn
  • BlueSky
  • Threads
  • Reddit
  • HackerNews
  • Lobsters
  • WhatsApp
  • Telegram

10 thoughts on “Why aren't there more visual programming languages? (An ode to DRAKON)”

  1. 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..

    Reply | Reply to original comment on mastodon.social
    1. @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?

      Reply
  2. 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"

    Reply | Reply to original comment on universeodon.com

Trackbacks and Pingbacks

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.

Allowed HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">