(reposting from the MicroQuickJS thread if only because it seems more relevant here)
Always interesting when people as talented as Bellard manage to (apparently) never write a "full-on" GUI-fronted application, or more specifically, a program that sits between a user with constantly shifting goals and workflows and a "core" that can get the job done.
I would not want to dismiss or diminish by any amount the incredible work he has done. It's just interesting to me that the problems he appears to pick generally take the form of "user sets up the parameters, the program runs to completion".
> when people as talented as Bellard manage to (apparently) never write a "full-on" GUI-fronted application
The "full-on GUI-fronted application" is two different problems.
PROBLEM_A = create a minimal interface (arguments to application) and focus on making robust logic that is fit for use and purpose.
PROBLEM_B = make users who resist/object to a minimal interface happy by satisfying an unbounded set of requirements involving a changing stack of tools and OS dependencies.
The latter effort can expand to consume the time and energy of entire teams of people.
Actually, this is missing my point quite a bit. The difference is not the minimal/non-minimal interface.
One can easily imagine (and I think they even exist) GUI front ends for ffmpeg that let a user set up a conversion "more easily" than they might find it using the command line. Bellard has chosen not to do this (lots of entirely fine reasons), but even if you use such a GUI front end the use of ffmpeg still consists of "set the parameters and let the program run". At some point after clicking "Run" (or whatever the button says), then just like after press "Return", the ffmpeg process will have completed its work, and that particular user interaction is over.
By contrast, a video and/or audio editor is really an entirely different beast, in which the user is continually adjusting any and all parameters and states of the project, expecting undo/redo histories, and so on and so forth. There is essentially no "completion state" for the application to reach.
I'm just curious that Bellard seems never to have tackled this kind of application (as is absolutely his right to do, or not do). I'm curious because it creates an entirely different class of programming problems from the "set-and-run" type of application (though they also obviously overlap in many important areas).
> a video and/or audio editor is really an entirely different beast, in which the user is continually adjusting any and all parameters and states of the project, expecting undo/redo histories, and so on and so forth.
If you accept that there is some similarity to game development or a real piloting system for an aircraft, these complex adjustments would be split among components to be developed and tested separately and then integrated.
No regular user interacts directly with a JavaScript engine, not in the sense that they interact with a text editor, a video editor, an audio editor, a CAD application, a medical imaging application etc. etc. etc.
Apparently GUI frontend is not a subject or problem that interests him. He lives and thinks close to the metal, at a lower layer of abstraction. The software he writes for himself and others in that ecological milieu, people who would take his codebase as an embedded library, command-line tool, or wrap it with an abstraction and user interface for their particular purpose, like browsers did with FFmpeg.
He has his favorite niche intellectual and technical subjects, where all his big and small projects are explorations of that space from various angles. It's a lesser concern whether the result has business value, or wider public appeal. He's more of a researcher and scientist.
> Apparently GUI frontend is not a subject or problem that interests him. He lives and thinks close to the metal, at a lower layer of abstraction.
It's not that cut and dried. The application I work on has some notable chunks of assembly code, lots of tricky multithreaded realtime lock free code involving threads, atomics, RCU and more ... and ... a GUI that lets the user continuously interact with it.
Oh, and we use ffmpeg for video decoding/encoding :)
He’s one of the GOATs, but this article is written by someone who has no idea about software engineering and full of exaggerations as a result. For example:
> Many times there are certain chunks which will occur many times in the code of a program. Instead of taking the time to translate them all separately,
QEMU stores the chunks and their native translation, next time simply executing the native translation instead of doing translation a second time. Thus, Bellard invented the first processor emulator that could achieve near native performance in certain instances.
JIT is about as old as Fabrice, or even older depending on what you consider a modern JIT.
The actual innovation in QEMU was that the architecture-dependent part was much smaller than a full JIT compiler, because it used the C compiler to build small blocks and parsed ELF relocations to be able to move them into the translated code.
This technique has since been dropped by QEMU, but something similar is now used by the Python JIT. These days QEMU uses Tiny Code Generator, originally forked out of TCC though by now the source is probably unrecognizable except in the function names.
Moreover, Transmeta did this for their actual processor back in the day. Transmeta's version even did it in multipass, fusing more and more instructions as they appear more, getting faster as the system is used more, up to a certain point of course.
This doesn't make Fabrice a lesser man, but truth is truth.
Claims of ‘firsts’ undermine the authority of this document, though not the achievements of the subject.
For instance Marco Ternelli’s dynamic binary translator ZM/HT dates back to 1993, when it was published by Ergon Development. It translates Z80 to 68000 machine code on the fly and was a successful commercial product. I’d be interested to hear of earlier JIT binary to binary implementations, especially others which coped with self-modifying code, without which ZM/HT wouldn’t have been very useful.
Self-unpacking executables are at least a decade older, and Fabrice quite likely had Microsoft’s 1985 EXEPACK, written by Reuben Borman, on his computer when he came up with LZEXE. That was bundled with MASM and Microsoft C 3.0, their first in-house version. Both were preceded by Realia’s Spacemaker product, which Wikipedia says was written by Robert B. K. Dewar in 1982.
> Compatibility with the IBM/1400 Series has, of course, been a key factor in the success of the Series 200. The principal software components in Honeywell's "Liberator" approach are the Easytran translators, which convert Autocoder source programs written for the IBM machines into Easycoder source programs which can be assembled and run on Series 200/2000 systems, usually with little or no need for manual alterations. The Easytran routines have effectively overcome the minor differences between the instruction sets and assembly languages of the two systems in literally hundreds of installations.
It’s far from being impossible, the main thing you need is free time and obsession (and money for your free time btw).
C or asm are not obscure languages or anything, they are brutal languages where you have to trace runtime from A to Z, and manage the memory.
In 1990, it was absolutely normal to code in C. Yes you had to decode images yourself, yes you had to decode audio, yes you had to raytrace, etc.
“Wait, you had to calculate all of these by hand ?
Yes my friend everybody had to do that in my time, what else could we do ?
So we took books, and did one by one.
This was the norm, just that it became some sort of archeology.”
Every year, thousands of 19-year-olds complete these tasks in low-level schools like Epita/Epita/42 or in demoscene contests. They aren't geniuses; they are just students who were forced to read the manual and understand how the computer actually works.
Free time won’t guarantee you success, but free time + obsession will (like Terry Davis).
Really, this is not alien tech.
Before FFmpeg, people had to encode the videos. Before emulators someone had to create the state machine, etc. All these people it would be insane to ignore them.
Most of the difficult problems have shifted somewhere else from low-level.
How to simulate millions of pharmaceutical molecules in short amount of time ?
How to simulate the world in GTA VI ?
Saving 2 bytes of memory by writing asm (that… won’t be portable) is not the thing going to save you. The problems are now elsewhere.
The problem now is not about “wow you read ancient manuals and mixed sand with water and got a solid foundational brick” but it is about “ok, using these bricks, how to build a skyscraper that is 1km tall”.
No doubt that these modern programmers are as good as the archeologists who like to explore handcrafted code.
This doesn't explain why so few people of Fabrice's generation have reached his level. Think about violin playing. Many players can become professionals if they have the obsession, but 99% of them won't reach the Heifetz/Hadelich/Ehnes level no matter how hard they try. Talent matters. Programming is not much different from performing art.
> the main thing you need is free time and obsession (and money for your free time btw).
Free time (and money for your free time) is a privilege not everyone may have had. Also, access to computers which, don't forget, has only become ubiquitous this century, and sadly not always in the form that might encourage experimentation. Without getting too much into the Nature-Nurture debate, talent and obsession sadly won't go anywhere without the proper environment to cultivate it. You don't become Bellard/Knuth/Dijkstra with just a bunch of rocks[1] and a whole host of other concerns on top.
That doesn't cover OP's point, some people's brains just work differently and they can achieve something in 1000x less time than others. You can have all the time in the world and you'll never reach their level. That's essentially what talent is.
I have been thinking what talent means in programming and thought of a case in the past. The task was to parse a text file format. One programmer used ~1000 lines of code (LOC) with complex logic. The other used <200 LOC with a straightforward solution that ran times faster and would probably be more extensible and easier to maintain in future. This is a small task. The difference will be exponentially amplified for complex projects that Fabrice is famous for. The first programmer in my story may be able to write a javascript runtime if he has time + obsession, but it will take him much longer and the quality will be much lower in comparison to quickjs or mqjs.
Without being glib, I honestly wonder if Fabrice Bellard has started using any LLM coding tools. If he could be even more productive, that would be scary!
I doubt he is ideologically opposed to them, given his work on LLM compression [1]
He codes mostly in C, which I'm sure is mostly "memorized". i.e. if you have been programming in C for a few decades, you almost certainly have a deep bench of your own code that you routinely go back to / copy and modify
In most cases, I don't see an LLM helping there. It could be "out of distribution", similar to what Karpathy said about writing his end-to-end pedagogical LLM chatbot
---
Now that I think of it, Bellard would probably train his own LLM on his own code! The rest of the world's code might not help that much :-)
He has all the knowledge to do that ... I could see that becoming a paid closed-source project, like some of his other ones [2]
I'm writing C for microcontrollers and ChatGPT is very good at it. I don't let it write any code (because that's the fun part, why would I), but I discuss with it a lot, asking questions, asking to review my code and he does good. I also love to use it to explain assembly.
It's also the best way to use llms in my opinion, for idea generation and snippets, and then do the thing "manually". Much better mastery of the code, no endless loop of "this creates that bug, fix it", and it comes up with plenty of feedback and gotchas when used this way.
This is a funny one because on the one hand the answer is obviously no, it's very fiddly stuff that requires a lot of umming and ahhing, but then weirdly they can be absurdly good in these kinds of highly technical domains precisely because they are often simple enough to pose to the LLM that any help it can give is actually applicable immediately whereas in a comparatively boring/trivial enterprise application there is a vast amount of external context to grapple with.
From my experience, it's just good enough to give you a code overview of a codebase you don't know and give you enough implementation suggests to work from there.
> Without being glib, I honestly wonder if Fabrice Bellard has started using any LLM coding tools
I doubt it. I follow him and look at the code he writes and it's well thought out and organized. It's the exact opposite of AI slop I see everywhere.
> He codes mostly in C, which I'm sure is mostly "memorized". i.e. if you have been programming in C for a few decades,
C I think he memorized a long time ago. It's more like he keeps the whole structure and setup of the program (the context) in his head and is able to "see it" all and operate on it. He is so good that people are insinuating he is actually "multiple people" or he uses an LLM and so on. I imagine he is quite amused reading those comments.
Most coding is better done with agents than with your hands. Coding is the main financial impediment to development. Yes, actually articulating what you want is the hard problem. Yes, there are technical problems that demand real analytical insight and real motivation. But refusing to use agents because you think you can type faster is mistaking typing for your actual skill: reasoning and interpretation.
Ok, if you have such insight into development, why not leverage agents to type for you? What sort of problems have you faced that you are able to code against faster than you can articulate to an agent?
I have of course found some problems like this myself. But it's such a tiny portion of coding I really question why you can't leverage LLMs to make yourself more productive
In 2025, there is no shame in using an LLM. For example, he might use it to get help debugging, or ask if a block of code can be written more clearly or efficiently.
> I honestly wonder if Fabrice Bellard has started using any LLM coding tools. If he could be even more productive, that would be scary!
That’s kind of a weird speculation to make about creative people and their processes.
If Caravaggio had had a computer with Photoshop, if Eintein had had a computer with Matlab, would they have been more productive? Is it a question that even makes sense?
Back in 2004 I started using qemu to replace Bochs in my development, it was a huge help. My colleague sent an email to Fabrice to thank him and he replied very amicably. The guy is not only supremely competent, but absolutely unpretentious, nice and friendly.
By the way (I'm who submitted the link) - I found a prior discussion on the same document but different URL now expired. There's even a comment by one of the authors, sharing some context.
While the guy is brilliant, I doubt he could fit the role of senior/staff/principal engineer in any one-level-below faang kind of company. Typically, these roles require good communication skills and working together with other engineers (which is really hard). So, while he's very good at the tech level, I think he primarily works alone? In that regard, it would be a very bad fit. I may be wrong, tho.
> I doubt he could fit the role of senior/staff/principal engineer in any one-level-below faang kind of company.
Why would you even think that these sort of exceptional people would even be interested in mere jobs?
These are people who are solo auteurs; something in them feels a need to express themselves in full creativity without restraint in any domain they choose to focus on. That is what makes them unique because they are the few who can change Science into Art and make it seem effortless. The common man calls them "Geniuses" but it is actually a way of living, thinking and training.
Much of Society's institutions, companies, jobs etc. is designed to get the most out of the average person which does not work for creative individuals. To measure the latter using the yardstick for average is foolish in the extreme. This is why true Scientists/Researchers/Artists etc. need to be treated very differently from the "common" man.
For all the hoopla about Corporations/Companies/Groups/Teams etc. in the modern world, all our civilizational breakthroughs have emerged from a single individual or a small group of individuals.
In technically deep domains like Bellard works in, Staff+ roles bias more towards technical expertise, and managers also tend to be more technical and able to more completely address technical coordination tasks. Sometimes we like to assume that if someone is good at one thing, they’ll be bad at something more mundane (to make ourselves feel better), but I sincerely doubt he would have any trouble in such a role.
Fabrice Bellard is not a 10x engineer, he is a 100x engineer. You could attach him to a good people manager and either build a team around him or allow him to work independently on a project that he finds exciting that also aligns with company goals.
I don't think he would pass FANG interviews or enjoy their day-to-day grind. The whole point of such prolific programmers is to code whenever you feel like, not by some arbitrary deadlines. Not to mention the tolerance of office politics in those orgs.
Bellard wouldn't apply and be interviewed like some Stanford grad. He would be head hunted and told he can do whatever he wants and receive a massive amount of compensation.
I'm not sure why you woulf assert he wouldn't pass the interview that seems totally outrageous.
yeah lol. the interview is braindump on leetcode and sysdesign. two ways to pass it. do a lot of exercise/ learn the patterns or be an excellent programmer. there is 0 doubt he would have a full HIRE loop
it has something to do. an excellent programmer knows how to solve leetcode. maybe he never seen the problem but with he would ask a few questions that would help him get to the solution. and sys design is not a back end crud system questionnaire. it depends on the role but could be much more challenging.
Given his alma mater and the way the French education system works, he performed too-of-France at “solve math problems on a blackboard in front of someone” after two years of grinding math problems including extensive practice for the aforementioned “solve math problems on a blackboard in front of someone”. I think he could manage. FAANG interview is basically a CS khôlle.
I think you are mixing up art, technical skills and productivity.
Put Terry Davis (again him) as senior manager at Apple, and see the result.
From my point of view, Terry has the same level and approaches as Fabrice.
It does not guarantee at all that he is going to be more productive than 100 engineers as you directly claim.
It makes them good in what they like to do (writing obfuscated or low-level code, or implementing from scratch from specifications) as art or creativity.
Thank you for introducing me to Terry Davis. I'm going to read more about him.
I am definitely not talking about art.
When I refer to 100x engineer, I'm referring to the impact that QEMU and FFmpeg have had on the world. I would be surprised if anyone who is familiar with these two projects would disagree that they have been highly impactful.
Absolutely agreeing with you. I rather meant that scaling teams and being a great dev are not always going together (the same way that startup folks are often not the same type of people as managers in large companies), but in terms of technical impact I totally agree.
EDIT: Fair enough, I think he would be very productive due to useful contributions, at the end I agree with you.
There is no need to wish me harm because I compared two people who had the same similar tech level and approach as art, rather than pursuing productivity as a first goal.
Again sorry if that made you upset, I just wanted to share my train of thoughts:
It was to show that "tech skills" != "tech lead skills" + "tech skills" != "productivity".
In fact, sometimes great devs can be counter-productive, as they tend to write code that they are the only one who can maintain (bus factor), or optimizations that turns out to be net negative when working as a team.
Here it is a mixed bag, Fabrice is very productive at least as a solo contributor (c.f. FFmpeg or QEMU), but Terry obviously wouldn't be.
About the comparison, it may sound strange to you, but I am talking only about the tech-side to show that tech skills do not always align with human skills (or management, or team lead), and Terry seemed to me the perfect example of something completely disconnected.
In practice it is difficult to find other examples of people who wrote their own compiler, put a huge amount of energy, just for the sake of writing a compiler.
Thinking about of the most well-known projects: Bellard's "Obfuscated Tiny C Compiler" (which then became TCC), it's not that crazy to compare it to the "HolyC compiler".
Now outside, in their private life, they are very different, and nobody doubts that.
Side-note: I actually like very much what Fabrice does.
To your credit, again the two persons are NOT at all equivalent or comparable, just that the resulting works are, but for different reasons.
I just needed an example that shows that it is not because you can write a compiler that it means you would be productive in a team at a FAANG.
I edited the post above to make it more clear, that they are not comparable on the human aspect, perhaps I should have insisted more, to not give the impression.
It was clumsy from my side, just that I found it difficult to find better example of someone who is well-known good programmer, wrote their own compiler too, wrote their own image decoder too, but not productive in a corporate environment.
At M.Bellard’s level one would could hardly even call such an outcome a character flaw, but my occasional privilege of managing - one should rather say, enabling - high performance teams, taught that the Venn intersection of “competent with imagination” and “collegiate manner” is far from empty, even in the tech sector.
“‘We're delighted to have you here,’ he said, ‘but a word of advice. Don't try to be clever. We're all clever here. Only try to be kind, a little kind.’ Like most university stories, this one is variously attributed and it probably never even happened but, as the Italians say, se non e vero, e ben trovato - even if it isn't true, it's well founded.” ⸺ Stephen Fry.
He might as well be but why would he give a flying fuck about it? He gets to do what he wants and is financially independent for doing just that. Most can only dream about it.
Myself - I do not come within a million miles to his professional level, but I still have managed to do just that - I develop what I want, how I want and get paid for it. I am 64 and still design and develop actively for my own company and for clients. Gives me happiness, motivation to stay alert and more than enough time to still do my hobbies (mostly various outdoor activities).
Lots of negative stereotypical assumption there. If you have some source backing all this, share your claims otherwise personal attacks without any serious base isn't a good reflection.
The amusing part is the implication that communication skills can't be learned, even by someone who's worked alone their whole career, if it came to that (*especially* by someone of Fabrice Bellard's calibre). Gatekeeping much?
> While the guy is brilliant, I doubt he could fit the role of senior/staff/principal engineer in any one-level-below faang kind of company.
Maybe but what’s the point? Hell, I might guess he is terrible at jiggling and basket weaving, too. Complete failure as wrestler, even. But that is kind of neither here or there. Or is it you think staff title at faangs is some kind of pinnacle position every engineer should strive for? It actually always strikes me as a funny title. In college when they didn’t have a specific professor to teach or just going to use a grad student they put “staff” in the name box so in my mind it’s associated with a random lower rung student who couldn’t get away doing just research.
Yeah, staff engineer is a pinnacle "still doing engineering and maybe leadership but not management" position in engineering firms. The academic "staff" is just a "not really one of us" gatekeeping-the-servants title.
A Fox one day spied a beautiful bunch of ripe grapes hanging from a vine trained along the branches of a tree. The grapes seemed ready to burst with juice, and the Fox's mouth watered as he gazed longingly at them.
The bunch hung from a high branch, and the Fox had to jump for it. The first time he jumped he missed it by a long way. So he walked off a short distance and took a running leap at it, only to fall short once more. Again and again he tried, but in vain.
Now he sat down and looked at the grapes in disgust.
"What a fool I am," he said. "Here I am wearing myself out to get a bunch of sour grapes that are not worth gaping for."
And off he walked very, very scornfully.
The fact that so many people use FFmpeg and QEMU suggest that he is quite good at documenting, collaborating, and at least making his code remarkably clean and easy to follow. This already puts him way ahead of the average silicon valley senior software engineer that I've worked with. However, he does value independence so I don't think he would have been happy working at a faang-type company for long.
>Fabrice won International Obfuscated C Code Contest three times and you need a certain mindset to create code like that—which creeps into your other work. So despite his implementation of FFmpeg was fast-working, it was not very nice to debug or refactor, especially if you’re not Fabrice
To be fair, I looked at his achievements and I don't know if I want his life...
Also[index-finger-emoji], I believe everybody is looking at achievements wrong.
The hierarchy of achievement in my opinion is roughly...
1) Chief Keef
2) Staff Software Engineer
3) President of the United States
4) Fabrice Bellard
5) Everybody else
My opinion is well-grounded in logic, and can be considered a pinnacle truth.
It can be considered because can doesn't need evidence to define.
Evidence because dog.
Dog because dog.
Dog because dog.
Dog because dog.
I believe I have argued and justified myself enough.
So my belief is justified and true.
Therefore it is knowledge.
What do you mean? You don't think that every software developer on earth secretly aspires to spend their days making tiny improvements to an advertising machine?
reply