Justin Frankel is a computer programmer best known for his work on the Winamp MP3 player (which was sold to AOL in 1999) and the gnutella peer-to-peer file-sharing network, which[…]
Sign up for the Smarter Faster newsletter
A weekly newsletter featuring the biggest ideas from the smartest people
A conversation with the software developer and designer.
Question: What motivates you as a programmer?
Justin Frankel: You know, most of it is when I want to do something on my computer and there’s not, either there’s not a way or there’s not a good way or there’s not a free way to do it. So, it comes out of wanting to use the thing that I'm making, ultimately. And then once it becomes something of its own, I think having other people use it is actually very rewarding in that you get satisfaction from other people getting the same benefits that you are from the software that you make.
Question: Who do you look up to?
Justin Frankel: There have been people where I’ve looked at the work they’ve done and have a lot of respect for them and, like John Carmack would be an example who was one of the founders of Id Software, who made like "Doom" and "Quake" and "Wolfenstein 3D," and it was always impressive to look and see the things that they would produce. And they would be successful in doing it and apparently enjoy themselves. So, that would be one top-of-my-head example.
Also, in like the ‘90’s, and probably maybe before that as well, there was a big demo scene were people would make demos where it would be trying to demonstrate what would be possible with the limited computers of the time and most of these people were European, I think, but they would have these bit parties where they would show off their demos and a lot of those guys, I don’t remember specific names, but it was always impressive the things that they could accomplish.
Question: What does it take to be one of the best developers?
Justin Frankel: I wouldn’t say that there are “best” programmers, but I think that there are programmers who end up being probably ten times more productive than the average programmer. And I don’t know what it would really take, it comes down to... it comes down to just the ability to cut through what's really important and then focus on that. And sort of having the sense to know that when you get stuff right, everything else can fall into place. And there’s probably some necessary element of being able to keep enough things in your head at the same time, but I think really a lot of it is just sort of a signal-and-noise if you find the right thing to focus on, it makes everything all right.
Question: Are developers really anti-social?
Justin Frankel: I think a lot of it comes down to; it’s very easy to spend a great deal of time focusing in on something and then forget to call you friends and that sort of thing. I probably would do that more if I wasn’t married, so... But I think there are programmers that way, but I think there are plenty of programmers who are just regular people and do regular things and go out and, you know, do all the things that are sort of normalish.
Question: Why did you develop Winamp?
Justin Frankel: Well, when I was in college, I guess that would have been 1996, or 1997, I found online some places where you could download music files that were pretty reasonable quality for how big they were—and this was something I played with before like in high school and never got really... never got that whole sort of CD quality sound out of a computer before. But when I found these, it was pretty interesting, and so I started playing around with it. And one of my friends in college at the time started making a Mac MP3 player, and on Windows there were a couple pieces of software available, but they were kind of limited; they didn’t really a good experience when you were listening to music with them. It was sort of very functional in that, "Hey, it’s playing it back," but there was very little of the sort environment that actually made listening to music on a computer different from listening to it somewhere else.
So, things like you now, showing visualization, being able to seek randomly, being able to build play lists. All of this sort of stuff that’s very commonplace in music-playing software now. So, my friend started doing a Mac version of this software called MacAmp, and I haven’t really done much programming for Windows and Windows 95 had been out and it was starting to be used by a lot of people, so I figured, "Hey, this would be a good way to learn how to program Windows application software." And so I made Winamp.
Question: What was it like going from being an unknown coder to a famous one?
Justin Frankel: Well it was pretty gradual. There was an IRC channel that I was hanging out on and had friends on. And these were people all over the world that would just hang out and talk about random things. I guess kind of how many online communities are now. But, and so, you know, I posted early versions and people would play with them and go, "Hey, this is good. And it should do this, it should do that." And so this gradual thing of people starting to use it and giving feedback. And as that happened, you get like, people get excited by it and they tell their friends and it grows in its own way that way. Which is very exciting, but it kind of happens over a long period of time, so as time goes on and each day isn’t really that much bigger than the previous. So you really don’t notice it that much.
Question: What do you think of iTunes?
iTunes probably started out very similar to Winamp other than some obvious differences. It was acquired from another company. But I think since then, it’s probably been... it’s been designed, a.) by people who actually weren’t the programmers on it. So, you’d have people making decisions who don't even know how those things are decided you have to be implemented, which is often a mistake. And then also I think it’s been very dumbed down, like when working on Winamp, we always tried to make things straightforward enough so that someone who wasn’t very technical could use it and not be confused, but also exposed tons of power so that if someone wanted to just completely customize it to be exactly their own, and change the behavior to be what they expected, they could do that. Whereas, iTunes is very much... you fit into the iTunes mold. That’s just how it works.
Question: How did it feel when AOL bought your company?
Justin Frankel: It was, it was awesome. They were really actually really nice and very... when they came to us they were very straightforward and really like, gave me a lot of confidence in their sincerity and their willingness to go and do good things. So, it was... I was very excited by it. And then obviously it was life-changing in terms of what kind of freedom it would give me going forward financially and otherwise. But yeah, it was a very good thing. You know. Once we got there and you saw some of the internal politics, it was a different story. But, yeah.
Question: Why did you release Gnutella?
Justin Frankel: Gnutella was software that allowed people who ran it on their computers to connect to other people who run the software. And once you’re connected, you would be connected to sort of—what’s the best expression—you’d be connected to the people around you who are then connected to other people and so you would have a horizon of people who you could... well I’m trying to remember what the feature said originally it was. But, you could talk to them and you could search whatever files they would make available and transfer files with them. And what was unique about this was it was a system that allowed people to connect directly with each other and as a result, find other people and find data that way without having any company or central server in the middle of it. So there would be no... no one to control it, it would just be a sort of free way to connect to people.
Yeah, and Napster was very successful at that point and they had apparent, they had a great deal of computer hardware just dedicated to letting everyone connect to them and it was a big expensive operation for them to do. So this was a very simple, a little bit like... when I was designing it, it was very much in my mind that it wasn’t going to function perfectly. Like, you would never be able to talk to everyone else on these networks, it would always be like, you could talk to the people nearest you. But it was something you could do and it was exciting because it was software that created something much larger out of little bits of software and didn't require actually any physical hardware, or any service to set up. It was just software that connected people.
Question: What was AOL’s problem with Gnutella?
Justin Frankel: Well, I think the biggest the problem they had is we didn’t really ask them about it. It was more... and it’s just as well we didn’t, I’m sure if we had they would have said, "That’s a bad idea. We really should look at this." And you know, to their credit, they’re probably right. A big corporation like them, that’s not what you need to be doing. You’re job is more how do you monetize people rather than how do you enable people to do things they want to do.
Question: Do you regret what you did?
Justin Frankel: No, I think, I think I probably wouldn’t do it again in the same way, but you know, I think what ended up happening was fine and I think it was only good for pretty much everyone involved. It didn’t look good for AOL, but did it end up hurting them? It did not move the needle at all. I think they announced the TimeWarner merger at that point and so they were doing what they were doing and that was that.
Question: What do you drink while coding? (Question from Redditor kunjaan)
Justin Frankel: I like coffee and I like English Breakfast Tea. Coffee, I generally go Americano because it has America in the name, and no, not really. And then I have some cream in it. No sugar. But I do cream and sugar in my English Breakfast Tea because that’s the way it’s meant to be.
Question: What does your workspace look like?
Justin Frankel: Generally, I like a big desk. I have keyboard which is the originally Microsoft Natural keyboards, which was from like 1996, I think. They changed them after that and they have the arrow keys that are an “X” I think, or are a cross, or a plus sign rather than an inverted “T”, and those ones are terrible. But I have like three of the classic Microsoft Natural keyboards.
Usually like one big monitor is my preference at this point. I have a MAC next to it and I use software called Synergy, which lets you move your mouse cursor from on one computer to a monitor on another computer, which is pretty helpful when you’re doing cross platforms.
Question: Describe your work process.
Justin Frankel: I think most of my work happens at home. And it used to be the kind of thing where I’d work late at night. But in the last few years, I’ve definitely found myself getting more done in the mornings as I try to get up in the mornings. Which I think is healthier for me in general. But yeah, I think there's a lot of... there’s a lot of not working but thinking about working and sort of having problems in your mind that you’re trying to figure out the solution for before you go and type any of it. There's a lot of typing things and then realizing what you’re doing is stupid and then revert, and throwing it all away and I think that’s something that's very useful to be able to do, is to try things and if they don’t work out to move on.
Question: Do you listen to music while coding?
Justin Frankel: I tend to listen to music. I was reading something recently where they were talking about how music with lyrics will affect people if you’re like... if kids are doing homework, it interferes with reading and I would tend to agree with that, but I think code is different enough from reading that lyrics aren’t really a problem.
Question: Do you ever procrastinate?
Justin Frankel: Yes, it’s funny you should ask that really. Yeah, I think the right amount of procrastination is a good... a very good quality because I think sometimes you’ll go and have an idea to do something and then do it and spend a lot of time on it and then release it and then you’ll be stuck with it and then you’re later on realize that you should have don it a different way and now you’re stuck with the current version. It’s less of an issue if you just try something out and then don’t like put it into a released product, but when you actually release things, you end up having this pressure of not taking away things that people like. And so procrastination is good for that. And also, I think if you really, really think things through it will save you time in the end when you go to actually implement it.
Question: What do you have against llamas? (question from Redditor FlySwat)
We shipped a default MP3 with one app for while that was "Winamp. It really whips the llama’s ass." And then there was also an Easter Egg where you could make the title bar show that. And the origin of that is, someone emailed us way back when, and I think emailed my friend, Tom Pepper, who was... ran all of our web stuff and was very much instrumental in creating all of these communities. Someone emailed saying, Winamp, it whips the llama’s ass, and so it just kind of stuck. And then it turned out later that it’s actually something that Wesley Willis, who's I guess is a comedian or a musician, or it’s kind of complicated if you look him up... mostly musician, but it’s some that he would say in a song, I think. I think somebody had emailed that, quoting one of his songs and we just sort of liked it as far as what we stood for, I guess.
Well, llamas are very cute. But, I don’t know, just, just kind of having some sort of identity and having it be a little weird.
Question: Why are software patents so controversial?
Justin Frankel: There are a lot of people who are for them and a lot of people are against them. It seems that most of the people who are for them are essentially IP holding companies who just sit around and wait with patents and wait until technology actually gets interesting, using something that could potentially be covered by these patents, and then they sue people. And they don't... generally they don’t sue small companies, they sue Microsoft and IBM. And of course, IBM and you know, like all these big companies have their own patents pools and they use them as leverage against other companies with patents.
But I just, you know, I think there are so many problems with it. The biggest problems are that you have people patenting things that are essentially math, which is what patents are not supposed to be even about at all. And the... I mean, there are other problems. There are no—I don’t know. It’s—I’m usually drunk when I give this explanation, and it comes out so much smoother.
I just think that they are a big problem largely because you can infringe on them without knowing that you do and as a small company you have like very little—you don’t have resources to go and research whether or not you do. I could write a 100,000 lines of code and for all I know, 50,000 of them infringe on various things. And I wouldn’t know that. And normally if you infringe someone's like trademark, for example, if they don’t enforce it it's to your advantage, because they start to lose their rights. Whereas patents, if they don’t enforce it for ten years, they can come and sue you for the ten years that you’ve been making money on your patent, and you're completely screwed. So, there's no incentive for them to actually go and try to legitimately license it.
It's really the kind of thing where there are probably some middle ground where it makes sense to have things be patentable. Obviously in many places it does make sense. But thinks like software and people patenting DNA, it’s at the point where you have things that are so abstract that they really should belong to everybody. And no one's really making viable businesses on software patents. The only thing they’re doing is extorting money out of other people. And the people who have the most software patents probably don't even want them to exist; they’re forced to do it to cover their own asses.
Recorded on June 21, 2010
Interviewed by Jessica Liebman
Justin Frankel: You know, most of it is when I want to do something on my computer and there’s not, either there’s not a way or there’s not a good way or there’s not a free way to do it. So, it comes out of wanting to use the thing that I'm making, ultimately. And then once it becomes something of its own, I think having other people use it is actually very rewarding in that you get satisfaction from other people getting the same benefits that you are from the software that you make.
Question: Who do you look up to?
Justin Frankel: There have been people where I’ve looked at the work they’ve done and have a lot of respect for them and, like John Carmack would be an example who was one of the founders of Id Software, who made like "Doom" and "Quake" and "Wolfenstein 3D," and it was always impressive to look and see the things that they would produce. And they would be successful in doing it and apparently enjoy themselves. So, that would be one top-of-my-head example.
Also, in like the ‘90’s, and probably maybe before that as well, there was a big demo scene were people would make demos where it would be trying to demonstrate what would be possible with the limited computers of the time and most of these people were European, I think, but they would have these bit parties where they would show off their demos and a lot of those guys, I don’t remember specific names, but it was always impressive the things that they could accomplish.
Question: What does it take to be one of the best developers?
Justin Frankel: I wouldn’t say that there are “best” programmers, but I think that there are programmers who end up being probably ten times more productive than the average programmer. And I don’t know what it would really take, it comes down to... it comes down to just the ability to cut through what's really important and then focus on that. And sort of having the sense to know that when you get stuff right, everything else can fall into place. And there’s probably some necessary element of being able to keep enough things in your head at the same time, but I think really a lot of it is just sort of a signal-and-noise if you find the right thing to focus on, it makes everything all right.
Question: Are developers really anti-social?
Justin Frankel: I think a lot of it comes down to; it’s very easy to spend a great deal of time focusing in on something and then forget to call you friends and that sort of thing. I probably would do that more if I wasn’t married, so... But I think there are programmers that way, but I think there are plenty of programmers who are just regular people and do regular things and go out and, you know, do all the things that are sort of normalish.
Question: Why did you develop Winamp?
Justin Frankel: Well, when I was in college, I guess that would have been 1996, or 1997, I found online some places where you could download music files that were pretty reasonable quality for how big they were—and this was something I played with before like in high school and never got really... never got that whole sort of CD quality sound out of a computer before. But when I found these, it was pretty interesting, and so I started playing around with it. And one of my friends in college at the time started making a Mac MP3 player, and on Windows there were a couple pieces of software available, but they were kind of limited; they didn’t really a good experience when you were listening to music with them. It was sort of very functional in that, "Hey, it’s playing it back," but there was very little of the sort environment that actually made listening to music on a computer different from listening to it somewhere else.
So, things like you now, showing visualization, being able to seek randomly, being able to build play lists. All of this sort of stuff that’s very commonplace in music-playing software now. So, my friend started doing a Mac version of this software called MacAmp, and I haven’t really done much programming for Windows and Windows 95 had been out and it was starting to be used by a lot of people, so I figured, "Hey, this would be a good way to learn how to program Windows application software." And so I made Winamp.
Question: What was it like going from being an unknown coder to a famous one?
Justin Frankel: Well it was pretty gradual. There was an IRC channel that I was hanging out on and had friends on. And these were people all over the world that would just hang out and talk about random things. I guess kind of how many online communities are now. But, and so, you know, I posted early versions and people would play with them and go, "Hey, this is good. And it should do this, it should do that." And so this gradual thing of people starting to use it and giving feedback. And as that happened, you get like, people get excited by it and they tell their friends and it grows in its own way that way. Which is very exciting, but it kind of happens over a long period of time, so as time goes on and each day isn’t really that much bigger than the previous. So you really don’t notice it that much.
Question: What do you think of iTunes?
iTunes probably started out very similar to Winamp other than some obvious differences. It was acquired from another company. But I think since then, it’s probably been... it’s been designed, a.) by people who actually weren’t the programmers on it. So, you’d have people making decisions who don't even know how those things are decided you have to be implemented, which is often a mistake. And then also I think it’s been very dumbed down, like when working on Winamp, we always tried to make things straightforward enough so that someone who wasn’t very technical could use it and not be confused, but also exposed tons of power so that if someone wanted to just completely customize it to be exactly their own, and change the behavior to be what they expected, they could do that. Whereas, iTunes is very much... you fit into the iTunes mold. That’s just how it works.
Question: How did it feel when AOL bought your company?
Justin Frankel: It was, it was awesome. They were really actually really nice and very... when they came to us they were very straightforward and really like, gave me a lot of confidence in their sincerity and their willingness to go and do good things. So, it was... I was very excited by it. And then obviously it was life-changing in terms of what kind of freedom it would give me going forward financially and otherwise. But yeah, it was a very good thing. You know. Once we got there and you saw some of the internal politics, it was a different story. But, yeah.
Question: Why did you release Gnutella?
Justin Frankel: Gnutella was software that allowed people who ran it on their computers to connect to other people who run the software. And once you’re connected, you would be connected to sort of—what’s the best expression—you’d be connected to the people around you who are then connected to other people and so you would have a horizon of people who you could... well I’m trying to remember what the feature said originally it was. But, you could talk to them and you could search whatever files they would make available and transfer files with them. And what was unique about this was it was a system that allowed people to connect directly with each other and as a result, find other people and find data that way without having any company or central server in the middle of it. So there would be no... no one to control it, it would just be a sort of free way to connect to people.
Yeah, and Napster was very successful at that point and they had apparent, they had a great deal of computer hardware just dedicated to letting everyone connect to them and it was a big expensive operation for them to do. So this was a very simple, a little bit like... when I was designing it, it was very much in my mind that it wasn’t going to function perfectly. Like, you would never be able to talk to everyone else on these networks, it would always be like, you could talk to the people nearest you. But it was something you could do and it was exciting because it was software that created something much larger out of little bits of software and didn't require actually any physical hardware, or any service to set up. It was just software that connected people.
Question: What was AOL’s problem with Gnutella?
Justin Frankel: Well, I think the biggest the problem they had is we didn’t really ask them about it. It was more... and it’s just as well we didn’t, I’m sure if we had they would have said, "That’s a bad idea. We really should look at this." And you know, to their credit, they’re probably right. A big corporation like them, that’s not what you need to be doing. You’re job is more how do you monetize people rather than how do you enable people to do things they want to do.
Question: Do you regret what you did?
Justin Frankel: No, I think, I think I probably wouldn’t do it again in the same way, but you know, I think what ended up happening was fine and I think it was only good for pretty much everyone involved. It didn’t look good for AOL, but did it end up hurting them? It did not move the needle at all. I think they announced the TimeWarner merger at that point and so they were doing what they were doing and that was that.
Question: What do you drink while coding? (Question from Redditor kunjaan)
Justin Frankel: I like coffee and I like English Breakfast Tea. Coffee, I generally go Americano because it has America in the name, and no, not really. And then I have some cream in it. No sugar. But I do cream and sugar in my English Breakfast Tea because that’s the way it’s meant to be.
Question: What does your workspace look like?
Justin Frankel: Generally, I like a big desk. I have keyboard which is the originally Microsoft Natural keyboards, which was from like 1996, I think. They changed them after that and they have the arrow keys that are an “X” I think, or are a cross, or a plus sign rather than an inverted “T”, and those ones are terrible. But I have like three of the classic Microsoft Natural keyboards.
Usually like one big monitor is my preference at this point. I have a MAC next to it and I use software called Synergy, which lets you move your mouse cursor from on one computer to a monitor on another computer, which is pretty helpful when you’re doing cross platforms.
Question: Describe your work process.
Justin Frankel: I think most of my work happens at home. And it used to be the kind of thing where I’d work late at night. But in the last few years, I’ve definitely found myself getting more done in the mornings as I try to get up in the mornings. Which I think is healthier for me in general. But yeah, I think there's a lot of... there’s a lot of not working but thinking about working and sort of having problems in your mind that you’re trying to figure out the solution for before you go and type any of it. There's a lot of typing things and then realizing what you’re doing is stupid and then revert, and throwing it all away and I think that’s something that's very useful to be able to do, is to try things and if they don’t work out to move on.
Question: Do you listen to music while coding?
Justin Frankel: I tend to listen to music. I was reading something recently where they were talking about how music with lyrics will affect people if you’re like... if kids are doing homework, it interferes with reading and I would tend to agree with that, but I think code is different enough from reading that lyrics aren’t really a problem.
Question: Do you ever procrastinate?
Justin Frankel: Yes, it’s funny you should ask that really. Yeah, I think the right amount of procrastination is a good... a very good quality because I think sometimes you’ll go and have an idea to do something and then do it and spend a lot of time on it and then release it and then you’ll be stuck with it and then you’re later on realize that you should have don it a different way and now you’re stuck with the current version. It’s less of an issue if you just try something out and then don’t like put it into a released product, but when you actually release things, you end up having this pressure of not taking away things that people like. And so procrastination is good for that. And also, I think if you really, really think things through it will save you time in the end when you go to actually implement it.
Question: What do you have against llamas? (question from Redditor FlySwat)
We shipped a default MP3 with one app for while that was "Winamp. It really whips the llama’s ass." And then there was also an Easter Egg where you could make the title bar show that. And the origin of that is, someone emailed us way back when, and I think emailed my friend, Tom Pepper, who was... ran all of our web stuff and was very much instrumental in creating all of these communities. Someone emailed saying, Winamp, it whips the llama’s ass, and so it just kind of stuck. And then it turned out later that it’s actually something that Wesley Willis, who's I guess is a comedian or a musician, or it’s kind of complicated if you look him up... mostly musician, but it’s some that he would say in a song, I think. I think somebody had emailed that, quoting one of his songs and we just sort of liked it as far as what we stood for, I guess.
Well, llamas are very cute. But, I don’t know, just, just kind of having some sort of identity and having it be a little weird.
Question: Why are software patents so controversial?
Justin Frankel: There are a lot of people who are for them and a lot of people are against them. It seems that most of the people who are for them are essentially IP holding companies who just sit around and wait with patents and wait until technology actually gets interesting, using something that could potentially be covered by these patents, and then they sue people. And they don't... generally they don’t sue small companies, they sue Microsoft and IBM. And of course, IBM and you know, like all these big companies have their own patents pools and they use them as leverage against other companies with patents.
But I just, you know, I think there are so many problems with it. The biggest problems are that you have people patenting things that are essentially math, which is what patents are not supposed to be even about at all. And the... I mean, there are other problems. There are no—I don’t know. It’s—I’m usually drunk when I give this explanation, and it comes out so much smoother.
I just think that they are a big problem largely because you can infringe on them without knowing that you do and as a small company you have like very little—you don’t have resources to go and research whether or not you do. I could write a 100,000 lines of code and for all I know, 50,000 of them infringe on various things. And I wouldn’t know that. And normally if you infringe someone's like trademark, for example, if they don’t enforce it it's to your advantage, because they start to lose their rights. Whereas patents, if they don’t enforce it for ten years, they can come and sue you for the ten years that you’ve been making money on your patent, and you're completely screwed. So, there's no incentive for them to actually go and try to legitimately license it.
It's really the kind of thing where there are probably some middle ground where it makes sense to have things be patentable. Obviously in many places it does make sense. But thinks like software and people patenting DNA, it’s at the point where you have things that are so abstract that they really should belong to everybody. And no one's really making viable businesses on software patents. The only thing they’re doing is extorting money out of other people. And the people who have the most software patents probably don't even want them to exist; they’re forced to do it to cover their own asses.
Recorded on June 21, 2010
Interviewed by Jessica Liebman
▸
7 min
—
with