logoalt Hacker News

miki123211today at 11:01 AM9 repliesview on HN

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 implementations are no easy feat; it's just interesting that most of this work falls into that relatively narrow area.


Replies

femtotoday at 11:41 AM

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 other effects introduced by the channel. Consequently, implementing a competitive standards compliant decoder involves R&D and is not a case of following a predefined path.

I've always seen Bellard as an engineer who programs rather than a pure programmer.

show 1 reply
baobabKoodaatoday at 12:12 PM

> ffmpeg (codec specs)

if your mental model is that somebody writes codec specs and then fabrice bellard comes in and turns the specs into C, you are dead wrong. first of all, codecs are usually reverse-engineered, there is no spec. second of all, even when a well specified document describes the codec, that spec does not describe how to efficiently encode or decode with that codec. people like fabrice bellard develop the algorithms that do that.

show 2 replies
ChrisMarshallNYtoday at 11:41 AM

That's actually how I was trained. The spec and the implementation (and the testing) were separate areas; sometimes, done by different people.

These days, I tend to mix them all together, and I think I get good results.

I strongly suspect that a lot of folks, these days, only do the middle one.

reactordevtoday at 11:12 AM

There was a time when we would spend an enormous amount of time defining a spec, so that we can farm out the code. Now, we farm out the spec so that we can spend an enormous amount of time with the code.

izacustoday at 11:26 AM

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 quite an achievement and libav (IMO) is decently well designed to allow that.

wswintoday at 12:17 PM

Interesting observation, similar manner of work as Linus Torvalds. These guys implement existing ideas well, consistent and open, but are not inventors.

show 1 reply
apitmantoday at 12:44 PM

Maybe pi is a spec. Just not written by man.

tennfowntoday at 12:03 PM

But I was told “spec implementators” were prime for LLM replacement

ex-aws-dudetoday at 3:50 PM

I don’t think the distinction is actually that interesting as you could call any piece of software a spec