
Fabrice Bellard: Portrait of a super-productive programmer (2011) - Baustin
http://blog.smartbear.com/software-quality/bid/167059/Fabrice-Bellard-Portrait-of-a-Superproductive-Programmer
======
DigitalSea
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/>

~~~
limmeau
You mean, like Nicolas Bourbaki?

~~~
omaranto
Are you really suggesting Bellard is the collective pseudonym of a group of
people and not a single person?

------
yorak
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.

~~~
undershirt
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.

~~~
marvin
Not all people have the capacity to do ambitious personal projects on top of
their day job. I've tried, ended up with burnout and depression. So
controlling the pressure means never planning to do something big on the side
outside of holidays or other time off work.

It's nice that you're able to do it like this, but your approach won't work
for everyone. People have different capacities for doing organized stuff. My
limit is at about 8 hours a day, five days a week.

~~~
jhartmann
I think people would be very surprised what they are capable of doing. I have
been working 80-100 hours per week since March of last year, and before I
worked a pretty standard 45 and 'had no time'. I am actually more productive
with my time, help my wife more, and still read business books and novels at a
pretty good clip.

My biggest two tips are to wake up early and get things done before work, and
truly love what you are working on. I wake up around 4 am and go to sleep
around 9 pm most nights, and that is a pretty reasonable schedule for me now.
It didn't start out that way, but you would be surprised what becomes normal
when you push yourself. I would wager you are capable of a lot more then 8
hours a day, five days a week.

~~~
marvin
I know you mean well, but as I said: I have tried this. It ended up with
burnout, depression and two years of not doing anything useful, courtesy of
the Norwegian health care system and a very nice family.

I am not doing it again. It doesn't work for me. I have worked more than 40
hours a week for periods of time, up to 6 months. But it is not sustainable.
There are individual differences here that a lot of people with very high
capacity for work do not understand.

------
ishansharma
"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.

~~~
_phred
Flip side: don't feel tiny in comparison to this guy's achievements.

Did he bang out LZEXE the first time he sat down at a terminal? Probably not.
But over time, through pursuit of a passion and hard work, his skill has
progressed incredibly.

We can get there too, with persistence. And we can have fun on the way.

This is as much a reminder for me as anyone, I have a tendency to compare
myself to amazingly talented and productive people and get discouraged with
where I am now. But you know what? I'm farther along than I was a few years
ago, and that ain't nothing. :-)

One of my favorite quotes on the subject:

    
    
       "Never compare your beginning to someone else's middle."

~~~
lttlrck
You should compare your beginning to someone else's end. Otherwise when you
get to your middle you'll find out you should have worked harder :)

------
jgrahamc
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.

~~~
lifeisstillgood
Some might see this as a bit negative - I take that in a positive way - I have
maybe another 20 years of brain power left. Since the last 20 years were not
nearly as productive as Bellard's I shall endeavour to calm down, and make the
next 20 count.

~~~
DigitalJack
I have to ask, what is your age that you think you only have 20 years of brain
power left? For sure, there are ages for which this is true, but given the age
distribution of HN readers, seeing this post makes me curious.

Perhaps the plasticity of our brains is reduced, but that alone doesn't mean
you have no brain power.

If you think of learning as "leveling up", you may stop increasing in level at
some point, but you are still very powerful and productive.

I do agree with the sentiment of your last sentence however. We should
endeavor to make our "leveling up" years count, and who knows, maybe you level
up for the rest of your years.

~~~
lifeisstillgood
I am 41, and am assuming I will (be able to !) want to retire at 60.. I know
Ghandi, Linus Pauling etc. But I suspect I shall be a tiny bit tired by 60.

Who knows. Maybe I have 40 years to go.

Whatever, I am fed up with looking back and thinking "if only" - so I shall
try and minimise those by 60.

~~~
keithpeter
But in retirement you will want to remain engaged and involved with the world.
A nice free software project spun off to others to maintain would fit the
bill?

Hint: the two distinct prime factors of my current age add to 16 and I'm over
50

