This is the 46th episode of the StackOverflow podcast, live from MIX09, where Joel and Jeff answer questions from the live audience.
We had a live audience, so the focus of this podcast is on questions from our live audience.
We answered the following live audience questions on this podcast:
"What's the point of Silverlight?" The short answer is, it's like Adobe Flash, but much more programmer oriented. Silverlight 3 beta was just launched at MIX, with lots of new developer-y goodness.
"What's the most number of questions asked by an actual Stack Overflow user?" That would be Edward Tanguay with 210 questions, closely followed by Thomas Owens who asked 207 questions. One reason the "ask a question" button isn't more prominent on the site is that we encourage people to read and answer a while before asking anything. Good questions take some effort!
"Have you ever considered moving Stack Overflow to the cloud?" The cloud makes more sense for experimental projects that may or may not succeed. We did the math and decided that owning the hardware was a better deal for our project. It could also make sense for hot-standby disaster recovery backup servers. It depends whether or not you prefer flexibility, or fine-grained control.
"What issues did you have with using ASP.NET MVC?" Other than the typical beta issues, not much. The big advantage, to us, is that MVC is a much more web-centric development model. It is a much closer match to our mental model of how web programming should work, and how URLs should be formed.
"What does the new guy do on the first day?" Fix the simplest possible bug in your product. And on the next day, fix a slightly more complex bug. It helps to do this in an environment of active pairing or mentoring.
"Are there some things about the web platform (HTML, CSS, etc) that you wish worked differently?" Sure, the platform barely works. There's something inspiring about so many programmers are building great stuff on such a rickety platform. And it's creating a whole new generation of programmers. There's a certain inexplicable elegance to the madness.
*"We have a lot of relatively unstructured data that we're storing in a database, is there some other way do deal with this? And what about REST vs. SOAP access to it?" * Joel points to Adam Bosworth's classic talk about the flexibility of loosely structured data. Perhaps something like Lucene or CouchDB would be a better choice than a traditional rigid database. And remember that meta-tags, while worthless on the open web, are trustworthy on local data. Sometimes you don't need a perfect 100% right answer back from the data. Joel describes the advantage of REST over SOAP thusly: you can just type stuff into the browser's address bar and see the results in real time.
"Should you teach the framework, or the underlying languages?" Joel points out that maybe students shouldn't be studying programming at all. You can learn a lot about programming through related fields. Joel and I disagree a bit on this one. I think good developers are inherently curious, so they can learn the framework and dip into the lower level language as necessary to solve whatever problem is at hand. Joel says you should start with the language and scale up.
"At what point in Stack Overflow do you see yourselves hiring specialists? How do we justify bringing in experts to management?" We already have, to some degree; we have Jeremy Kratz helping us with design and Brent Ozar helping us with advanced database stuff. You have to know your own limitations, what you're good at and not good at, and how to slice off a small piece of work that's appropriate for the specialist. If you need to sell this to management, try it on a small part of the project first and show what the difference would be on the full project.
Our favorite Stack Overflow qustions this week are:
Why does setting a stack method result in a Stack Overflow? -- this is a classic example of a mind reading answer. The asker wasn't able to establish what their question really was.
Is there a human readable programming language? -- yes, until everyone decided that was a really dumb idea. Its name was COBOL.
- Should a function have only one return statement? -- a classic discussion question. Discussions are valid as long as they're focused. Here, the goal is to avoid writing "arrow" or "pacman" code and to keep the functions as small as possible. It's amazing to us that some developers are still dogmatic about this one. In theory, this is a good rule, but in practice, it isn't. And practice always overrules theory in my book.
If you'd like to submit a question to be answered in our next episode, record an audio file (90 seconds or less) and mail it to firstname.lastname@example.org. You can record a question using nothing but a telephone and a web browser. We also have a dedicated phone number you can call to leave audio questions at 646-826-3879.
The transcript wiki for this episode is available for public editing.