Basically, it should be reasonable for one average dev to write a naive compiler in a reasonable little time.
Maybe it is better to cleanup the C syntax a bit: only sized types (u8/16../u64, f32/f64, s8...) namely inverting the primitive types; no implicit cast (except from literals and void*) or integer promotion, real hard compiler constants (re-definition of const keyword?); no switch keyword; only one loop keyword (loop {}); a clear split between static cast and runtime/dynamic cast? (should give more thoughs to it, since only static cast seems to mean something); all those _generic, typeof, restrict, TLS, packed attribute (or how to lose the importance of alignment from sight), anonymous code block, stuff which have to go away; nowdays you need inline atomic, barriers, offsetof; and all the other things I am forgetting and of course if actually doing it, more thoughs will be required.
In the meantime I am coding RISC-V assembly which I can run an x86_64.
its likely lack of knowledge on my part, but i found it incredibly tedious to either reason about how binaries in such languages really worked, getting their toolchains to spit out binaries of the type i needed, or having to reimplement a lot of the core libraries which make those languages appealing, the last for example less needed when working within another operating system's execution environment.
ultimately i ended up going back to C after many failed experiments. but this is just my 'taste'. likely others might be more succesful (professional system programmers?)
i did not find a good alternative to C + assembly yet.
In Zig I had a really hard time getting productive. I found it really hard, but I really wanted to like it, I just couldn't.
Hare was focused on just Linux and I wanted cross platform and ideally a C-like language.
Odin looks approachable but I didn't really want a language which is quite different to C as it makes porting code from C more challenging.
I’m going back to C myself, to do some graphics programming