~~~
rawland
Hm... I'm glad for having you here... :-) Oh, and personally, I believe young
age is hyped too much. (<http://500hats.com/late-bloomer/>)

~~~
dotatello
But 9 isn't prime. So it would be 11 and 5.

~~~
keithpeter
Yup, still 5 years to go before hitting the big 60. Anyone who thought I was
on the other side at 63 needs to revise their maths!

------
xentronium
He also authored jslinux[1] in 2011.

This guy is _amazing_ and I am truly envious.

[1] <http://bellard.org/jslinux/>

~~~
timtadh
Wow that is really amazing. It actually works. It has wget installed and gcc,
tcc a workable vi and screen! You could actually be productive in this
enviroment!!!

EDIT: Looks like there is no iface though. I guess that shouldn't be a
surprise. I didn't catch that until I tried to wget bash and see how long it
would take to compile.

~~~
jerf
Bear in mind there's no network because the environment it is running it
doesn't have a network available to it. Especially at the time that came out,
all you could count on was XMLHTTPRequest, and that would require some sort of
server proxy, etc. etc., not really the point. I'm sure that if a network was
reasonably available, jsLinux would have it.

------
rayiner
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...](http://www.freearchive.org/o/55dfc9935a719fc36ab1d16567972732c2db1fd7d7e3826fd73ee07e4c3c7d0b).

~~~
schmrz
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.

~~~
rayiner
> Why are we not seing the same results from all of them or at least from the
> majority of them?

The point isn't that Fabrice Bellard isn't special. It's that even a special
(clearly brilliant and self-directed) guy like him can arguably benefit from
the systematic learning of domain specific information that happens at a
university.

It could be the case that had Bellard not gone to university, he would have
gone to the library and learned all those things on his own, and still built
all the things he did. Or, it could be the case that the university exposed
him to a ton of readily digestible theoretical knowledge that he wouldn't
necessarily have stumbled upon on his own.

He's a counter point to guys like Zuck. You don't really need any theoretical
knowledge to build something like Facebook. You need a lot of theoretical
knowledge to build something like FFMpeg. A university education not only
provides a way to learn the necessary theory, but exposes you to a lot of
domains of theory which can inspire you to solve problems you might not have
thought to tackle, because you find out that there are theoretical tools to
help you tackle those problems.

~~~
incision
>Or, it could be the case that the university exposed him to a ton of readily
digestible theoretical knowledge that he wouldn't necessarily have stumbled
upon on his own.

I never attended college. I'm entirely self-taught. I've had a successful
career.

For the first two-thirds of my career I was awfully satisfied with my own
ability to assimilate and apply books, docs and discussion to my work -
seemingly much faster than anyone I worked with.

Eventually, I found myself working on big, unique, urgent problems with a guy
who was both college educated and had exceptional ability.

For the longest time I'd had ideas without the words to describe them. I could
run something past this guy and almost always get a response like "What you're
describing here is a..."

We ended up having hours of discussions that amounted to a crash course in
computer science, all sorts of higher math, history and philosophy. Our talks
didn't just teach me directly, they gave me conceptual footholds to make the
next logical leaps - completely expanded my horizon.

I suddenly realized just how much I didn't know and how hard it is to even
know where to look in order to learn.

I didn't need a structured education to be effective, but I can certainly see
how it would enable an exceptional person to be that much better.

------
barefoot
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
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...](http://rudairandamacha.blogspot.com/2012/09/writing-simple-
raytracer-in-common-lisp.html)

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

------
kragen
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
John Carmack.

~~~
kragen
Oh, yes, obviously. He might even be Bellard's equal.

------
steeve
To think that 99% of video on the web today is possible because of FFmpeg is
mind blowing.

~~~
MojoJolo
I'm not sure about that 99%. But I agree, for conservatives, FFmpeg is mind
blowing.

For me, it's magical!

~~~
n3rdy
So.. many.. cats!

------
aninteger
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>

~~~
thejasper
Do anyone know how these coding videos are created?

~~~
flaie
I don't know about the video, but there is a tool named Homura[1] that
snapshots a file in Vim every so and often, and is able to generate a HTML
file with interactive playback. Maybe it can be of some help. I found a sample
online too[2]

[1]: <http://uguu-archive.appspot.com/homura/manual.html>

[2]: <http://uguu-archive.appspot.com/nyaruko/edit.html>

~~~
Pwnguinz
There is also another tool called <http://www.showterm.io> which will record
your entire terminal session, not just VIM. So if you have to exit VIM to do
something else in bash, it's also recorded ;). Very nifty tool!

------
limmeau
Previous discussion: <http://news.ycombinator.com/item?id=2555867>

~~~
Baustin
Sorry about that. I didn't realize it had already been posted on here.

~~~
Bootvis
Don't be sorry, great links such as these never bore. If the readers were
bored we wouldn't upvote it agian. Plus, the fact that HN allows reposting
URL's after a while seems to be design.

