/writing

Software Dreamer

3 min
The dreamers among programmers

Some programmers are visionaries. To make an idea work before its time, they route around whatever the technology can't do yet, and the code they write is so obscure that only they can read it. Their tools look lovely and are full of traps, and when something breaks there's no way to debug it. But these are the people who keep making new things, and after a rough start, those things turn into one big thing after another.

Every week infra problems blocked me from working a few times, and it wore me down. Then I noticed that FB was only half to blame. The other half belonged to the visionaries around me. The five or six people I worked with directly had started or built Infer, React, Reason, ReasonReact, BuckleScript...

I guess that's the cost of watching these ideas grow up, and of helping them along. None of them were as nice at the start as they looked once everyone had adopted them. For React's 5th birthday, the team replayed the video of Jordan and Tom's first public talk on React and JSX in 2013. I asked Jordan why he never gave another talk. He said, "You have no idea. When I walked off that stage, the whole audience was pointing at me and tearing it apart." React first shipped internally on News Feed in 2011, then at Instagram in 2012 (Pete Hunt). It took a long, long time.

A lot of people, me included, look at some new thing and decide it's too new, too immature, the experience is rough, it tries to solve too much, the solution is overkill. And that's the end of it. But the thing you're looking at might be the next big thing. The picture these dreamers have in mind is huge. Some people see it when half of it is painted. Others don't see it until it's nearly done.

If Ads and Messenger hadn't had such hard problems, React, Reason and Flux wouldn't have been born here.

If Facebook hadn't had such hard problems, GraphQL, Infer, Hack, Flow and Buck wouldn't have been born here.

A group of pioneers didn't mind how deep the holes were, and that's how these ideas became the tools everyone uses today.

Pragmatic programmers find it easy to underestimate the dreamers, to ignore them or not take them seriously, and it always happens while the work is still in progress. Once the thing takes off, the story flips and the person becomes a legend who saw it all coming. In reality a dreamer's work also piles up a little at a time, one iteration after another. They need people who believe in them and people who follow them.

Chenglou swings between wildly excited and deeply frustrated all the time. After this stretch of working next to him, I'm starting to understand where both come from.

Whenever I came to him with a gripe, a complaint, a question or a "wow," he answered with the same line. So I'll end with it:

"Welcome to the producer side!"

AI-translated from the original