I used to do a lot of demoscene stuff as well [1]. I've been trying to get back into it but I've found that all of the software engineering I've done in the meantime has kind of driven the "just get it working" mindset away somewhat.
I used to just write code that "happened" to work, more or less. Nowadays I would want to get unit tests in place, make it cross-platform if at all possible and get a nice GUI going for easy tweaking. It's made it impossible for me to get anything done in the limited free time I have :) ideally I'd write it in Rust, but there, too, I am waiting for tooling to catch up. I get the feeling that I'm not so much waiting for the tooling, but I'm using the waiting as a sneaky way of procrastinating and fooling myself...
The tooling for Rust is slowly becoming quite good. Intellij + The Rust Plugin is a really good development environment. Other editors with RLS are not as advanced yet though. So if you need an IDE environment for Rust, then Intellij is really good already.
Yes, it's getting to a point where it's not really an obstacle anymore. I can even debug on Windows using the latest version of clion, what is the world coming to?
My suspicion is that this problem you describe is one core reason why "a raymarcher in a single shader" has become such a popular demo platform. Nobody writes unit tests inside shaders, it just.. doesn't make much sense. The environment sort of forces you to stop thinking like an engineer and start thinking like a coder.
This is very true. Having said that, even with shader I've managed to go down the rabbit hole. "Perhaps this shader can be generalized so it'll work for every vertex format...hmm, it should probably dynamically recompile then...once I'm doing that I might as well start linking arbitrary snippets of code then..." etc.
I used to just write code that "happened" to work, more or less. Nowadays I would want to get unit tests in place, make it cross-platform if at all possible and get a nice GUI going for easy tweaking. It's made it impossible for me to get anything done in the limited free time I have :) ideally I'd write it in Rust, but there, too, I am waiting for tooling to catch up. I get the feeling that I'm not so much waiting for the tooling, but I'm using the waiting as a sneaky way of procrastinating and fooling myself...
[1] http://www.pouet.net/groups.php?which=65