Spolsky: It's like you're standing in my ear. Let's tell our listeners what this show is all about. today we have a special guest/host, see it's not like a guest, it's like a guest/host. And our guest/host today is Eric Sink of Sourcegear
Atwood: That's right. And you know, what I have directly in front of me, which is awesome is I have this book "Eric Sink on the busines of software"
Spolsky: Oh, yeah, yeah, Jeff you should read that.
Atwood: And it has, it is signed, which is nice, very nice, thank you Eric, and it also has a foreword by this guy Jewel Spolllssskyyy, I don't know who that is, some guy wrote a foreword, but it's a good book, and you know what? It's funny as I actually read this book, actually cover to cover recently, occasinally, when I go on trips I take books like this with me and Eric, I have read a bunch of your stuff obviously as you'h posted it, but i have all these dgo-eared pages from questions that I had when I was reading the book, so we can get into that at some point, but this is a great book and I really enjoyed it. Now, this is mostly a compilation, though, right? This is a compilation of stuff you'd posted on your blog is that true?
Sink: Yeah, that's right. Most of the stuff was on the blog first and we cleaned it up a little bit during the editing process for the book but mostly it's blog stuff.
Atwood: But I enjoy compilations like this, because with the blogs you always, with the blogs I mean obviously you can read it online, but sometimes it's nice to get a continual stream. It's kinda like, say you're watching the Sopranos, you can watch one episode every Sunday for a month, or you could just watch all of it on DVD, all at once.
Spolsky: that works well for the "Arrested Development" I found.
Atwood: Yeah, sometimes it's just nice to cosume a lot, like you know it's good,like Sopranos is good, so like if one episode is good, so fifteen episodes in a row is awesome. (something about going to the bathroom)
Spolsky: That way it's just a very, very long movie.
Atwood: So, anyway, it's exellent, I enjoyed it, so
Sposky: Eric, by way of introduction, you're the founder of Sourcegear, but not the CEO, is that right?
Sink: um, I sometimes use the CEO title but that's... I would say I am not actually. Typically, right now the management of the company is being actually done by somebody else, my business partner, Corey.
Spolsky: So, what's your day like? What do you do every day?
Sink: My day is basically, I do still have my hand in marketing stuff pretty actively, so I'm involved with the people that are doing marketing more than I am and talking with them and meeting with them and brainstorming ideas and stuff and for the last year or so I've actually been hands down mostly as a coder and a writer working on some things I'm not ready to talk about publicly and then doing my writing and blogging, which, from the complaints I get about how seldom I write on my blog you'd think I never write but the fact is I do do some writing
Spolsky: yeah, it's just all in invisible ink, so there, mister smartypants.
Atwood: I have another complaint actually. So, Eric, occasionally you write, that's very exciting when I see it popup in my feed items, it'like: uh, Eric wrote something, and you wrote something about the whole C controversy that we occasinally bring up, it's like this recurring theme on our podcast, it's like "should coders now C", and I loved your post because I totally, I read it and I was like "oh, he's gonna agree with me, it is awesome, I can use this against Joel", and I read it and I was "oh, he's gonna aree with me" and then you switched me at the last minute, and I was like "doh, Eric Sink, you agree with Joel!!"
Sink: I am so happy I was able to annoy you.
Atwood: I wa so convinced you are going to agree with me
Spolsky: So you were telling us that you do a lot of coding and a lot of writing, mostly writing
Sink: Yeah, I've continued to do some writing, although a lot of the writing I'm doing lately is working on a, I have this thing on my blog called the Source Control Howto, which is not at all related to the business of software stuff that you and I often talk about, it's actually very popular, it's like the number two thing on my blog after the story about how to find the wii, which really sucks, cause the number one traffic source on my blog is people looking for a wii. So, source control howto is really popular, and I've been saying for ages that I was gonna get it in book form, so that's something I am working on right now.
Spolsky: Is there a lot of, now the hot new source control systems are mercurial and git, which, if you thought that source control was confusing, wait until you have source control where everybody has their own repository with their own branches and they're all sending each other changes one at a time like randomly across the hall: "oh, here;s that fix you wanted".
Atwood: Actually one of the things I loved about that series was that I feel that so few developers really understand source control, and I really feel like the reason you understood it is that you guys wrote it, like literally you wrote a source control system, which I love, because I think that the best way to understand something is to sit down and just write it. Then you really understand it, then you can teach people how it works. And you did a great job of that. But with that in mind, if you assume -- and this is a big assumption -- that most developers have kinda sorta mastered fundamental source control -- which I find not to be true, frankly...
Spolsky: No. Most of them, even if they have, it's the check-in, check-out that they understand, but branching and merging -- that confuses the heck out of them.
Atwood: Right. Did we lose Eric?
Sink: I muted for a second just to try something. Go ahead.
Atwood: Okay. So, with that in mind, do you feel like... these new source control systems... The big hook -- and this is what you brought up, Joel -- is that they theoretically make branching and merging much easier, which, if true, is a big deal, because that is by far one of the most complicated things to master in Subversion or...
Spolsky: To me, the fact that they make branching and merging easier just means that your coworkers are more likely to branch and merge, and you're more likely to be confused.
Sink: That's very true.
Atwood: True, but... I don't know. Eric, I'd like to hear your opinion on this.
Sink: Well, Joel asked me to select some questions, and all the questions I was looking at on Stack Overflow were about DVCS, Git, Subversion, and why they're better. We can go and dive into that now, but it's something I think about a lot.
Atwood: Let's do it. I would love to hear about it.
Sink: Okay. The thing about DVCS... the first thing I usually want to say is...
Spolsky: DVCS is Distributed...
Sink: Distributed Version Control System -- or Decentralized sometimes.
Spolsky: So that's what Mercurial and Git are -- the first generation...
Sink: That's right. Although I guess Larry McVoy of BitKeeper would probably want us to say that his was the first generation, which is probably pretty close to true, because he's had this basic technology shipping for years and years, but of course his system costs a ton. The thing is, it's really intriguing, but all of the evangelism about it is really, really awful. People ask, "Why should I use DVCS?" and the usual answer is, "Go see Linus's video on YouTube," and the second answer is, "I can code on an airplane." The problem is, first of all, we hardly ever code on airplanes, and Linus's video is so rabidly pro-DVCS and really inflammatory... He's done more damage to DVCS's going mainstream than anyone else.
Sink: Oh yeah. If you look at his video, he basically says, if you're a Subversion user, you're an idiot.
Spolsky: So that makes people want to be Subversion users, because they want to be idiots... No!
Sink: I don't know what it makes people want to do, but it doesn't make people want to use Git...
Spolsky: I reallly feel there's something about, if you take a progression along the autism scale from a normal civilian to and IT-style in-house programmer, to a pretty good microsoft-style programmer, to a a deep, dark, operating system lisp hacker programmer, and then the kernel programmers all the way to the right hand side the people that actually write lisp compilers, along a math scale, I sorta feel like what's happening is that you're getting people that have a better and better aptitude for keeping compicated hierarchies in their head all at once, or like multiple relations between multiple things. So there's some point at which they can understand pointers, there's that level of indirections and then there's some point at which they can understand recursion, where they're having to think about something at several levels of abstaction at the same time, and then there's a point at which they can undestand source code control and then sort of to the right of that scale is actually understanding branching and merging and multiple repositories and decentralization. It's actually kinda high up there in the level of complexity that it takes to really really grok it. And you can explain it to people and they might understand it once, and I think many people if they had it explained to them well would be able to just learn the four commands that they're gonna need to use, and kinda get these working.