Flutterby™! : Programming Sucks

Next unread comment / Catchup all unread comments User Account Info | Logout | XML/Pilot/etc versions | Long version (with comments) | Weblog archives | Site Map | | Browse Topics

Programming Sucks

2014-05-05 14:23:28.811391+00 by Dan Lyke 2 comments

So I got hornswoggled in to doing this talk on NodeJS at the end of May, and in the comments there's a little pushback to the "JavaScript sucks" portion:

Unfortunately, many of the executives that make decisions about what technology to deploy can't separate the joke here from the reality of JavaScript's future. To many, JavaScript is still seen as a toy technology and this reinforces it.

So I've been thinking a little bit about the old Scary Devil Monastery notion that "all software sucks" and "all hardware sucks". Those, of course, were introduced to head off the inevitable fanboy-ism and hipster-ism, or, as MeFi commenters often sum up it up, "your favorite band sucks".

And, frankly, if you don't think all software sucks, you have no business being a technology executive.

In that vein, RT Noah Veltman ‏@veltman:

Programming is basically figuring out how to phrase your three wishes to an evil genie. "ALL the rows? As you wish, master... mwahahaha!"

And in that vein, I feel like I should link to http://stilldrinking.org/programming-sucks before yet another person sends it to me. It's all things that we who have been programming for a while know, but this:

Every programmer occasionally, when nobody's home, turns off the lights, pours a glass of scotch, puts on some light German electronica, and opens up a file on their computer. It's a different file for every programmer. Sometimes they wrote it, sometimes they found it and knew they had to save it. They read over the lines, and weep at their beauty, then the tears turn bitter as they remember the rest of the files and the inevitable collapse of all that is good and true in the world.

Needs to be quoted for truth.

[ related topics: Quotes Interactive Drama Software Engineering ]

comments in ascending chronological order (reverse):

#Comment Re: made: 2014-05-05 14:56:00.111768+00 by: meuon

"Programming is basically figuring out how to phrase your three wishes to an evil genie. "ALL the rows? As you wish, master... mwahahaha!""

Are you looking over my shoulder?

#Comment Re: made: 2014-05-05 15:23:53.741535+00 by: Jack William Bell [edit history]

I am very possibly the most senior programmer where I work. Almost certainly the most senior if you count by lines of code written. As part of that I take my responsibilities to mentoring the junior programmers very seriously.

One of the things I tell them, over and over, is that my code sucks. Their code sucks too. Everyone's code sucks. It sucks because we never have enough time and resources to do it right. It sucks because we do not, can not, know everything about the problem before we start and ALWAYS end up kludging in something we didn't know about when we started. It sucks because we only give lip service to writing tests.

It sucks because we suck at managing complexity; and software is one of the most complex fields of endeavor non-geniuses can take part in. (You still have to be smart, just not Quantum Theory smart.)

Then I tell them that the only way to deal with the suckage is to embrace it. Accept it as the price of entry. Do not try to not suck, focus on mitigation instead.

By this, I mean: If you know your code is going to suck you can do things to reduce the extent and reach of the suckage. You can design systems based on simple and well-known interfaces. You can create an application from a few large-grained objects with limited inter-dependencies. You can take the extra five minutes to write some documentation comments about why you chose a shell sort for your algorithm. You can take dependency injection seriously. You can code defensively when you are not certain the requirements are well thought out.

Sure, programming sucks. And it will continue to suck until such time as the laws change so software companies are liable for their sucky code. (Try suing Microsoft because Word ate two days of work. Yeah, that's the real problem.)