Hacker News new | past | comments | ask | show | jobs | submit login
Fabrice Bellard: Portrait of a super-productive programmer (2011) (smartbear.com)
463 points by Baustin on Feb 8, 2013 | hide | past | web | favorite | 155 comments

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/

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.

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

It is a very viable path and on top of this, they naturally create little coves of open-hack spaces where like-minded geeks hang out :) I was lucky enough to have met a few and spent time in their company. They were all very accessible, if not shy at times. Visibly detached from the career path concerns and fully immersed into technology, building and tinkering.

On the opposite side, I had a misfortune to meet less talented types, yet with egos only matched by the senior management. They fervently protected their turf and enjoyed dispensing condescending remarks.

I will never forget as a junior dev, I was trying to understand how a piece of the system works and in my search came up to a stellar DBA asking about a stored procedure of interest. After a couple of minutes of witty pokes at my expense, he concluded: "Listen, you don't need to know this. It's not your concern. Go away."

Well, eventually, I got access to the guarded secrets and figured it out :)

apart from which, i've noticed that most arrogant people are obsessed with the need for other people to defer to their accomplishments, rather than the need to actually accomplish anything. for people like bellard who just quietly get things done, the accomplishments are their own reward.

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

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

I am sure there are more such people. Can you please point to some that you know of?. It is inspiring to read bios/accomplishments of such super productive programmers.

I'll nominate Julian Seward, who among other things created both bzip2 and Valgrind, wrote parts of GHC (the Glasgow Haskell Compiler), and now works at Mozilla building and applying various analysis tools to Firefox/Gecko code.

Steve Wozniak. I feel like a dork saying this, but sometimes I'll randomly page through his autobiography because I know I'll be inspired/amused from reading it:


It's hard to think of many others who are as unequivocally good-natured as Woz...accomplished or not.

+1 I met him in Edinburgh last year and he's one hell of a nice guy.

Dan Bernstein, developing software without bugs and hardcore cryptographer: http://cr.yp.to/

Ricardo Quesada: https://github.com/ricardoquesada

- Cocos2D for iPhone (more used 2D game engine)

- Cocos2D Javascript Bindings

- Cocos2D for Python

- SqueakNOS: http://wiki.squeak.org/squeak/5727

- Driver for an obscure wireless Lucene device (new protocol reverse engineering)

- TEG (Tenes Empanadas Graciela)

- Batalla Naval

I'd recommend you to read _coders at work_ from Peter Seibel. It's some interviews with top programmers such as jwz, Peter Norvig, etc.

andrew tridgell (rsync, rzip, samba)

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.

Everyone is an asshole in someone's mind. You'll never please all people, and when you don't, they'll think you're an asshole. That's life. Don't let what they think bother you.

If one person calls you a jackass, ignore him. If two people call you a jackass, think about it. If three people call you a jackass, buy yourself a saddle.

Well, I'd rather 50 people hate me and 50 people love me than 100 people have a neutral opinion towards me. Those aren't necessarily the only options, but a lot of personality traits/beliefs tend to be highly polarizing.

For example, I hate it when people spend a long time deciding where to eat. It drives me crazy. So if it goes on for more than 5 minutes, I'll say "I'm going to (insert restaurant here.) Anyone who wants to join me should come" and leave. Some people love this, some think I'm an arrogant prick, and most are just happy they don't have to wait 45 minutes to eat.

So really, you should ask why people think you're a jackass. I know some people hate my tendency to unilaterally make lunch decisions, but I have no intention of changing it.

I like this proverb, but I think maybe it should be updated to 1% of people who know you, 2%, 3% or some such.

I mean, if thousands of people know you, 3 thinking you are a jackass isn't bad.

Ah, but it's 3 telling you.

Though, one person out of ten is less significant than 100/1000. We should work out the probabilities of someone telling you you're a jackass given that you are/are not one, and update the proverb to use likelihood ratios.

Replace asshole by douche and you'll get a more accurate version of what I meant.

>> Everyone is an asshole in someone's mind.

That's a nice one, have to remember that :-)

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.

Just a note about his 4G/LTE base station project, you can replace that relatively expensive USRP with one of these: http://www.nuand.com

there are these kinds of people for one ilya grigorik http://igvita.com

You mean, like Nicolas Bourbaki?

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

You know Bourbaki was a group, not an individual, right?

I don't know about you, but I'd watch the heck out of a dramatization of his Pi speed breaking record.

Plus one. I think it's really the total lack of selfishness that makes him so great.

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.

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.

How do you get started with this?

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


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.

Where do you live?

Since he's Polish my guess is Poland.

Cape Town, SA

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.

You actually work 40h/w (usually) and then consolidate the 4 extra hours into a day (or days) off.

"Four times nine" (four days of nine hours each week) also is popular, as is "every second Wednesday is a day off".

