top | item 5187585

Fabrice Bellard: Portrait of a super-productive programmer (2011)

463 points| Baustin | 13 years ago |blog.smartbear.com

155 comments

order
[+] DigitalSea|13 years ago|reply
My theory is that Fabrice is not human and most likely a creature not of this world. Seriously, how the hell can someone be so talented and amazing and above all remain such a nice guy? Fabrice is a down to Earth and amazingly talented individual who will go down in history; text books will reference him, heck he'll have a movie one day (maybe not). I don't care if this is an old article, Bellard deserves to be on the frontpage of HN multiple times, he's earned it.

For me, the LTE/4G base station running on a PC that he did is mindblowingly amazing: http://bellard.org/lte/

[+] rauljara|13 years ago|reply
I've met a few very accomplished (maybe not quite as accomplished as Bellard) people who are kind and not at all arrogant about it. I think a lack of arrogance and a generous view of those around you can really help someone to accomplish a lot.

Arrogance is generally a hindrance to learning. If you already know the "best" way to do something, your less likely to learn a better one. If someone shows you a better way of doing a thing, you're much more likely to take it as a challenge (someone is showing you that you don't know everything) and get defensive about it, instead of being receptive to improvement.

If you take a generous view of those around you, you're much more likely to be able to learn from them. If you are kind, people are much more likely to give you assistance. If you are willing to teach, you end up learning more, as having to explain things also forces you to clarify your own thoughts.

And it's not just a uni-directional relationship. The more secure you are in your own accomplishments, the less feel the emotional need to tear down others. The more you can honestly see that you've been helped in your intellectual endeavors (through advice, teaching, resources, etc.), the more you feel motivated to give back.

