Wednesday, November 5, 2014

Language porn

I am going to be moving to a more programming-heavy job soon, so I've been warming up those parts of my brain that have lain more-or-less dormant for the last few years. Getting back to full time programming is a drastic departure from what I've been doing, but after doing a mental inventory, I'm happy to report that the lights all still work, the plumbing isn't leaking all over the place, and the walls are still standing in those particular areas of my mind.

If this sounds dramatic, or like I'm shifting paradigms without a clutch, then this is the post for you.

As a brief aside, I take a large amount of professional pride in programming. I really do try to do the best I possibly can, even when writing shitty little web apps or simple features. I like it when people see something I've done and say: "Oh! Neat, that is going to make my life a lot easier!" and the code doesn't look like shit to the point where I fear touching it again in the future.

But. Because I was taught by scary hardasses, I have a working industry-specific vocabulary that compares to the MIT hackers of olden tymes. And to me, this is a Good Thing. Programmers have to work with computer languages to get stuff done, which means that begging, crying, and pleading don't do much. You have to hammer raw math into some type of functionality described by a user, and there is very little overlap between the two domains. xkcd has things to say about this. Being very, very specific is important to solving the problem.

One of the things I enjoy is that programmers have a very rich vocabulary to talk about and describe the problems that occur because of the disconnect between code and desired features. Seriously, programmers have more words for "failure" than Eskimos apocryphally had for "snow."

For example, the words "bad" and "wrong" have two very different connotations. "Wrong" means that you fucked up. Someone types in "cat" and your program outputs "dog". "Bad" means that a user types in "cat" and your program takes 3 hours to run, crashes a server somewhere, deletes a couple random files, and then prints out "cat". Either of those cases can occur when the programmer makes an honest mistake. There is an entirely different set of words to use when the programmer is just being a bastard.

Logic errors have their own phrases and classes. Software and Hardware do too. There are modifiers for severity.

What we end up with at the end of the day, is a very expressive set of jargon to describe exactly what is going on with enough detail to figure out the real problem and solve it. Of course, there are a lot of ways to say that the user is obviously the problem.

The link in that last sentence has always been one of my favorite replies to use, so feel free to swipe that for your own, lesser, industries.

I get to be a programmer again. Even though I know that the Web is a shitshow, I am looking forward to it. Because we can talk our way through this.

No comments:

Post a Comment