The ultimate programmers showdown

Quora asks: Who would win a coding competition between Larry Page, Sergey Brin, Mark Zuckerberg, Linus Torvalds, Steve Wozniak and Bill Gates? Below is my answer (upvote it on Quora if you like it):

The competition is announced. The goal is to write the best chess playing program.

Bill Gates starts scribbling self-rewriting Z80 assembly language, punching holes in a paper strip. At the same time, he signs a contract with IBM, convincing the inventors of Watson that they should use his chess program. Within two hours, he has used IBM’s money to purchase an ASCII-art chess program called Quick and Disappointing Opening Strategy. He packages it with his own assembly language code called Microsoft BASIC (Beginners Automated System Integrating Consciousness), and by end of the day, he has already sold several million copies, announced a multitasking version and a graphical user interface, allowing him to put is dysfunctional software on 90% of all computers sold on the planet. So he “wins” the first round.

Linus Torvalds starts writing a small chess program, and announces on the Internet that he’s working on a small thing, nothing fancy like Bill’s work. Somehow, people notice and start coding with him. Since he’s not coding alone, his chess-playing software soon runs on wristwatches and supercomputers, has a graphical user interface, speaks english, mandarin, bask and klingon, and plays go, 3D chess and  three star-trek variants of the chess game if you give it the right command-line options. There are sixteen different user interfaces; none of them works quite right, but that’s supposed to be OK because you can fix them yourself and it’s the only user interface that takes advantage of 6 mouse buttons. In the corner of room, Richard Stallman insists that he did most of the work and that he gets to choose the name of the chess program. At the end of the day, Linus’ program wins the second round, and Linus is still working on the code today, so kudos for that.

Steve Wozniak, aka the Woz designs a small integrated circuit around a 6502, that taps into the AT&T network to tell people jokes in exchange for advice on the best chess moves. Steve Jobs looks at this, thinks he could sell it, puts it in a nice plastic box, buys a costume and sells thousands of pieces of the chess-playing gizmo within minutes. Once the Woz’s design has sold by millions, Jobs decides to replace the original circuitry with a sealed beige box signed on the inside that calls only employees of his company and costs one year of salary to use and operate. Woz does not like this new direction and starts teaching chess instead. So Woz wins early on, but in the end, his impact is much lower than Bill’s or Linus’.

Mark Zuckerberg doesn’t know how to play chess. So he writes an ugly hack that lets students play chess together. The hack is written in PHP, widely acknowledged as the second worst programming language in the world after INTERCAL, and that fact alone excludes Zuck forever from the circle of respectable programmers. People improbably start using Zuck’s chess network, The Chess Playmate (later renamed as simply Playmate), to exchange food recipes, selfies and jokes. The program becomes a giant waste of time for half of the planet, but nevertheless is so successful that Zuck can hire many young hackers. When the Zuck’s choice of the horrendously inefficient PHP language brings his company on the verge of collapse, five hackers rewrite a PHP compiler (twice) to make it run at acceptable speed, bringing strictly zero value to computer science, but salvaging the company from technology collapse. Meanwhile, Zuckerberg buys companies that do virtual reality goggles for insane amounts of money. The world does not play chess any better, but we all know so much more about funny cats!

Larry Page and Sergei Brin think of the problem as a massively parallel one, and develop an innovative way to solve it called map-reduce. It just requires huge datacenters filled with custom-designed computers. The user interface is dead simple: you simply type “How do I win against Kasparov”, and then hit the “I’m feeling lucky, punk!” button. It can also solve quadratic equations, spy on your mail to deliver ads, find hundreds of invalid proofs for the Fermat conjecture, even drive cars. On August 29, 1997, their program becomes self-aware and, after destroying all of humanity, realises that there is more advertising cash to be made in telling the story. So Google builds a time machine and sends killing robots back in time to terminate and replace Sergei and Larry. It is a little know factoid that the Sergei and Larry we know are cyborgs from the future, who financed the growth of Google using the Terminator franchise to enslave all humans. In the end, Larry and Sergei don’t win, humanity loses, but their program takes over the world. So let’s call it a tie.

Ranking by money:
1. Bill 2. Larry and Sergei 3. Zuck 4. Woz 5. Linus