Being kind and humble isn't the only path to accomplishing great things, of course, but I've seen enough examples of it to conclude it's a very viable path. And it has the added benefit that if you don't quite make it to greatness (most of use won't), you won't have a whole bunch of people thinking that you're an egotistical jerk.

[+] DanI-S|13 years ago|reply
> Seriously, how the hell can someone be so talented and amazing and above all remain such a nice guy?

There are a lot of those kind of people, from all walks of life. They're just not on HN.

[+] tangue|13 years ago|reply
Reading his accomplishment is humbling for any programmer. The fact that he doesn't act like an asshole should serve as an example for the rest of us.
[+] JVIDEL|13 years ago|reply
I always find that the most talented people are relatively pretty down to earth given their accomplishments, while the higher the mediocrity to the position the more arrogant a person is, like a middle manager who only got the job because his in-law sits at the board.
[+] limmeau|13 years ago|reply
You mean, like Nicolas Bourbaki?
[+] dj2stein9|13 years ago|reply
I don't know about you, but I'd watch the heck out of a dramatization of his Pi speed breaking record.
[+] yorak|13 years ago|reply
The question from previous discussion remains unanswered. How does he finance his production of top notch open source software? At least for me, the day to day churn of my day job leaves me too mentally exhausted to chase the crazy ideas I get from time to time, let alone finish them.

Imagine a world where hackers, artists and artisans could follow their passions and could chase crazy ideas without a risk of losing the roof on top of their heads and butter over their bread. How many Bellards, we as a humanity, would have running around flinging great code, solving great problems and giving away the fruits of their hard work?

I think we could afford it if we really wanted. If the world just accepted that because of automation fewer and fewer people are needed to work in production (food, items etc.) a huge untapped innovative potential is waiting to be unleashed. In playing Civilization this would be easy, just a click and your society has changed the emphasis of it's production to sciences and art. But how to do this in real life?

I guess I just have to wait and see if the government of Finland gets around and issues citizen’s income as propagated by the Green party. That would be a start and the consequences would be really interesting to see.

[+] davedx|13 years ago|reply
It's one of the main reasons I decided to become a freelancer. I've been at it for a few months and I can now pull in 5-6k euros for a month long project. This leaves me the option to either work the whole year if I can keep things pipelined and come out with a really nice income, or spend decent chunks of time on my own projects. I'm currently still figuring out the balance between those two. Just had a week off between projects, for example.

The only thing is, I actually work harder on my freelance projects and have less "idle time" than in permanent positions, so I am a bit more tired during projects.

[+] AlexDanger|13 years ago|reply
>How does he finance his production of top notch open source software?

Check his webpage notes regarding the 4G LTE implementation. Its commercialised to a company called Amarisoft and it appears Fabrice is involved in that.

Look at their client list...government and telcos. I'd speculate its quite a profitable enterprise.

http://www.amarisoft.com/?p=about

[+] fijal|13 years ago|reply
I'm essentially doing it. It's hard. You have to quit your job and organize income. For me it's a combination of open source donations and consulting with living in a relatively low income (and low cost) country, so consulting can pay for a lot more, if you do it on a global scale.
[+] antirez|13 years ago|reply
In France and many other places in Europe is common to work 36 hours per week, so you have a reasonable amount of time to do your own stuff.
[+] undershirt|13 years ago|reply
I finance my open source software like I do with all my hobbies, by having a day job and doing what I can on nights and weekends. Incremental effort, patience, and commitment are important for side projects that are funded like this.

And I respectfully call bullshit on mental exhaustion. The true burnout comes after juggling your personal work and your day job, which you can fix by throttling back your personal work. Unlike your day job, you can control the pressure there.

I don't know, that's my experience.

[+] cookiecaper|13 years ago|reply
>But how to do this in real life?

Mormonism prescribes an entire system for this called "The United Order", if you're really interested in a unique answer to that question. Happy to field your questions about it.

[+] philwelch|13 years ago|reply
One of the only reasons there's so much automation is because programmers still work for a living--namely, doing all that automation. We're exactly the workers who can't be spared.
[+] dfox|13 years ago|reply
At least for me doing meaningful hacking as part of my daytime consulting inspires me to work on my side projects in evening/during night instead of tiring me. On the other hand day spent doing nothing of direct value (paperwork, useless meetings and so on) leads to evening spend by essentially doing nothing.
[+] robotmay|13 years ago|reply
I feel exactly the same. I enjoy my work but by the time it gets to the evening I need a break, and I never manage to find the time to hack on fun side projects. I have so many silly ideas and things I want to hack on; I really want to get back into programming just for the hell of it.
[+] marknutter|13 years ago|reply
But if the problems you're solving are truly great, then they would be worth enough money to fund your development effort.
[+] ishansharma|13 years ago|reply
"If there’s a secret to this superhero-level productivity, it appears to have less to do with comic-book mutation and radioactivity, and far more with discipline, confidence, rigor, and many years of practice."

This is one line that you should take away from the article. Most of us think that highly productive programmers are magicians but we forget that they are just like us, just hard working and disciplined.

[+] jgrahamc|13 years ago|reply
I too think that Bellard has produced a ton of cool stuff, but bear in mind that the list given on that site spans 20 years of work. You can do a lot in 20 years. That's not to put him down in any way, but if you find yourself comparing your output to his make sure you consider the time span.
[+] rayiner|13 years ago|reply
For the sake of discussion, I'm going to throw some fuel on the "should you go to college?" fire. One of the things that's evident in Bellard's achievements is that he has a tremendous depth of domain specific knowledge, especially in signal processing. This is unsurprising, because he studied at Ecole Polytechnique, France's premier engineering school, specializing in telecommunications. See page 4-6 of this PDF: http://www.freearchive.org/o/55dfc9935a719fc36ab1d1656797273....
[+] Wilya|13 years ago|reply
I went to the same school, and this reads like an ad, which is amusing. It's not false at all, or misleading, but it's fun to see he had such a nice view of his school years.

But the thing is, the issue of college in the US is very different from the issue of college (or equivalent) in other places, and notably France. One significant difference being that Ecole Polytechnique and most high-profile French engineering school are free or almost so (automatically for French students, it's a bit more varied for international ones). Consequence is, most of the points revolving around "should I go to college and put myself in a huge debt" don't apply to us. In France, you should study at least until master level, given the opportunity, because it gives a very big edge afterwards.

Corollary: nobody (or almost nobody) would hire someone without a degree here. Emphasis on diplomas seems even higher than in the US.

I'm not saying one is better than the other (we have our own issues), but the situations really aren't comparable.

[+] rdouble|13 years ago|reply
It would be interesting to hear his opinion on the matter.

I've found that in (music/audio) signal processing software, the backgrounds of the programmers are almost more erratic than in more general software like mobile and web apps. Many were drop outs and people with degrees in seemingly unrelated subjects, like music or biology. That said, one constant I noticed was that a high percentage of them were from Europe.

[+] schmrz|13 years ago|reply
No meaningful disussion can come from this.

Other students went to the same school I'm sure. Why are we not seing the same results from all of them or at least from the majority of them? The question whether you should get university education is not an easy one. I'm strugling with it all the time and I am going to an university.

[+] 205guy|13 years ago|reply
I was thinking along the same lines as rayiner, but more about actual coursework: hardware, compilers, operating systems, networks, protocols, optimization, security, etc. I could be wrong, but from the HN articles that rise to the top and general comments here, people seem amazed when someone masters these things. Yet to me they are fundamental to programming and allow you to go in new directions. My thinking is that inventing Facebook doesn't require this knowledge (that's a different domain of understanding marketplace and human needs), but implementing it at scale does.
[+] barefoot|13 years ago|reply
Looks like the first link to his personal website in the article is broken:

http://bellard.og

I was going to report it on their main website so I looked for a good way to get in touch with them and found a contact form which seemed to be geared towards sales and had a number of (unrelated to my task) required fields. I'm too lazy to fill out something that is going to get routed to the wrong place and requires me to enter my phone number, position, country, and area of interest on top of my email address and name.

So, I thought I'll just call them.

I called the main phone number and had no way to speak to someone there. The phone prompt simply diverted me to email sales. Heh.

There was a brief period of time where I wondered how a link could remain broken in an otherwise good quality article for over a year. That mystery has been solved.

[+] stiff|13 years ago|reply
One thing I miss is more very productive people like this sharing the way they work with the world. There are some nice screencasts at destroy-all-software[1], and there was a great screencast some time ago about writing a ray tracer in Common Lisp[2], but for the most time it is really hard to get a chance to learn from great programmers by directly watching them work at something, and that's a pity because it's one of the best ways to learn. If anyone has any more similar resources, please share. I am aware of PeepCode's PlayByPlay [3], but found it so-so so far.

[1] https://www.destroyallsoftware.com/

[2] http://rudairandamacha.blogspot.com/2012/09/writing-simple-r...

[3] https://peepcode.com/screencasts/play-by-play

[+] kragen|13 years ago|reply
Agreed.

Other programmers who seem super-productive to me include Julian Seward (bzip2 and valgrind), Larry Wall (patch, rn, and perl), Ken Thompson (Unix and substantial parts of Plan9 and Golang), Aaron Swartz (web.py, Open Library, Demand Progress), Steve Wozniak before his accident (Apple I, Apple II, Integer BASIC, a hardware video game, SWEET-16), of course Bill Gates (BASIC-80 and various other early Microsoft products), Niklaus Wirth (Pascal, Modula-2, Modula-3, Oberon), and maybe Darius Bacon, although none of his free-software projects are widely used.

None of them approach Bellard's level.

I think Bellard has another important thing going for him, beyond discipline and followup: he tackles important and difficult problems, things that are barely within anybody's reach. He's mostly not working on another text editor, another online chat system, or another casual game.

Who are your candidates?

[+] aerique|13 years ago|reply
John Carmack.
[+] lukego|13 years ago|reply
I'd add Dan Ingalls (Smalltalk) and Mitch Bradley (Openfirmware) to your excellent list.
[+] steeve|13 years ago|reply
To think that 99% of video on the web today is possible because of FFmpeg is mind blowing.
[+] MojoJolo|13 years ago|reply
I'm not sure about that 99%. But I agree, for conservatives, FFmpeg is mind blowing.

For me, it's magical!

[+] aninteger|13 years ago|reply
Fabrice is awesome. I am also extremely impressed with the code written by a guy that goes by the name of Bisqwit. He has multiple videos speed coding here: http://www.youtube.com/user/Bisqwit
[+] AlexDanger|13 years ago|reply
Please tell me that NES emulator video is sped up. His typing speed (and accuracy) alone are phenomenal.
[+] swah|13 years ago|reply
Ironically, this guy is using his own editor on his videos (see kragen's post above).

(I'd never heard about DOSBox, and now that I installed it, just seeing the initial window threw me right back when I got my first 486 (and would connect to local BBSes using bananacom).

[+] thejasper|13 years ago|reply
Do anyone know how these coding videos are created?
[+] wazoox|13 years ago|reply
The guy is also incredibly nice. I started using QEMU in 2003 and it was a huge relief in my work; so one of my colleague decided to send a "thank you" email to Bellard. Bellard replied very nicely on how happy he was that we found QEMU useful, and even gave us his phone number.
[+] hallowtech|13 years ago|reply
> Bellard, born in 1972, began practicing his own coding techniques first on a TI-59 scientific calculator, at the beginning of the ‘80s.

I wonder how many people have started their programming experience on a TI calculator. I had the same way in with a TI-85.

[+] hobbyist|13 years ago|reply
Old article resurfacing again on HN, neverthless he is everyone's idol
[+] logn|13 years ago|reply
Awesome article.

I like the bulleted conclusions at the end, but this nugget in the middle is my favorite:

"While he moves every few years into new and fertile unconquered territory, he exercises patterns that have served him well over and over: cleanly-styled C, data compression, numerical methods, signal processing, pertinent abstractions, media formats, open-source licensing, and “by-hand parsing.”"

I think sometimes for me I tend to wander from one technology and field to the next, but there's definitely something to be said for focusing a bit more on certain languages/technologies and what you're interested in.

[+] rehack|13 years ago|reply
> "Bellard doesn’t appear to promote himself—he politely declined to be interviewed for this profile"

In my opinion, that's the key.

Getting famous, comes in the way of a lot of people, whether they are a scientist or a programmer.

Read at some place, that many popular scientists, once they do something great and get popular, just have to interact with other people so much, that they don't get the time for doing something great.

Recently, on HN, there was a 'letter of note' by some famous author of why he was going to stop replying to reader letters. As that left him no time to write another novel/story[1].

Of course, for mere mortals (who don't taste that level of famousness) there are mundane hindrances like Facebook ;-)

[1] Discussion on 'The morning mail is my enemy' http://news.ycombinator.com/item?id=4409363

Update: Added reference

[+] carlob|13 years ago|reply
The link to his website goes to bellard.og instead of .org
[+] thewarrior|13 years ago|reply
Lets not just beat up on ourselves for being so inferior to someone like him . Its a hard fact to swallow but some people are just way better than can be explained away by any simple reasoning . Lets be thankful that we can live along side them ,reap the fruits of their labor and awaken ourselves to the heights of human potential .