It's interesting to me that most of Bellard's work is basically turning specs into C. 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 im…
If you actually work with ffmpeg, it's rather quite impressive how pluggable the architecture is. The codecs have huge amount of quirks and disagreements about basics (what is a "frame" in audio, subtitle, and video worlds?) and even their environment (passing frames around software and hardware coders is way different). That fact that you can (almost) freely mix and match processing between such different worlds is…
I admire Fabrice Bellard. He is almost certainly a better overall programmer
421–430 of 488 posts
Re: I admire Fabrice Bellard. He is almost certainly a better overall programmer
#422It's interesting to me that most of Bellard's work is basically turning specs into C. 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 im…
Interesting observation, similar manner of work as Linus Torvalds. These guys implement existing ideas well, consistent and open, but are not inventors.
Re: I admire Fabrice Bellard. He is almost certainly a better overall programmer
#423Earlier quoted context omitted.
I think you're underestimating the skill required to do it that well. Add 1 wrong feature and suddenly your simple project working around a DX tarpits is a new tarpit. A lot of devs like building features.
To be fair, almost zero people praise the dx for ffmpeg. but the utility and value is so massively high, that it overcomes the famously complex dx of ffmpeg. I'm not even insulting ffmpeg, if it does a million things, then there are going to be a million knobs. I think of git as the same. The git cli is not intuitive at all (unless that lightbulb goes off) but the utility is so good, that people just kind of suck it…
Whereas the git cli is very clearly suboptimal. Unrelated tradeoffs aside, spend a while using an alternative DVCS such as mercurial if you doubt this.
Re: I admire Fabrice Bellard. He is almost certainly a better overall programmer
#424Earlier quoted context omitted.
My guess would be the hueristic is "I want to do simple thing, why is it so hard?" (Modern computing has an overabundance of "DX tarpits".) Which is funny because, everyone has that experience, right? But then approximately nobody proceeds to do something about it. (Including most people who have the skills to make a difference!) Like, that's surprisingly mundane, and surprisingly actionable. --- If we distil it into…
The actual calculus is that you spent 30 minutes on something that should have taken 30 seconds, but then you're done with it. The "proper" solution is to spend months or years fixing the workflow for complete strangers for free, even though you personally will never get that time back. Yeah, it moves the world forward, but it's not always the best choice on a personal level. Also keep in mind that most of such chari…
Re: I admire Fabrice Bellard. He is almost certainly a better overall programmer
#425Getting listed on popular twitter account is I guess useful, depending on how much you care about receiving attention. But otherwise I'm kinda wary of people who give admiration to a person's skills or people who like to receive it.
Re: I admire Fabrice Bellard. He is almost certainly a better overall programmer
#426Reading the list of Bellard's contributions, what strikes me is not the raw ability (although certainly there is that too!) but "damn, he knows how to pick 'em!" He keeps picking stuff to work on that ends up being insanely useful to a massive number of people. That seems somehow even more remarkable than the technical ability. Deciding what to work on might be the most important question in life.
This is the more striking thing. An meme I often repeat is that ideas are cheap, execution is key - there's a trope of "I have a great idea for an app, I just need a developer to do all the work", exacerbated with AI doing all the work. But this guy is the opposite idea of that. In hindsight, sure, a library doing video is obvious. But the other ones? That's something else.
I think the trope exists because so many people with poor or mediocre ideas perceive them as good. It's analogous to the observation that most people view the languages they commonly use as the most powerful and those that could offer them new capabilities as strange.
Re: I admire Fabrice Bellard. He is almost certainly a better overall programmer
#427Earlier quoted context omitted.
Maybe they meant encoding, the file format.
But that only specifies the decoder. The format for all modern video codecs is not the kind of format where any specific piece of uncompressed input should always be encoded the same way, but more like a very restricted programming language that gives the encoder a lot of tools to compress the video, and which tools they use and how they use them are up to them.
Re: I admire Fabrice Bellard. He is almost certainly a better overall programmer
#428Earlier quoted context omitted.
The way to criticize that comment is to point out that all the major and most important codecs that are most commonly used with ffmpeg, do not come from the ffmpeg project. H.264, H.265, libmp3lame, speex, libfdkaac, etc. all come from other projects. What ffmpeg does is provide libraries for transforming decoded data between formats and calling to and from encoders and decoders and multiplexers and bitstream formats…
FFmpeg has its own native H.264, HEVC, MP3, Speex and AAC decoders. It's true that they don't have an H.264 or HEVC _encoder_ without calling out to external libraries, but they have a pretty good AAC encoder now, and TBH most use of FFmpeg is for decoding, not encoding.
Isn't that merely an observation of how lopsided media consumption vs production is on average?
Re: I admire Fabrice Bellard. He is almost certainly a better overall programmer
#429Earlier quoted context omitted.
Rowling / Harry Potter comes to mind, too, and Heinlein. You need to be able to separate the artist from the art, the programmer from the program. It’s ok to appreciate a work even if you disagree with its creator’s morals or ethics.
> It’s ok to appreciate a work even if you disagree with its creator’s morals or ethics. In the case of Harry Potter... the perception of the work tends to follow the perception of the author. There's a bunch of issues with the original books that's widely seen as problematic today - character names seen as racist [1], enough problematic gender stereotypes to warrant half a dozen of academic papers of various quality…
Re: I admire Fabrice Bellard. He is almost certainly a better overall programmer
#430Earlier quoted context omitted.
It's worth noting that most communications specifications that involve an encoder/decoder pair communicating over a channel only specify the encoder. Standards purposely leave the decoder open to allow systems to progress as technology develops and to allow competition between implementations. This also makes a standard simpler, as a decoder is usually more complex than an encoder since it has to deal with noise and…
It is exactly the opposite for MPEG, which only specifies the decoder (i.e. how frames should be decoded).
What I should have written is that the "hard" part, which is generally left unspecified, is the part that removes redundancy. An MPEG encoder removes redundancy whilst its decoder adds redundancy. An FEC/communications encoder adds redundancy whilst its decoder removes redundancy.