A high level evaluation on the benefits of programming in the standard language of the Web
Recently I tweeted this:
Now admittedly anyone that knows me the slightest has noticed my non PC comments, which to my defence, always come from the heart. But looking past the awkward phrasing, why did I in fact remember this video?
Back in August 2012 when I first saw this interview I was honestly troubled, and it surfaced a number of times in my mind in the following months. And in December 2012 when my company came to a crossroads of adopting open web technologies or sticking to more “traditional” pipelines it became a catalyst for my decision making. But I didn’t give in - I didn’t let authoritarian opinion overthrow my instinct. I felt the right thing to do was to trust the web and its openness. And in the following months my feeling was crystalised into solid arguments.
Before I start listing them, I’ll have to clear the air by saying that my problem is with the content of the video, not John Carmack personally. I look up to the guy, and I realize that my admiration will only ever be one way… I appreciate his early achievements in programming 3D worlds - I still remember how annoyed I was that Wolfenstein3D on my friend’s 286 wouldn’t play on my Amstrad 086. I’m also happy with his recent involvement in the development of the Oculus Rift that gave those guys a push in the right direction and a breakthrough device in our hands sooner than later. I truly believe that he can achieve historical status, as one of the grandfathers of virtual reality.
As product development dictates, people like an easy solution that just works. And as a rule most people will pick the solution that does the most with the least effort. Online software is designed with those principles and has practically no competition in this area. It will almost seem like an anecdote in the future that we had to install software on each machine individually and that software only ran on one machine at a time, tied to the hardware. We can barely see an outline of the future with downloadable content, background updates and episodic delivery in video games. But that’s not even touching the true potential of the Web.
Networks live in the real world. And the real world is fundamentally built on exceptions. When does anything ever go as planned in the real world? New conditions are a constant and there’s only one exception error response - when your life ends. There is no such thing as “breaking the world” in real life - but it is very common in a compiled program.
Pre-scheduling all possible responses will never be as efficient as creating new routines “on the fly”. That’s why compiled languages still produce behaviours that are closer to machines than to humans. Any qualified gamer knows that a big portion of defeating a video game is by taking advantage the limitations of the enemy AI. You might say that’s a lack of technology from our part, but processing power is not what computers are lacking, it’s the ability to adjust to new conditions.
It’s not all about speed. Nature has taught us so. Our brain has built in latency and friction. It uses the spine to compensate for delayed reactions. Yet the brain is considered immensely superior to any artificial intelligence we’ve built because it has higher level processes that allow dynamic logic patterns to be formed and executed - what we may call imagination or foresight. The possibility of handling unpredicted exceptions and generating new code on demand are fundamental functions of true artificial intelligence.