9 comments

[ 4.2 ms ] story [ 20.8 ms ] thread
The problem with creative coding and languages like Rust, or C++ for that matter, is that long compilation times break down the interactivity that is expected in such workflows.
That's true! But I was amazed to see makepad.nl's performances. That's written in Rust and I saw one of the authors, Rik, explain how they make it so fast to build. Praiseworthy job that shows that with care one can go far.
Very nice name and reference!
I used Nannou for several months, it's actually how I got into creative coding and was my first real foray into Rust. I didn't find the compilation time to be a huge issue for me, but I did find the strictness of Rust to be a problem. Creative coding for me evolved into making beautiful (to me) visual patterns with code. I had no interest in understanding or fixing a mutable shared value because this code was meant to exist for only a few moments, not to power an enterprise system.

I eventually moved on to OPENRNDR [1] which I loved, but these days I just use TypeScript.

[1] https://openrndr.org/

I got into this with Genuary in 2023 or 2024. I found myself wishing Rust had a flag that would automatically coerce between different integer and float types. Just let me put an i32 where you're expected a u64, an f32 where you want an i64, it'll be okay, I swear!
Will it be okay though? i32 to u64 has two ways to convert it:

    i32 -> u32 -> u64
    i32 -> i64 -> u64
This matters with negative numbers, where the first one pads with 32 bits of 0, the second one pads it with 32 bits of 1. Sometimes (as it once happened to me), you wanted the wrong one.