I always had the idea in mind to one day code something in #C for the #C64. There's #cc65 offering a decent compiler. I always ended up with using #assembler again. That's because on that platform, it is the only way to have "full control": The OS only offers a machine code ABI (jump to routines, pass stuff in registers) and misses lots of things, so you need to program the hardware directly. Of course, I still use an assembler instead of hacking the bytes of the machine code directly.

Any Unix and similar OS comes with a C compiler, and even other systems offer a C API, so for a "modern" environment, that's the natural language to use for that "full control". And remember, C is your "portable assembler". 😏

In a nutshell, if you take "from scratch" literally, it would mean to somehow hack bytes into the machine's memory. That doesn't make much sense. I understand it as "use a simple programming language and avoid these huge frameworks and similar doing deep magical stuff for you".

CC: @modev@snac.bsd.cafe