------
wazoox
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
> 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.

~~~
c3d
TI 57 here. Then went on with the HP-28 and HP-48. Wrote the first game using
hardware scroll on the HP-48 (a Pacman).

Interesting that beyond the TI calculator, there are a few other parallels
with Bellard: I studied in one of the top French engineering school (Mines de
Paris), wrote a 3D program as a student (Alpha Waves, Guiness book for first
3D platformer), an open-source compiler (XL, <http://xlr.sf.net>), a machine
emulator with dynamic translation (HP Integrity Virtual Machine, a VM for
Itanium), worked on a C++ compiler (HP aC++), dabbled in Emacs (e.g. first
graphical Emacs for MacOSX back in the Rhapsody days), designed or wrote some
code used all over the world (e.g. modern C++ exception handling), I sometimes
took really new and "minimal" approaches to old and complex problems (e.g. the
scanner and parser for XLR total 1500 lines of rather simple C++ code). I keep
studying physics like Bellard kept studying math, and came up with my ow wild
ideas (e.g. I'm delusional enough to believe I know how to unify GTR and QM).

But there's a couple of pretty major differences as well. Bellard's work was
always freely available. Except for XL, mine was mostly proprietary (and XL,
an exception to the rule, was a resounding flop as far as community involvment
was concerned). Alpha Waves was a commercial product. HPVM was a commercial
product. aC++ was a commercial product. And today, they are all dead or dying.
As for fame, I'll let you judge of Bellard's fame relative to mine ;-)

I think that there is a lesson here about the strength of openness. If you
start your career, making your stuff open and sharing freely may be a pretty
good move...

~~~
chipsy
Hey, I recognized Alpha Waves! But I have to agree that the open approach
seems to be a better career move...and maybe increasingly so these days since
there are so many programmers around that if you don't open something, someone
else will immediately start cloning it.

------
malkia
My personal programming heroes:

\- Edi Weitz - <http://weitz.de/> \- Lots of Common Lisp libraries (cl-ppcre)

\- Mike Pall - <http://luajit.org/> \- luajit off course

~~~
rossjudson
Mike Pall impresses the hell out of me. Jason Garret-Glazer too (x264). Cliff
Click. Jeff Dean. Tony Morris. Martin Odersky.

~~~
malkia
Rich Hickey there too.

------
hobbyist
Old article resurfacing again on HN, neverthless he is everyone's idol

~~~
demallien
Heh. Be jealous - I'll be working in the same team as Fab, starting next month
:D

~~~
pilgrim689
May I ask where?

~~~
p4bl0
At Netgem (<http://www.netgem.com/>) I guess.

~~~
demallien
Yup :)

------
logn
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.

~~~
gwern
Reminds me of [http://alumni.media.mit.edu/~cahn/life/gian-carlo-
rota-10-le...](http://alumni.media.mit.edu/~cahn/life/gian-carlo-
rota-10-lessons.html#feynmann)

> "Richard Feynman was fond of giving the following advice on how to be a
> genius. You have to keep a dozen of your favorite problems constantly
> present in your mind, although by and large they will lay in a dormant
> state. Every time you hear or read a new trick or a new result, test it
> against each of your twelve problems to see whether it helps. Every once in
> a while there will be a hit, and people will say: _'How did he do it? He
> must be a genius!'_ "

------
rehack
> "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
The link to his website goes to bellard.og instead of .org

~~~
Baustin
Fixed the error. Thanks!

------
thewarrior
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 .

------
incision
On my shortlist of people who I read/think about any time I might feel
complacent about my own development.

------
fexl
I downloaded his pi computer from <http://bellard.org/pi/pi2700e9/tpi.html>
and I don't see the source code for the "tpi" program there. Is that source
code available anywhere?

------
gbog
Genuine question: all those comments focusing on Bellard's humble character,
do they refer in negative to some hype developers, brogrammers, those who use
only the latest fashionable tools, write blogs and rants and books?

------
bthomas
I'd love to see a list of projects he started that didn't work out. Amazing
list, but he must've had some duds at some point.

------
supervillain
Fabrice Bellard is the man!

------
saosebastiao
But it doesn't say ninja anywhere on his resume...

------
notdrunkatall
Does anyone have a link to or know how he came up with his formula for the
computation of pi in base-2?

I look at that and... I just want to know: how?

~~~
iso-8859-1
learn number theory?

