Thursday, August 14, 2008

Coding: In The Movies Vs In Real Life

1. Code does not move
In films and television code is always sailing across the screen at incredible speeds; it’s presented as an indecipherable stream of letters and numbers that make perfect sense to the programmer but dumbfound everyone else. I understand that to the non-savvy person the abilities of a programmer might seem amazingly complex, but do they honestly think we can read shit that isn’t sitting still? It’d be like trying to read six newspapers flying around in a tornado. Sure, I can watch a kernel compile, tail a log file, or simply monitor the scrolling output of a program - but the most value I get out of those activities is when execution stops and I can actually scroll back to read what the hell happened (unless the output was going slow enough I could read it as it happened).

2. Code is not green text on a black background
Sure, code can be green text on a black background if you want it to, but most programmers use syntax highlighting and sysadmins configure their shell to use ANSI color.

3. Code has structure
According to the movies all programmers abhor the space bar and enter key. In the real world code has structure - it’s got line breaks, spacing, and indentation. Granted, we’ve all written our share of unreadable hacks: I used to write a lot of perl and I had a knack for writing nasty regular expressions that moved many of my successors to committing seppuku, but those days are over. It’s all about clarity now.

4. Code is not three dimensional
Remember in “hackers” when the gibson is depicted as a three dimensional city that the hackers must navigate through? Bullshit! We may use a dash of color in our shell to make things a bit clearer, but last I checked my terminal app doesn’t require OpenGL. I’m working here, bitches - I’m not playing quake.

5. Code does not make blip noises as it appears on the screen
This goes for ANY text, not just code. When text appears on my monitor it doesn’t make blip sounds - this isn’t 1902 (or whenever monitors used to do that). This is one of the most common offenses in Hollywood films, almost every movie that has a scene where a character is composing an email or surfing the net has the text make blippity-blip sounds as it appears. Do they have any idea how fucking irritating that would be in real life? This article alone would be like thirty thousand blippity-blips.

6. Code cannot be cracked by an 8 year old kid in a matter of seconds
Sorry, no. Just no.

7. Not all code is meant to be cracked
Hollywood loves to endorse the notion that programming, encryption, and complex computing in general are all the same thing: a jumble of secretive data that must be broken by a seriously (srsly!) clever hacker. This is somewhat understandable because the term “code” itself is ambigious. In the realm of computing, code typically has two definitions:
1. The symbolic arrangement of instructions that a computer can understand - like “Your PHP code is shit”
2. The disguised transformation of a message - “The Navajo code talkers in WWII”
Hollywood usually applies #2 to all of a programmer’s computing activities. There are no windows to drag, no enclosing brackets or IF statements, there’s no desktop. Everything on the computer takes the form of an encrypted message, which must make looking at hot steamy pr0n a real bitch (md5 makes me flaccid).

8. Code isn’t just 0100110 010101 10100 011
Sure, when you get down to the binary level it’s a bunch of 1’s and 0’s, but who does that? I’ve never met anyone who codes binary. Hey Hollywood directors: programmers use this neat thing called the ALPHABET. It’s got letters that you put together to form words. We even put spaces between those words (see #3).
Also, the whole joke about everything on a computer being just a bunch of 1’s and 0’s has become painfully not funny. It ranks right up there with the joke about the user who uses his cdrom tray as a cupholder, I’m pretty sure I’d heard that joke a thousand times by 1997. Just because all data on a computer is ultimately represented by one or a zero doesn’t mean that the basis behind it is as simple as a one or a zero. That’s like saying all humanity ultimately boils down to a bunch of carbon atoms (or whatever the hell we’re made of), so the next time someone steals my car I can laugh it off and say “Oh those silly carbon atoms!”

9. People who write code use mice
According to Hollywood most programmers haven’t discovered how to use a mouse. Sure, we type fast, but a mouse is a very useful tool and there’s no reason we’d abandon it. While we’re dispelling stereotypes, I’d also like to say that not all programmers are hot-pocket eating virgins who play WoW. Some of us exercise and have active social lives. Some have even had SEX! Holy Crap!

10. Most code is not inherently cross platform
Remember in Independence Day when whatshisface-math-guy writes a virus that works on both his apple laptop AND an alien mothership? Bullshit! If real life were like film I’d be able to port wordpress to my toaster using a cat5 cable and a bag of glitter.