StackOverflow.com opened for business about a month ago. It's dedicated to asking and answering concrete questions about programming. It already has more than 17,000 registered users, who have asked more than 31,000 questions. More than 90% of these questions have at least one useful response.
This is great news for programmers.
You probably know that computers are stupid, as evidenced by the incredible frustration they often cause. Programmers are tasked with training these blazingly fast mechanical morons to do useful tasks, and even the buggiest program probably represents hundreds or thousands of hours of someone's time. Everything your word processor or email program does, every button and graphic, somebody made that happen. And it's not easy.
I recently had to implement printing in a basic graphing application. Going into it, I told several people that I figured it should be pretty straightforward, maybe a day or two of work. I've been doing this for almost ten years, so I figured I ought to be able to sort it out. But unless you're working on a system that's designed around paper (e.g. Microsoft Word), printing is a pain. You have to completely reconsider how to display the data so that it works on the printed page. In the end it took at least a week of work to get a solid implementation. I probably only wrote a few hundred lines of code, which isn't a lot. The problem was that I've never done it before, and neither had any of my coworkers.
One of the most important tools of in any programmer's toolbox is other programmers. What might take hours or days to figure out on your own can often be solved in minutes by someone who has done it before. Certainly it's also satisfying to figure something out yourself, but I'm not always in the mood. Sometimes I just want an answer so that I can go home for the day. Often coworkers fill this role, since they're just an office away. But what if nobody at the company has ever done printing before? Or what if you're working solo?
That's where StackOverflow comes in. With thousands of programmers on call, even the most esoteric question can find an answer in short order. It's often only a matter of minutes before a question gets its first answer. And if the first answer doesn't work, the second one or the third one might. You might even find out that a bunch of other people have already tried what you're doing and they all figured out that it wasn't feasible. It's sure nice to know that before you spend hours and hours trying to do it.
This is great news for all of us, because it means less time banging our heads on the table and more time making software. So far I haven't needed it for anything terribly important, but I sleep better knowing that it's out there.
Labels: programming