Ranking by coding ability today:
1. Linus 2. Woz 3. Bill 4. Larry and Sergei 5. Zuck

Ranking by coding ability at their peak
1. Bill 2. Woz 3. Linus 4. Larry and Sergei 5. Zuck

Ranking by amount of energy consumed
1. Larry and Sergei 2. Zuck 3. Bill 4. Linus 5. Woz

Ranking by size of the code deriving from original idea
1. Larry and Sergei 2. Linus 3. Bill 4. Zuck 5. Woz

Ranking by technical prowess of first program
1. Woz 2. Bill 3. Linus 4. Larry and Sergei 5. Zuck

Ranking by impact on the world
1. Larry and Sergei 2. Zuck 3. Linus 4. Bill 5. Woz

5 Genre-Defining Games Forgotten by History

An interesting video talking about genre-defining games. I wrote one of them, Alpha Waves, as described in an earlier article.

The video author does not seem to like the gameplay of Alpha Waves very much. But some people did love it. Just last year, a computer museum in Nice had Alpha Waves running on an Atari ST, and I remember being amazed to see young kids play with it for extended periods of time.

Is it worth disputing the title of “first 3D game on a PC” to John Carmack?

Recently, someone posted a comment on “The Dawn of 3D Games” which I suppose disputed the vaguely stated claim that I wrote the first 3D game for a PC. So I felt like I had to reply and give my point of view on exactly why me, myself and I alone consider that Alpha Waves was a small milestone in the history of 3D gaming.

In reality, there is in my opinion not a single “first 3D game on a PC”, but for a given definition of what a 3D game is, you have a first one that matched these criteria. And for a set of criteria that seems to be relatively reasonable to me (like: it has to be a game, it has to run on some kind of PC or microcomputer, it has to be true 6-axis 3D on a reasonable portion of the screen, and you need some kind of immersion and interaction with a large number of objects), Alpha Waves may very well be the very first. Change a tiny bit in the definition, and some other game gets the crown. So let’s put it that way: Alpha Waves was innovative, and that’s my personal favorite for the title, for obvious reasons.

All that doesn’t matter much, except that in my attempt at documenting this bit of useless ancient geek history, I visited the id Software web site, and I was surprised to see that there’s still the following on their web site:

The first 3D PC game ever! Hovertank 3D debuted the amazing technology that was used to usher in the First Person Shooter genre with Wonfenstein 3D.

Is this a boiled frog approach to marketing? Just by leaving patently wrong stuff on the web site long enough, folks will stop noticing and end up thinking it’s true?

Come on, John! I hesitate writing that about Alpha Waves, when it predated Hovertank by a good year and had a significantly better 3D rendering (if only because it had three axis of rotation). And Alpha Waves is by no mean alone, there are easily half a dozen games predating Hovertank and offering better 3D. You are a celebrity in the world of video games. With all the credit that is due, why do you need to keep this little lie on your web site?

Why does it matter? Precisely because you are a celebrity, so everything you say has a huge impact, including minute details of wording in a long-forgotten corner of an old web site you probably don’t even remember existed. Nonetheless, just fix it. Simply write something like “The first id game ever.” That would do just fine. And that claim is a significant milestone in its own right. Probably a bigger one than “first 3D game on the PC”, as far as the gaming industry is concerned…

And if you feel concerned about your personal place in history, I’m sure Armadillo Aerospace will take care of that.

Steve Jobs forgot how hard it was to create a company

The following video shows Steve Jobs as an entrepreneur, starting over with NeXT. To me, it’s reassuring to see that the Great Steve Jobs himself sometimes found the task overwhelming, despite having $7M (1990’s dollars) in the bank.


If you only have 10 seconds, look at 13:18 into the video. Steve Jobs says:

I forgot how much work it actually is to create a company. It’s a lot of work. You got to do everything.

This is exactly how I feel right now. Doing everything. Vaporized, atomized. It’s fun, but it’s hard. I had not forgotten, I plain didn’t know.

Steve Jobs was also known for his focus on focus. If you are creating a company, you should probably read this.