Employers like these because they do not build up vast reserves of free days. If you collect four hours off each week for 36 weeks, you have collected four working weeks of holidays. Add the regular 4-5 weeks of holidays and some national holidays, and you can almost take a three month vacation.

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.

The most inspiring and insightful comment I've read on this a while ago was: "you'll be surprised how much you can accomplish with just half an hour every other day", from someone with a day job, a family, and other hobbies besides programming side-projects.

There really is truth in this, most people (myself included) often lose confidence and motivation when thinking too much about the amount of work to complete side-projects, but you only have to remember there are over 300 days in a year, and you can get a lot done in 150 hours of work.

Don't set hard deadlines for yourself as if you're working for someone else, and don't get lost in minor details. Just maintain slow but steady progress, and chances are progress will accelerate when projects start to get closer to completion.

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.

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.

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.

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

One question: how do you go about removing human nature from this interesting idea? As is true with most noble ideas, it always falls over because some person is going to twist it to suit their ends. Communism is a fantastic idea until you find out that 'Some animals are more equal than others' How does 'The United Order' deal with this?

Edit: spelling (iPad use in a pub is highly discouraged)

Participation is totally voluntary. Private ownership still exists. When someone is dissatisfied, they can seek redress within the system, and if they find that unsatisfactory they can leave with little impedance. It's a voluntary co-op, not a compulsory governmental program. While human nature will exist, widespread tyranny and/or compulsion is not a function of The United Order, and those inclined to prefer that nature over discipline or concern for the group are free to do so, and they are free to pursue whatever opportunities they would like on the outside.

Control is very local, administered by bishops who supervise a few hundred people. Unless there was blatant misappropriation or significant credible protest, a bishop's dispensations would likely go unchallenged. Broad centralized programs that cause trouble for some unforgotten little guy are not plausible in a scenario where control is so widely dispensed and so locally focused.

Of course, there's a religious element to this. We believe the bishop has the right to be led by revelation in these duties, so that dilutes a lot of otherwise intractable social ramifications of such an organization. If a man has been ordained by the prophet to do a thing, tolerance is much, much higher than otherwise, and peace is much more likely to be kept despite individual disagreements.

By extension, Mormons further believe that those who accept the judgment of the bishop with the recognition that their bishop is the authorized representative of God in that matter, even if it opposes their personal judgment or opinion, will be lead and blessed such that they become the wealthiest people on earth many, many times over, incomprehensibly more wealthy than contemporary Western nations. Mormon eschatology, in fact, indicates that a society operating under these conditions will be the only place of prosperity on the whole earth for a time, and everyone else will be at war and unable to cooperate sufficiently to sustain any significant productive output.

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.

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.

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.

But if the problems you're solving are truly great, then they would be worth enough money to fund your development effort.

There is a flaw in your rationale. Creative endeavours are a high risk activity. Heck, just see how big % of startups fail. Also, we do not know how many failed projects Bellard has started (I'd suspect hundreds?).

Us mere mortars have bills to play and children to support. It makes us unable to take on the challenges that could potentially lead to huge gains because the short term rewards are not guaranteed.

Also measuring every step of progress with monetary value does not work. New discovery (or project, or tool, whatever) may be the first step required on a long path to a great discovery, but by itself, worth €/$ 0 to everybody.

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

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

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 :)

Well, the guy was 17 when he wrote LZEXE. So yeah, I still feel tiny in comparison to his achievements.

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.

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.

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.

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.

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

Nice to meet you, and yes something like that would be nice to look forward to.

In the meantime I have to monetize the brainpower of the next twenty years to be able to retire :-)

But I would like it if I could make some cash by or along with contributing something worthwhile.

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

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

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!

Ghandi -> Gandhi

Nothing personal. Seems like a very common mistake, but I can't figure out why. I also see this mistake when people mention Sal Khan as Sal Kahn.

Pronunciation? Ghandi is a potential spelling for gon-dee. Gandhi looks like it would be pronounced gand-hee. Perhaps it depends on your accent.

The latter is the right pronunciation as far as I know.

I think the mistake is so popular because we know how to write “ghost” and John.

Thanks. I'll hit 40 this year. I don't know when I'll be able to retire from my day job... If I start a company, maybe I won't retire :)

Yeah, I hear you about the "if only" thing.

Many famous composers and writers produced their finest works in their later years. Surely we can do the same!

Yup, also true of architects.

He's just a couple years older than me, and the brightest point in my entire programming career wouldn't even show up as a minor bullet point on the list of stuff he's done.

He also authored jslinux[1] in 2011.

This guy is amazing and I am truly envious.

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

Also not to forget the LTE/4G base station implementation running on PC. http://bellard.org/lte/

I was inspired by jslinux and decided to write one such emulator myself. Of course, the architecture I'm emulating (Lattice Mico32) is much much simpler than X86.

It is open source, available at http://www.ubercomp.com/jslm32/src/

I did both an interpreter and a (much faster) dynamic code generator that generates blocks of code in Javascript so it doesn't have to decode every instruction over and over again.

