2013-08-25

Don't Waste Programming

One of my coworkers recently created a distributed queueing system. There are about one billion of these already. I see this sort of thing all the time, and it frustrates me to no end, because there’s no point to it.

Yes, yes, I’m familiar with the arguments:

  1. Oh, I didn’t know about any of those. (Then spend thirty seconds researching first.)
  2. I just wanted something that was simple. (Right. Because you’ll never want any of those features, and all of the hard work solving various logical, portability, security, etc. problems is just extra stuff you won’t run into.)
  3. I wanted to learn [trendy language]. (If that language is only suitable for creating things that already exist, why is it worth your time to learn it?)
  4. I thought I should learn how a [type of system] works. (Then buckle down and read some code, because the way it works in your overly-simplified academic excercise is not how people in the real world do it.)

The most irritating part of it all is the wasted potential. As programmers, we can create almost anything we can imagine! And you use that ability to do… nothing of value?

The world we live in is an imperfect one. There are problems, big and small, everywhere you look. Some of those problems can be solved with software - software you can write! If we want to make our world a better place, we need to take advantage of the infinitely cheap reproduction of software and spend our time tackling new things, not rehashing the same old stuff.

Don’t know any problems you can work on? If you’re really desperate, I’ll give you a list of small projects I haven’t had time to complete, but you should really just spend some time talking to people. Everyone’s got stuff in their life that annoys them, and most people are all-too-glad to talk about it. I’d bet Ice-T could give you at least 50 problems well-designed software could help with.

We’ve got an incredible gift. Don’t waste it.