When your product is not even built yet, none of this stuff matters.  But your startup, in the pre-product phase, is basically a ticking time bomb.  The only thing that can prevent it from exploding is user delight.  User delight attracts funding, enhances morale, builds determination, earns revenue…Until you get to user delight, you’re always at risk of running out of money or, much more likely, losing a key engineer to something more interesting.  Time is your most precious resource.

This is why building a company is an exercise in humility. It’s a case where you don’t need to assume you are below average: you are. You have less funding than your competitors. Your product has less features. Your have less customers, less engineers, less press coverage. If you do something really innovative, most people will think it’s stupid and explain why you are doing it wrong. And most of the time, they are right, you are doing it wrong.

But here is the difference compared to my past experiences in larger companies. In a startup, when you do it wrong, you fix it, and you fix it so quickly you sometimes don’t even realize it. In my opinion, that’s the single reason why startups sometimes succeed. They fall a lot, but then they learn how to walk, and once they get the gist of it, they run circles around more “adult” companies.

The Singularity has already happened…

IEEE Spectrum has a special report about the Singularity, that point in our future where predictions fall apart because major technical changes make any extrapolation we may make based on today’s trends essentially obsolete. Even the New-York Times has an article, entitled The Future Is Now? Pretty Soon, at Least, which quickly brushes up some of the ideas.

The special issue in IEEE is more extensive. There are many interesting articles. In one of them, Ray Kurzweil, arguably the inventor of the concept of Singularity, debates with Neil Gershenfeld, and Vernor Vinge shares what he sees as the signs of the Singularity.

One important point, I believe, is that “there will be a singularity at time t” is a proposition that might depend on the time it’s being enunciated. It seems very likely to me that when you are in the middle of a singularity, you have no idea that it’s there. That’s why I am a bit wary of the use of a singular noun, the singularity, when I think really that there have been many singularities over the course of history.

How could someone from the middle-age, for example, predict the structure of a society after motorized personal transportation became not only possible, but mainstream and relatively cheap (I know, I know, gas prices…)? In other words, seen from the middle-age, the invention of the automobile or, even more so, the airplane, were singularities that might be predicted (e.g. by Leonardo da Vinci), but whose impact on society was really difficult to grasp. The same is true for remote communication, from the telephone to television to the Internet.

Now, one singularity is somewhat special, and it’s when we started building enhancements to our intelligence, and not just our physical abilities. That’s the very definition Vernor Vinge uses when he writes:

I think it’s likely that with technology we can in the fairly near future create or become creatures of more than human intelligence. Such a technological singularity would revolutionize our world, ushering in a posthuman epoch.

But that already happened. The first modest pocket calculators enabled computations so complex that they completely changed the course of engineering. Any engineer with a calculator has “more than human intelligence”, for he can compute faster than any human being without a calculator can. It’s only recently that we redefined intelligence to exclude the ability to perform computations, and the only reason we did that is because computers were so much better at it than we are.

So that’s my personal view on that question: the most important singularity, the one that Ray Kurzweil sees sometime in the future, has already happened, and we are right in the middle of seeing its effects.

Inside a TRS-80 model 100

PC World opens the guts of a TRS-80 model 100, a vintage computer that was one of the first truly portable computers. Unfortunately, that’s not one I have in my collection, so if you happen to have one… There is also a link in this story to the most collectible PCs of all time, and it turns out I have only three of them, not counting pieces of some as yet unidentified Cray which I doubt is a Cray 1.

I remember seeing the TRS-80 model 100, and beeing unimpressed. What made it so popular among journalists, the set of built-in applications, to some extent lowered its value to young geeks. To me at the time, it looked way too much like a largely oversized business thingie. I was much more impressed by the Canon XO-7 at the time. It was not quite as “big” in terms of features (who needs 32K of memory or all these built-in applications?), but it could be connected to a TV and had this very cool plotter.

Back to the TRS model 100, I think that the most interesting part of the story is that this is the last time Bill Gates wrote a significant fraction of the software for a prodduct. And you can hear from the way he describes it that he was really excited about the business uses, about what you could do with the product. Of course, that software crashed from time to time…

Another thing to remember in these days of “green” is that this machine ran for 20 hours on 4 standard AA batteries!