Oh, and before doing the project, I sent Bellard an email, and he was very polite and helpful. Even sent me some compliments after I was able to optimize it to run at a decent speed. A true master!!!

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.

Someone wrote a virtual modem device for it that talks over websockets.


Yeah, that was my reaction as well.

Just paste the binary into the clipboard using base64 or something along those lines, then base64 decode it, and go ahead and compile it =)

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.

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

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.

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.

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.

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

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

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

You still have to work to benefit from a university. They don't inject knowledge directly into your brain. You have to consciously put in hard effort to learn the material and retain it, instead of making extra room upstairs doing keg stands for a few years.

Fabrice has done some amazing things technically, but doesn't strike me as a successful businessman. His seemingly most brilliant work is being given away for free. The Zuckerberg, et. al. point comes from their vast wealth, not their technical chops, countering the idea that college is a requirement for financial success.

I don't think anyone would argue that college cannot expand the mind and enable brilliant people to do even more brilliant things. The argument, however, is whether that leads to increased income and access to jobs. The data, even outside of the popular anecdotes, seems to indicate generally not.

He went to a institution known for its math, we do see the same kind of results from his peers - just not in computer science.

>> we do see the same kind of results from his peers It's interesting. Can you name some of them? With published works

Phillipe Flajolet (algo research, passed away in '11)

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.

Looks like the first link to his personal website in the article is broken:


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.

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


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?

John Carmack.

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

Linus Torvalds: Linux and git.

I'd add Dan Ingalls (Smalltalk) and Mitch Bradley (Openfirmware) to your excellent list.

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

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

For me, it's magical!

So.. many.. cats!

How so?

Pretty much any video site your can think of (Youtube, Vimeo, DailyMotion...) is possible via FFmpeg (which re-encodes the videos).

Chrome also bundles FFmpeg.

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

Please tell me that NES emulator video is sped up. His typing speed (and accuracy) alone are phenomenal.

Last time these came up, it was said that they take the keystrokes, subtract the backspaces and play back everything else at the pace you see in the video.

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

Do anyone know how these coding videos are created?

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

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!

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

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.

Also, previous non-discussion: https://news.ycombinator.com/item?id=4470917 :)

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.

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

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

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.

TI-82 here. I made small applications to do my 7th grade algebra homework. They took longer to make than just doing the homework, but I enjoyed automation.

While I first fiddled with a Commodore 64, my first program that I could reasonably call non-trivial was on an HP-48G. Well, I'd call it trivial to me today, but it wasn't trivial to me then.

I can't speak to the TI series, but one nifty thing about RPN is that where 80s-style microcomputer BASIC tends to afford spaghetti code, the RPN afforded breaking your program down into functions. If you didn't break it down properly, your program turned into a series of hundreds of DUP DUP + SWAP3 DRAWLN 73 SWAP DUP - DRAWLN 0x838AFE7E8A9E 3 4 108 93 BLITPIX etc etc in an undifferentiated mass. (Those aren't the real opcodes, I've long since forgotten them and won't look them up, but that's sort of trying to compute where to draw two lines then dumping a pixmap to the screen.)

Yeah, me too... TI-51 III (aka TI-55 in US) in the late 70s - belonging to my father, who had it for his job but never got to use it much because I was always playing with it. He later got me a copy of this book - http://books.google.ca/books?id=ySZhMJrzhw4C&pg=PT48&... - and that's really where my computing career began.

TI-84 here. I actually tried to get into java a few years earlier (like 9 or 10 years old), but ran into loads of problems trying to get a decent tutorial. Everything about TI-BASIC was right there in the manual, which removed all the bullshit of learning a real programming language.

I started on a TI-89, writing quizzes and quadratic equation solvers. When I got to college and found that other kids in the class had written racing games on theirs I felt like I was out of my depth - I can't imagine how the kids who'd never programmed felt.

I started on my TI-83+ and then later moved up to a TI-89, which was great for wannabe programmers because you could easily write programs in C (using TIGCC) instead of having to deal with the limitations of TI-BASIC.

TI-55 here. Tough. No conditional branch. Not even branches except RST...

The next one was a CASIO PB-700.

does HP count? 41-CV (there's an iphone app for it!)

TI-82 here, my first programmable computer.

My personal programming heroes:

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

- Mike Pall - http://luajit.org/ - luajit off course

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

Rich Hickey there too.

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

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

May I ask where?

At Netgem (http://www.netgem.com/) I guess.

Yup :)

Shit. Yes I am Jealous. That is fucking awesome. I would leave any highest paid job with google, fb blah blah to work with Fabrice :)

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.

Reminds me of http://alumni.media.mit.edu/~cahn/life/gian-carlo-rota-10-le...

> "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!'"

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

The link to his website goes to bellard.og instead of .org

Fixed the error. Thanks!

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 .

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

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?

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?

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.

Fabrice Bellard is the man!

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

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?

learn number theory?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact