His most important projects are ffmpeg (codec specs), qEmu (ISA specs), QuickJS (the EcmaScript spec), tinyC (the C spec), and his telecom company (LTE specs). I guess the pi calculations and neural network stuff are exceptions.
Just to be clear, this doesn't make his work any less impressive. Highly performant codec and emulator implementations are no easy feat; it's just interesting that most of this work falls into that relatively narrow area.
That fact that you can (almost) freely mix and match processing between such different worlds is quite an achievement and libav (IMO) is decently well designed to allow that.
My impression is the guy had always better things to do than engage with the greater internet, like thinking real hard and solving difficult problems. Much respect to his work, but even more respect to his work ethic. When you have a strong vision, you need the ivory tower style of development rather than spending your days arguing and defending your choices with internet strangers.
Satoshi shouldn't be compared, I don't hold bitcoins nor am I interested, but the name is a lore. It was stamped on the original document.
Fabrice Bellard is a real person shipping code; not an internet anonymous identity.
I think Unicorn illustrates one of the issues with his style. It wouldn’t have needed to exist of the QEMU code was architected into neat components. But then writing spaghetti code that gets the job done is why he’s so fast and effective. It’s a trade off
https://www.unicorn-engine.org/docs/beyond_qemu.html
I think there’s actually a sharp contrast with John Carmack here. Fabrice might be smarter and faster but Carmack is perhaps a better software engineer. You can really see the development of his style from Doom and Quake source code, where Quake 3 source is like a beautiful gem of a code base.
Then you have the other end of the spectrum where people are too focused on hacking stuff together that the end result is unmaintainable.
The reality is there needs to be a bit of both to be a good developer.
For example, if you’re building a proof of concept (POC), then it’s more important to prove the idea than it is to define the architecture. And the reason for that is because you don’t always understand how the final product (whether it’s commercial software or a FOSS library) is best architected until you’ve gone through a few drafts of the idea. So spaghetti code isn’t necessarily a bad thing.
But then when you know your idea works and you need to flesh it out into something more durable, you start to refactor the spaghetti into something more maintainable.
Fabrice mainly releases POCs while Carmack mainly releases finished products. So it’s unsurprising you’ll see a difference in the style of architecting in their code.
I used to be someone who focused on beautiful code for my POCs too. And used to fail to release any personal projects. Then one day I learned to embrace the chaos of POCs and realised that you can getting something built and tarting it up afterwards was better than failing to build anything at all.
I find this very scary. Somebody unable to perceive capabilities and tech-debt. If you can not perceive that- you should not be let near executive decisions or code-base evaluation. This is literally the difference between rocket-science and exploding failed projects. Everyone can pile up explosives, not everyone can go to space today.
Its a great interview topic to filter this kind of candidate out of companies.
No it’s not. Code quality is just code quality. It's a subjective measure. eg how do you define one thing is of greater "quality" than another? Is it CPU ops? Memory footprint? Code readability? And how do you measure readability? By who? What I find readable someone else might not, and visa versa.
If you’re making choices to improve development throughput then that’s fine. But so often I see developers architecting code for what they mistakenly think will improve their throughput but ultimately they spend longer on writing those abstractions than any time they have saved when using them.
XKCD parodies this problem with their pass the salt sketch: https://xkcd.com/974/
Sometimes this comes down to developer vanity, sometimes it comes down to poor alignment of goals and/or communication between the product teams and development teams. And sometimes it’s just because solving problems is fun so naturally we’ll look for problems to solve. But whatever the reasons, I’ve personally seen this happen (as well as being a victim of it myself) enough times to know it is an underestimated problem.
> I find this very scary. Somebody unable to perceive capabilities and tech-debt. If you can not perceive that- you should not be let near executive decisions or code-base evaluation.
This is a rather insulting assumption. I've been a tech lead for around 2 decades now and have worked on plenty of brownfield projects in that time. I know what tech debt looks like.
The problem with "tech debt" is it can mean anything from "this is ugly code that takes 5 minutes longer to read but it works well" to "this in a insecure/unstable pile of horse manure and customers will start to notice".
The latter is where time should be spent. The former is a vanity project that doesn't bring the business any value.
That's not to say that developers shouldn't ever spend time on the former examples of tech debt, just that it's of a lower priority than getting the project working.
There’s far, far too many people who confuse code quality for speed of development and start treating code quality as the product for customer base in the hundreds and active customers in the dozens and for most features to be basically unused.
The reality is that tech debt as a concept these days is hardly real: to be in debt means previous decisions or a previous implementation makes current work extremely hard or impossible, but, the truth is that the human factors such as knowing what to build, team collaboration and even speaking to customers matter far more and can get you “in debt” so so much faster than code alone. At least in your typical SaaS company.
If you ship code in a way that you let tech debt pile up to the point that customers notice it, you have an organisational problem, not code issues per se.
The fact that a lot of people don’t get this is really baffling to me.
.. is very, very important in the context of milliseconds, hours, days, weeks, months and years. And decades.
Today, you might say that John/Fabrice’ code is readable/unreadable, but will that also be true in 5 years time, in a different cultural/technological era?
Obviously yes in the case of these individuals - because the ecosystem their products have created is self-sustaining at a mass (consumer/social) level.
I’ve built software which has shipped and effected the lives of millions, too. Many of us have.
But I have not built a massive ecosystem by working on the right software which was adopted by millions of developers who read my code, was inspired by it, and used it for something in their own products - thus creating sub-ecosystems upon sub-ecosystems, a big sprawling tree of economy which spreads out into the mass of humanity who use technology.
In this story we have two cases of individuals who have accomplished an extraordinary reach of software, in their own uniquely flavored ways - and this demonstrates that there are no absolute requirements to strip personality from the code - as long as its damn good code in the first place.
>filter candidates out of companies
It’s a great way to decide not to work at a company which managers do not understand the importance of architecture at various scales, milliseconds, seconds, hours, days, weeks ..
It's separate from striving for "beautiful" code, beauty within well-factored boundaries yields dimishing returns compared to just having the boundaries.
I guess I'm saying there are code quality concerns which do affect velocity/maintainability and then there are superficial and stylistic issues. The former aren't just about some kind of beauty standard, they're part of executing.
But I can't guess what you meant.
Not much about "smartness", but code can by far outlast many "product" sold on top of it, so it can make sense to polish them more than the ready to throw gift paper.
People will certainly buy nice gift paper wrapping cheap crap music toy of the day. But they will also value differently access to a beautiful handcrafted musical instrument. On the other hands, people who don’t even play any music won’t be able to assess any musical appliance.
If I had to describe it in aesthetic terms I would maybe say brutalism?
Pedantic much? It's not about him writing elegant code like someone would write elegant music. It's a comparison about the skill level achieved, Mozart-level vs Salieri-level (and in the sense of their Amadeus movie rivalry, not real world).
His code tackles very complex subjects, succesfully, with huge technical skill, and has been reliable and relied upon by millions...
There’s few things I find more pathetic than trying really hard to show who’s best and ranking things that have no business being ranked.
You will find humans are n-dimensional and elude these simplistic categories.
Now, what is outstanding in Fabrice's work is that his curiousity projects often end up being breakthroughs.
I mean, i have like hundreds of these. Can emacs do that? I make a compiler to do that? How fast can i make this bytrcode to run?
And it is cute at best.
Really? I find his code elegant and concise.
They're good (like, quite good), but as soon as their names come up people start talking about some weird expectation of what they are supposed to think rather than the actual things they did.
Somehow, that mythologizing diminishes their accomplishments.
I have nothing against it. The fact that I explained a mechanism (mythologizing diminishes one's real work) offends people who like to do it, but that's outside of my control. It's not meant to offend or deny their right to do it. It is just what it is and I'm naming it. I understand it's uncomfortable, and pulling the "everyone does it" card makes things easier.
I love mythology by the way, stories, etc. Fascinating stuff.
> I love mythology by the way, stories, etc. Fascinating stuff.
Most people do. Given that it is quite prevalent across cultures and given that we are a product of our genetics and upbringing, one might even say, in our nature.
It's a simple observation: mythologizing might diminish one's work.
Even if we assume there's some "human nature", that claim stands unchallenged.
"But you can't fight this thing that all humans do" is your line, and it was never my point to fight it. I want to explain what it does, not change it (which is outside of my control).
And it is that aspiration you’re degrading with the rush to de-mythologize, as if it weren’t inevitable, under the crushing rush of time, that we in the hacker world had heroes.
For all we know, it could be a temporary fluke and we'll snap back to something else. We could be beings with no default to snap back to, ever changing, destined to dissolve the prevalence of cult figures into something else in the following eras.
In a few thousand years we could totally see this practice as some distant-past thing like making clay pots or carrying Roman dodecahedrons.
The new cultural trend could become jumping off cliffs, and someone would be arguing that it's inevitable human nature.
By the way, no rush to de-mythologize. I'm not fighting any dragon here, you do you.
I beg to differ, but okay. I don’t disagree to your allusions that there is a banality to mob idolatry, but that’s a discussion for other forums, ironically.
It has a full list of his projects.
https://www.ipaidia.gr/wp-content/uploads/2020/12/117-2020-f...
You mean trademark. The copyright is held by the authors of the code (or their employer, etc.), since there is no copyright assignment requirement.
This is similar to how Linus Torvalds owns the "Linux" trademark (in some jurisdictions), but the copyright mostly belongs to other contributors.
The Polytechnique and École Centrale campuses are just a few kilometers apart, and both projects began around 1997–1998.
I don’t know about you, but as a student, I was too busy drinking beer to write clean code.
One think to note though is unelected dictators do have their benefits, even if they come with obvious downsides.
Most of the code in the linux kernel today is not from Linus.
I don't know ffmpeg but this resonates with my experience with other open source projects.
As far as the accusations against both rejecting patches and/or rewriting the code themselves goes I can empathize. It's not always easy to take on maintenance of code that isn't written like you want it to, even if the difference is ultimately immaterial. Sucks when this happens to a fundamental project that is used everywhere though. A good maintainer does need to have some ego but not too much it seems.
On the real world, if it runs and solves their problem nobody gives a fucc. Period
Props on him.
I don't know a single name behind the construction of the AI tensor core in Nvidia's chips but it is effectively what runs all of AI.
I've always had a lot of admiration for Fabrice Bellard, I always wished I was as good an engineer as he is.
I have no idea what "ATSC" means, and I've been in tech for nearly 40 years now so I have a fairly good handle on this stuff.
I get what the author is saying but I really dislike this hyperbole. The Internet will be absolutely fine if FFmpeg suddenly disappears.
Companies that rely on it in the core of their product may not, but the Internet absolutely will, and the vast majority of websites and other Internet services will keep working just fine.
And more https://www.bellard.org/
I have been referring to his page for decades as an example of one can have a huge respect without having a fancy web page and no bragging at all. He is a genius :-)
Where would we be today without Fabrice?
Case in point, from the linked interview:
> Could you say a couple of words about yourself?
> I would rather not talk about myself, except that I created other projects such as FFmpeg or QEMU.
... do tech people really not know who Fabrice Bellard is?
He's kind of a household name in a lot of programming circles
I guess that if people aren't loud on social media, people tend to ignore them.
Respect to those who posted their praise of someone else on social media. We need more of this.
Welcome to that sub-group of the Lucky 10,000 today!
I don't need to know who is building VLC, curl, ffmpeg or any of the other essentials in my life. I just appreciate their work and pitch in some money if possible.
I mean, don't put them on a pedestal, but meeting them can still be fun. Carmack may have developed some really unfortunate rich-guy political views, but it was nice to get to go to Dallas to meet him.
Specifically way too many authors whose books I've loved have turned out to be not very good human beings. David Eddings and Neil Gaiman are pretty good examples of this.
>programming circles
Well, not all tech people are part of some curcles I guess.
- active in the startup/VC scene
- "indie hackers"
- chasing platonic elegance with functional languages (for which the world at large doesn't care)
- rewriting everything in Rust
Fabrice doesn't seems to firmly fit any of this.
eg: I grew up in the Australian Kimberley region (kind of remote), spent decades in geophysical mapping, multi channel data processing, computational algebra, and other odd niches, have no real interest in SV, and am quite familiar with Bellard's work.
No idea who DHH is though.
https://community.frame.work/t/framework-supporting-far-righ...
But that was also very Start-up and America focussed. So if you did web dev in some other country and didn't have colleagues who were into that culture you still might've missed the name.
I'm pretty sure most of the people who did "web stuff" at the time and used twitter (key point maybe) know him simply because you'd often see his tweets. Regardless of coutry (I'm from Russia, for exampl)
I stand by that decision, for various reasons.
Not least being that "Why's Poignant Guide to Ruby" gave me the ick.
Simple as that.
I scratch lots of itches, but I also know that most of them are very, very fringe. So going into scratching itches expecting fame is not going to go well for most. But scratching itches is satisfying, so for my part at least I don't care.
I'd hazard a guess that most people who run Internet things know who Fabrice Bellard is, and may indeed have spoken to him at some point.
> He just wrote code.
> He was not done.
> He kept going.
> He is still shipping.
That guy talks like a scrum master, this linkedin bullshit writing style is just so bad...
>A quiet French engineer who never moved to Silicon Valley wrote the code that quietly runs the internet.
Why do some assume you need to move to SV to make an impact in tech?
Or they just don't know tech outside of SV, which is understandable, considering the rest doesn't do nearly the same amount of self-promotion and, well, they're not from SV anyway so why should SV care?
The other day there was this article: something something nerds, which assumed (almost) everyone in tech was looking up to Jobs and Wozniak.
I think I saw my first Mac in 2006 or so and only for a brief moment - it belonged to an artist the parents of my high school friend employed. The next time it was a musician. That was really the stereotype in my corner of the world at the time and using Apple devices for programming seemed like a weird idea.
EU is thin in capital, not in innovation. Regulation is not an issue for high-tech. The list of smaller startups US and Chinese megacorps buy every year from EU is staggering.
https://en.wikipedia.org/wiki/Fabrice_Bellard
Surely we are all capable of understanding Bellard’s contributions and judge them on their own merits without needing some famous programmer to point directly at it and saying “this good”.
I think I first noticed this either with regard to JSLinux, or possibly some software he wrote before that; don't fully remember which year. It's like some people go deliberately to more unique problems with regards to software that actually works in achieving that outcome, whatever the outcome may be.
Carmack's "almost certainly" doesn't look good here.
There is no almost John.
One of you has kept shipping for 30 years, the other one has spent most of the last couple of years in courts for stealing from former employers or on social media promoting being toxic and "anti woke" (whatever that is).
For me Michael Abrash (Quake, xbox) is a much better developer and person.
Hedging the claim with a lot of qualifiers. What's wrong with admitting someone is a better programmer? even giving someone else the benefit of the doubt?
This is because we've been trained to be humble by the machines we work with. Computers expose a lot of our mistakes, and over time they remove any illusion that we can be quickly confident about things.
I would take the qualifiers in his post as an indication of his general disinclination towards making absolute statements, not as a lack of humility.
2) avoid qualifiers in personal compliments (unless ironic)
Fabrice is more clever and faster, I guess.
But John Carmack is in my mind a better software engineer. He writes elegant code that can be used and maintained for a long time. At least from Quake 2ish, but you can see signs of solid code architecture already in Doom.
Doom code will live almost as-is forever. The code Fabrice wrote for ffmpeg has been entirely replaced
Bellard did multiple breakthroughs: ffmpeg, qemu, tcc, jslinux, a state of the art FFT algorithm. I probable skipped a few.
With all due respect to carmack, a single ballard's projects would put anybody into the eternal hall of programmers fame right next to Linus, Carmack, Stallman, the Bell labs crowd and others.
i do understand how carmack did what he did logistically (time, effort, skills, compensation)...
Fabrice is just out of this world. When? How? Why? No idea.
https://bellard.org/pi/pi_bin.pdf
Though I have to say the last line of the proof "...which gives (1) by reordering the terms" took me much head scratching to understand!
It’s also a nod to his own fame.
[1] This is based on Masters of Doom. And the anecdotes are probably from the 90’s. And being arrogant does not mean that being confident in one’s ability is unjustified or that they are in fact not skilled. Being arrogant and being highly skilled are completely orthogonal.