The Flash C Compiler
blog.adafruit.com
blog.adafruit.com
In particular, I’d want to experiment with how to get coding agent to generate more readable code and better documentation. I can get it to make the code somewhat readable, but haven’t really solved yet.
Either my C skills are getting rusty and that is how a C codebase normally looks like, or LLM was trained on some suspicious codebases.
The commits were done by Claude.
It's easily to spot a code base that's build LLM-assisted. But to know that no human actually took interest in the code is hard to know without talking to the humans that prompted the LLM.
The only bummer I'm seeing with fcc is not having a linker mean not being able to use external libraries. So you're really limited to what you can include in your own project, but if it truly is C89 compliant there are plenty of useful single header libraries you could use for various things.
I'll check it out!
May have what you're looking for. Steps & tools used are in the "parts.rst" file.
Projects like these are defiling the programmer's guild.
There are outliers where an excellent team of devs produce great quality, better that even frontier LLM code now. SQLite comes to mind. But it's easy to forget that is the 0.x%.
Or is it "To make an apple pie, you must first invent the universe" kind of deal. Which doesn't make sense to me either.
In the same way a program manager is free to say "We build X from scratch" even though they made no code contribution to it. The we is replaced with I since no other person was involved in this case.
That's fine for bread, but for people that see code more like art, they have a preconceived notion that "from scratch" means writing the code yourself.
Some people code to solve a problem and they don't care how it gets done. They have no problems using AI and see other methods as prehistoric. That's fine for them, carry on.
For me, the journey is more important than the destination.
Being able to code "by hand" is what strokes my sense of worth and accomplishment... knowing I can do something that not just anyone can. Pushing a button or prompting an AI isn't the same for me, that's more like a project manager and something I never want to be.
When people bash on the anti-AI crowd, they just don't understand that people code for different reasons, and neither is more right or wrong.
Code can be art, making food can also be art. So I'm don't agree with your distinction that code is materially different from baking in that aspect.
The terminology "from scratch" and "by hand" are really not interchangeable in my opinion. "By hand" implies something about the process. "From scratch" implies something about the state before you started, not anything about the process.
If people were similar confrontive in calling out such managers ...
https://github.com/rfgplk/micron.cpp
This is an example of a true "from scratch implementation" (as long as you target the freestanding compile option, hosted still depends on pthread for threading). Absolutely zero external code or references anywhere outside the stated repo. (Not even compiler builtins or includes are needed). You can drag and drop it wherever you'd like hit compile and you're done.
I've seen this approach already in practice: LLM+decompiler give better code than the original code that the binary was compiled from.
LLM-generated blogpost. The stench is all over it.
There can be other valid perspectives than your own.
Different people code for different reasons.
Some see it as a means to an end... "I want X as an end result and I don't care how I get it."
Others see it as an art form and something special to them; their sense of worth is tied to their knowledge and experience in something that not just anyone can do (without an AI).
OP uses an LLM because they just want the end result. You might write code for different reasons entirely. Neither is "wrong" or "useless."
There will always need a human on the end to check if the LLM didn't hallucinate anything on it, including manually writing the unit tests.