When the answer to major draw backs with a language is use it better that’s a dead end for me.
Try browsing the list of somewhat recent #CVE rated critical, as I just did to verify. A majority of them is not related to any memory errors. Will you tell all them “just use a different programming language”?
And again with OOP. Why hack it into a language rather than use a language that supports it.
Have you seen existing C code? For anything non-trivial, most code uses some OOP, and it comes quite natural in C, certainly no “hacking”. You don’t need a class
keyword to do that.
If it came out today you’d have an incredibly hard time convincing anyone to use it over other languages.
It doesn’t come out today, it’s been there for a long time, and it’s standardized, proven and stable. Sounds like you seriously misunderstood my points, which were, in a nutshell: For applications and similar, just use whatever suits you; for operating systems do experiments in lab/research projects (as was done with Unix), because existing and established ones are relied upon by lots of software. Just to make that perfectly clear, that doesn’t mean they should use C forever, it means they should wait for a potential replacement to reach a similar state of stability with independent standards and competing implementations.
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