Transcript 006
Atwood: I still can't believe you're using that old picture of you.
Spolsky: There's even a picture of me in Skype?
Atwood: Yeah, there is, it's the old one.
Spolsky: Uh oh
Atwood: It's not the cool, hip new Joel Spolsky; it's the old, mid-90s Joel Spolsky.
Spolsky: [reading off Skype menus items] Personalize, maybe personalize? Change your picture... change your picture... Yeah, that's right. Well, it's not mid-90s. It's the 2000 picture.
Atwood: Sorry, I meant late 90s. I actually rethought that as I said it. That was my guess as well.
Spolsky: Are you one of those guys that knows when all of the pictures of me were taken?
Atwood: No, no, I just think that it's amusing, cause, seeing people in context of the time, you know. There's all these... even in simple pictures there's just basic clothing and hairstyles. There's always something that ties it to a particular era, you know what I mean? It's just weird how we can identify that.
Spolsky: Okay, here we go. Oh, that's so cute. Okay. Now, do you think that it's going to change for you on the fly the minute I change the picture?
Atwood: It did. What the? I can't see what that is. Is that you as a tiny child?
Spolsky: [laughs] Yeah. It really did, it just changed on the fly.
Atwood: People take their pictures very seriously. Oh man.
Spolsky: Now you've got me all obsessing. Alright, I've got to find the perfect picture, I've got to trim it perfectly. You don't even have a picture of yourself!
Atwood: Come on. I've got Ogre from Revenge of the Nerds. That's the best possible picture.
Spolsky: Oh this is actually a good one. Now I'm going to have to crop it and scale it. Alright, let's get on with the purpose of this call.
Atwood: Okay, are we recording right now?
Spolsky: I believe so, yes.
Atwood: Okay. I think we should do introductions. People complain that they can't recognize the voices, like who's who.
Spolsky: Okay, I'm Joel.
Atwood: Yeah, and I'm Jeff. So, there we go.
Spolsky: We don't really need introductions because, unlike a radio show where people have every right to not know what it is they've tuned in to, everybody who is listening to this has gone out and downloaded our show specifically. And they can look at their iPod and it will tell them, "It's the StackOverflow podcast, with your hosts: Jeff and Joel!"
Atwood: Yes, well, I thought that was a valid concern. So I wanted to make sure we at least associate the names with the voices so people know who's who. So: this week is an exciting week because the other programmer that I work with, Jarrod, is actually coming to California for the first time; he'll be staying here-
Spolsky: Oh!
Atwood: Yeah, that's going to be fun, so it's his first time in California-
Spolsky: It's going to be a sleep-over type of situation
Atwood: yeah, it is, well we have an extra room so it's appropriate, won't be a problem, won't be one of those bad sitcoms where hijinks ensue, hopefully, so we'll see.
Spolsky: You know, people "accidentally" going to the wrong bathroom in the middle of the night in their pajamas and accidentally going to the wrong room; that's what always happens in the sitcoms.
[03:15]
Atwood: So, we have a couple of fun geek things planned. On of them is we're going to go to the Computer History Museum. Which is one of my favourite places, it's really really great. One thing I love about California, particular being in the Bay Area, we're only an hour from Silicon Valley, this really is like geek mecca. I mean, if you think about the entirety of computer history, so much of it literally originated in Silicon Valley or the San Francisco Bay area.
Spolsky: But there's nothing to see in any of those places
Atwood: Well, there is in the Computer History museum [...] Have you been?
Spolsky: No
Atwood: They have this visual storage area which has literally every computer - almost - you can imagine, from the oldest mainframes, from ENIAC and like things like that, up until the Commodore64 and all the home systems that were out, so it's like what I call geek pornography - it's great.
Spolsky: It's kinda weird, let's think about what this would be like if you were in a different industry other than the one we're in. Breakfast Cereal: do you think that if you go to that place in Michigan, there's like a breakfast cereal museum and people go there and they have the original box of Special K, they've got the Wheaties with Reggie on it... they have...
Atwood: But if you were into cereal, wouldn't that be totally appropriate and cool?
Spolsky: I would be, but think what it would be like for everyone else who are not into cereal. So that's what it's like with a computer museum.
Atwood: I don't care what those people think, you understand that, right?
Spolsky: Is it just that computeries care more about our industry?
Atwood: There's an association between Aspergers and IT, right?
Spolsky: Yeah, yeah-yeah.
Atwood: There's a certainly level of commitment required that it takes to do this stuff, you have to be pretty intense about it to be even be into it, you don't see a lot of people even casually programming. I mean, you do now more by far than you used to, but if you're talking about the true classic programmer, you're totally devoted to it, right? It's all you think about. It's very typical, verses like Breakfast Cereal.
Spolsky: There's other industries, clearly the fashion industry is like that.
Atwood: Yes.
Spolsky: Where the people are obsessed, they would go to a fashion museum. I mean, they have that in regular museums, they'll often have a fashion exhibit.
Atwood: Do you watch Project Runway, Joel?
Spolsky: No.
Atwood: Okay. My wife watches it. But for reality TV it's pretty good, because they're actually creating things. It's not just...
Spolsky: What are some other industries? Farming, I guess, there's always farm implement museums, that's a pretty common kind of museum.
Atwood: Well sure. I think you can follow the thread of obsession in any profession as far down as you want to go. But I think computers are unique too, because they've had such a profound impact on society, don't you think? I mean, say like the telephone, and tele-
Spolsky: I think people in every industry tell themselves that. Insurance: do you think there's an insurance museum in Hartford?
Atwood: I'm not saying that it's not the most important thing in the world, it's not going to solve world hunger or anything like that-
Spolsky: Insurance sort of did-
Atwood: In terms of mapping, and just fundamental communication, right, computers are big part of that...
Spolsky: Museum Accountancy, Museum of Charted Accountants...
Atwood: But some of the cool stuff, like let me give you an example: I got to see Spacewar! running on the only known functioning PDP-1 in the world, so we're talking about basically the first computer video game - literally - on a vector display and I actually got to play it, it was really really unbelievably cool.
Spolsky: That was basically an oscilloscope, right, the vector display?
Atwood: That's right, that was basically an oscilloscope, essentially customized, it was some accessory for the PDP-1 that they like had painstakingly restored and it was like basically a typewriter printer for the PDP-1. It's amazing stuff, and they have some of the original guys there, I'm talking old guys, that were actually there, like real computer scientists, like hardcore guys that were in The Valley at that time. It's one of the only places in the world you can really see that. It's cool, I'm very excited, and of course we're going to work on the code together. We're going to set aside one day to do basically pair programming.
Spolsky: Rent some time on the PDP-1.
Atwood: On the oscilloscope.
Spolsky: Yeah.
Atwood: So, just in terms of the technology stack we're using. I know I talked about we're using ASP.NET MVC, which both Jarrod and I had to kind of learn. Now the neat thing about MVC is that it maps more directly to the HTTP model, and Joel you've worked with ASP.NET before, so you know I think originally when they set out they tried to hide or abstract away a lot of the HTTP stack from the user and have this model that's very much like Windows forms, you see. Where you have a form designer and you have events that bubble up and, you can just pretend it's not HTML and pretend you're not in a web browser.
Spolsky: Well, that's kind of part of the brilliance of it.
Atwood: Well, I had mixed feelings about it. Reading about it, I was like, "That totally makes sense." Because particularly, and coming from the classic ASP world, you realize there are a lot of problems with the old model. So you look forward to the new model in the sense that this is going to fix--
Spolsky: It saves you a lot of work and brings you up to a higher level of abstraction, actually. But it does have its issues.
Atwood: It's very very leaky. Abstractions are always going to be somewhat leaky. This one's like a sieve -- super leaky. And MVC kind of does away with that because everything is predicated on the URL, being the unit of interacting with the program. Which makes total sense, and you move away from putting a lot of logic in the actual ASPX forms and put them more into classes. So it kind of nudges you into sort of a cleaner, simpler way of working that maps closer to the HTTP model. Which is kind of nice, you can see why people started doing this.
[9:07]
Spolsky: Well, my ASP.NET programs always end up being a gigantic switch statement that switches on the verb that's in the URL somewhere.
Atwood: Yeah, and this ASP.NET MVC and MVC in general takes that and looks at it and says, "That's the central thing we're doing, so let's make that the heart of the program," and abstracts it into its own--
Spolsky: Okay, so, you always have that. And then I have a big old page that has about a bazillion user controls on it and then I make one user control for every kind of interaction I might want to display, and then this big old switch statement looks at the URL and decides which of those controls to light up by making them visible. So I've got this whole bunch of user controls that are all invisible. I only make one visible at a time based on what page the app is supposed to be showing or what piece of functionality it's supposed to be showing.
Atwood: It was interesting to me back in 2005, I was reading about some influential ASP.NET programmers who had, early on, decided that the current "page lifecycle" and the "page model" just wasn't working for them. They had kind of abandoned it, and I thought this was really interesting that you would take this fundamental thing that they had--and Microsoft has a lot of smart people working there, right? I mean, it's a pretty good model.
Spolsky: I don't think--ASP.NET 1.0, I beg to differ. I don't think that was a pretty nice model. I think that was substantially lacking in telling you anything about how you should structure an application that has multiple pages and how they should all be set up. And it was sort of the same was that it was on an individual form in VB. Like in VB, you always had this problem that--and I'm talking the old school VB, Visual Basic 6.0 or 2.0 or whatever--inevitably, you wind up doing something where you had a particular dialog box or form that had very different states that did very different things. So you'd have about 100 controls all superimposed all on top of each other, and at runtime most of them would be invisible. And so you'd have this code that turns on and turns off various controls. But on the form, they'd all be completely overlapping, so you completely lose any ability to edit, visually, what you see.
Atwood: So you can see by replicating that in the web world wasn't exactly considered a big step forward.
Spolsky: It had sort of the same problem, it never really told you what to do. Should you have multiple ASPX pages at the top level? I mean, let's say that you have a list view and a detailed view. Should those be two ASPX pages? And if so, how do they communicate with one another? Or, what I wind up doing is make two user controls and at any given time only one of them is visible. So now I can edit them individually and isolate all of the code, but they all live at default.aspx top level.
Atwood: There's also some of this embracing of the concept of convention over configuration, which is something in the Ruby on Rails world that they sort of, it's part of their ethos. Rather than having a lot of configurations, just have conventions that everyone is expected to follow. Let me give you an example. So in ASP.NET MVC, controllers have to end in the word "Controller," and if you actually go into the source code for the MVC code, it's actually testing explicitly for that string. I mean, it might be localized or, I don't know.
Spolsky: Hopefully not.
Atwood: So yeah, you just have to have that string in there.
Spolsky: Well that always saves you from, in ASP.NET you inevitably spend a lot of time mapping names of things onto other things that are identical, if that makes sense.
Atwood: I think too because the web is a domain-specific model. You can look at Ruby on Rails and ASP.NET MVC and see where people said, "Okay, this is kind of how we expect web apps to work." We've built web apps for how many years now? Since basically '98, '99 for most people. And there's an understanding that this is how most of them work. So we're going to sort of have a standard template that lets you build 90% of the sites out there. So it starts to kind of make sense and come into its own. I think MVC is a good example of that.
Before we go too much further, I just want to talk about the other technology bits. We're using JQuery, one of those ubiquitous JavaScript libraries.
Spolsky: Yep, those are fun.
Atwood: So JQuery is the one Jarrod liked the most and I didn't really have a preference. So that's what we're using. Also for error handling I had a couple posts on error handling on my blog. And when I say error handling, I mean global exception handling. I've always been a big believer in having air bags in your application, almost from day one. There's this really cool project with a horrible name--Elmah, "Error Logging Modules and Handlers"--it's a typical horrible programmer name. But it's neat because it basically gives you an in-memory or on-disk or in-database representation of your errors automatically. So when something happens, you can get email-notified. You know, it's kept track of and things like that. And I was actually curious--what do you do at Fog Creek for stuff like that? Do you have your unhandled exceptions feed into Fogbugz?
Spolsky: Yep, that's what we do. Of course. Of course! What else?!
Atwood: But do you in fact do that? Does it in fact work that way?
Spolsky: Yeah, how else do we fix our bugs?
Atwood: Okay, cool. So say I'm using FogBugz and something terrible happens.
Spolsky: You are actually using FogBugz - on occasion.
Atwood: Yes well... I am, that's true. I haven't had it crash on me is kind of why I'm saying it that way.
[14:37]
Spolsky: That's because we do this. If it did crash on you you'd see a page...
Atwood: Like "whoops"?
Spolsky: ...I mean it just looks like an error page but it says we would like to submit this error to Fog Creek please click here to see what the information is. We do ask the permission before uploading what could potentially be sensitive information. And that's ok because we only need to hear... if here's a crash in there I only really need to hear about it from four percent of my customers. If the other ninety six percent don't want to send it to me doesn't matter cause I still hear about it. And yeah, then there's a button and it submits it and it goes into Fogbugz. It has a simple HTTP interface that you can use to upload bugs and the interesting thing is that its no big deal. Well actually it is a big deal. If the same crash happens twice you don't want two bugs, you want them to be merged into one bug.
Atwood: Yes, that is annoying.
Spolsky: So you have to come up with a scheme. The ideal scheme is just to say filename and the line where the crash occurred and just use that as a unique identifier and you tell Fogbugz I would like to uniquely identify this crash as "file.c line 26" and then any further crashes that occur on that same line of code would be appended to that bug report instead of opening a new bug. So...
Atwood: One thing that I read about was that you can take a hash value of the stack trace but I'm wondering if that would be...
Spolsky: Overkill. All you need to do... Now sometimes you get this problem which is that - you can have to put one there and see what crashes you get - sometimes you get this problem that there is some other crash handling code in the world and so the actual crash is thrown from some crash handling code somewhere. Or you get an awful lot of crashes that comes from inside some string library function or something like that. You know, like, well it depends who's calling the string library function, those may be different cases, and then you may actually care about the call stack. But in my user experience programming just saving the file and the line where the exception occurred finds pretty much isolates almost all the things necessary. If you have a call stack it's useful.
And remember I'm not talking about like what information do you need to repro the crash and fix it, i'm just talking about how do you decide whether two crashes are really the same bug or a different bug for the purpose of letting Fogbugz decide whether to overlay them or not on each other 'cause otherwise it's just irritating.
[17:20]
Atwood: I always felt that this was hugely powerful, and in one of my previous jobs i was spearheading the effort to add this, because i felt like a) if you don't know when you're crashing, you're really failing the users like on a really fundamental level. It's not their job to let you know about problems in your software. So that's a problem, just professionally to me. It's a question of, sort of, almost like ethics at that point.
Spolsky: Well it depends on the kinds of users, but yeah...
Atwood: Once you actually know what the exceptions are you can really prioritise and say "OK, look we have this problem that happens a lot. So even if this is a really painful problem to fix, if we can fix this we can... you know... 50% of our support calls just go away". Having that kind of data and power on your project is unbelievable and it always surprised me that people would not understand that and not somehow get that in place on their project.
Spolsky: Yeah and in fact for a lot of kinds of applications... you know, like, if you write a Windows application today you can just let Microsoft catch it for you and then there is something you can enroll in and you can get the data on their database... off the Microsoft database of what crash occurred. And the other step, which you may have left out, which is that once a crash has happened if that... if in Fogbugz you have indicated its been fixed in a later version of the software then you can tell the user "oh, just upgrade to this version and you wont have that crash anymore".
Atwood: Oh, nice. That's a cool feature.
Spolsky: And that will also eliminate that whole range of tech support calls.
Atwood: Yeah... I like talking about this topic because I think it's like really fundamental and important and for some reason I think a lot of teams miss out on this...
Spolsky: Well..
Atwood: ...and I don't know why.
Spolsky: ...life is too boring when everything works perfectly and nobody ever sees any crashes.
Atwood: [laughs] I like to work under the assumption that I'm going to screw up, right? And then that's the first thing I'm going to deal is having that in place.
Spolsky: Maybe it's like people who don't want to go to the doctor because they don't know what they're going to be diagnosed with. So they just don't go.
Atwood: That's true. It can be painful to kinda deal with this stuff so maybe it is a form of avoiding reality. So one, slightly related topic, so last week... I know we keep saying we only have 6 listeners - we have to stop saying that.
Spolsky: I... Yeah, because, well we got 6 emails... [laughs] Yeah we did, we got about 50 emails or something this week.
Atwood: Yes - a lot of emails. So thank you very much for all the emails and I just want to let people know I have about 58 private beta sign-ups so far. So if you still want to participate in the private beta...
Spolsky: How do they...? They email you?
Atwood: Yes, they can email me, it's fine. It's very easy I just add them to the list. Notepad Technology TM so it's very easy.
Spolsky: Notepad {garbled} What would be the email address that they would use if they wanted to get on the beta?
Atwood: Well they can just email me directly.
Spolsky: At...?
Atwood: Well I'm assuming if they're smart enough to get into the beta they're smart enough to work out one of my email addresses.
Spolsky: Oh, I see. It's sorta like a little IQ test.
Atwood: [laughs]
[20:20]
Spolsky: What you should do is -- where was I reading about this today? You should send them each an email saying, "Hey, I'll give you $50 to get off the beta test."
Atwood: Oh right, that Zappo's thing. That's what you're referring to, isn't it?
Spolsky: Yes. Yeah.
Atwood: At Zappo's--after training--they have a 4-week training period. At the end of that period, they'll offer you $1,000 to not work at Zappo's.
Spolsky: [laughing] to not work for them.
Atwood: Which is very cool...it's kind of like in the airline industry--oh God, I think it was Julian Hirsch [ed. note, Wikipedia says it was Julian Simon]--actually came up with the idea of paying people not to fly. Like, basically, you know, say the flight's overbooked or whatever. This was a radical idea back in the day. Um, and still pretty radical, right? I mean, to pay someone not to work somewhere after four weeks of time investment in them.
Spolsky: That's radical. Paying people not to fly is just a matter of, like, you know, I can sell somebody a last minute ticket for $1,000 and then bribe somebody who is already on the plane $400 to get off the plane and I've made a $600 profit.
Atwood: Well, they're actually overbooked, though, at that point, right? I mean, they sold too many, 'cause a certain percentage of people drop out, so...
Spolsky: Well, the real reason is they want to keep selling tickets at a very, very high price after the plane is allegedly full. It's not because people are going to drop out, necessarily. I mean, there are going to be a couple of people who drop out, but more important is that they can always pay somebody to get off the plane and make a higher profit by taking that person and putting them on another plane that has extra seats anyway, and was going to fly there anyway.
Atwood: That seems awfully, uh...
Spolsky: It's just making a profit.
Atwood: Yeah. Well, OK. It's probably both of those things. But still, it's a pretty cool technique. Somebody linked that actually on Twitter, your favorite service. That's how I found out about that article.
[21:50]
Spolsky: I really like Twitter, you know what I like? Twittering!
Atwood: [laughs] I know, so if people don't know, I've been actually, I sent Joel a few emails from - Hey your buddy Rands (Michael Lopp) actually is a big Twitter fan as well.
Spolsky: I am, I am a convert to the church of Twitter. I've been posting all my news. I've got thousands of followers on Twitterer-hologryphic [sic] And, um, I've been following all my favourite celebrities. Um, Leo Laporte, Kevin Rose (swoon). Um, so I know where they are and when they're sending messages to Scable -- Scoble.
Atwood: Ah yes, Scable.
Spolsky: [laughs] Scrabble.
Atwood: I apologize, I don't mean to be a fan-boy, it's just, I don't know why but Twitter I find very, very useful. It's really strange. And it's kind of like..
Spolsky: No, no, no. It's fine for you to find it useful, what's weird is: why are you so evangelical about it?
Atwood: -- why do I have a --
Spolsky: -- and that leads us back to the principle of cognitive dissonance. Which is; you have no other explanation for why you're doing something. You just cannot figure out why you're wasting time doing this miserable thing that makes you unhappy. It must be because it's great!
Atwood: But it actually makes me happy; like I feel like I have all this community - I meet all these new people. And you know, as a programmer you know I work from home now right. I don't like get out into the World too much.
Spolsky: Maybe that's the problem. Maybe I'm like an introvert and I'm sick of people and I want them to go away. [laughs] I'm always trying to figure out how to hear less news of other people and spend less time talking to people.
Atwood: Yes, yes, yes, but getting back to the original point you brought up was why would you be so evangelical. You realize I have a blog right, the whole evangelical nature of blogging is a really key factor in whether someone likes it or not. Cause there's a lot of people at my previous job -- I would always tell people "hey blogging has worked really well for me". You know, it's like "baseball has been bery bery good to me," right? Like the classic SNL skit [...] that's not my personality. I'm not the kind of guy or gal that's going to go out there and tell people this is what you should do, this is awesome. That's just not me.
Spolsky: Yeah.
Atwood: And if that's not part of your DNA, it is difficult but it also makes me inclined to talk about things like everybody else should do them, right? [laughs] I like this thing so much you should do it too and I always kind of grabbed people and shake them until they'd do it, right? So I apologize, I don't mean to be like that. But it really works for me, so take it at face value.
Spolsky: OK. What do you think about Twitter by the way?
Atwood: [laughs] I've heard of this Twitter thing. It's actually down right now which is ironic.
Spolsky: [laughs] Oh no wonder we're getting so much work done today! OK, question: I have to give the keynote to the Rails Conference; what should I talk about? I think I may have asked you this before.
[24:30]
Atwood: Er, gosh.
Spolsky: They have the Ruby On Rails conference in Portland next week
Atwood: The typical Joel thing, you have to tell them how much they suck. Open with that.
Spolsky: "God, this place is a ghetto"
Atwood: -- what idiots they are for choosing that particular technology, because that's what people at a rails conference really want to hear. That always amused me, you gave the keynote at a Java conference, and I think the title was "Java is the new COBOL".
[24:56]
Spolsky: What? Wait a minute! No, this is not me.
Atwood: That wasn't you?
Spolsky: You're totally making this up.
Atwood: No, no, no, no.
Spolsky: You're totally making this up. First of all, what Java conference?
Atwood: I--maybe I'm misremembering, but I swore...
Spolsky: Yeah, I don't remember any kind of conference, any kind of Java conference.
Atwood: Ok. Maybe I just made that up.
Spolsky: It was funny, but-- No, I wouldn't say that. Java is the next COBOL.
Atwood: Yes. I believe that.
Spolsky: It's the third COBOL after Visual Basic 6, in which I was uniquely involved, so--
Atwood: Yeah. It could be viewed as a derogatory statement, but actually I think it's a compliment, because really, would you rather be programming in COBOL or Java? Is that really even a question?
Spolsky: Yeah.
Atwood: [laughing] Certainly you'd rather be programming in Java than COBOL, if you had an actual choice. So this is actually progress.
Spolsky: [laughing] I'm thinking, wait on, I'm not really sure yet! Whether I'd rather just quit the whole industry and go back into the cereal business.
Atwood: Really. So are you really that anti-Java? Because you know who I met, I met the Gmail guy, Paul--oh gosh, I know I always say this, I'm going to mispronounce his last name--but he's the guy who coined the term--
Spolsky: Just say it.
Atwood: --do not be evil. Or you know, don't be evil. And also he was the original Gmail guy, he was the guy behind Friendfeed. Paul is his name, I can't remember his last name. But I met him, and we actually talked a little bit about the Java thing, because he's very pro-Java, and he was actually very disappointed that a lot of developers--it's very much a knee-jerk reaction--are like "Oh! Java, what a joke!" you know? [laughs] And that's kind of unfair to the people that do Java and kind of unfair to the language. I can see where he's coming from, I mean on the one hand I will say stuff like Java is the new COBOL, I mean it actually as a compliment, because I think COBOL is old and terrible.
Spolsky: Yeah.
Atwood: But what do you think about that, I mean do you think that's fair, to just dismiss it like that?
Spolsky: Um, well, in what ways is Java COBOL? It's the de facto choice now for enterprise software development. It's the de facto choice for large teams of programmers that are not the real enthusiasts, but are just kind of career programmers, which means that--you know, not that there's anything wrong with that, but--it winds up being the choice of those grumpy people in the IT department that are adding another line to some insurance-based application or something. So it's filling that particular role, what they call the line-of-business applications, and in that way it's very much like COBOL. It doesn't require you to write in all capital letters. So in that way it's different from COBOL. Wait, I want to--let's get to some of our questions here.
Atwood: I know we have a lot of questions, because we got good questions this week.
Spolsky: There was something--what were we talking about? You were proceeding to not give me an answer to what to talk about at the rails conference.
[28:07]
Atwood: That's tough, it's so open ended. I'm sure that whatever you come up with will be good and entertaining. My theory of presentations - some people really don't like this - is that they are really more about entertainment first and information second.
Spolsky: Nah, ya think?
Atwood: Yeah, well a lot of people really disagree with that. I think it's the left-brain programmers that go "no, you have to go with the information first"
Spolsky: What was the question? Let's just take one of these questions.
Atwood: Okay.
Spolsky: I feel that there's something we're not coming back to. Oh: number of listeners, you had mentioned that we're using a lot of bandwidth.
[28:50]
Atwood: Oh, yeah, that's true.
Spolsky: But I didn't get--the email was sort of like there was missing... some information. Are we using too much bandwidth? Is that an issue?
Atwood: Well, I think once you start podcasting, you're in a different category of bandwidth automatically. Unless nobody listens to your podcast at all. And as much as you joke about it, people actually do listen to our podcast. I mean significant numbers of people. So we either move to Amazon S3--which I can do, which is 17 cents a gigabyte, I think, which would end up being like 100 dollars a month--
Spolsky: Is that cheaper than what a content distribution network would charge?
Atwood: I don't know. Podcast bandwidth is hard to figure out. So if you have access--you had mentioned something about ITConversations, and--whatever our options are, we should probably pursue them, because we're going to outgrow our current host pretty fast.
Spolsky: Well, what I was thinking is I would ask Doug K., and I haven't asked him this, but maybe he'll say yes, that we could be one of the podcasts on ITConversations, since it's sort of very closely aligned to the kind of content that he's trying to generate there. And I don't know what that would mean, whether we have to--I'm not even sure how that's supported, or what the business model is there... [typing] ITConversations.com. But you know they have all kinds of shows.
Atwood: Yeah, no I've been there before. It's a cool site. So yeah, maybe follow up with him, and see what he says.
Spolsky: Why does it say--is Doug K. not involved in ITConversations anymore?
Atwood: I don't know.
Spolsky: Now I'm confused.
Atwood: Well, research it and come back to it.
Spolsky: The Conversations Network. What's the connection between the Conversations Network and ITConversations?
Atwood: I haven't been there in a while. So I'm not sure.
Spolsky: Oh, I see, the Conversations Network is a superset of ITConversations. Oh yeah, look at this, they got '08 conversations, media conversations, social innovation conversations, breakfast cereal conversations... ok, we're all set here. Yeah, I don't quite know how it works, but it seems like it might be a way to get bandwidth in exchange for something; I'm not really sure what we would have to do.
Atwood: I should also email my provider and see if we can just buy a larger block of bandwidth, that might be nice as well. So I'll research that on my end, we'll make a note to do that. But let's get to the questions, 'cause I know we probably have a couple, 'cause we were--
[31:10]
Spolsky: OK, well what I did was I ch... Oops, you still there?
Atwood: Yep.
Spolsky: Something weird happened with my computer. Alright, let's just play a question here and I've got some good hard ones.
Warren Henning: Hello Jeff and Joel. My question is about the schedule for launching StackOverflow. Maybe I missed something and I don't fully understand what StackOverflow is going to be but it just seems to me that it's basically like a database of [...] things you can have problems with in programming that can be confusing...
Spolsky: Yes.
Warren Henning: ...or something. So why not just use something very simple and off the shelf for that like a wiki or something. In which case you could launch very soon - like, within a few days - and run a very you know like a cheap share-hosting account or something...
Spolsky: Etc, etc. That's from Warren Henning. Good question! Jeff?
Atwood: So my immediate answer is, well let's consider something like the iPod. The iPod is really just a hard-drive, an LCD and like some sort of spinner wheel or buttons. So if you break anything down yes it's simple - right? Just throw those things together and you have a product. But, for me it's about the details, right? And writing it is part of one of those details, like having this very low-level element of control over everything that happens on the site is such a better experience than just picking some off-the-shelf thing and just throwing it on the web. Plus it's a point of differentiation at that point. I mean anybody can get a copy of MediaWiki and say "oh cool, look it's my new programmer site," right? And some MediaWiki-generic thing.
Spolsky: Well no, anyway to get people to go there, we have some kind of audience we could encourage to go there.
Atwood: That's true, but I believe very strongly...
Spolsky: I don't really think. I mean how much seriously of the code you that you can write in "six to eight weeks," - which is now five to seven weeks - how much real differentiation can you provide?
Atwood: I think actually quite a bit because what we're talking about is basically a hybrid of Reddit/Digg plus Wikipedia.
Spolsky: OK, but someone else can look at that and they can do that same thing in five to seven weeks, only it would be for them it would only be four to six weeks 'cause they wouldn't have to do any design work.
Atwood: Well again let's just go back to the iPod, right? Anybody could have created the iPod, there's the magical synergy of you know iTunes - right - first of all. The details they got right on the iPod and I'm not saying we're going to be as awesome as the iPod, I'm not saying that at all. What I'm really saying is if you break down the materials using the iPod it seems like a very mundane "anybody could have done this" kind of thing. But if you look at it in the bigger holistic picture only Apple could really have done that because they took the time to say we're going to get every detail of this little thing as right as we can. And that's very much the attitude I have towards a lot of the things that I'm doing. I'm not saying I have success at all of them by any means. But I really believe in getting all these little details right and the other purpose of the private beta is to get some of the edges off, make sure that we're actually doing something that works. The other fear I have is if we throw it out there and it kind of isn't that good, people will immediately write it off. So hopefully that part will be private and we can actually improve it to the point that it's actually worthwhile before throwing it over the wall. So that's my feeling on that one.
Spolsky: OK, well I'll take that as a... a no. [laughs] There's another slightly related question which I might as well play here since it's related.
[34:33]
Andrew Hay: Hey guys, this is Andrew Hay from Portland, Oregon. I heard Jeff mention that he rolled his own authentication system for the site. I understand he's using the ASP.NET MVC stack and trying to limit the dependencies. But I wonder about the cost of even spending a little bit of time reinventing something that's already in the box. If you're using ASP.NET for a brand new app and you need things like accounts, roles, password resets, account auto-locking, password complexity enforcement, etcetera it seems like the cost of rolling your own is a little too high, not to mention the chance of getting it wrong. I think you could better apply the time on the real application instead of rewriting plumbing code. What do you think?
Spolsky: Well, I'll answer that one: I totally agree with you Andrew, that's a great point that you've just made.
[35:22]
Atwood: It's like a lot of my {garbled} stuff, okay? You're getting a lot, and 80% of that you might not need, okay?
Spolsky: That all sounded like good stuff, all that lock-out password, I forgot my password, password complexity enforcement, umm....
Atwood: My attitude - and I don't do this in all cases, right, we are using ASP.MVC we're using also nlog - we're not going to write our own logging framework - but my view is logging in is not something that I want to outsource, that's a fundamental part of the product. And the other thing about StackOverflow is that guests - in other words, people who haven't logged in - are going to have a first-class experience on our site, so being able to log in is not, you know, ness--
Spolsky: Well, that doesn't conflict with the way that ASP.NET authentication works. You can have logged-on and logged-off people and actually with ASP.NET authentication, you know, it just gives you this little object you can look at to find out whether or not the user is logged on and if so who are they and that's all you need to know and your code can say "hmm, if they're logged on then I do this and if they're not logged on then I do that." It's actually pretty slick. I'm a big fan.
Atwood: I am not a big fan, having worked with it before. I found it very clunky and it had a lot of things that I really didn't like the way it worked.
Spolsky: What about- somebody emailed us, this wasn't an audio question, but what about OpenID? Can we support OpenID as an authentication method?
[36:53]
Atwood: I would like to support OpenID. That's on our Research / to-do list. I definitely would like
Spolsky: That's in your head, right? [Laughs] Sorry. Your hypothetical to-do list.
Atwood: Yes.
Spolsky: I'm opening a bug in FogBugz. It can be the only bug in FogBugz. It says "Implement OpenID".
Atwood: I'm definitely a fan of OpenID, but just to come back around to the question that was originally asked about reinvention of the wheel: I think that some reinvention of the wheel is actually good. It's obviously open for debate, like everything else, but I think you pick your fights, and I'm not reinventing everything, but I feel very strongly that login is so important. I mean, in terms of getting people to actually come to your site and actually create an account: I want it to be as frictionless as possible, which means I probably don't want off-the-shelf functionality the way Microsoft intended it for every IT shop in the world to work. I just have strong feelings about that particular one, which is why--
Spolsky: Okay, in general my philosophy has been to use off-the-shelf stuff for everything except for your core differentiator, the way you're going to differentiate your app from other people's apps. I think you may be underestimating, I personally think the ASP.NET login functionality is pretty nice and thoughtful in the sense that it really lets you do things any way you want, it doesn't impose any particular user interface or anything like that unless you want it, but whatever, it's totally up to you how you want to do that. Here's a question from Martin Wallace:
Andrew Hay: Hey guys, this is Andrew Hay from Portland, Oregon.
Spolsky: No, no, that's the wrong one. Martin:
[38:31]
Martin Wallace: Martin Wallace in the UK here. I've been following the StackOverflow podcasts and enjoying them thoroughly. It's fantastic to hear the thoughts that go into the development of a software project, and I want to thank you both for letting us do that. Jeff has long been an advocate of open source software in his blog and I applaud his recent decision to donate a not insignificant sum to a worthy project. My question is: will you be making the ultimate donation, and open sourcing the code that StackOverflow runs on? Thank you.
Atwood: So, what he's talking about is, when I originally started taking on advertising, 'cause for a long time my blog was something I did, it wasn't really a business initiative in any way. It was just an outlet for me professionally. So once it started to generate a significant amount of money that really surprised me, I was very conflicted. And one way I wanted to deal with that confliction was to actually donate some of that back to the community. I felt like, one thing that made my blog so successful, wasn't just me, and I know you're down on the whole community thing, or the comments thing-
Spolsky: What?
Atwood: No no no, comments, right? I meant to say comments. You don't don't like comments following your "not a blog" blog entries. But I did, and I felt like the community, the comments from the community were so important to my success. And I wanted to give back.
Spolsky: The only comments I get is these people second-guessing every single decision you make, as to which piece of code do you use for your authentication technology, and "why not just use some open, off-the-shelf back engine," you know? The community is just a bunch of second-guessers, who wants to hear from them?
Atwood: Yeah. But no, I think it's very important to get that kind of feedback.
Spolsky: So you gave some money to a Richard Stallman's organization for GNU...
Atwood: No no no. I gave money to a specific .NET project. My feeling was, it was a $5000 donation to a .NET open source project. 'Cause I feel open source is really under represented.
Spolsky: What was the project?
Atwood: ScrewTurn Wiki. Which is like a really lightweight .NET wiki.
Spolsky: And does their wiki support like voting, and authenti--
Atwood: No, I don't think so. I think it's very much a traditional wiki. You know, like Wikipedia style wiki.
Spolsky: Can ya fork it?
Atwood: [laughs]
Spolsky: Never mind.
Atwood: I suppose you could.
Spolsky: These questions all sort of come back on one another. So what do you think? StackOverflow, open source?
Atwood: I'm torn, because again StackOverflow is very much a commercial venture. Which I guess you could say about ScrewTurn Wiki as well. ScrewTurn Wiki is also commercial. I mean ultimately he wants to get paid for the work he's doing. And I guess I just don't know enough about the repercussions of it to make that decision. I'm not against it by any means. I mean I'm very much pro - as the caller said, Martin said, I'm very much pro open source. And I think I'm just a little nervous, having taken on this project.
Spolsky: But what if somebody cooler than us took that code, and even took, you know, I think we already talked about Creative Commons-ing some of the contributions. So they take the code that we developed, at great expense I'd like to point out - at least six to eight weeks, if not five to seven - and then took all that code and stuff like that, and made another site somewhere that was a better than Stackoverflow. Or it could be called StackDoubleOverflow. It would all be written in English as a second language. And, uh, it would be extremely popular with, say Eastern Europe for example.
Atwood: Right. So that's forking, right? And I have a blog entry about that as well. So the risk was forking is that--
Spolsky: Yeah.
Atwood: First of all you have to have the audience. I mean, you *have* to have enough ..
Spolsky: Well, but they will suck away some the audience that might have come to us, thus reducing the network effect, and thus reducing the value to the entire community.
Atwood: But how would they actually do that? They're just a crappy copy of what we did. And they don't have out audience, they don't have the number of people participating. They would probably never get critical mass. I mean, forking is very much like an evolutionary process, and just like in evolution, most parts of that tree die off. Right? Very few survive.
Spolsky: Why do they want our friggin' code in the first place?
Atwood: Well the reason to open source and expose the code is, you might actually get some really cool patches contributed by people. People who feel strongly about a particular feature that we don't have time to implement.
Spolsky: Didn't Slashdot, Slashdot was open source. And didn't people just keep contributing patches, and they just ignored them, and they were just like "Yeah. Whatever. It works. Leave me alone."
Atwood: Well, right. It's a dictatorship. The tone of any open source project is set by the people who run it. They very much set the terms of the debate. Just because it's open source doesn't mean that, in an evolutionary sense, anything will actually happen with that fork you've created. It's very difficult to get those off the ground. More difficult than you would think. You would think, oh, there's gonna be hundreds of vaguely, slightly incompatible versions, everyone's going to be confused, and, y'know, the whole world will explode. But in practice that's not actually what happens.
Spolsky: I don't think the world actually has a need for more than one, or at most two StackOverflows.
Atwood: Well, now you're getting back into a question you asked/answered in podcast one or two, right? Like, how many copies of Experts Exchange do we really need?
Spolsky: How many computers does the world need?
Atwood: Just one. And it's gonna be called Google.
Spolsky: Uh-oh.
Atwood: I'm just kidding.
Spolsky: Oh, I was just talking about the Google mega-computer hive taking over the world and being Skynet, and achieving...
Atwood: Pretty much. We'll just have dumb terminals, and Google Apps, and Google searches, and everything will be hosted by Google. It's like, the Walmart of the Internet, right? I'm kidding. I like Google. I'm totally joking. I don't think that's gonna happen. That would be scary.
Spolsky: You have to be careful. Because as soon as they don't like you...
Atwood: Speaking of which, we should talk about that. There might have been an audio question for this, but Google introduced their own documentation wiki.
Spolsky: Oh yeah. Wasn't there a question about that? No. Yeah there was a question about that, but I didn't uh...
Atwood: Since we're on the topic, I mean, I don't think...
Spolsky: What's it called, Doctype?
Atwood: Google DocType. Thank you.
[44:36]
Spolsky: But that's not really a Q&A site, is it? Isn't that just like sort of a documentation wiki about HTML?
Atwood: It's a documentation wiki. I do not think it overlaps at all with what we're doing so we can really quickly answer that question.
Spolsky: Indeed Google did have Google Questions or Google Answers or whatever it was called.
Atwood: And they canceled it.
Spolsky: And they shut it down, which is, yeah, really weird.
Atwood: And the guy...
Spolsky: Not an awful lot of things got shut down at Google.
Atwood: The guy behind Google Blogoscoped, Philipp Lenssen, great great blogger, was actually a huge Google Answers, he participated heavily in that. I think he was really disappointed and he's a smart guy. So I don't know, it's weird, you kinda wonder why they canceled that. That seemed to really work. I still actually get hits on Google Answers sometimes when I'm searching for stuff.
Spolsky: That was kind of, I mean, the trouble with any big company is that they just can't pay attention to some of these littler things that aren't really going anywhere.
Atwood: [grunts agreement]
Spolsky: And uh, something that might be a fabulous business for a small company just does not deserve even one millionth of a second of Larry, Sergey, and Eric's collective brain cycles. So these things in large companies tend to languish. That's really the same problem at Microsoft. So many little, little businesses inside Microsoft that would be fabulous stand-alone companies, humongous stand-alone companies that would be great to invest in and would probably do a lot better than they would outside of Microsoft if they just had some kind of, somebody paying attention to them.
Atwood: Why don't more large companies spin off little divisions of themselves? Why isn't that a more common pattern? Because I totally agree with you. [interjection] Go ahead…
[46:07]
Spolsky: They’re megalomaniacs. They just want to be the biggest possible company they can possibly be with everything and control everything and be everything to everybody. Nobody ever wants to spin off little companies.
Atwood: Bummer.
Spolsky: They want to take over big companies. You know, General Electric for years just had this idea of either being number one – in every business they were in they wanted to either be number one, or number two, or sell the business, or close it down. That was sort of their list of choices.
Atwood: I see.
Spolsky: And I think if you took something like that and went to Microsoft. If you bought Microsoft, took over there, kick out monkey boy, and applied that particular set of rules… alright, Windows? Number one, fine. Office? Number one, keep that around. MSN? Number two, you guys have got two years to become number one, or you’re getting spun off, or kicked out, or sold to the public. To me, that sort of makes sense. And then what you do, is you take all this extra money that Microsoft has, and you use it either to pay a big ol’ dividend to the shareholders to compensate them for the years and years that they held the damn stock, or just start your own venture capital fund that just invests in a bunch of little businesses that are going to be standalone businesses that are going to go into all these different little areas that Microsoft wants to go into.
Atwood: I mean, because that was always one of my key recommendations. I mean, you and I have both been long time Microsoft watchers. And I think it’s one of the things that you arrive at almost all the time, is they really should be spinning off little subdivisions to do a better job at these individual things, because they’d have more autonomy, they’d have more focus, more conviction. And it just never happens. And I was just, it’d be interesting to hear why you think that never happens.
Spolsky: Yeah, it’s just, I have no idea. It’s just like this desire to be in charge of a gigantic big company - I guess. I mean there must be a belief that there are synergies, somehow.
Atwood: Synergy. Synergy. [chuckles]
Spolsky: Yeah, I mean, that word has sort of been bandied about. But synergy, there are also negative synergies. In the case of Microsoft they call it “strategy tax”. Where like, the Internet Explorer team is not allowed to fix the DHTML editor, because it might compete with Word. So they’re forced to make that continue to be bad.
Atwood: Oh right, to reduce internal competition. But I think there should be maximum internal competition.
Spolsky: Yeah, and the only way to really cause that to happen... well you wouldn’t if you were protecting a legacy business. [chuckle] You wouldn’t think there should be maximal internal competition. You’re trying to protect a monopoly at all costs, and extract the maximum number of dollars out of it as possible. You might actually believe that somebody else might come up with competition but so far they haven’t so why should we hurry that process along. Anyway, some other examples of strategy tax. Classic example is that when they bought OneNote, which was actually considered one of the nicer things that came out of Windows the tablet edition of Windows. And it was an outside company that they purchased and they purchased the product, and from all accounts, that whole team then spent an entire year re-working the user interface to be 100% Office compatible, so that the toolbars looked the same, and the menus worked the same, and there are all these sort of integration points, and really just kind of mucking around with an already-working application to make it look more like a part of the Office family. And you can sort of see the value there, on the other hand, an external company would never have done that. So there was all that cost, there was all that time that was spent on that. And that’s the so-called corporate strategy tax that you pay at Microsoft. And it’s a negative synergy. It’s a reason why a business is going to be less successful inside of Microsoft than outside.
Atwood: Right.
Spolsky: Some other examples. There are things that are so far down on the list. When you go to the Microsoft Office website, there’s that list of all the programs that are part of Office, and there’s 27 different SKUs you could buy, and each of them have a different set of programs. And it starts out with things that you’ve heard of like Word and Excel and PowerPoint. And then as you get down the list you’re getting into these like Info… Pass, Note… gami, Groove things, expressions, I don’t know what those are. But they’re these little tiny little apps, all of which are just being crushed by their membership in the Microsoft empire. Whatever happened to FrontPage? They renamed it, and relaunched it. What the heck is the new…
Atwood: I think right now, the Expression Web is replacing it. Like Expression is their new Adobe-style stuff. They have a vector designer, they have a paint program, that they bought from…
Spolsky: They do?
Atwood: Yeah, Expression. The Expression series.
Spolsky: Does anybody use that?
Atwood: I think it’s getting pretty much mauled in the market because Adobe is just so strong and powerful. But they’re actually not bad little apps. I mean they actually bought them. I can’t remember the name of the company they bought them from. But they’re pretty clever, they have a neat UI.
Spolsky: Look at this… Expression Web… new era, new… beautiful inside and out… passionate about standards… Expression Studio, Expression Blend, Expression Design, Expression Media, Expression Encoder. Wow, I am so behind. I have never heard of any of these things.
Atwood: Well if you did anything with Silverlight of WPF, those are the design tools that you use to layout like vector-based layout, and some other… the XML language that they use to layout, I can’t remember the name of it off the top of my head.
Spolsky: Don’t you think these things would have a better chance if they were their own company? And there was somebody trying to get press for these things all the time?
Atwood: Oh, totally.
Spolsky: Instead of just been the fourteenth thing that you have to remember all about the businesses that Microsoft is in.
Atwood: Well, I totally agree. And that’s why I came back to the questions. One of the most obvious things you come up with looking at Microsoft - or any really large company - is they really need to spin off, and if not spin off then give these little divisions huge levels of autonomy.
Spolsky: Yes, more like Xbox style.
Atwood: Yeah, Xbox. That’s the classic example that people point to. Xbox does whatever they want, and that’s made them really successful, or at least moderately successful, so why not?
Spolsky: Or something, we don’t know - because they don’t break it out. Alright, here’s a question…
Daniel Thompson: Hi Jeff and Joel, this is Dan from Birmingham, England. I wanted to ask, what do you guys think will or should be in the next version of Windows, and will it really be worth spending a couple of hundred dollars to upgrade?
Spolsky: Next version of Windows. Should we get that? Should be upgrade? What’s going to be in it?
Atwood: Well, since you think that Apple has been so successful... one thing I don’t understand is I think Apple gets a free pass on a lot of stuff. Like, is there really that many great features in OS X 10.5 versus 10.4?
Spolsky: Yes.
Atwood: Is that worth $100?
Spolsky: Spaces. Yes, that Spaces feature. Well, because I use it. And I would like…
Atwood: So it has to be a feature that you use.
Spolsky: Well for me, yes. For other people, it might be something different. But you know what, there are so many like… Spaces is an example of these kinds of low-hanging fruit, things that are really kind of easy. And I think one of the problems that they got into with Vista and the original Longhorn vision is that they tried to do several really, really hard things at the same time, like a whole new API, there was WPF and then there were all the new file system things that never happened - the object-oriented file system, which is the same Cairo idiocy that they’ve been failing to ship since 1988 or something. And there were just all these sort of big grandiose changes, all of which were kind of architectural and not really end-user features. And one of the things that I think Leopard shows, where they just have a good backup program, they got this little Spaces thing. Just be giving people a few simple little easy-to-use and yet useful things, you don’t need to make big grand architectural statements or changes to give people a reason to upgrade.
Atwood: Well, think about… has UNIX really changed that much, as an operating system?
Spolsky: Nobody uses UNIX. That’s not relevant. Nobody uses UNIX.
Atwood: But the underlying operating system is UNIX. You’re saying reinvent some key part of it like the file system. UNIX would never even try that. I mean, have they really ever even done that?
Spolsky: Yeah, yeah, there’s new file systems in UNIX all the time. There’s ZFS and EFS, and yeah, sure…
Atwood: But they’re just new plug-ins, they’re not some grand new vision of how files will be stored.
Spolsky: I don’t know, ZFS is kind of a grand new vision of how files will be stored.
Atwood: Okay, well I was just trying to contrast that with the whole Cairo vision.
Spolsky: Oh.
Atwood: Which I agree is crazy.
Spolsky: Well, no Cairo is just a bunch of weird object-oriented architecture astronauts from decades that are just constitutionally unable to produce anything that ships because that’s just who they are. [chuckle] I don’t want to go too far into that. But they’re just sort of… you know, it’s a grand vision that’s not that far off from the BeOS vision, of how the operating system works. It’s all kind of Smalltalky, in the idea that everything is in an object, and all you’re doing is… and it all kind of makes sense to an architecture astronaut, but they’re never actually able to implement it in a way that actually makes sense to anybody. And yet, what has actually sold upgrades of OS X has been little clever features that you can actually kind of use and that you actually might want. And I don’t know what these would be for Windows but I would sure love something like Spaces, some way to have multiple desktops. Or even just a way where I can say that these seven windows are my development windows and I want to keep those all together, and like minimise and maximise them as a group so that I don’t have to keep relaunching the four different apps that I use for software development when I want to go do some other kind of project that uses maybe a bunch of Excel spreadsheets and a Word document.
Atwood: Let me drill down to something you’re saying there, because I think you’re right. Vista actually has a lot of new features. Please say “oh, Vista doesn’t have anything new”. But if you to the, there’s a Wikipedia page, I’ll link it in the summary, there’s tonnes and tonnes of new features, but the problem is – and let me give you an example – they’re features that nobody really uses.
Spolsky: Yeah, okay [chuckle]
Atwood: Let me give you a classic example: voice recognition in Vista is absolutely amazing, it’s really impressive, if you go through the tutorial and start playing with it, you can resize windows, you can like identify things by number on the screen. It’s incredible. It’s really really cool but: nobody uses it.
Spolsky: Right.
Atwood: Who actually sets out and says “I want to use voice navigation on my computer”. I mean, it’s really, really rare and it got this first-class treatment in Vista all out of proportion with the number of people that are actually going to use it.
Spolsky: Uh-huh.
Atwood: So I think that a key part of what you’re saying is: they’re building a lot of new features that are kind of cool and maybe even really good, but not meeting the core constituency and things that they want.
Spolsky: And I don’t want to throw too many stones at glass houses, because I’m not really sure I can thing of anything that, other than, like I say Spaces. I’m not really sure that I can think of anything that I feel is genuinely missing from my daily programming experience, or just sort of desktop or Windows, whatever it is, it’s an app launcher. There may be some things I could come up with.
Atwood: But, with OS X it’s also cheaper. I mean, if you look at Visa Ultimate, I think they reduced the price, it was like three of four hundred dollars. But if you had an upgrade that was like one hundred dollars, people would be a lot less demanding, in terms of “oh, it’s got to be this radical reinvention of my operating system”. XP is good enough, and XP was a good release, I mean it really, really was. It’s a testament to the strength of the release that it’s still actually pretty popular at this point.
Spolsky: But I think what I’m saying is: "give me something that I can use every day." Give me even an iPhoto clone or a music thing. I guess they have that, right? They’re just not as good. They’re not nearly… the little apps that ship with OS X, some of those things like Garage Band, you can actually get stuff done with them.
Atwood: Right, yeah. It’s been a disappointment; let me bring up my classic example, Notepad and Paint. I think it’s an embarrassment that Notepad is in the state that it’s in, and also Paint. I mean, have you ever used Paint.NET?
Spolsky: Paint.NET, exactly. Just ship that. Move on.
Atwood: I know! Yeah, it’s crazy. I’ll never understand the rationale behind that.
Spolsky: We’ve been talking for almost an hour now. Do you want to keep going?
Atwood: No, we should stop.
Spolsky: Yay. Just checking. Yeah, podcasts that I listen to have a tendency to spill over to about an hour and a half usually.
[58:38]
Atwood: Let's stop at an hour. I do want to have a shout-out. Particularly from my point of view, there's not a lot of computer science rigour around the things that I've been saying - that's been pointed out to me in the past - but I do want to give a shout-out to se-radio.net, which is Software Engineering Radio, the podcast for "professional" developers - it's actually very cool. Their latest entry on their site is Anders, the architect behind C#, the chief language strategist, who is truly a genius, I don't think that I'd debate that with anybody, he really is very very smart. So if you're looking for really hard-core software engineering: this is not that, but I would point you towards se-radio.net
[59:18]
Spolsky: Se-radio.net... and if you are listening and you have more questions -- we did accumulate a few questions last week -- but if you have anything else you want to talk about... some of the ones that were submitted this week I won't have time to get to until next week, but hopefully we will get to all of them. But once again... somebody told me I said the email address wrong. So pay attention now, make sure I get this right: podcast@stackoverflow.com.
Atwood: Yes. That's right.
Spolsky: It's not the other way around. It's not com@stackoverflow.podcast
Atwood: It's not, it's not... screen...
Spolsky: Com is the last part.
Atwood: It's not an AOL keyword. It's an actual email address.
Spolsky: Go to AOL keyword "podcast" at stackoverflow.com, and that "at", for those of you that may not be familiar, is uh, Shift - 2 on American keyboards. It looks like a little lowercase 'A' with a circle around it.
Atwood: Yes.
Spolsky: And that's um, used in uh, um, making bagels and in sending email addresses to people.
Atwood: Mm hmm. Yeah, thanks for the questions this week.
Spolsky: And... see you next week.
[1:00:17 Ends]