Virtual Meetup - SplootCode - making code easy to learn without adding limitations

Hi Community,

I am happy to announce that this Thursday (the 4th of NOvember), Katie Bell will hold the discussion about “SplootCode - making code easy to learn without adding limitations”.

Also, remember that we changed the link to join the Meetup!

Learning to code is a difficult task. It’s not just about building an understanding of the core concepts of programming, it requires understanding and memorising a large vocabulary of syntax, data types, and functions along with their parameters and behaviour. Visual coding languages avoid this struggle by providing a user interface where syntax errors are impossible, the available code functions are discoverable and feedback is immediate. So, why is the majority of software still written in text-based languages? The arguments are usually that it’s faster to enter information with a keyboard, and that a visual representation can’t compete with the compact expressiveness of text. SplootCode is an experimental visual coding editor which aims to capture the best of both worlds. Beginner developers can easily construct code without syntax errors, and new functions or language features are easily found and understood. The layout is similar to text and because it’s a direct implementation of the Python AST, it has the expressiveness and flexibility of a real world programming language. The code structure is navigated by mouse or keyboard and new code can be generated as quickly using typing and autocomplete just like a regular IDE. In this talk She will explore the motivation for building SplootCode, the early experiments that shaped its implementation and where it’s at now.

Katie is a professional software engineer with experience across a range of roles and companies including Google, Campaign Monitor and a variety of startups. She’s also been teaching beginner programmers for more than 10 years and currently teaches career-changing software development courses for adults at General Assembly.

And if you are thinking of proposing a talk, it is time to come forward. Just let me know by replying to this message.

How to connect

To avoid other security issues is now necessary to register for the meeting. The registration should be necessary just once and be valid for all the next meetings you will participate in. I understand it is a little extra effort, but it would avoid problems like the ones we encountered:

Registration for the Virtual Meetup

After registering, you will receive a confirmation email containing information about joining the meeting. It will also permit you to add it to your calendar.


It is hosted on Zoom at 6 PM GMT+1/CEST (you can use this link to figure out which time is in your timezone: Dateful Time Zone Converter).


P.S. We get a recurring question: “Are presentations recorded?”. The answer is not, and the reasons are explained here On recording Virtual Meetups - #7 by voelter

I am not sure Katie is actually registered as a user here, but I thought her approach was interesting, even though I am promoter of text-based languages even for things done traditionally in a graphical way (like modeling languages). I guess I liked it exactly because the examples I saw seemed like an intuitive mapping from textual syntax.

My last question (I asked several during the presentation, thanks for the responses, Katie!) to whoever can answer would be: is the SplootCode editor basically a (text-oriented) projectional editor? I am not a projectional editor buff myself, so I may be missing something obvious.

I’d say yes. Katie already mentioned we can have different projections for expressions (with or without tree structure).

I was not a registered user, but I am now!

@rafael Yes, I think your description of SplootCode as a “text-oriented projectional editor” is pretty accurate. It’s a projectional editor, which aims to be readable and editable in a very similar way to text code. At the moment it’s a fairly direct mapping to the text-based language’s AST, but there’s potential for it to do things like store unique IDs for functions and variables so that a rename operation is trivial.

It all comes down the ambitious goal of combining all the good parts of text-based code and all the good parts of projectional editors. :sweat_smile: