53: There's Gonna Be Some Flapping


00:00:00   Don't say anything funny now. That's a really good ending. So don't say anything funny.

00:00:04   You can always put it at the beginning of the show.

00:00:06   That's true.

00:00:06   Time has no meaning in podcasts, Marco. You are the master of time and space.

00:00:10   Oh, God.

00:00:13   Some follow-up? Do we want to talk about Flappy Bird and get in an argument again?

00:00:17   I would just like to say that I think most of the feedback sided with me, that Flappy Bird is actually a good game.

00:00:25   Not a great game, but it was that it got most of its popularity, at least the initial popularity boost that got it into the top charts, which then made Social Elements really take over.

00:00:34   It got a lot of its popularity simply because of its merits.

00:00:38   And even though it is not, it is not like, you know, it's, to me it's like a McDonald's hamburger of games.

00:00:45   Not even McDonald's, it's more like a Wendy's hamburger of games.

00:00:48   It's like, you know, it you shouldn't like it. It's terrible. It's complete junk. However, it's good

00:00:55   No, no, that's that's McDonald's Wendy's is good. McDonald's is not good except breakfast breakfast is good

00:01:01   Well, whatever people eat McDonald's it's actually good. Is there anything there?

00:01:04   I'm sure this is good may the burgers are not but breakfast is good

00:01:07   I've actually found that like on long car trips

00:01:10   Where I have to like stop at a rest area somewhere in the middle of nowhere to eat

00:01:13   I would if I have to pick between the major fast-food chains

00:01:17   and you're really somewhere out in the middle of nowhere,

00:01:20   I would go with McDonald's because they've always been

00:01:24   extremely good about quality control standards,

00:01:27   and so you're guaranteed to get the same crap everywhere.

00:01:31   Whereas Wendy's, I like Wendy's better in an ideal case,

00:01:35   but I've had a much wider range of Wendy's quality.

00:01:39   - Where did we stop on the way back from South Carolina?

00:01:41   I thought we stopped at Wendy's.

00:01:43   - We did, that was in a fairly populated area.

00:01:45   I'm talking about if you have to stop

00:01:46   like the Pennsylvania Turnpike or something, where you're really in the middle of nowhere.

00:01:51   And you have the Roy Rogers or the McDonalds.

00:01:54   Oh God, I remember those.

00:01:55   Or the TCBY.

00:01:59   This is our new podcast.

00:02:00   This is it.

00:02:01   So, John, what do you think about the Flappy Bird follow-up?

00:02:03   I think the feedback was, it's hard to tell with Twitter especially, because of course

00:02:07   I only see the replies that @ mentioned me or people might be @ mentioning just you to

00:02:13   say they agree with you.

00:02:14   I wouldn't see those or whatever.

00:02:15   But I think the majority of the feedback

00:02:17   was that they agreed with you.

00:02:19   And that just goes to show that the majority of people

00:02:22   are often wrong about things.

00:02:24   So as is often the case in this podcast where

00:02:28   I don't do any preparation, we sort of just

00:02:30   talk about things in the moment.

00:02:32   And then after the podcast, I think

00:02:34   of how I could have approached it better,

00:02:38   explained things better, or maybe just the next show

00:02:40   I want to summarize stuff or whatever.

00:02:41   So I do have some actual follow-up

00:02:43   that I put in the notes about this.

00:02:44   Like, I have a vague outline here of kind of what we said the last time.

00:02:52   The heading here is the two sides of success.

00:02:55   And we barely touched on one of these sides, and maybe we should have talked about it more.

00:03:00   The first side of success is like when you're very successful, you get a lot of attacks

00:03:05   from people who don't think you should be that successful, don't think you deserve your

00:03:10   or just because you're very popular, you get the backlash effect.

00:03:14   We've all experienced this to one degree or another, and it scales proportionately with

00:03:18   your success.

00:03:19   If you're massively successful and everybody knows what you are, you're going to have a

00:03:22   proportionately larger backlash.

00:03:25   And that was mentioned at the very beginning of that show, maybe.

00:03:29   I tried to point out that I didn't think it was a terrible game, because it's not terrible.

00:03:34   It's not completely incompetent.

00:03:36   It's not non-functional.

00:03:37   It has—

00:03:38   It has--

00:03:39   High praise.

00:03:40   Yeah.

00:03:40   Right.

00:03:41   So what I'm just saying, like people are saying,

00:03:43   I don't think it's a terrible game.

00:03:44   No, it's not a terrible game.

00:03:45   And yes, you have to recognize that because it's so successful

00:03:48   that you see this crazy backlash against the game,

00:03:51   the concept of the game, people who enjoy the game,

00:03:53   and everything like that.

00:03:54   That is one of the sides of success.

00:03:58   And I don't think we spent enough time focusing on that,

00:04:00   because I think a lot of the people saying,

00:04:01   I agree with Marco.

00:04:02   It's not a terrible game.

00:04:03   I don't think anybody said it was a terrible game.

00:04:05   Nobody thought it was terrible.

00:04:06   I said it was not a good game.

00:04:08   And then it's like, well, what's good versus mediocre versus, you know, I would call it

00:04:11   a mediocre game, I would not call it a good game, but it's certainly not terrible, right?

00:04:16   And of course, it has many things about it that make it be successful in the marketplace.

00:04:20   And I'm drawing a distinction that a lot of other people don't, between the quality of

00:04:23   something like, is this a good game, a bad game or whatever, and how successful it is

00:04:27   in the market.

00:04:28   Sort of like the, is the McDonald's hamburger a good hamburger or bad hamburger versus how

00:04:31   many McDonald's hamburgers are sold every year?

00:04:34   That type of distinction.

00:04:35   Although I draw that line much more harshly than most people do, because most people will

00:04:39   say that their favorite movie is the best movie, and I would never say that about my

00:04:42   favorite movie.

00:04:43   Or you know, I can separate those two more than most people like to separate them.

00:04:48   What is the best movie?

00:04:49   Yeah, that's a whole other podcast.

00:04:51   I would say, "Marco, what is best in life?"

00:04:54   And you would say, "What are you talking about?"

00:04:56   Anyway, so the second side of success is—

00:04:59   Over my head.

00:05:00   Me too.

00:05:01   Good job, guys.

00:05:02   Good job, guys.

00:05:04   At least we're consistent.

00:05:07   I'm sorry.

00:05:08   Were you trying to have a serious conversation here?

00:05:11   This is not that long, but there's

00:05:13   going to be some flapping, so just a little flapping.

00:05:16   There's going to be some flapping and some birds.

00:05:19   Second side of success is the idea--

00:05:22   it's the opposite side of the coin of everyone attacking

00:05:25   the thing that's successful.

00:05:26   And that is people deciding that the successful thing is

00:05:29   a success based on its merits.

00:05:32   And the trick about that is choosing the merits that you think seem fair or admirable.

00:05:38   So that means diminishing the role of chance in this and minimizing or diminishing less

00:05:43   attractive merits.

00:05:44   So for example, if you think it's admirable to be a successful game because of the code

00:05:49   that's in the game itself, because of what's on the screen and how it works, you will elevate

00:05:53   those elements.

00:05:54   And if you think it's not admirable to be successful because of a genius marketing campaign

00:05:59   or like a very well-made television ad or something, or whatever you decide is sort

00:06:05   of less fair or less, you know, you're deciding what your merits are.

00:06:11   And most of us kind of agree, like, oh, if the game itself, if the code that ships is

00:06:14   good and the game is successful, that is fair and that is admirable and we should all look

00:06:19   up to that.

00:06:20   But if something is successful because, to take the other end of the spectrum, someone,

00:06:23   you know, paid to get a bunch of fake reviews, we all agree that's not admirable.

00:06:27   What if they had a really good ad campaign and they wrote the ad copy themselves and

00:06:30   they made the art?

00:06:32   What if they had a really good strategy for viral marketing or whatever?

00:06:36   We decide, well, those aren't creepy or anything, but they're not as admirable as the game,

00:06:41   as being in the game itself.

00:06:43   When I'm talking about success based on the merits, most people, when they see a big success,

00:06:47   will decide that the thing is successful based on whatever they think are the most admirable

00:06:52   aspects of that success.

00:06:56   And I think that was the position I was taking on the last podcast was that the merits of

00:07:01   the game itself, and that's the thing that I find would find an admirable reason for

00:07:05   success is like what's in the code, what's in the binary that ships to people and all

00:07:09   the other stuff I consider less, less directly connected to success in terms of like, is

00:07:16   the game good versus is the marketing campaign good versus you know, the popularity of it

00:07:20   or whatever.

00:07:22   When discussing that a lot, I mentioned in the show that there are plenty of other games

00:07:25   that have similar attributes. And that's what we were talking about when Marker was saying

00:07:29   the attributes of the game led to its success. I'm saying those attributes were probably

00:07:33   necessary for its success, because if it's a terrible game, no one's going to want to

00:07:36   play it or anything. But they're not sufficient because lots of other games have those same

00:07:39   attributes, and they're not successes.

00:07:41   So you're saying that they were necessary but not sufficient?

00:07:45   Yes, yes, yes. But implicitly, what I'm trying to get at here is implicitly when we were

00:07:49   discussing that, all of us kind of agreed implicitly what things we're talking about.

00:07:53   We weren't talking about the ad campaign.

00:07:55   We weren't talking about any other aspects of the game.

00:08:00   We were talking about essentially what's in the binary, like the app itself.

00:08:04   And we didn't need to establish that up front, because I think we're all on the same page

00:08:09   in terms of when you're talking about the game, that's what we mean.

00:08:12   And I don't think that's necessarily a valid viewpoint from all perspectives, because if

00:08:16   you are in the advertising business, for example, if you read Ad Age and are big into the advertising

00:08:22   world. Of course you would consider the ad campaign part of the success of the thing.

00:08:26   It's like, that's so important. In fact, it's more important than the binary that you created.

00:08:30   I just want to establish that there are assumptions that we don't state that are definitely informing

00:08:35   what it is that we're talking about, so much so that we didn't even need to call them out

00:08:38   last time. Most people who are responding to this also need to call them out, but I think

00:08:42   it's worth thinking about other perspectives in this.

00:08:46   And anyway, so since I said that about other apps in the app store having these characteristics,

00:08:50   Of course people came out of the woodwork and said, "Well, show me these tens of thousands

00:08:53   of games that have these other characteristics."

00:08:57   And that's kind of a sucker's bet because, A, how many games are there in the App Store?

00:09:02   100,000?

00:09:03   150,000?

00:09:04   I don't even want to know how many games there are, but no one has played them all.

00:09:06   So it's pretty much impossible to exhaustively find them.

00:09:09   And then you have to do some sort of statistical sampling of games to try to find games with

00:09:12   these qualities.

00:09:13   A couple people posted games and they said, "Here's this game from five years ago that

00:09:17   has these qualities," or whatever.

00:09:18   But the reason I say it's a sucker's bet is because whatever game anyone was to cite,

00:09:24   someone will say, "Well, that one is not alike enough, because there's always some extra

00:09:28   nuance that Flappy Birds has that this game doesn't have."

00:09:31   Down to the fact that that game doesn't include birds, and Flappy Birds includes birds, and

00:09:35   do the history of the App Store with angry birds and Tiny Wing, the birds themselves,

00:09:41   therefore Flappy Birds was this perfect thing.

00:09:45   It would be impossible to satisfy, because they would say, "See, that little nuance that

00:09:49   I pointed out, this game has and that game doesn't have extra levels all on one screen,

00:09:53   doesn't scroll, doesn't matter where you tap on the screen with your thumb."

00:09:55   Like, there would always be some difference between the game that you cite and that game,

00:09:58   and they'll say, "See, that's why Flappy Birds is a success and this other game wasn't."

00:10:03   And that's why I think Flappy Birds itself is the best example, which is why I gave the

00:10:07   time travel scenario on the show, which was like, "Okay, go back in time to before Flappy

00:10:11   Birds was created, bring the Flappy Birds binary with you, submit it to the App Store,

00:10:15   Of course, provisioning profiles would never let you do this, but anyway, we're in a hypothetical

00:10:20   scenario.

00:10:21   And you'll see that it doesn't sell.

00:10:23   And Flappy Birds itself was on the App Store for months and months and months, and it didn't

00:10:27   sell.

00:10:28   And even then, with this example, I imagine someone will say, "Well, there was some minor

00:10:32   gameplay tweak that happened just the week it took off, and that was the minor gameplay

00:10:37   tweak that made it happen."

00:10:38   I don't know if this is true or not.

00:10:39   I don't know if Flappy Birds' gameplay was updated at all between the time it was released

00:10:42   six months ago now.

00:10:43   That's what someone would say.

00:10:45   And the reason I'm bringing up these hypothetical people's complaints that they would have if

00:10:50   you were trying to cite earlier games, or even if you were trying to cite Flappy Birds

00:10:52   itself, which I did frequently on Twitter, and say, "What about Flappy Birds itself?

00:10:55   It was out for six months.

00:10:56   It was not successful."

00:10:57   It's like, "Well, you don't understand.

00:10:59   It had to be in the store gestating for six months because that's how long the ramp takes

00:11:04   for viral whatever."

00:11:05   You know, there's always something you can say.

00:11:06   And this is the point I really wanted to get at on this podcast and that I didn't bring

00:11:12   up enough in the last one. The second side of success is people seeing something successful

00:11:18   and then working backwards from its success to determine why it was successful. It's kind of this

00:11:23   fatalistic, everything happens for a reason mindset where you see something that's successful

00:11:27   and decide that every attribute of that thing that you find admirable has to be in exactly that

00:11:31   position for it to be a success. Otherwise, how could it have happened, right? And this, I think,

00:11:36   even applies to really good games and most other things in life where you look at the

00:11:41   success and even the really admirable awesome things about it, you'll say, "That's why it

00:11:45   succeeded." And also every other detail of that thing, because how could it have been

00:11:49   any other way? You know, this is what happened, so it was written, so it shall be done. Flappy

00:11:53   Birds is the perfect game because it is massively successful. Other games that were not Flappy

00:11:57   Birds were not successful, therefore you must be like Flappy Birds to be successful. Nothing

00:12:00   but Flappy Birds could have been successful, so on and so forth. And to address this friend

00:12:05   the show Kieran Healy put a blog post. Is he a sociologist or does he play one on the internet?

00:12:10   I think he's a real sociologist or teaches sociology.

00:12:12   He's at least smart. He teaches at Duke. I believe that's true. And if that's not true,

00:12:17   and he's actually at UNC or something, I'm going to be in real deep trouble.

00:12:20   He posted something where the sociologists are interested in this phenomenon of like,

00:12:24   how do things become successful? And the angle they were taking on it was,

00:12:27   why can't record executives and stuff predict hit songs? And the idea is like,

00:12:32   don't these guys know anything about their business? How come they have such a poor track

00:12:37   record or particular hit song? Some songs hit, some songs don't. And if you asked executives

00:12:41   beforehand, they would be totally sure this song was going to be a hit and it wasn't. And other

00:12:45   people would say, "This song is going nowhere and it becomes a mega hit. Why can't we predict that?"

00:12:49   So trying to figure out this phenomenon, they ran a series of experiments, but they had a bunch of

00:12:53   songs in this case and had people listen to them and download them. It was like 14,000 different

00:12:59   people. In some situations, the people could see what other people were doing. They could see how

00:13:04   many downloads a song had, and in other situations, they couldn't see how many times a song was

00:13:11   downloaded. So it's basically trying to move the slider on social influence from zero all the way

00:13:17   up to maximum. What they found in this experiment was that increasing the strength of social

00:13:23   influence increased both the inequality and unpredictability of success. So as they made

00:13:27   the social aspect more relevant, like as they showed the download numbers more primarily,

00:13:31   as they sorted by downloads or whatever. The difference between the most only successful

00:13:36   became much bigger. The difference between like the winners and losers, which you kind of expect

00:13:40   because like this piling on effect of like once everyone recognizes a winner, everyone's going to

00:13:44   go download it and the losers won't download it at all, versus if you had no signal from what other

00:13:48   people are doing, there would be, you wouldn't see this runaway success. But the other part of the

00:13:53   thing was that the predictability of success went down. So in general, the best songs never

00:13:59   did really badly, and the worst songs never did really well, but almost any other result was

00:14:03   possible. I'm quoting from his blog post here. So basically, once you add social signal to the mix,

00:14:11   amongst the games, amongst the songs that were kind of in the "good" category,

00:14:14   as the social signal increased, which one of those songs would be the hit became totally

00:14:19   unpredictable.

00:14:21   And when he wrote, he first wrote this blog post, and I was like, "Oh, this is one point

00:14:24   that he didn't make, and I'm excited to make it on the podcast next week."

00:14:27   But then he updated his blog post to making my additional point.

00:14:31   He told me I could still make it because we're both right, so I will.

00:14:35   He used the phrase that I was going to use here.

00:14:37   I had to come up with different wording because I didn't want to copy his phrase exactly.

00:14:40   Basically, he's trying to explain the reluctance of people's reluctance to agree that true

00:14:46   unpredictability is a real feature of markets like this. People don't want to believe that there's

00:14:51   that unpredictability as you increase social signal amongst the top. They want to believe

00:14:54   that the one that came in number one was always going to be the number one, but these experiments

00:14:58   prove that in a totally different set of people with the same set of songs, run this experiment

00:15:02   lots of different times amongst the sort of good enough to be good songs, as you increase the

00:15:06   social signal, it's totally unpredictable, which won't hit. And people do not want to believe that.

00:15:10   So he says, "Psychologically, people are often predisposed to believe in some version of a

00:15:14   just world hypothesis where people fundamentally get what they deserve.

00:15:17   And that's what I was trying to get at with the fatalism thing. People want to believe

00:15:21   that the world is fair and just and that what happened deserves to happen, especially if

00:15:26   it's something like, "Well, I like this game, and it's the number one game." Obviously,

00:15:29   it's number one because it's a good game. And if you try to tell them that it's number one

00:15:33   for reasons other than just it being a good game, they'll say, "You're saying this game

00:15:37   is terrible," or, "You just don't understand why this game is good," or anything like that.

00:15:43   Here, even cites the other example that I was hoping to bring out, which is you see

00:15:46   this all the time in books about how to succeed at business.

00:15:50   What will happen is basically in the 80s and I guess in the 90s, probably today as well,

00:15:57   some rich white dude—I hate to bring up rich white dudes for two shows in a row—but

00:16:00   some rich white dude—he may or may not be bald or wear a toupee if it's the 80s—becomes

00:16:04   amazingly successful for whatever reason and decides, "I now know everything.

00:16:10   I am massively successful.

00:16:11   I need to write a book telling everybody else what I know and they don't.

00:16:15   And they write these books about like, "Here's what I do.

00:16:17   Wake up every morning and have corn flakes, all right?

00:16:19   And then make sure you drive an American car and get into work early."

00:16:23   And they just pick every detail from their life and they say, "Because I am successful,

00:16:27   everything I do in my life must have led to that success.

00:16:29   Therefore, all of you people should do this.

00:16:30   And you're not successful, so who are you to complain?"

00:16:33   Again, working backwards from success.

00:16:35   And every business is like that.

00:16:37   We did this in our business and we're successful, therefore you should do this.

00:16:40   habits of highly effective people or whatever.

00:16:43   We can get into software methodologies in the future show, I'm sure, talking about the

00:16:48   same type of thing where it's like, "We did something.

00:16:51   We were successful.

00:16:52   Therefore, this methodology should work for everybody."

00:16:56   But business books in particular love to just—the winners come and tell you, "Here's what I

00:17:01   did, and if you do this, you'll be successful," because otherwise, to think otherwise would

00:17:05   be to think that your success is derived from something other than the merits you consider

00:17:09   If your success is derived from like, you know, the fact that you had rich parents and

00:17:14   got into a good school because their legacy is the fact that you were in the right place

00:17:18   at the right time with a product that was merely satisfactory and, and, you know, you

00:17:24   decide it's because of your great business acumen, really, any monkey could have run

00:17:27   the business and would have been just fine and had the same result.

00:17:30   Like no one wants to believe that happenstance or things that you don't consider admirable

00:17:35   contributed to your success, but I think in general that is more often the case.

00:17:40   Anyway, this link to Kieran's article with the results and links to the papers that no

00:17:44   one's going to read, but he has a really good summary of it with some graphs and everything.

00:17:48   I encourage everyone to read it.

00:17:49   I agree, Marco, that most people did agree with you, but I think all of them are suffering

00:17:54   from the symptoms described in Kieran's blog post here.

00:17:58   Well, and also, I think one other valid point to make here—I'm not going to even try

00:18:04   to address all that because I'm not qualified really and I have to save my words tonight

00:18:09   so I don't end up coughing all night but...

00:18:11   And it's science!

00:18:13   Yes, and science is always right. So I think another thing to consider here is when trying

00:18:21   to apply lessons learned from someone else's success to general cases or to your case,

00:18:30   the great Gruber and Merlin, South by Southwest '09 talk? What year? Was that '09? God, we're

00:18:37   old. I'll put it in the show notes. It's when Gruber and Merlin talked and the title's like

00:18:42   "How to Supercharge Your Blog" and that's of course a sarcastic title. And it's a fantastic

00:18:48   talk, there's audio recordings of it. It was 2009. Yeah, okay. So South by Southwest '09,

00:18:55   Gruber and Merlin's talk.

00:18:56   And one of the points they make in there is like,

00:19:01   you know, you can't, I don't know if they use Gruber

00:19:04   as an example, I forgot the details,

00:19:05   but they basically are like, you know,

00:19:07   if you go out today and try to be Daring Fireball,

00:19:11   it's not really gonna work

00:19:12   because we already have a Daring Fireball.

00:19:14   And Daring Fireball got big in an environment

00:19:17   that didn't have a Daring Fireball.

00:19:19   And so like, and the environment back then was different

00:19:21   and then he succeeded in that environment.

00:19:24   but if you try to do the same thing today

00:19:27   you're in a completely different time, a completely different set of conditions

00:19:30   and you know the same lessons don't always work more than once because they

00:19:34   have this context that let them work

00:19:37   or that they thrived within so like

00:19:39   everyone's gonna make all these flappy clone games now

00:19:43   and try to replicate this but

00:19:45   this succeeded you know in part because of the environment and the time

00:19:49   and the fact that

00:19:50   something like this hadn't really done this before so it was this novelty

00:19:54   No, no, no, not something like this hadn't done it before. Something like this hadn't done it before that people had seen.

00:19:59   And it's why people saw it as the interesting thing. But that's why when people brought up the floppy bird clones,

00:20:04   there was lots of debate that sort of @ mentioned me that I didn't participate in on Twitter,

00:20:10   and some of them were like, "Well, just look at all the floppy bird clones. Why aren't they succeeding?"

00:20:14   Well, that is obvious. They're not succeeding because floppy birds already exist.

00:20:17   That's the reason I came up with the time travel scenario. You can't say, "Well, I can make a bird just like floppy birds now,

00:20:23   but better doesn't succeed there for what I was describing. That's not a valid example.

00:20:29   By the way, the Flappy Bird clones are succeeding. Well, they succeed the same way that Domain

00:20:34   Squaders succeed. Typos and the wonders of the App Store search ensure that they have

00:20:39   success that far outweighs the— No, look at the top charts. The clones are

00:20:42   still up there. Well, it's also the fact that now you can't

00:20:45   get Flappy Birds, so the market's wide open for Flappy Bird clones. But you know what

00:20:49   I mean. None of those clones is going to be Flappy Birds because Flappy Birds already

00:20:52   already exists. So that's not a relevant thing to talk about.

00:20:59   week, buy our friends at Ting. Ting is mobile that makes sense. They are no BS, simple to

00:21:05   use mobile service provider from the people at Two Cows, the company behind Hover. Ting

00:21:09   is a reseller of a Sprint network in the US, so they have a great solid network behind

00:21:13   them. So go to our special URL to learn more, ATP.Ting.com. It's T-I-N-G, very simple. Ting

00:21:20   has great rates, there's no contracts, and there's no early termination fees. You own

00:21:26   your device outright from the start and then you just pay for what you use every month.

00:21:30   So here's how it works. You get any compatible Sprint device. You can get it through them,

00:21:36   you can get it new, you can get it used, you can buy it yourself on eBay or whatever. You

00:21:40   can ask a friend if they have an old Sprint device, including the Sprint iPhone. So check

00:21:46   them to see exactly which models are compatible. They have all this stuff up. Go to ATP.Ting.com

00:21:50   to see. So anyway, you get your phone somehow, it doesn't really matter how, any Sprint compatible

00:21:55   phone that they list on their site. And then you just pay a base price of six bucks a month

00:22:00   to get it connected. And then on top of that there's all these buckets for, there's a bucket

00:22:05   set for data, a bucket set for talk minutes, a bucket set for SMS. And you just pay for

00:22:10   whatever you use, whatever bucket is the cheapest that will encompass what you use, they pick

00:22:13   that one and they bill you for it. And they're a few bucks each so you can see. So for example,

00:22:19   you know, if you just use a hundred megs of data this month on a device, you'll just pay

00:22:24   for that bucket. If you use a gig next month, you'll pay for that bucket next month. And

00:22:27   the next month after that, if your usage goes back down, they'll ratchet you back down.

00:22:31   So you never really pay for, you don't have to remember to like, you know, go to their

00:22:36   site or call them and get it increased for when you go on a trip and then get it decreased

00:22:39   when you go back home. None of that. You just pay for what you use. Simple as that. Their

00:22:44   prices are actually recently even lower. They discounted a bunch of their data prices especially.

00:22:50   So 500 megs is 12 bucks, two gigs is just 29.

00:22:54   So really, really cheap data here.

00:22:57   That data includes tethering too, so really great.

00:23:00   So you can see how much you can save by going to Ting.

00:23:03   Go to ATP.Ting.com, check out the savings calculator.

00:23:07   You can enter in your last few bills from a carrier

00:23:09   and they will show you, based on your usage,

00:23:13   how much you will save with Ting.

00:23:14   And over time they can show you, okay, well,

00:23:17   let's say you gotta buy a device up front,

00:23:18   then you'll pay for it in three months

00:23:20   with the savings or whatever.

00:23:22   So really great stuff here.

00:23:24   They also have this cool program

00:23:25   where if you're stuck in a contract with someone else

00:23:27   and have to pay an early termination fee

00:23:29   to get yourself to Ting,

00:23:30   they will even give you 25% of that early termination fee

00:23:35   in service credit, up to $75,

00:23:37   to help get you over to Ting as quickly as possible.

00:23:40   They have great customer support, just like Hover.

00:23:43   No hold, no wait telephone support during the business day.

00:23:46   So you can just call them between 8 AM and 8 PM Eastern,

00:23:49   and a human being will pick up the phone who is ready and able

00:23:52   to help you.

00:23:53   No waiting on hold forever, no transfers

00:23:55   to a million different departments.

00:23:57   Great setup here.

00:23:58   And they have tons of features I don't even

00:23:59   have time to talk about today.

00:24:00   You can pool devices to manage a fleet of devices,

00:24:04   all this crazy stuff, great stuff here.

00:24:06   It's also really good for developers.

00:24:07   If you want test devices on different platforms

00:24:09   like Android, you can get a test device,

00:24:11   have it connected with a great data plan.

00:24:14   You can even buy a Nexus 5 from the Google Play Store at a great rate and then bring

00:24:18   it over to Ting.

00:24:19   Great stuff here.

00:24:20   So to find out more, go to ATP.Ting.com and I believe that's it.

00:24:26   I don't think you have to enter a coupon code or anything.

00:24:28   Yep, that's it.

00:24:29   Go to ATP.Ting.com and learn more about this.

00:24:32   Great company.

00:24:33   Thanks a lot to Ting for sponsoring the show once again.

00:24:36   So powerful is the Angry Birds brand that at least I am continuing to refer to this

00:24:40   as Flappy Birds when it's singular.

00:24:42   I was not going to correct you on that.

00:24:44   Everyone's doing this, by the way.

00:24:45   Yeah, I know.

00:24:46   And I have the opposite problem with tiny wings, where I always want to call it tiny

00:24:50   wing, but it wouldn't make no sense if there was just one wing.

00:24:53   Anyway, all these bird games, and I'm serious about that thing.

00:24:56   I was serious about that thing with the birds, like things that contributed to the success

00:24:59   of Flappy Birds.

00:25:00   I have to think somewhere on the list of things that contributed to its success is the fact

00:25:03   that it features a bird.

00:25:05   Absolutely.

00:25:06   Yeah, I mean, and the fact that birds are common in the app store.

00:25:10   There's been a lot of hit games with birds, and they're cute, and there's games about

00:25:14   flying and it's had good artwork.

00:25:16   I mean, there's no question that was part of it.

00:25:19   Like in terms of like, Kieran's experiment that he cited in his blog, like, what is the

00:25:23   thing that caused Angry Birds to hit?

00:25:26   Or go back in time, why is it that bird games are associated with mobile devices?

00:25:31   Was Angry Birds the first one?

00:25:32   Was it building on something else?

00:25:34   Like it's such an incredibly complex situation, which I didn't think you could ever devise

00:25:38   an experiment to try to isolate the things they isolated in this experiment. But even

00:25:41   this experiment is much simpler than the actual App Store because songs are sort of—I guess

00:25:45   they have titles and maybe that contributes to it, but they don't have artwork. And

00:25:49   I guess they have the entire history of music behind them, but it's kind of like you don't

00:25:52   know what you're getting until you click on the thing and then you listen to it. What

00:25:55   determines as they increase social signal which one becomes a hit? It's one of those

00:25:59   ones in the good group, but which one? And so they'd run the experiment a million times

00:26:02   and it keeps becoming incredibly unpredictable. Which one will be the runaway success? There

00:26:06   always is a runaway success, but you don't know which one out of the good group it is.

00:26:10   And I think that would be the next phase in the experiment.

00:26:12   Try to figure out, is it really completely random, or what other variables contributing

00:26:17   towards increasing or decreasing your chance of being the lottery winner among the songs

00:26:25   that have these qualities to put them somewhere in the good group?

00:26:28   Anyway, enough flapping.

00:26:32   So we had a kind of monumental moment over the last week, and I don't remember exactly

00:26:38   when it was.

00:26:39   You mean when John was wrong?

00:26:42   I'm going to choose to not engage on that one, but I will say…

00:26:47   You have to choose, Casey.

00:26:48   Mom or your daddy, which one do you love?

00:26:50   But I love both of you!

00:26:52   Which one am I?

00:26:53   Right, so we're professionals.

00:26:56   So we had an interesting moment over the last week wherein we actually got a bit of not

00:27:02   complimentary feedback about John, of all people.

00:27:07   Which never really happens.

00:27:08   This is very rare.

00:27:09   That's not true.

00:27:10   Like, it doesn't come to the show, it comes directly to me.

00:27:13   And believe me, it exists.

00:27:15   It may exist, but hand on heart, I've seen maybe five less than complimentary things

00:27:21   about John, and about 500 for Marco, and about 5,000 for me.

00:27:25   I bet Marco gets a lot of them directly too, because once they know like where they can

00:27:28   reach you, they don't need to go through the show feedback forum to say mean things to

00:27:32   Yeah, I usually get it on Twitter.

00:27:34   The email has mostly stopped since I pulled my email address off my site.

00:27:37   It's so hard to figure out, too.

00:27:39   Yeah, exactly.

00:27:40   Well, anyway, so John, do you want to address what this person said?

00:27:45   Yeah, I didn't put it in there because I thought it was such a big deal that I get hate mail,

00:27:48   because everyone gets hate mail, right?

00:27:50   But because I thought, well, a couple aspects of it were interesting.

00:27:54   I'm going to read a paragraph of it here, not the whole thing.

00:27:58   It's sent from—what they put in the feedback form was "Goofball Jones," which is the fake

00:28:01   nickname, obviously, and it says, "Throw away account.

00:28:04   Not really looking for this to be read on air," and it probably won't.

00:28:07   So there's some good reverse psychology there, like, you know, when they say, "I don't expect

00:28:11   a reply.

00:28:12   I don't expect this to be read on air," and if I say that, they'll read it on air.

00:28:16   That's not why I'm reading it on air, but in effect, it worked.

00:28:18   Let me just point out also, before you get into it, that somebody criticized you on,

00:28:23   and as a result, our notes file now has 15 links in it for this topic.

00:28:27   Well, you're gonna put all of them into the show notes.

00:28:30   So anyway, continuing.

00:28:33   "I can't take listening to this podcast anymore. I mean, I know that Syracuse's schtick is

00:28:37   to not like anything, after all, his old podcast was called Hypercritical.

00:28:40   It wears thin after a while. The guy complains about everything.

00:28:42   While it's okay once in a while, it's all the time, all in caps.

00:28:45   It's not even funny anymore. It sounds more like a miserable person

00:28:48   just whining about his miserable existence. What are we to do with this?

00:28:51   Does it really offer any insight to anything? Are people actually entertained by this on

00:28:55   a sustained level? Now, the reason I bring this up in the show is two reasons. One, I'm

00:29:02   fascinated by the idea that this person put in a fake email in the feedback form, or used

00:29:09   like a throwaway account or whatever. I don't even know if there's a real email, but why

00:29:13   would you create a fake email? Can't you just type anything in the email field? It doesn't

00:29:17   make you confirm that your email is real, right?

00:29:19   I don't think so, yeah. I think you can just put anything there.

00:29:22   And like why wouldn't you just put your regular email,

00:29:24   like either put like xx@xx.com or something

00:29:28   or just a made up thing or put your real email in.

00:29:30   Like is there a downside to having the real email?

00:29:32   Like I'm gonna harass them by email

00:29:35   or tell people their email, I don't know.

00:29:36   Anyway, that confuses me as does not using the real name.

00:29:39   Who cares?

00:29:40   Like if you don't like it, you know, put your real name.

00:29:42   Like it's not, it's not like I'm gonna put you

00:29:44   on an enemy's list.

00:29:45   Anyway, so what I put in the show notes,

00:29:49   because are a whole bunch of links to me being not

00:29:53   critical about things, or talking about things

00:29:55   that I mostly like or that I like a lot.

00:29:57   Mostly.

00:29:58   Yeah.

00:30:01   And I put these in here not to convince anybody of anything,

00:30:04   because I just want to provide context.

00:30:07   Now, I'm going to preface this by saying

00:30:08   that if your state of being requires

00:30:10   some elaborate explanation, there's already a problem.

00:30:12   This person is never going to like me, right?

00:30:14   No matter how much context I was like, oh, no, you

00:30:16   don't understand.

00:30:16   Here's the context for me complaining about things.

00:30:18   I'm going to be like, oh, yeah, now I find it much more enjoyable.

00:30:21   Like I'm not winning this person over, this person's not listening to the podcast anymore,

00:30:25   whatever.

00:30:26   But I thought it was worth talking about because it's easy for me to assume and easy for all

00:30:30   of us to assume, I think, that everybody already knows where we're coming from, that they know

00:30:35   all of our context, that they've read our blog for years, they've read everything we

00:30:38   write on the web, they've listened to all our old podcasts, they know everything about

00:30:41   us.

00:30:43   And that's just not true.

00:30:44   We kind of feel like, you know, of course everybody knows who these people are, except

00:30:48   Casey, obviously. And where they're coming from and what opinions they've had before and what

00:30:55   other podcasts they've been on and what things they like, what things they don't like, stuff

00:30:58   like that. I mean, I find myself doing it too. I assume that everyone who listens to the show has

00:31:02   listened to Hypercritical and I find someone who listens to the show and has never heard of

00:31:06   Hypercritical and I'm surprised and I shouldn't be, right? So I think it's worthwhile providing

00:31:12   context to the people who do actually enjoy the show. I think they would enjoy it more,

00:31:17   understand it better with a little bit of context. So to that end, the main thing I object to in this

00:31:22   person's email is not so much that they don't like the show. Fine, you don't like it, you don't like

00:31:24   it, whatever. You don't like me, you don't like me. That's fine. But the idea that I'm a miserable

00:31:29   person and I have a miserable existence, that's easily refuted by the long list of podcasts I've

00:31:35   been on where I talk about things that I almost unabashedly love almost everything about. And I

00:31:42   put tons of links in there. I'm not going to read off what they all are. Marco will copy and paste

00:31:46   paste them into the show notes. But suffice it to say that I talk about, some podcasts

00:31:52   I mostly just talk about things that I like. And the one link that I want to put in here

00:31:56   for the people who want some context to this is the original thing that I posted to the

00:31:59   internet in 2009 with the title "Hypercritical," which is sort of my explanation of my schtick,

00:32:03   as he put it. Like, what's the deal with this guy who complains all the time? Here's my

00:32:06   attempt at explaining it. Again, this explanation is not going to convince anyone that they,

00:32:10   "Oh, now suddenly I like hearing complaining all the time." No, obviously it's not going

00:32:13   to win anyone over. But I think it does provide context. And again, I always just assume everyone

00:32:17   who reads my blog or listens to this podcast or listen to my old podcast, of course they read this

00:32:22   article. How could they be listening to this? You know, they wouldn't know where I was coming from.

00:32:25   But that seems to not be the case. So anyway, and also we did an episode of ATP, by the way,

00:32:30   of where we talk about how we deal with criticism and all that stuff, which again, some new listeners

00:32:35   may not have heard. So there will be a cornucopia of show notes links this week for people who want

00:32:41   to hear me liking things.

00:32:45   You know, I think the most obvious example of this, which is the first one you listed,

00:32:52   is you and Dan Benjamin doing your 5x5 at the movies.

00:32:55   Is that still the only edition of 5x5 at the movies?

00:32:58   No, I think there's a second one, isn't there?

00:33:00   It does matter.

00:33:01   Well, the point is there's not many.

00:33:03   And this podcast, which you did with Dan, if you don't know listeners, and you should

00:33:12   listen to this, Dan and John took the movie Goodfellas and you literally spent something

00:33:17   to the order of 150% of the length of the movie discussing the movie.

00:33:24   I remember you being extremely effusive and it's, how do you spend three hours talking

00:33:30   about a two hour movie?

00:33:31   Even if you love it.

00:33:32   That, to me, is the seminal example of you being extremely positive and effusive about

00:33:40   something.

00:33:41   I mean, it's one thing to spend an hour talking about a two-hour movie and liking

00:33:43   it.

00:33:44   It's another thing to spend two hours talking about a two-hour movie and liking it.

00:33:47   But you spent something to the order of three hours discussing this two-hour movie and how

00:33:51   phenomenal it was in every frame.

00:33:54   And that's pretty darn complimentary.

00:33:57   And I loved it.

00:33:58   And I love Goodfellas, and I've seen that movie, thank you very much, and I'd seen

00:34:01   it before you had done that podcast, thank you very much.

00:34:04   Good job, Casey.

00:34:05   I know you're proud.

00:34:06   But no, truly, the podcast is wonderful.

00:34:10   And it reminded me a lot of the really fantastic ones that John Gruber and Dan did about the

00:34:17   Bond series.

00:34:18   But either way, the point is, it was extremely effusive.

00:34:21   And to me, one of the things I love so much about the work that you do and why I'm so

00:34:25   lucky to be on the show with you is because a lot of the times when you tear something

00:34:28   apart. To me, it's so clearly out of love, not out of hate. And that's what makes it so enjoyable,

00:34:35   because if it really was negative, I wouldn't want to be on this show. I don't know.

00:34:39   As the saying goes, the opposite of love is not hate, it's indifference. And if I'm indifferent

00:34:43   to something, you don't hear me talk about it at all. Other good examples—I know I said I wasn't

00:34:46   going to list these—but we did—The Incomparable covered the first three Star Wars movies,

00:34:51   which I really like. And we did two episodes on each movie, so that's six total episodes for the

00:34:55   original trilogy of Star Wars, and of course the video game that I could not stop talking

00:34:59   about since it was released and still haven't talked Journey. We did an episode of The Incomparable

00:35:04   about that as well. So anyway, there's tons of me liking things if you want to hear that,

00:35:10   which you may or may not.

00:35:11   I was expecting a much better rant. I'm a little disappointed now because I sent an

00:35:16   I.M. to Marco a day or two ago saying, "Hey man, have you looked at the show notes lately?

00:35:21   Because we're in for a good show this week."

00:35:23   I guess what am I gonna do? I'm gonna try to convince someone who doesn't like me that they should like me.

00:35:28   This section was not for that person who presumably is not listening to the show anymore,

00:35:32   but for the people who are listening and do enjoy it and might enjoy it more with more context and background.

00:35:37   Fair enough. I'm a little disappointed. It's okay though.

00:35:42   We are also sponsored this week by our friends at Squarespace, the all-in-one platform that

00:35:47   makes it fast and easy to create your own professional website or online portfolio.

00:35:53   For a free trial and 10% off, go to squarespace.com and use offer code Casey, that is C-A-S-E-Y,

00:36:00   in case no one knows how to spell Casey's name like all the people who email us.

00:36:05   Squarespace is always improving their platform with new features, new designs, and even better

00:36:09   support.

00:36:10   They have beautiful designs to start with,

00:36:11   but then you can also customize them

00:36:13   with all their cool tools online

00:36:15   that are really easy to use,

00:36:16   and also you can inject custom HTML, CSS, and JavaScript

00:36:19   if you so desire.

00:36:21   They also have mobile layouts for all their sites.

00:36:24   They're fully responsive layouts,

00:36:25   so they look great on any device, any screen size.

00:36:29   If you need any help doing all this stuff,

00:36:31   they have an amazing support team

00:36:33   with over 70 employees right here in New York City.

00:36:36   They work 24 hours a day, seven days a week on support.

00:36:39   Their customer support team has won numerous awards

00:36:42   as have their designs and many other things

00:36:44   about Squarespace because they are just that awesome.

00:36:47   Squarespace starts at just $8 a month

00:36:48   and includes a free domain if you sign up

00:36:50   for a whole year upfront.

00:36:52   And they have a couple new things,

00:36:54   in case you've heard this same read over and over again

00:36:56   'cause they sponsor the entire podcast, Asphere,

00:36:58   which we love them for, of course.

00:37:01   They have a couple of new things.

00:37:02   So they have this new thing called Squarespace logo.

00:37:05   In addition to building your website,

00:37:07   they now have this thing where it actually lets you

00:37:09   create a logo for your site, business card, shirt,

00:37:12   whatever you want, you can go check out squarespace.com/logo.

00:37:16   Also, every Squarespace plan now includes,

00:37:19   they built this cool commerce functionality,

00:37:21   and before it was limited to only certain accounts.

00:37:24   Now, all accounts include the commerce functionality.

00:37:26   So, you can now have, you can make your own store,

00:37:31   online goods or offline goods,

00:37:34   if you wanna like sell shirts or anything,

00:37:35   or if you wanna sell like ebooks,

00:37:37   anything electronic or physical you can sell through their store

00:37:40   uh... full integration full you know storefront carts all this crazy stuff

00:37:44   they have all this bill for you

00:37:46   comes with every square space plan now at no additional charge

00:37:50   and a really cool thing now is if you want to work at square space

00:37:54   so go to be a part of it

00:37:56   dot squarespace dot com

00:37:58   be a part of it

00:37:59   uh...

00:38:00   they're hiring and they're really rolling out the red carpet here

00:38:03   if you have you for engineering or design position before march fifteenth

00:38:07   They will invite you and your partner to be New Yorkers for a weekend.

00:38:10   They'll fly you out to New York, put you up at one of the city's best hotels, and give

00:38:14   you a long weekend of checking out some of their favorite attractions, cultural icons,

00:38:17   and restaurants in the city.

00:38:19   And Squarespace picks up the tab for the whole thing.

00:38:22   They've been voted one of New York City's greatest places to work for two years running,

00:38:26   so put them on your short list if you're looking for a job.

00:38:28   They're looking to hire 30 engineers and designers by March 15th.

00:38:32   So go to beapartofit.squarespace.com to learn more about that.

00:38:36   Anyway, thanks a lot to Squarespace for sponsoring our show.

00:38:39   Once again, go to squarespace.com and use offer code "Casey" for 10% off.

00:38:44   Thanks a lot to Squarespace for sponsoring our show again.

00:38:47   Do we have any thoughts on WhatsApp?

00:38:50   What's up?

00:38:51   I don't even know how to phrase this.

00:38:52   I don't really, to be honest.

00:38:54   This is kind of unimportant and boring to me, which I know is making friend of the show

00:38:59   Ben Thompson pull his hair out. But I don't know, to me it's just very unremarkable

00:39:05   other than the cost because it doesn't mean, it doesn't mean anything to me. I've never

00:39:11   seen the app outside of a screenshot I think of one, on one of Strateecory's posts.

00:39:16   Nice.

00:39:17   Does this matter to you too?

00:39:20   I think what's interesting is that we don't know that much about it. And it's this bit.

00:39:23   Right.

00:39:24   You know, like, I think this shows more than anything recently that, you know, there were,

00:39:28   There were always, you know, there's the consumer tech stuff

00:39:30   that we all see, and then there was always like

00:39:33   the kind of business side of enterprise tech stuff

00:39:35   that was this mostly invisible world

00:39:37   to those of us outside of it,

00:39:38   that we don't really care if SAP bought Oracle.

00:39:44   That would be a major deal to a lot of people,

00:39:46   but consumers wouldn't know who these people are

00:39:48   and wouldn't care.

00:39:49   This, I think, shows that the consumer tech world

00:39:55   is now so big.

00:39:57   You know, WhatsApp is, as far as I know, and again I know very little about it, I really

00:40:01   shouldn't even be talking about it, but as far as I know it is huge in lots of places,

00:40:06   but North America is not one of them.

00:40:08   And so, as far as I know.

00:40:10   At any rate, it's really massive everywhere else at least.

00:40:13   And so, I bet a lot of Americans aren't that familiar with it.

00:40:18   You know, and the fact is, it got so big to be a major threat to Facebook, and Facebook

00:40:26   So WhatsApp is basically a replacement for SMS.

00:40:30   And there's a few other apps that do this,

00:40:32   like there's Line and there's a couple other ones,

00:40:34   but I think this was the biggest worldwide, I think.

00:40:38   I'm not sure about that.

00:40:39   But what this really shows, SMS is extremely valuable

00:40:43   and Facebook has wanted to own that.

00:40:45   They want everyone to use Facebook Messenger

00:40:48   and not everyone uses Facebook Messenger.

00:40:50   And I think that's pretty much the reason for this,

00:40:53   that Facebook saw this major market,

00:40:56   this is worth a ton of money because it replaces SMS for so many people and Facebook wants

00:41:02   in on that. And if Facebook is not a part of that and it's not some kind of standard

00:41:06   protocol like SMS was, then they're kind of locked out and it could actually work against

00:41:11   them to not own this in the future. You know, if all this socialization is happening on

00:41:15   something that someone else controls and that someone else could lock up and could keep

00:41:19   Facebook out of, that's pretty bad for them. So I think this, there's no question why Facebook

00:41:25   would want this. That is very, no question, that is clear. As for the finances, I have

00:41:33   no idea. People who are more knowledgeable about this stuff than us seem to think this

00:41:38   is actually not a terrible price for this. But I think it just really shows that the

00:41:44   tech world is so big now. It's such a massive collection of multiple industries even. This

00:41:52   isn't even just one industry anymore. It's so big that extremely major things like this

00:41:57   can happen in it, and most of us don't know anything about it. And the idea of having

00:42:01   like a tech show that comments on everything in the world of tech is completely outdated

00:42:05   now because the world of tech is too big. And like one show not only doesn't have enough

00:42:10   time for that kind of thing, but even the hosts on the show, like you can't get enough

00:42:15   hosts on a show to make them experts in all these areas where big news is happening anymore.

00:42:19   Yeah, I agree. The only reason I think that maybe we don't understand this is how many

00:42:27   friends do you have, Marco, that you communicate with on a regular basis, regular enough that

00:42:33   you would desire to send them text messages that do not live in the United States?

00:42:37   Uh…

00:42:38   Exactly. How about you, John?

00:42:42   Well, we live in the United States, but if you lived in another country, you'd be communicating

00:42:46   with your friends in that country as well.

00:42:47   Well, but the thing of it is that the United States lives in a very—I don't know if

00:42:53   "sheltered" is the right word—but we live in our own little igloo.

00:42:56   Insular.

00:42:57   Thank you.

00:42:58   That's the word I'm looking for.

00:42:59   And so, looking at Europe, for example, in Europe it's very easy to go to another country

00:43:06   because all the countries in Europe are the size of Rhode Island.

00:43:09   And so—I'm going to get—just email Marco.

00:43:12   But anyway, the point is—

00:43:13   Yeah, good luck with that.

00:43:15   But the point is all kidding aside is that there's a lot more international contact in Europe and or from from everything

00:43:22   I've gathered anyways, and so it would not be surprising to me if

00:43:26   If it was a much more important thing to have international text messaging between countries

00:43:34   and I know I have a friend that lives in Wales and he happens to be American but he lives in Wales and

00:43:38   About a year and a half ago, maybe two years ago. He begged me to install Viber

00:43:43   which was some equivalent to WhatsApp,

00:43:47   that would let us exchange text messages for free.

00:43:49   And that was before iMessage,

00:43:51   or it was around the time that iMessage was a thing.

00:43:53   And I know that I wouldn't talk to, for example,

00:43:56   Mike Hurley nearly as much as I do

00:43:58   if it wasn't for the fact that he and I

00:44:00   can iMessage back and forth.

00:44:01   - Right, and iMessage was doomed to never be this thing

00:44:04   because you couldn't do it on Android.

00:44:05   - Yeah, exactly.

00:44:06   And the advantage of WhatsApp and Viber

00:44:08   and all these other things is that they are cross-platform.

00:44:10   So by virtue of them being international

00:44:13   being cross-platform, which are two things that don't matter that much to the three of us,

00:44:19   the cross-platform part anyway, and certainly don't matter that much to us in the international

00:44:23   part, I don't think we were ever really in a position that Americans would understand this.

00:44:29   Plus, most American cell phone plans, it's a fee to get unlimited text messaging,

00:44:35   but nearly everyone that I know pays it. In fact, I was one of the big holdouts to not get an

00:44:42   an unlimited text messaging plan. And even I eventually caved, I don't know, three

00:44:47   years ago, four years ago, something like that. So it's not surprising to me that

00:44:54   Americans don't understand it, but it's also not surprising to me that it is a pretty

00:44:58   big deal. I still don't have an unlimited texting plan,

00:45:01   which will surprise me. You don't, you barely have a cell phone.

00:45:04   I know, that's right. Well, I don't have one either because I've

00:45:06   been holding on AT&T. One of the reasons why everyone has these unlimited plans in the

00:45:11   the US now is because the carriers have removed most of the other sensible options to force

00:45:16   you to pay more money. It's just like the triple play deals that every cable company

00:45:23   and Fios pushes extremely hard on anybody who doesn't have all of their services.

00:45:28   It's similar with text message plans where I'm still using this grandfather like $5 a

00:45:33   month for a few hundred text message plans because I just don't need anything more than

00:45:39   But you know if you had to start a new line today your only choice basically is like

00:45:43   no texts and pay for each one which usually ends up being a lot or

00:45:47   Unlimited like in the us. There's almost no other options

00:45:50   Right now this whatsapp thing is just when I look at it

00:45:55   It looks like more sort of kind of useless churn in

00:45:59   the market for things that like we all know that people want but that we can't seem to get in a

00:46:07   in a nice, pleasant way.

00:46:10   People want to talk to each other.

00:46:11   The telephone was a nice way for people to talk to each other, but it had both real and

00:46:16   artificial barriers.

00:46:17   The real barriers were that the other person had to be there when you called them, and

00:46:20   then international calling is like a quarter second delay for the distances traveled, and

00:46:25   that was weird for real time.

00:46:27   And then the artificial barriers, well, they're kind of real too, with long distance fees,

00:46:31   because it would cost more money to call farther away because we had to pay for the infrastructure

00:46:34   to get there, but then the long distance fees scaled up on a scale that wasn't proportional

00:46:38   to the cost of making the call. That was all kind of weird. But people want to talk to

00:46:42   each other. And so instant messaging with the advent of the internet is like, well,

00:46:45   you know, now we don't need to pay long distance fees, I can talk immediately to someone in

00:46:49   another country, I just have to type or of course you can do email. Email is the one

00:46:52   that kind of sort of worked out. Although, you know, the terrible security decisions

00:46:56   led to spam, but at least there's only sort of one email. But instant message, there was

00:46:59   tons of instant messaging clients, and it was all surrounding us wanting to talk to

00:47:03   to each other in real time.

00:47:05   And all that stupid churn between ICQ and AIM

00:47:07   and Yahoo Instant Messenger and MSN and then Skype

00:47:10   and like all these different networks,

00:47:12   each sometimes getting critical mass

00:47:14   and nothing will ever be as big as ICQ

00:47:16   and I'll remember my ICQ number till the day I die

00:47:18   and then it just goes away and then AIM is big

00:47:20   and everyone's on AIM and all my friends are on AIM

00:47:22   and then SMS comes and everyone's texting.

00:47:24   Like all these things are churning around

00:47:28   the basic desire we have to communicate to each other

00:47:31   in more or less real time with maybe a little bit of asynchronous stuff allowed,

00:47:35   but shorter than an email, not a phone call, text to and from each other.

00:47:41   And WhatsApp was taking advantage of like, "Oh, SMS, this is an artificial thing where

00:47:45   they charge you 10 cents for these stupid things that they're piggybacking on analog

00:47:48   cell signals anyway back in the day." It was like it was free for the carriers and they would say,

00:47:52   "We can charge people 10 cents for these things. We'll make a mint." And they did.

00:47:54   But that was an artificial... People started to realize that was artificial. That's another

00:47:59   reason I hate SMS, it always struck me as like you are charging money for something

00:48:02   that should not cost as much, but people found it valuable, so they paid. And then as soon

00:48:06   as people could bypass that with WhatsApp and Vibe and Line and iMessage and all the

00:48:10   other apps that say, "We have access to the public internet over the data networks that

00:48:14   these same cell providers give us. Why would I pay 10 cents or pay for a texting plan?"

00:48:17   Well, because all my friends are on texts, because everyone texts from each other or

00:48:20   whatever. Well, WhatsApp and the other apps like it got enough people to say, "Hey, come

00:48:24   over here, it's cheaper or free and we don't charge you 10 cents per message and you can

00:48:29   do it across countries and we can eliminate all these other artificial barriers and everything

00:48:32   will be good.

00:48:34   But really, that was just another private company now being swallowed up by another

00:48:37   private company.

00:48:38   Like, I don't feel like we're making progress there.

00:48:40   It's just shifting around.

00:48:41   It's just like this big, you know, it's like a pile of chips on a table and we're shoving

00:48:45   the chips towards this corner.

00:48:47   Okay, now towards that corner, now towards that corner.

00:48:49   And it never is it landing in a place where you feel like, is there a sustainable way

00:48:52   that we can all talk to each other in semi-real time

00:48:54   or we're all in the same network

00:48:55   and we can all text to each other and it's, you know,

00:48:58   maybe it's not free but it's sustainable

00:49:00   with some pricing structure,

00:49:01   it's on a standardized protocol or anyone can implement,

00:49:03   or like, it's so hard to get to even a solution

00:49:07   as crappy as email where we kind of all agree

00:49:09   on the protocols even though the protocols are terrible

00:49:11   and lead to the scourge of spam.

00:49:13   Even that sometimes I think, well, at least we got email.

00:49:16   At least there's one email system

00:49:17   and we don't have to deal with every single day

00:49:20   every single decade or so, some new email service coming up,

00:49:24   like, oh, I can't send you email because I'm on the Gmail email,

00:49:26   and you're on the Hotmail email, and we can't send email.

00:49:28   Of course we can send email to each other.

00:49:30   This competition for the front end clients and everything,

00:49:32   but the back end is all interoperable.

00:49:34   And we have not achieved that with ways

00:49:36   to send little bits of text to each other.

00:49:40   And I think Facebook buying WhatsApp

00:49:42   doesn't bring us any closer to that goal, which makes me sad.

00:49:46   There's also, you know, I think, I mean, I've been beating the storm a little bit recently, but I think this is kind of

00:49:54   creepy or like

00:49:57   just kind of negative news to me because it's such a massive acquisition like it

00:50:01   It looks to me like Facebook is just like taking out a competitor. Like that's that's all this was is

00:50:08   Facebook got freaked out and has now neutralized a competitor and

00:50:12   Which they've done before, you know, that's what Instagram was

00:50:16   was. And it just seems like the web giants are so giant these days that they can afford

00:50:23   to buy pretty much anyone else besides one of the other web giants, even then sometimes

00:50:29   they might be able to do that, but they can afford to buy pretty much anybody, whoever

00:50:33   becomes a threat to their business. And this has to be limiting the amount of true innovation

00:50:39   and progress that we're seeing in our industry because, you know, it's pretty much impossible.

00:50:44   but like most big tech startups who are doing very well

00:50:49   are gonna have a really hard time turning down

00:50:53   a multiple billion dollar offer of a buyout.

00:50:56   And so this basically gives,

00:50:58   it basically gives Facebook and Google

00:51:01   and pretty much anybody who has enough money

00:51:06   and willpower to buy a multi-billion dollar company,

00:51:10   it gives them all assurances

00:51:12   that they're not gonna really be messed with by anybody.

00:51:14   And occasionally something will break out

00:51:17   and not take that route, like Twitter did that most recently

00:51:20   where they just went for the IPO instead.

00:51:22   - So far.

00:51:23   - Right, yeah, that's a good point.

00:51:25   But I just, I can't help but be sad

00:51:30   at what this actually does to the big picture

00:51:33   where there's so much less competition and progress

00:51:37   once everyone gets so big

00:51:38   they can just buy anyone who's a threat.

00:51:40   If your business is based on everybody being on your platform, if you're trying to be a

00:51:45   protocol, like email didn't have a company behind it, but Facebook is a company behind

00:51:49   it and has so many people on Facebook that it's like their goal is everyone should be

00:51:53   on Facebook.

00:51:56   If they perform well in their business plan, it's like we have to find the other thing

00:52:02   that is going to get enough critical mass that we can never compete with it, no matter

00:52:06   how good we make our product and buy it before it gets that critical mass and becomes so

00:52:12   expensive.

00:52:13   And I think they waited a little bit too long on WhatsApp because they always want to buy

00:52:16   it like they want to be sure that it would be something that they couldn't compete with.

00:52:20   Like, look, you know, Instagram's got too much mass.

00:52:22   Like no matter how good we make our pictures, features, we're never going to pull these

00:52:26   Instagram people away.

00:52:27   They've gotten too big.

00:52:28   We need to snap them up now.

00:52:29   And maybe they waited a little bit too long on Instagram too.

00:52:32   But you don't want to buy all these companies like, "Oh my God, they're a threat."

00:52:34   and you buy them for like $500 million

00:52:36   and they never would have been a threat

00:52:37   and they never would have gone anywhere.

00:52:38   It's so hard to tell, again,

00:52:40   getting back to the unpredictability of success

00:52:41   once you've crossed some threshold of value.

00:52:43   And in WhatsApp, it's that type of situation

00:52:47   where it's like, look how big they are.

00:52:49   And there's no way Facebook messaging

00:52:51   is ever gonna pull those people away.

00:52:52   Like they've got the critical mass

00:52:54   in the same way that we did, we got critical mass.

00:52:56   Our only option is to buy them

00:52:58   because that's what you do, that's the final play.

00:53:01   And you would hope that they would go for that from there,

00:53:03   again from the perspective of the strategy,

00:53:05   if they're doing well, they do that before

00:53:08   they cost $16 billion.

00:53:09   But it's actually worse to say,

00:53:11   well, they're too big now, I'm not gonna pay $16 billion,

00:53:13   let's just let them go.

00:53:14   Because they're never going to, you know,

00:53:17   they're never gonna make a messaging product

00:53:18   that dethrones WhatsApp.

00:53:20   WhatsApp will be dethroned by something else

00:53:22   but probably not Facebook.

00:53:23   So yeah, the strategy when you've got all this money

00:53:25   is we maybe waited too long,

00:53:28   but late is better than never

00:53:30   because if we just ignore them,

00:53:31   then they'll be there undoing.

00:53:33   Like, what if MySpace, I don't even know the timings of this work out, but what if MySpace

00:53:37   had the wherewithal to offer a newly born Facebook before it was anything, enough money

00:53:44   to eliminate it as a competitor, we'd all be talking about MySpace buying WhatsApp now,

00:53:48   or obviously we wouldn't because of those darn butterfly wings flapping.

00:53:52   But anyway, you get the idea.

00:53:55   That's the strategy.

00:53:56   If you're one of those companies where like, the only way we succeed is if we get every

00:53:59   single person in the world, like if we offer a feature, that's the feature that everybody

00:54:02   in the world has to use for that. You want to show somebody pictures and tell them about

00:54:07   your kid's birthday, you have to do it on Facebook. And if someone's using something

00:54:09   other than Facebook to do that, and those somebodies are hundreds of millions of somebodies,

00:54:14   we've screwed up and we need to buy that company. And yeah, that's from a consumer's perspective,

00:54:19   that's terrible. But if you are acting as Facebook, that's their strategy.

00:54:25   Our final sponsor this week is lynda.com.

00:54:31   lynda.com helps anyone learn creative software and business skills to achieve personal and

00:54:35   professional goals.

00:54:36   They have over 2,000 high quality engaging video courses taught by industry experts with

00:54:41   new courses added every day.

00:54:44   These courses span a huge range of difficulty and complexity and skill levels from beginner

00:54:49   to advanced.

00:54:51   The videos are very well produced.

00:54:53   They have animations and diagrams,

00:54:55   and then they even have, as Casey pointed out last time,

00:54:57   they even have like the scrolling transcript on the side

00:55:00   so that you can see what's being said,

00:55:02   you can scroll around,

00:55:03   and you can even click on a point in the transcript

00:55:04   and it'll seek to that point in the video.

00:55:06   Really cool stuff.

00:55:08   Here's the deal, you pay 25 bucks a month,

00:55:11   flat rate, for unlimited access to their entire catalog.

00:55:14   Over two million people worldwide are doing this,

00:55:18   and it's really great.

00:55:19   So the teachers of these things are experts in their field.

00:55:23   working professionals not just like some random person on YouTube they're

00:55:26   actually working professionals in this field that are experts and know

00:55:30   what they're talking about

00:55:32   and they have all sorts of stuff that they tell you about business strategies

00:55:37   all the way down to like you know management and then all the way down to

00:55:40   like development stuff you can learn iOS development, web development, you can

00:55:45   learn creative cloud apps if you want to brush up on Photoshop, learn how to use

00:55:48   InDesign, stuff like that.

00:55:51   Basic office stuff, advanced stuff in Excel,

00:55:54   or how to use QuickBooks,

00:55:55   how to use PowerPoint effectively.

00:55:58   Even media production stuff,

00:56:00   videography, podcasting, photography,

00:56:02   all this sorts of stuff.

00:56:04   They have an amazing course library here.

00:56:06   I went on there and learned a lot about

00:56:09   how to use Logic better to edit this show,

00:56:11   and just kinda get better at this whole field

00:56:16   that I've never had any training as an audio engineer,

00:56:18   and well now I have, kind of.

00:56:20   So check out lynda.com, L-Y-N-D-A.com.

00:56:25   They really have an amazing range of video courses here.

00:56:28   And again, 25 bucks a month gets you access

00:56:30   to the entire catalog.

00:56:32   And what's best is that you don't even have

00:56:35   to pay upfront to see.

00:56:36   If you go to lynda.com/atp, that's lynda.com/atp,

00:56:41   you can get a seven day trial for free.

00:56:46   So before you pay anything, you go there,

00:56:49   lynda.com/atp and start a seven day trial

00:56:52   and then watch some videos.

00:56:53   See, you know, anything, browse the whole catalog.

00:56:55   You will be shocked how many videos they have.

00:56:59   It's really quite impressive.

00:57:01   So once again, check out lynda.com at lynda.com/atp.

00:57:06   Thanks a lot to Lynda for sponsoring our show once again.

00:57:08   They're really a great service

00:57:09   and I personally have used them and recommend them.

00:57:12   - You know, when I looked at them a couple weeks back

00:57:15   they first sponsored. I saw this really long list of videos and I was like, you know, that's

00:57:20   a lot but not overwhelming. And then I realized I was only looking at the new videos area.

00:57:27   And come to find out there were 11 gajillion videos waiting for me. I just hadn't navigated

00:57:34   away from the new videos section.

00:57:37   Yeah, like if you just look at any of the categories, you know, like pick an application

00:57:42   you want to learn how to use better or pick a programming language that you want to learn.

00:57:45   And you can see it's pretty deep.

00:57:49   The pricing plan is so nice because when you have a huge selection like that, if you had

00:57:54   to pay even like a dollar a video, you'd be worried like, "Oh, is this the right video

00:57:58   out of the umpteen million that I can pick?"

00:58:00   Even if it was just a dollar a video, you'd spend all this time fretting.

00:58:03   It was just a flat fee.

00:58:04   Just sit there and watch videos.

00:58:06   Doesn't matter how many you watch.

00:58:08   Exactly.

00:58:09   Yeah.

00:58:10   All right.

00:58:11   put this off last week, and I think we should talk about it this week before it becomes

00:58:16   so stale that it's not worth talking about. It seems like it's that time of year. And

00:58:21   it's that time of year when everyone in the iOS development community says, "Oh,

00:58:25   Objective-C sucks, and we really need to get over it. We need to get away from it. We need

00:58:31   to move on to something better. Apple, why won't you help us?" And this was originally

00:58:36   originally, well, in my exposure, originally posited by John's piece called "Copeland

00:58:42   2010."

00:58:44   And I guess, John, would you like to describe simply what "Copeland 2010" was saying?

00:58:50   Can you summarize that for us?

00:58:52   Yeah, I think I don't have a link in here, but when did I write that?

00:58:55   2005 or something?

00:58:57   The Stone Ages.

00:58:58   Yeah, it was a long time ago.

00:58:59   Anyway, the point is it was before 2010.

00:59:01   And the point of my blog post is that I was worried about what Apple was going to do with

00:59:06   its language and API going forward, because it seemed like all of its competitors were

00:59:12   moving to sort of memory-managed, higher-level languages, and Apple was not.

00:59:15   They were sticking with a C-based language, Objective-C. This was all—yeah, it was 2005.

00:59:20   This was all before the iPhone and before all that stuff or whatever.

00:59:23   And Copeland is a reference to one of Apple's many failed attempts to get a next-generation

00:59:28   operating system.

00:59:29   They had the classic Mac OS, which is a really old-school operating system where any application

00:59:33   could write any part of memory, including the parts that are used by the OS and everything

00:59:37   like that, which meant that a badly behaved app that started writing memory to a bad pointer

00:59:44   would just scribble over random parts of memory and bring your whole machine down.

00:59:47   And that was just archaic, and everyone else was getting protected memory and preemptive

00:59:51   multitasking where the OS could take the CPU away from a process.

00:59:54   That wasn't true in the old Mac operating system unless the process yielded.

00:59:57   So it had these technical problems with its OS, and it could not figure out a way to get

01:00:02   next-generation operating system and Copeland was the highest profile failure.

01:00:06   I have a book on my shelf to my right that's uh Copeland was going to be Mac OS 8 and it's

01:00:11   called Mac OS 8 Revealed and it's a book published by Apple with an Apple logo from Apple Press

01:00:15   describing the next-generation operating system that would be Mac OS 8 and you know it's Copeland

01:00:20   basically. That operating system never shipped. Apple shipped something called Mac OS 8 but it

01:00:25   was not Copeland. There were other failed attempts and other weird partnerships and this was all the

01:00:29   the dark times of Apple's existence.

01:00:32   But the Copeland 2010 thing was me saying,

01:00:35   if Apple doesn't get its act together and come up

01:00:38   with whatever it's going to plan for its next generation

01:00:41   programming language and API, you

01:00:42   could find itself in the distant future, like the year 2010.

01:00:46   You know, I'm writing this in 2005.

01:00:48   I've read Arthur Clark as a kid, so of course I'm

01:00:50   going to pick 2010.

01:00:51   If they don't get their acts together,

01:00:53   they could find themselves in a situation

01:00:54   just like they were with Copeland, where everyone else

01:00:57   has something, they don't have it,

01:00:58   and they don't have a viable plan to get it.

01:00:59   because it's not so easy to snap your fingers and get a new modern language runtime and

01:01:04   API to go with it.

01:01:07   I also wrote another article in 2010 called "Copeland 2010 Revisited" explaining what

01:01:12   I got wrong and why about, you know, about, particularly about the year 2010 because people

01:01:17   are saying, "Well, here we are in 2010 and Apple's not having any problems because they

01:01:20   don't have a memory-managed language and API."

01:01:22   And there are lots of other reasons for that.

01:01:25   But in general, the major failing is like anytime you try to predict the future, you

01:01:27   just pick some round number in the future that seems so distant and really it's only

01:01:30   five years away and that's just, you know, bad thinking and a common mistake when trying

01:01:34   to deal with the future. But anyway, as Casey said, the topic came back up again and I'm

01:01:40   not sure why it came back up again and I'm not sure what people are saying about it that's

01:01:43   different than what's been said before. Maybe Casey can enlighten me.

01:01:46   Well, there were these two posts. There was one by Ash Farrow and one by Steve Streza,

01:01:50   which we'll put in the show notes, and basically with the, you know, just saying we need to

01:01:56   to play subjective C and with a few things that we need

01:01:59   that would be better.

01:02:00   And then our friend Guy English wrote a post

01:02:03   in response to these that basically said,

01:02:06   and forgive me if I'm butchering the argument,

01:02:08   but basically said it's easy to hand wave

01:02:11   and say we need something better,

01:02:13   but we need more specifics.

01:02:15   What exactly needs to be better and how would that work?

01:02:19   It's easy to just say, oh well,

01:02:23   we need something that's higher level.

01:02:25   "Okay, well, does that mean garbage collection?

01:02:27   "Does that mean reference counting in a different way?

01:02:30   "Does that mean a dynamic type?

01:02:33   "Does that mean all these decisions

01:02:35   "about higher level languages?"

01:02:38   And it seems like not a lot of the arguments

01:02:41   contain answers to questions like that.

01:02:43   It's just like, "Oh, we have to have

01:02:44   "something that's newer, and that will by default be better,"

01:02:48   which I think is itself a flawed argument.

01:02:52   - Yeah, it seemed like, you know,

01:02:54   It's tough because I have tremendous respect for Ash and for Steve, but it seemed very

01:02:59   hand-wavy.

01:03:01   This argument tends to go around regularly in the iOS development circles, and it seems

01:03:07   like every year or two, everyone gets all upset about the fact that we're still writing

01:03:12   in Objective-C. But the problem that Guy seemed to have, and I concur with it, is, "Okay,

01:03:19   that's lovely that you think that Objective-C is bad, but tell me what's bad about it

01:03:24   or tell me why we need something new.

01:03:27   And you know, before ARK, Automatic Reference Counting, and before Grand Central Dispatch

01:03:33   and blocks, I would have probably said the same thing.

01:03:37   And I probably would have said that, you know, not having closures in 2012, 2013, that's

01:03:43   a problem.

01:03:44   But I don't remember when blocks became a thing, but it was, I want to say 2012.

01:03:49   But so up until 2012, I probably would have agreed.

01:03:52   And in summary, there were a couple of really big and important advancements in the last

01:03:57   couple of years that I really think brought Objective-C to a position where it's relatively

01:04:04   modern in its own archaic ways.

01:04:09   And so I don't really see what's so terrible about it.

01:04:13   And I can tell you that Cocoa and Cocoa Touch, which are the frameworks, they are unbelievably

01:04:21   good.

01:04:22   They're truly amazingly good.

01:04:24   And I love me some C#, I really do.

01:04:27   But the .NET framework, while very solid, is nowhere near as good as Cocoa and Cocoa

01:04:31   Touch.

01:04:32   And so I don't really see what the urgent burning need is to get rid of Objective-C.

01:04:38   Considering I've had the urgent burning need to get rid of objectivity since 2005, you

01:04:44   won't be surprised to learn that I still feel it.

01:04:46   And really what I was writing there, the audience to that was not so much developers trying

01:04:52   to tell them that the language they're using is bad or something, but it was really Apple.

01:04:56   And I think that by the time I was getting a little bit panicked about this, well, part

01:05:00   of it is kind of like how someone who grew up in the Depression has always panicked about

01:05:05   money and worried about not having enough food and stuff like that.

01:05:07   If you live through the whole Copeland disaster, obviously you're going to be a little bit

01:05:11   more panicky about, "Oh my god, what is Apple's plan for its next generation?"

01:05:15   Whatever, because I don't want to see that thing that—you know, the Apple today is

01:05:17   so different than the Apple then that it's a little bit ridiculous.

01:05:19   But a lot of that is where that's coming from.

01:05:22   As someone who experienced a company that they admired and thought should be successful

01:05:26   almost died because they failed to think about stuff like this ahead of time.

01:05:30   But as the years pass, I don't get more relaxed about this.

01:05:34   I continue to worry about it.

01:05:37   My point would be like, if I was in charge of Apple,

01:05:41   I would have had starting in like, starting basically

01:05:43   when Java, say you were totally asleep at the wheel

01:05:46   and Java comes on the scene, I would have had

01:05:48   multiple teams, multiple small teams of the fanciest,

01:05:53   you know, computer science, PhD, whatever.

01:05:56   Maybe these teams don't know about each other.

01:05:57   Maybe they're on different continents, you know, whatever,

01:06:00   working on the next generation language runtime and API,

01:06:05   all those things.

01:06:06   And most of those teams I imagine would fail and produce nothing useful, but your Apple,

01:06:10   you have all this money, I'm talking about the modern Apple budget.

01:06:14   Maybe the old Apple could only afford to have one or two teams with a few people who aren't

01:06:17   that good.

01:06:18   But at this point, Apple could have 10 teams with the 10 best people money can buy all

01:06:22   working on this.

01:06:23   And the reason I bring this up is not so much that, "Oh, we need to replace Objective-C next

01:06:26   year."

01:06:27   If at WWDC 2016, Apple doesn't replace GoKone Objective-C, they're doomed.

01:06:31   Of course not, right?

01:06:32   because doing this, making a new language and an API is so incredibly difficult and takes so long

01:06:38   to wring out. And you have to wring it out, not just in these little labs and these competing teams,

01:06:43   but then you actually have to build real apps with it. And you have to sort of,

01:06:46   like, it's just so hard to do this transition, so hard to make. I would say the API is harder

01:06:50   to make than the language and runtime. People focus on the language and runtime so much.

01:06:54   But that's kind of like, you know, that's basically just picking from, you know, what do

01:06:58   you want? What features do you want? And they can do experiments with that. But making the API that

01:07:02   that matches up with the language, because I've always said that you can't just have the new language.

01:07:05   You have to have the API and the language to go with it.

01:07:08   And Cocoa has been in development basically since like the 80s.

01:07:11   And it's taken that long for Cocoa to get from where it was in the 80s to where it is now.

01:07:15   So assume whatever thing you're going to make to replace Cocoa

01:07:18   is going to take at least as long to get at least as good, you know, in terms of relatively, you know,

01:07:23   so you're not going to jump from, "Okay, Objective-C is done.

01:07:27   Now everyone try this new language and this new API, and it will be better than Cocoa."

01:07:31   It won't be out of the gate.

01:07:32   It'll be worse in the beginning, just like OS X was worse than classic Mac OS in almost

01:07:37   every respect for years.

01:07:39   It took years to develop, and it was false starts with the whole Rhapsody project and

01:07:43   everything like that.

01:07:44   I know how long it takes to do this, and I know how badly wrong it can go.

01:07:50   Think of every other company that's tried to do this.

01:07:51   Even Microsoft with C# and a common language on time, which I would say is the biggest

01:07:55   success story, hasn't been a clean win in terms of getting rid of Win32 and now Win64

01:08:01   if you want to call it that, and all this other stuff.

01:08:03   And that also took years to be adopted widely for developers.

01:08:06   Yeah.

01:08:07   And they put tons of money and tons of—you can't wait.

01:08:12   You can't say, "Objective C is fine now, and it's going to be fine for five years,

01:08:15   therefore we need to do nothing."

01:08:16   Assume that it's going to take you 10, 15 years to get this crap figured out, and assume

01:08:20   you're going to fail a couple times before you do, because I think those are safe bets.

01:08:24   Someone in the chatroom posted, "Well, maybe Apple's just holding its cards close to

01:08:28   its vest."

01:08:29   That's entirely possible.

01:08:30   As with anything in Apple, you have no idea what the hell's going on over there.

01:08:33   They could have 17 teams full of people who they kill after their three years are up if

01:08:36   they don't produce something useful, and they hide the bodies and we have no idea what's

01:08:39   going on.

01:08:41   That's where I'm coming from with this.

01:08:43   Not so much from the perspective of, "I'm developing today, and I think this is ridiculous,"

01:08:46   because I do think a lot of that stuff is ridiculous, but I feel like I understand how

01:08:50   incredibly hard it's going to be to make something that's better than this.

01:08:54   And the second part of this is that I think a lot of people don't want to sign up for

01:08:57   and maybe is not relevant to them, is that this day will come.

01:09:01   And I think a lot of people either are of the opinion that this day will not come in

01:09:05   their lifetime, which may be a very safe bet, in which case, you know, they feel justified

01:09:10   in saying, "Look, I'll be dead or retired when this happens, so I don't have to worry

01:09:12   about it, so it's not on my radar at all."

01:09:15   And hell, maybe the current leaders of Apple think, "I'll be dead or retired by the time

01:09:18   this happens."

01:09:19   But I'm thinking longer term, like, "Yes, I and everyone I know, I'm going to die, but

01:09:25   But if Apple wants to live on, or if we as humans want to live on, there will come a

01:09:28   day when it is unacceptable to have a pointer that you can scribble all over the memory,

01:09:32   yes, just of your own process, sure, but that's barbaric.

01:09:36   That's going away.

01:09:37   We all agree it's going away.

01:09:38   It's just a question of the timing.

01:09:39   And a lot of people think, "Well, the timing is not in my lifetime, therefore I don't care

01:09:43   about it."

01:09:44   But someone's got to care about it, otherwise Apple's going away.

01:09:46   And if you don't care if Apple goes away, you know, then fine.

01:09:49   But someone at Apple, presumably, should care if Apple goes away, even if they're retired

01:09:54   when it happens.

01:09:55   Maybe I'm thinking too long term, maybe this is not how human beings think, and I just

01:09:59   have to accept that Apple is going to go under in 75 years because they're never going to

01:10:03   get away from Objective-C and someone else is going to replace them and that's the way

01:10:06   of the world and I should just be okay with it.

01:10:07   But that's where I'm coming from with this.

01:10:10   And that's why I think calls for like, "What specifically do you want?" or whatever, as

01:10:13   many people pointed out, that's what Apple is supposed to figure out.

01:10:16   It's not our job to come up with Apple's next generation language in retirement, it's their

01:10:18   job.

01:10:19   And how do they do it?

01:10:20   It's going to take them a whole bunch of tries and it's going to be really hard and they

01:10:23   and they should have been started working on it two decades ago when it was obvious

01:10:26   that this is the way that the world is going.

01:10:28   And it should have always been obvious this is the way it always goes to higher level

01:10:31   languages.

01:10:32   So that's what I'm fretting about, and it's kind of an esoteric concern that no one really

01:10:35   cares about.

01:10:37   But the rank-and-file people who have to deal with Objective-C every day, they see what

01:10:41   other languages are like.

01:10:42   And those other languages have features that everyone agrees are good that they wish they

01:10:46   had an Objective-C. And it's like, well, you can't just have that feature.

01:10:48   You can't just have the native regular expressions or nicer

01:10:53   strings or managed memory and not having to deal with pointers

01:11:00   and stuff like that.

01:11:00   You can't just tack them on.

01:11:04   But they see them in other languages.

01:11:05   They see them in contemporary languages

01:11:07   that are doing similar things.

01:11:08   And they say, well, everyone agrees that's good.

01:11:10   Why do I have that here?

01:11:11   And that kind of discomfort is maybe

01:11:14   how this type of stuff begins.

01:11:15   But this is not something that can begin from the outside.

01:11:17   It can't be a bunch of developers complaining about Objective-C. It can't be developers

01:11:21   leaving the platform because they don't like Objective-C, because that's not going to happen

01:11:23   as long as they continue to sell apps.

01:11:25   It has to be from within.

01:11:26   So this is something that Apple needs to undertake, and that's always been my thrust with the

01:11:31   whole Copeland 2010 thing.

01:11:32   It's not telling developers what to do, it's trying to tell Apple what to do, and we know

01:11:36   how successful that usually is.

01:11:37   Right, but the problem is that as someone who has a leg in two worlds, there are definitely

01:11:43   things about Objective-C and Cocoa that I wish I had when I do my day job of writing

01:11:50   C#.

01:11:51   Like Grand Central Dispatch is a great example.

01:11:53   It is unbelievably easy to just throw things onto random queues and to throw things onto

01:12:00   the main thread without even having to think twice about it.

01:12:03   And C# has gotten better with that over the years, but Apple did a great job.

01:12:08   Now granted, the syntax is unbelievably bad, and there is an entire website whose URL I

01:12:15   can't mention without having a horn go off, but there's an entire website based on the

01:12:20   syntax for how to write blocks properly.

01:12:24   And that's probably not a good sign.

01:12:27   But nevertheless, there are things about Cocoa, this antiquated language that we all want

01:12:32   to throw away that I—or Cocoa's a framework—but there's things about Objective-C and Cocoa

01:12:37   a pair that is supposedly so antiquated that I would love to have in Objective-C.

01:12:43   And it doesn't mean that you're wrong, Jon, but I don't see the urgency that perhaps

01:12:51   a lot of other people see.

01:12:53   I concur that it needs to be being worked on, but I don't know that we're at the

01:12:58   day where they need to flip the switch.

01:13:00   And I don't think you're saying that either, but it seems like it's still a little bit

01:13:05   down the road to me as long as there's continued improvements to both Cocoa and Objective-C,

01:13:14   which there are.

01:13:15   Well, like, the urgency should be at Apple, and I understand the anti-pattern they're

01:13:19   defending against is, if you spend all your time worrying about your stupid next generation

01:13:23   thing, then you take your eye off the ball, which is people making Objective-C better,

01:13:26   people working on Cocoa. Like, Apple is so about focus, I can totally understand and

01:13:29   say, "Oh, that's a sucker's bet. You do not want to spend all your time coming up with

01:13:33   with these crazy new APIs, these crazy new languages,

01:13:36   you're taking your eye off the ball.

01:13:37   You should be making the products that you have now better.

01:13:39   Like what they're doing with Objective-C and LLVM,

01:13:41   like that's exactly what they're supposed to be doing.

01:13:43   And any effort they spend, so they might think,

01:13:45   any effort they expend on like,

01:13:47   what is the next generation pie in the sky,

01:13:49   architecture astronaut crappy thing

01:13:51   that we're supposed to be doing,

01:13:52   that is just like, that's not in our DNA.

01:13:54   We don't worry about that or whatever.

01:13:56   And I understand the urge not to fall into that trap,

01:14:00   but the other trap is,

01:14:02   we will never have to do that.

01:14:03   We will get there by increments starting from C.

01:14:05   We will have pointers forever until we don't.

01:14:07   And that will somehow make that transition.

01:14:09   Like, how do you get from point A to point B?

01:14:11   Like, it's kind of like what they tried to do

01:14:13   with the classic Mac OS.

01:14:14   Copeland was like, we can try to keep

01:14:16   kind of some kind of compatibility

01:14:18   and old style Mac apps will be able to scribble

01:14:20   all over memory, but we'll make these new style apps

01:14:22   that run on this new kernel

01:14:24   that are protected from each other.

01:14:26   And eventually all the old apps will go away.

01:14:28   I'll be able to translate.

01:14:29   Like it was an idea to transition

01:14:31   into protected memory and preemptive multitasking,

01:14:33   maintaining backward compatibility

01:14:35   with existing classic apps

01:14:36   by allowing them to still have free random memory,

01:14:39   but just like the device drivers and the new apps wouldn't.

01:14:41   Like it was a hybrid type incremental solution

01:14:43   and they could never pull it off.

01:14:44   And it's not to say they couldn't pull off

01:14:46   because it was incremental,

01:14:47   it's just to say that I think history has shown

01:14:50   that the thing that, the next generation thing

01:14:53   will be very different from the previous thing.

01:14:56   It won't be the previous thing

01:14:59   just improved in small increments.

01:15:00   It'll be something entirely, very often something entirely different from a different company,

01:15:03   which is not what you want.

01:15:05   Apple managed to do it to itself by saying, well, sort of, like we sent our CEO away in

01:15:09   1985 and he made another company and now he made a new OS and we're just going to bring

01:15:14   that back.

01:15:15   And that's our new OS, convenient.

01:15:16   That was all secret plan all along.

01:15:17   You see, it was very clever.

01:15:18   Anyway, it was a complete replacement.

01:15:20   Like people objected on Twitter, citing like OS X as a complete rewrite of the Mac operating

01:15:25   system.

01:15:26   From the perspective of the operating system, it is a different operating system.

01:15:29   It has a compatibility layer that was to virtualize

01:15:33   for classic apps and everything like that,

01:15:34   but holy cow, is it different than classic Mac OS.

01:15:37   It's Unix for crying out loud.

01:15:38   So incredibly different.

01:15:39   - I know this.

01:15:40   - That was the thing, yeah, exactly.

01:15:41   (laughing)

01:15:42   That was the thing that worked, right?

01:15:44   Most often, the thing that replaces you

01:15:46   is radically different and also from a different company.

01:15:48   So if Apple doesn't want that to happen,

01:15:50   if they don't want the next thing to be radically different

01:15:52   and also from a different company,

01:15:53   they need to balance their desire

01:15:55   not to take their eyes off the current ball,

01:15:56   which I agree with,

01:15:57   with the reality that eventually you've got to get away from pointers. Not this year,

01:16:04   not this decade, but whenever you think it is in the future. I've never met anyone who says,

01:16:08   "Nope, pointers are going to be forever." 7,000 years from now, people will be writing programs,

01:16:12   and if they de-reference a bad pointer, they're going to scribble all over memory. That is not

01:16:16   going to happen, right? And, well, Apple will be gone then, it doesn't matter. I guess it just

01:16:20   depends on what time horizon you consider fruitful to think about. And I'm thinking about time

01:16:25   horizons that I myself would have to say are perhaps not fruitful for me to be

01:16:29   thinking about but that's that's those are the type of things I think about and

01:16:32   I think someone at Apple somewhere should be high minded enough to realize

01:16:36   this is concern and to start doing something to help with that. See I'm a

01:16:42   lot less convinced that this is inevitable that that a progression like

01:16:48   this has to happen even within a time span of like you know 20 years 30 years.

01:16:52   How about 200, 300? Pick your time scale. Everyone agrees it's gonna happen, right?

01:16:57   Well, sure, but I think...

01:16:58   So you were just arguing over the number then, that's it?

01:17:01   I think objective C, modern objective C, and the tools that we have for it, are so much more advanced than where it was five or ten years ago.

01:17:12   And, you know, I think that we, I don't think modern Objective-C is as far away from what

01:17:20   people want as they think when they write blog posts like this. Like, if you look at

01:17:24   a lot of the complaints or a lot of the things people say it needs, a lot of them are APIs,

01:17:30   not part of the language. A lot of them are, like, really fairly minor cosmetic details,

01:17:34   almost. And, you know, a lot of it, it already has. And, you know, looking at the history

01:17:41   of programming languages. There's this assumption that you've said that most of these posts

01:17:46   are based on, which is that everything always moves higher level as time goes on. But that's

01:17:51   not necessarily true. Stuff moved higher level at the beginning—

01:17:55   It's true with bumps. Obviously it's not a straight line, but it's true the trend

01:17:58   line. Sure, but there are certain things that kind

01:18:01   of settle in and become kind of locked in. And I think one of the greatest examples of

01:18:07   is C. You know, C has been around forever. No part of it is new, except blocks, but that's

01:18:15   about it. You know, no part of C that in general use is really that modern. And yet it's been

01:18:22   around forever and it's everywhere. And every language, usually languages are written in

01:18:28   C, usually, you know, languages have tons of C modules that can be added on. Anything

01:18:33   that high performance is required is usually written in C. You know, there's... I would

01:18:38   not, historically, I would not bet against C.

01:18:40   >> But you have to. You know it's going... like, it's not going to go away in the same

01:18:44   way Assembly didn't go away. I mean, hell, even Machine Code didn't go away. Like, people

01:18:47   were writing game consoles, someone's writing some hexadecimal numbers that they know are

01:18:51   Machine Code, right? It's obviously like a layer cake, but C will lose its primacy eventually,

01:18:56   the same way Assembly lost its primacy as the way you program computers, the same way

01:18:59   that Machine Code did. C is just having a much longer life than... I don't know, has

01:19:03   had a longer life than assembly? I'd have to look up the numbers to see, but certainly assembly had

01:19:07   a longer life than writing a machine code because it was so incredibly unfriendly. But all you're

01:19:12   arguing about is time scale. You think like, "Oh, this is a long plateau." You're right, it is a

01:19:16   longer plateau. How long is the plateau going to be? But I think the systems that we have now that

01:19:21   do use higher level languages are out there enough to sow a little bit of discontent, even in just

01:19:26   the regular rank and file people who find it so much less verbose, to get sort of the same

01:19:32   operation done in a higher level language like Python or Ruby or something like, "Boy,

01:19:35   I have to do so much less typing and it's so much more clear what I'm doing." It's just

01:19:41   more concise. It's a higher level language. I can do more with less typing. I can be more

01:19:45   clear with my intent. Even things like Go where, you know, implicit parallelism and

01:19:51   other abstractions that allow you to express yourself in a way that would not be possible

01:19:55   in C, even in a language that's not particularly higher level than C because Go is very similar

01:20:01   to C but with like better libraries and built-ins and stuff. Like, because of all the existing

01:20:06   high-level languages that people do other kinds of development in, it allows them to

01:20:10   see what the future might look like, even if we're not quite ready for it today. And

01:20:14   I think that's, I mean, that's the beginning of the writing on the wall for C-based languages.

01:20:19   And you know, you're saying I wouldn't bet against C and it's locked in. Like, those

01:20:24   are all relative terms. Like, if I start throwing out big year numbers, eventually you agree

01:20:29   with me. But you don't want to agree with them in any year number that you can envision either

01:20:33   being alive during or envision anyone you know being alive during. And maybe that's just human

01:20:39   nature, but everything just depends on what the timescale looks like. And there are just

01:20:44   continuities where suddenly you make a great leap forward because of some reason. Because

01:20:47   an earthquake wipes out Apple and Google and some new company has to rise from the ashes and it

01:20:51   bases everything on Erlang or something and we enter the new Erlang age. I'm trying to think

01:20:56   think of a crazy language. But yeah, I think your desire not to think about anything beyond

01:21:03   C may be well-founded because for your entire career you'll never have to think about that,

01:21:08   but your grandkids probably will.

01:21:09   Yeah, I mean, and I think, I totally agree that given a long enough time scale, you're

01:21:15   right. That given a long enough time scale, this will have to be replaced. But I think

01:21:21   it's pretty likely that by the time that happens,

01:21:25   Apple might not be that relevant,

01:21:27   or we might not be running the same OS even.

01:21:30   - Well, if they don't listen to me, of course not.

01:21:32   (laughing)

01:21:33   - Right, I think there's a lot of things

01:21:37   that keep Objective-C as it is in power,

01:21:42   and part of it is there's the whole tool chain

01:21:44   that kind of requires it, but even the reasons why

01:21:48   things that are compiled down to Objective-C

01:21:50   various toolkits and stuff haven't really been huge is mostly because, you know, Objective-C,

01:21:56   as I said before, it's close enough in a lot of ways to what people actually want. And,

01:22:01   you know, you can say, "Oh, look, the brackets are ugly," and, you know, that's mostly

01:22:06   people who are unfamiliar with it who say that, and then once they get familiar with

01:22:09   it, it just stops mattering because, you know, every language looks weird but it's unfamiliar

01:22:13   to you. And I think--so I think it's close enough to a lot of what people want. I think

01:22:20   a lot of the alternatives are not clear cut. Like if you say, "Okay, well you shouldn't

01:22:25   even have to think about memory ever again." Okay, well then, you know, which memory management

01:22:29   model do you pick? And then that's not an easy question. You know, the question of types

01:22:35   and how they're implemented, that's not an easy question. But also we got this great

01:22:39   like reset with the rise of mobile where efficiency is suddenly a lot more important than it was

01:22:46   in 2005. Because in 2005, if you're building a desktop app, then the CPUs were so powerful

01:22:54   back then for desktop apps for most types of use that you could do anything with the

01:22:57   language. You could have the language having tons of overhead and tons of dynamic safety

01:23:01   stuff and it'd be fine. Whereas in mobile, that was a great reset. And obviously, mobile's

01:23:07   getting faster, it will keep getting faster, and eventually this will become a lot less

01:23:13   of an advantage, but it sure has helped iOS so far that most of the apps people use are

01:23:19   written in a very low level language, or at least are compiled down to a very low level

01:23:24   language so that they have a lot less overhead than say Android apps. And there's different

01:23:30   things like just-in-time compilation that have been very advanced in recent years, but

01:23:33   still the compiled C-based language that is mostly static and fast has a lot of advantages

01:23:44   in mobile. And what's different in mobile is that the power budget is so much tighter

01:23:50   that it actually matters not only for speed but for battery life. And so this will continue

01:23:54   to matter for a while. And you're right, eventually it won't over a long enough time scale. But

01:23:59   But I think, I'd say we probably have a good 10 years at least where this will continue

01:24:04   to matter and where it would be unwise –

01:24:06   You're just picking around numbers.

01:24:08   That's true.

01:24:09   I think we have another 7.2 years.

01:24:11   Yeah, I know.

01:24:12   I know.

01:24:13   It's the same thing I did with Pick with 2010.

01:24:14   Yeah.

01:24:15   In the Revisited article, I basically said like in 2005, what I didn't see coming in

01:24:18   2005 was, you know, the iPhone.

01:24:19   I mean, who did, right?

01:24:20   But like the prominence of mobile, right?

01:24:23   And that – I wouldn't call it a reset.

01:24:24   It's a delay.

01:24:25   And it could be a massive delay.

01:24:26   I forget what I said in the Revisited article.

01:24:28   like is it a 20 year delay? It adds at least a decade, because all the things you said

01:24:33   are true. Mobile, being low level, is such a massive advantage in mobile. That's why

01:24:38   Apple was able to do these. Everyone thought the iPhone was fake, because you can't do

01:24:42   that. There were the Java apps that were running on the stupid smartphones then. There's no

01:24:46   way you can do stuff like that in those jobs. You need to have a crazy desktop powered CPU

01:24:50   in there. Well, if you have a language that's more efficient than Java on your phone, you

01:24:54   you could do pretty amazing stuff.

01:24:55   And yeah, so this has been an advantage

01:24:58   and it's a sustainable advantage

01:24:59   and Apple's investing in that advantage

01:25:01   and making Objective-C better and everything.

01:25:02   So I don't know how long that delays things.

01:25:05   It delays things for a long time, you're right.

01:25:07   But on the other side of the,

01:25:10   like, yeah, it's gonna happen eventually,

01:25:11   but not in my lifetime.

01:25:12   I always think about like,

01:25:13   we were just talking about WhatsApp

01:25:15   or think about any, you know, think about MySpace.

01:25:18   Things move faster in this industry

01:25:20   than most of us are comfortable with.

01:25:23   like even just reflecting on.

01:25:25   Every time I see the timeline of something that like,

01:25:29   oh, this happened a long time ago, way back in 2004.

01:25:32   How long was it before Facebook even existed?

01:25:35   How many years ago?

01:25:35   How old is Facebook even?

01:25:37   How old is Instagram?

01:25:38   How old is Twitter?

01:25:39   All these things that we accept as institutions.

01:25:40   How old is WhatsApp that just costs $16 billion?

01:25:43   In some respects, things have a lot of momentum

01:25:47   and mobile's going to keep us,

01:25:49   to keep Apple's advantage of objectivity relevant

01:25:52   really long time, but in other respects, that's what I'm talking about, the discontinuities.

01:25:56   The graph is not smooth. There's long plateaus where nothing changes, and there's a big spike

01:26:00   where crazy things change, and you never know what's coming down the pike. So it could be

01:26:05   that we are all stuck with C-based languages for our entire lives and careers,

01:26:09   but it could be that 20 years from now something dramatic happens that we didn't predict.

01:26:15   And suddenly all C-based languages are swept under the carpet because the amazing new company that is

01:26:21   is becoming to prominence uses a language that's super high level that everybody loves

01:26:25   and everyone looks down at the barbaric people slinging pointers and relegates them to writing

01:26:30   device drivers for whatever.

01:26:32   Well, you know, I'm really upset at Marco because I was going to make the same point

01:26:37   about mobile kind of resetting everything.

01:26:40   I already made it in the Revisited article in 2010.

01:26:42   I know, I know.

01:26:43   Well, okay, so I'm upset.

01:26:44   Opera did it first.

01:26:45   I'm upset at both of you then.

01:26:47   But the other thing to consider is if this supposed iWatch is really a thing, I mean

01:26:53   that kind of does this whole being near the metal, it makes being near the metal a huge

01:27:00   advantage all over again.

01:27:02   Well, is it, you think the power constraints of the watch are that much different than

01:27:06   a phone?

01:27:07   I mean, they're probably like 2x, but maybe not 10x less.

01:27:10   I don't know.

01:27:11   Yeah, but do you think you'd be in a position that running a just-in-time compiled or a

01:27:17   or a common language runtime kind of setup is really going to be a good call on a watch?

01:27:23   I don't think it's as big a delay as going from a laptop or a desktop to a phone. I think

01:27:30   it's a smaller jump going from a phone to a wearable.

01:27:32   Well, that's probably true. But yeah, you're right. The continuation of mobile and battery

01:27:38   powered stuff is going to be a substantial delay in making any kind of high level language. It may

01:27:42   end up being a disadvantage to anybody who doesn't have a C-based language, but it already is.

01:27:47   Talk to the Windows. I mean, it's hard to say because,

01:27:50   again, it's kind of like the, you know, working backwards from success. It's like,

01:27:56   well, the iPhone is so awesome. And as I said, the iPhone couldn't have existed probably without

01:28:01   this type of language. But if Microsoft had not been so incompetent in its mobile strategy and

01:28:07   and had come up with an OS like iOS years before the iPhone

01:28:12   using C#, it would have had terrible performance

01:28:16   and been like, everyone would have looked at it and said,

01:28:19   why the hell are you doing this?

01:28:20   You're making everything so slow.

01:28:22   CPUs can't handle this.

01:28:23   There's no mobile GPU that can sling as many pixels.

01:28:26   It's embarrassing.

01:28:27   And it would have reminded me of OS X.

01:28:28   All of that was 100% true of OS X 10.0.

01:28:31   A composited GUI running all in the CPU,

01:28:34   it was slow as balls.

01:28:35   you couldn't even scroll Windows full of text.

01:28:37   It's like, this is your next generation operating system.

01:28:39   I can't scroll a window full of text without it stuttering.

01:28:42   Forget it.

01:28:43   And Apple's like, no, no, no,

01:28:44   we think this is the right way to do things.

01:28:46   Eventually the hardware will catch up.

01:28:48   And it did.

01:28:49   So if Microsoft had fielded, you know,

01:28:52   sort of Windows Phone 7

01:28:53   or whatever the hell number they're up to,

01:28:54   way back in the day, or done something like iOS on C#

01:28:57   and it was slow, that may have, you know,

01:29:00   and they became successful.

01:29:01   They became, you know, the iPhone

01:29:02   because they did it first and they got,

01:29:04   and they made this amazing product,

01:29:06   and eventually it got good enough,

01:29:08   and Apple was like the Johnny-Come-lately,

01:29:11   you wouldn't be able to make the argument that like,

01:29:13   oh, well, the only way you can do this type of thing

01:29:15   is with a low-level language.

01:29:16   I think something like C# and the common language runtime

01:29:19   now are good enough to make something kind of fast

01:29:22   on a phone.

01:29:24   It probably would have taken longer

01:29:26   to be as fast as the iPhone is,

01:29:27   and it wouldn't have been as good,

01:29:28   but we wouldn't have the iPhone to compare it to,

01:29:30   so we would be like,

01:29:31   oh, this is as good as it can possibly be.

01:29:33   That's what the whole idea that the way things currently

01:29:35   are is the only way they could possibly be.

01:29:38   I have very big objections to that.

01:29:41   And it's human nature to just assume that that's the case.

01:29:43   So while I think that objectivity has been such

01:29:45   a big advantage to Apple, I don't think you can say,

01:29:47   well, you could never have a phone-type device with C#.

01:29:50   Because C# is not that slow.

01:29:52   It's slower.

01:29:54   But I mean, hell, people can do amazing things

01:29:57   with stupid JavaScript, just crazy.

01:30:00   We have those classic Mac emulators and stuff

01:30:02   inside a browser window and JavaScript.

01:30:04   Talk about a slow language.

01:30:05   It's not designed to be fast at all.

01:30:07   So I'm not convinced that Objective-C is the only way

01:30:12   that we could have iPhone-like devices in our lifetime.

01:30:14   And I think even the current state of Windows Phone,

01:30:17   which yes, I know, uses code that--

01:30:18   quote unquote, native code to do its things that

01:30:20   have to actually be fast, and the same thing with Android

01:30:22   with its native code.

01:30:23   And I understand all these things

01:30:25   that they have to do to be faster.

01:30:27   But I don't think C# is necessary to have smartphones,

01:30:31   for example, or Objective-C if necessary, to smartphones.

01:30:34   - Right, and I don't think anyone's making that argument.

01:30:36   I think it's more that if you can have something

01:30:39   that's this fast and this efficient, it's an advantage.

01:30:42   It's not a requirement, but it's an advantage for sure.

01:30:44   And as time goes on, it becomes less of an advantage

01:30:47   proportionally, but still, it still is significant now.

01:30:51   And again, I just think, you know, Casey,

01:30:55   I mean, you are very qualified to talk about .NET,

01:30:59   And that's, I would say like C# and the .NET framework

01:31:02   are a very good example of the kind of thing

01:31:05   that we might be moving towards,

01:31:06   although we'd probably go hopefully

01:31:08   another evolutionary step,

01:31:09   'cause that's now 15 years old or whatever.

01:31:12   But based on what you know with .NET

01:31:16   and what you know with modern just to see development,

01:31:19   are they really, is .NET really that much easier to use

01:31:24   for mobile app development?

01:31:26   - If you had asked me a year or two ago,

01:31:28   maybe two, three years ago, actually, I would have said, "Yes, it is considerably easier."

01:31:32   Ref counting is not that conceptually difficult, but it's still a hell of a lot more difficult

01:31:39   than just writing the new keyword all over the place.

01:31:43   But given the advances of ARK, given the advances of having closures in Objective-C, no, I don't

01:31:52   think it's really that different.

01:31:55   And that's kind of what I was driving at earlier.

01:31:57   There are things in Objective-C that I love and that I miss when I write C-sharp.

01:32:02   There are things that are in C-sharp that I love that I miss when I write Objective-C.

01:32:08   But if I were to—like the first thing that jumps to mind of something that I really miss

01:32:12   in Objective-C that I enjoy so much in C-sharp is something silly like reflection or introspection,

01:32:20   which really is not necessary and is completely ancillary to the conversation we're having.

01:32:27   By the way, a lot of that's there.

01:32:28   Just so you know.

01:32:29   Yeah, no, it is there, but it's—no, it absolutely is there.

01:32:31   It's just comparatively a royal pain in the butt compared to how easy it is in C#.

01:32:36   But it changes the way you write programs, though.

01:32:38   Like, I mean, think of writing an actual very high-level language.

01:32:42   It's not just like an incremental step.

01:32:45   If you have those features and they're kind of built into the language in a convenient

01:32:48   way, it informs how you write APIs for that language.

01:32:52   Absolutely.

01:32:53   Because think of all the Ruby people writing their stupid DSLs by making their little—you

01:32:56   because it's so easy to just add methods to classes and throw--

01:33:00   extending the number of classes they can put, like,

01:33:02   1.times and 3.days.ago and all this--

01:33:06   now I'm saying all this stuff is good,

01:33:07   but language features change what the API looks like.

01:33:11   And another thing that changes what the API looks like--

01:33:13   success.

01:33:14   And I think a lot of the narrowing

01:33:18   gap between Objective-C and C# is

01:33:21   based on the success of the companies that shepherd them.

01:33:24   the relative success over the past decade of Apple versus Microsoft, it's pretty stark contrast.

01:33:29   And although Microsoft has been improving C# and everything, they have not had the dominant,

01:33:35   thriving, big new platform as a tractor to pull their language and API. They have had the kind of

01:33:42   fizzling, not really doing well in the mobile market platform and the old legacy Windows

01:33:46   platform and a bunch of other confused APIs, you know, pulling them along. And so, yeah,

01:33:51   But the gap is narrowing because Apple's firing on all cylinders with Objective-C and Microsoft is I don't know what they're doing with C sharp

01:33:58   But well you say that but I mean C sharp is making considerable strides on a regular basis and like the language yes

01:34:05   But the yeah

01:34:07   That's a fair point. The the the API has gotten a little better with like parallel programming for example

01:34:12   I would argue it's not as clean and as simple as Grand Central Dispatch, but it's better

01:34:17   But C# as a language, I really really really really like it a lot a lot a lot

01:34:24   And I'm not saying I love Microsoft

01:34:26   I mean I Microsoft has its own woes but C# as a language is really truly

01:34:31   Incredible and I really really like it and some of the things you can do with C# like

01:34:35   Someone brought up in the chat a minute ago link language and integrated query

01:34:40   You can do some of that with predicates in in in cocoa, but it's not as nice

01:34:45   It's not as easy and and like I said reflection earlier some of those things are really incredible and having easy access to

01:34:52   introspection having easy access to writing sequel esque queries

01:34:57   against objects it makes the way you write code very different just like you said John and and so I

01:35:03   See both sides of this coin, and it's so tough

01:35:06   I want to be more definitive and come down with a particular perspective

01:35:11   But I don't know. I don't know

01:35:12   I don't know what I would do if I was Apple other than put some really big nerds on it and see what they come

01:35:17   Up with I think link is a good example because this this whole thing of like, you know

01:35:21   higher level language with managed memory and these other features and native strings and all these other things from high level language that we think

01:35:28   we want and

01:35:30   It it providing you the ability to like let's try this experiment. Let's do this

01:35:33   You know link link isn't yet another attempt to sort of

01:35:36   Make it easier to deal with big buckets of data in a language

01:35:40   We want to get the data out and we want to get the data into like

01:35:42   Variables essentially in our language so we can deal with them

01:35:45   We want to take whatever structures we have in our language whether they be objects or something else and put them into some other big

01:35:50   bucket of data probably a database like how many times have we taken a run at this problem with object relational mapping and

01:35:56   direct sequel queries and link was yet another example and it just goes to show that like

01:36:00   The features of language that we're talking about being higher level

01:36:05   Will become a necessity it will be necessary to have to be

01:36:08   You know to be memory managed and not be able to have a seg fault to have things that we all expect to have like

01:36:14   You know name parameters native strings and maybe regular expressions and native implicit parallelism baked into the runtime

01:36:20   Like all these things those will be necessary

01:36:23   But they will not be sufficient to be a better language because link many people link many people hate because they're like

01:36:30   You know, everyone hates all around us, right?

01:36:31   But then link people like, "Oh, this is a great idea."

01:36:33   And then you use link for a while and you're like, "Nah, link's not that great either."

01:36:36   And some people go back to just writing the SQL queries.

01:36:38   Just because you have these features doesn't mean you're going to make an awesome API.

01:36:41   GCD is a great example.

01:36:43   The people who made that had a better idea of what would make a good, easy API for do

01:36:47   parallelism.

01:36:48   And they shoehorned into just C for crying out loud.

01:36:52   Just because you have Merriman, it doesn't mean you're going to come up with an API that's

01:36:55   as good as GCD.

01:36:56   It doesn't mean that you're going to come up with a way of dealing with databases that's

01:36:59   better than link, that's better than ORMs, that's better than writing direct-to-write

01:37:01   queries. Like, it doesn't automatically make you the winner, but it will eventually be necessary,

01:37:07   and eventually you get to the point, like Apple was with Copeland, where no matter how good your

01:37:12   stuff is, if you don't meet this minimum bar, if you do not have memory protection, you become a

01:37:18   non-entity. You can't play in the game anymore. No matter how awesome your stuff is, you're like,

01:37:23   "Oh, look at this. We have this, and we have that, and our UI is nice," or whatever. It's like,

01:37:26   "I'm sorry. You spent a long time over there dicking around, and the bar has moved,

01:37:31   and now you're just not a player anymore.

01:37:33   And that's the scenario that we're trying to avoid here.

01:37:36   It doesn't mean that if you make a memory-managed language,

01:37:39   then it will be better than Objective-C.

01:37:40   In fact, chances are very great that it will not be,

01:37:42   and your API will not be as good as Cocoa.

01:37:45   That's why I was saying,

01:37:46   make 17 teams, pit them against each other,

01:37:48   don't tell them that each other exists.

01:37:49   It's going to be difficult to do.

01:37:50   It's not even guaranteed that you're going to be successful,

01:37:52   but if you don't try,

01:37:53   you are guaranteed long-term that you're doomed.

01:37:56   Yeah, I agree.

01:37:57   It's just...

01:38:00   I don't know, it's so tough. And one thing I should point out is that

01:38:04   LINC is about more than just hitting databases. I mean, what's really powerful about LINC is if you

01:38:09   have a dictionary or a hash table in memory, you can write really expressive queries against

01:38:17   that hash or that dictionary. And you can do it either in a format that smells a lot like SQL.

01:38:24   Literally within code you can write from dictionary,

01:38:29   where blah, select blah,

01:38:31   or you can do it in a more traditional way.

01:38:34   But but link is extremely powerful.

01:38:37   And it's things like that that make me think you're right.

01:38:40   But I don't know.

01:38:43   I think the most prescient thing you said was that

01:38:46   it takes a long time to develop a really solid API,

01:38:49   a really long time.

01:38:51   And I don't think the .NET framework's there.

01:38:52   I would take Cocoa over the .NET framework.

01:38:55   As much as I would miss link, as much

01:38:57   as I would miss reflection in the easy peasy form

01:39:00   that it is in .NET, I would probably take Cocoa over it.

01:39:04   And that's saying a lot.

01:39:05   Even if you have an awesome API, and even

01:39:07   if you have an awesome language, and everyone agrees

01:39:09   your API is better than everything else in the market,

01:39:11   and everyone agrees your language is better than everything else

01:39:13   in the market, if it's not attached

01:39:14   to a successful product, that will also doom it all.

01:39:17   The things that have to come together,

01:39:18   that's how we end up with C and Objective-C.

01:39:21   In the end, no matter how great a thing you make in terms of the underlying things, if

01:39:26   it doesn't get attached to a successful product, it's gone.

01:39:28   And whatever is attached to a successful product, provided it meets some pretty low minimum

01:39:33   bar of suitability, it will be wildly successful and we'll be stuck with it for decades anyway.

01:39:39   So that's the theme of this show.

01:39:43   Just because everyone uses it and it's attached to a successful product doesn't mean that

01:39:48   is the best thing that we could ever possibly have in its success. Objective-C would be nowhere

01:39:53   if Apple didn't buy Next, right? Is it because Objective-C is bad? No. Objective-C is better in

01:39:57   many, many ways than a lot of its contemporary languages, but it would be nowhere if Apple

01:40:01   hadn't bought them. And so when you have the successful product and you have the ability,

01:40:07   as Microsoft sort of had, to try to prevent yourself from becoming irrelevant by revving

01:40:13   your technology stack, trying to do that at the same time as also making successful products.

01:40:18   I don't know, maybe it's impossible. Maybe Apple's lifetime is limited by the lifetime of Objective-C.

01:40:22   If it's institutionally incapable of ever making anything good enough to replace it,

01:40:27   then Apple as a company will live as long as it takes for Objective-C to become a disqualifier,

01:40:35   just like memory protection was. Lack of memory protection preempted the multitasking became a

01:40:40   disqualifier for the desktop PC market and Apple had to do something and they almost

01:40:44   went out of business.

01:40:45   Well, if that's Apple's strategy, we should see.

01:40:48   If we ever get Tim Cook on the show, you should give him a call tomorrow.

01:40:50   I would ask him this super SO tier question.

01:40:55   I think this is like, you know, he'll be retired.

01:40:58   He doesn't have to worry about this personally, but I wonder if you're a CEO of a company,

01:41:03   if you ever think about things like this.

01:41:06   CEOs from now, that guy might have to worry about this. Do I care at all? And if I do,

01:41:11   am I planning for it now, or am I just content to say, "We're going to make complete improving

01:41:15   of Objective C as long as hard as we can. If it ever becomes a disqualifier of success,

01:41:19   well, that's the end of Apple, but that'll be so long from now, and nobody alive cares,

01:41:23   so good job."

01:41:24   So, what I keep wondering is, right around the time that I think all of us were getting

01:41:31   completely fed up with the fact that we needed to perform our own reference counting in Objective-C,

01:41:37   that's when art came out. And at the last possible moment, the biggest issue that all of us had,

01:41:44   or I would say the biggest issue all of us had with Objective-C, suddenly wasn't an issue anymore.

01:41:49   If Apple continues down that road and at the 11th hour finally fixes whatever the current issue is,

01:41:56   is that a long-term plan that'll work, do you think?

01:42:00   Well, it took them two tries to do that, because the first try was garbage collection, right?

01:42:04   And that was a multi-year effort that ended in failure, because it wasn't widely adopted by anybody,

01:42:10   except I think they made the Xcode guys do it. I forget who they had dog food, the garbage collection.

01:42:15   But it didn't work out, because it wasn't nicely compatible with the C-Place language.

01:42:19   So they found a better solution that had better characteristics, it was a better fit for their language,

01:42:23   that is more of a compromise in many senses than garbage collection,

01:42:26   but it is so much better fit for a C-based language.

01:42:28   And also, garbage collection has many disadvantages

01:42:31   on mobile that Arc doesn't have.

01:42:32   So Arc was the right solution at the right time for Apple,

01:42:35   no question, but it's not really the right solution

01:42:38   if you're ever, if you're gonna try to incrementalize

01:42:40   your way from where we are now to a higher level language.

01:42:43   I guess if you're phenomenally successful,

01:42:47   you can use that to extend your life for a really long time.

01:42:51   But eventually, we're gonna kinda get to the point

01:42:53   where we are like with HFS Plus, where, there we go.

01:42:55   Bingo board, where you kept tacking stuff on to something for as long as you possibly

01:43:01   could.

01:43:02   And as long as you're still successful, you know, "Hey, all those iPhones, they got

01:43:04   HRS+ on them.

01:43:05   It must be pretty awesome," right?

01:43:07   Like, you can keep adding features for a pretty long time if you have successful products.

01:43:11   You're just really delaying the inevitable, though, and I have a hard time seeing a path

01:43:15   from something like Objective-C.

01:43:18   The difficult transition is, when do the pointers go away?

01:43:22   That's the really hard...

01:43:23   like a chasm that you can keep making things better, improving the syntax, dot

01:43:27   notation, string literals, object literals, like you can do lots of awesome things

01:43:32   especially with LLVM and their new compiler infrastructure like they have a lot of

01:43:35   Runway out in front of them they can do lots of awesome things again long enough

01:43:37   probably for everyone who works at Apple to get old retire and die. But eventually

01:43:42   the Runaway does run out and you're left with this crazy-ass mongrel like the

01:43:45   Runaway I think has run out on HFS+ that is just you can tell has had tons of

01:43:50   stuff modified and tacked onto it. And some other successful product will come along and

01:43:54   will be successful, not because of the language, but just incidentally also happens to have

01:43:58   a language where you can express yourself concisely, you know, in a somewhat nicer manner,

01:44:04   that people will, in addition to saying, "I'm going to write for the whatever contact lens

01:44:09   OS because that's awesome in the year 20-whatever, and by the way, the programs are awesome and

01:44:14   you don't have to, you know, maybe I'll just say square brackets again because that's all

01:44:17   all people can see is a stupid syntax, even though it's not the most important thing.

01:44:21   But yeah, there will be a better way to program, and it will be attached to some other product

01:44:27   if Apple doesn't make it.

01:44:29   Yeah, and I think this conversation, the conversation of, "Oh, Apple needs to do this," I think

01:44:36   if you're going to make that point, I think it needs specifics.

01:44:39   And it's easy to say, "Oh, well, Apple needs to do—they need to move in this direction,"

01:44:45   in general terms.

01:44:46   agree that they do need to move in the direction of higher level eventually. But there's a

01:44:52   big question mark there of what exactly that means. And you know, you said earlier, Jon,

01:44:57   that you think it's Apple's responsibility. I don't necessarily think that's the case.

01:45:01   I think they should have some people thinking about it, but I think it's up to like the

01:45:06   world of developers really to figure out what the heck we want. And that I think is a much

01:45:14   harder question. You know, if... I definitely think that the whole platform and all developers

01:45:22   benefit substantially by there only really being like one canonical language that you

01:45:27   write apps for these platforms in. There's one language with the official API and yeah,

01:45:33   you can, you know, there's fringe efforts to use other languages, but I think overall

01:45:39   everyone benefits from there being like one agreed upon default language. So the question

01:45:43   is if something's going to replace that language,

01:45:47   like what changes and what decisions

01:45:50   are good enough to replace it?

01:45:52   'Cause if you try to have it both ways,

01:45:54   try to maintain both, you know,

01:45:55   you had two whole shows on bridges,

01:45:58   it doesn't really work very well.

01:46:00   So what choices would they make?

01:46:04   Right now Objective-C is pretty good at most stuff,

01:46:08   really good at some stuff,

01:46:09   and really rough at some other stuff,

01:46:11   But overall I would say it's pretty good, right?

01:46:14   And I think overall people who are familiar with it

01:46:17   enough to look beyond the brackets

01:46:19   would probably agree with that.

01:46:20   It's pretty good.

01:46:22   So what new thing would be at least that good

01:46:27   to at least as many people

01:46:29   or applicable to as many circumstances?

01:46:32   And I think that's a really hard question.

01:46:35   And this is like a design question.

01:46:38   This is not as much a technical question.

01:46:40   is a design choice and design is hard because a lot of times with design questions there

01:46:45   is no good answer. Like politics, there is no good policy in some cases where everyone

01:46:54   is going to be happy or where it's a universal win or even everyone can agree that it's a

01:46:58   net win at all. And so I think Objective-C replacements are going to face a big problem

01:47:04   there which is like there's this huge API that has to be, you know, ported over or converted

01:47:10   or rethought. There's this huge installed base. There's all these developers who know

01:47:13   what it is and it works, for the most part, it works really well. Like all the problems

01:47:18   of C that make it hard to use or clunky or hard to maintain if it's badly written, Objective

01:47:26   C tackles a lot of those and severely reduces the impact of a lot of those. And so like

01:47:32   Like a lot of the problems of C aren't really problems in Objective-C or are so much smaller

01:47:37   that it's basically irrelevant.

01:47:40   And so to make something that's substantially better is technically, yeah, you're right,

01:47:45   it's a lot of work, it's going to take a lot of time, but I think the much bigger question

01:47:48   is what is just deciding what exactly that should be and how it should work and all the

01:47:54   decisions that go into designing a language and the associated frameworks.

01:47:58   But just the technical implementation details, that's a really big question.

01:48:02   And I don't see any consensus forming among developers who are suggesting that it should

01:48:07   be different.

01:48:08   I don't see any consensus forming to say, like, oh, it should move from where it is

01:48:13   to X.

01:48:14   And, you know, what exactly X is.

01:48:16   There's a little bit of consensus because of all the other high-level languages that

01:48:19   are out there.

01:48:20   Because so much development these days is done not on native platforms, quote-unquote,

01:48:25   server-side programming.

01:48:26   all these other languages like Python and Ruby and even PHP and all this stuff out there,

01:48:30   is giving people, and JavaScript, giving people a taste of the things they don't have in native

01:48:34   languages. And there's some consensus on things that I think everyone would agree that a modern

01:48:38   language has to have. I'm thinking more like, you mentioned the transition before. Transitions

01:48:43   can be terrible because you can't just wake up one day and say, "Okay, everybody, write

01:48:47   in this new API in this new language, go." But luckily, Apple has some experience in

01:48:52   in this area, it transitioned everybody from a C, C++,

01:48:57   you know, API system for writing,

01:49:00   whether it's the Mac toolbox or Powerplant or whatever,

01:49:02   it transitioned them from that to a language

01:49:05   that almost looks like a lateral move to Objective-C,

01:49:07   also C-based, but totally different API,

01:49:09   totally different language.

01:49:11   They managed that transition,

01:49:12   perhaps not as well as they could have,

01:49:14   but for a long time they had things in Carbon and Cocoa,

01:49:16   and you'd make a new control,

01:49:17   and this control's only available in Cocoa,

01:49:19   and this one's in Carbon, and people would complain,

01:49:21   why can't I get that control?

01:49:22   I want to draw on my Carbon app, and they had Quickdraw still in there, and the Qorel.

01:49:26   It was a hairy mess.

01:49:27   And that move was such a tiny move.

01:49:30   You're saying you need a language that's so amazingly better in this consensus.

01:49:33   Was there consensus that Objective-C in Cocoa was better than Carbon?

01:49:36   Definitely not among old-school Mac developers.

01:49:39   Definitely not among Adobe and Microsoft and stuff like that.

01:49:42   I'm not going to say it's going to be easy.

01:49:44   But I think the Carbon to Cocoa transition is evidence that it is possible to do that

01:49:52   in a way that doesn't totally destroy your platform.

01:49:54   Which is not, I don't think it was a given, because I don't think anyone else has ever

01:49:56   pulled off a transition like that.

01:49:57   Microsoft still hasn't managed, I think, to pull it off with C#, because nowadays if you're

01:50:02   writing a Mac app, you're writing a Cocoa app.

01:50:04   But nowadays if you're writing a Windows app, are you writing a C# app in whatever the hell

01:50:08   API they're pushing these days for the GUI?

01:50:10   Who's writing Windows apps?

01:50:11   Yeah, I mean, that's a question too.

01:50:13   But yeah, it's going to be really difficult, and the transition is almost as difficult,

01:50:18   but I think the thing you're transitioning to, like, I don't think you need all that

01:50:21   much consensus and I don't think it needs to be that fantastically better because Apple

01:50:25   has kind of shown that you can do it sort of by fiat and eventually people will come

01:50:30   around if the things that you can program in Objective-C are popular enough, like the

01:50:34   iPhone.

01:50:37   You manage to bring along Microsoft and Adobe eventually kicking and screaming, "What was

01:50:42   the first Cocoa version of Photoshop two versions ago?" or something like that.

01:50:47   It's taken a long time, but you've managed not to lose them, and they've basically completely

01:50:52   transitioned.

01:50:53   If you're writing an application for Apple's platforms, you're doing it at Objective-C

01:50:56   and Cocoa, despite the fact that they're not all that different from C, C++ APIs that preceded

01:51:01   them.

01:51:02   What I don't see, though, is, Marco, you said a minute ago, you know, it's up to the developer

01:51:08   community in order to kind of, I don't know, dictate is a strong word, but kind of help

01:51:13   figure out what the way forward is.

01:51:15   I mean, how do we do that as a community? Do we just write blog posts? Do we write our

01:51:19   own CoffeeScript kind of equivalent that trans-compiles into Objective-C? How is it up? How can we

01:51:26   influence that change?

01:51:29   I would say that's exactly it. We do it by both discussion and by example. Again, though,

01:51:37   I think the biggest challenge is that this is a really hard problem. It's a really hard

01:51:42   question to figure out like what should be next and you know they're like you

01:51:48   know most of the posts have said that you know no one no one's saying oh you

01:51:53   should switch to Python like like no one is putting like like a specific language

01:51:57   in place to say this this specific thing is what you should switch to it it's

01:52:04   just this you know very hand wavy like oh well it needs to solve these criteria

01:52:09   or it needs to change this list of my personal nitpicks about the language. And as I said

01:52:16   earlier, a lot of those things could just be solved by API changes, not language changes.

01:52:23   And a lot of those things do require language changes but are superficial, like the brackets.

01:52:28   And so I don't want to beat this too much into the ground further, but I just think

01:52:33   that one of the biggest reasons why we don't have something like this yet is because what

01:52:42   that next thing should be is really not obvious to anybody, as far as I can tell. No one's

01:52:46   clamoring for something specific that is widely considered a good idea.

01:52:52   Well, there's never going to be consensus outside Apple, and if Apple waits for consensus,

01:52:56   the form that consensus would take would be all their developers leaving to develop for

01:53:01   a more popular platform.

01:53:03   And then the only thing Apple could take away from that was, well, everybody's leaving to

01:53:06   develop for whatever the new, you know, Pinky Ring platform is that's become amazingly popular.

01:53:12   And then they would decide whatever the hell API and language that the Pinky Ring platform

01:53:17   uses, that's what they should use.

01:53:18   And I don't even know if that would be the case, because all it would mean is they just

01:53:20   move to a more successful platform.

01:53:22   The same way that people would say Objective-C is the best language ever, because look at

01:53:25   all these developers who want to develop in it.

01:53:27   It's not really because of language.

01:53:28   learn the language because it's there the way they can get absent on the iPhone.

01:53:31   So the signals from outside, all you can get from it it kind of is like a big

01:53:37   fuzzy noise. If you wait for a clear signal, the clear single will be a sign

01:53:42   that you waited too long and you're doomed and it's probably not a good

01:53:45   signal anyway because you would again look at the thing that they're moving to

01:53:48   and say that's what we should have done. Not necessarily, you could have done

01:53:50   something entirely different ten years ago and prevented this from

01:53:54   happening but you didn't and so now you've lost the opportunity to dictate

01:53:57   what the next language in API is going to be.

01:53:59   That's why I think Apple has to do it, because they have to do it now when they're in their

01:54:02   position to be masters of their own destiny.

01:54:06   If they wait, there's never going to be consensus outside them.

01:54:09   All they can look at is sort of the fuzz of noise of high-level languages and pick and

01:54:12   choose the features they think.

01:54:14   Like what are the biggest pain points?

01:54:16   I mean, they're kind of doing that with Arc and everything now, but like how can we transcend

01:54:20   those pain points?

01:54:21   Not just patch over them, not just make them a little bit better, not just find a solution

01:54:24   to those things that's a better fit for our current language than, for example, Garbage

01:54:27   Collection was, but say, what is the next leap in languages? And they have to look at

01:54:31   everything across the entire world, all the different ways you can write software, and

01:54:35   maybe come up with some new ideas of their own. It's a big responsibility, but when

01:54:38   you're the biggest technology company in the world, that's what you have to do.

01:54:44   Thanks a lot to our three sponsors this week, Ting, Squarespace, and lynda.com, and we will

01:54:49   see you next week.

01:54:56   mean to begin, cause it was accidental. Oh it was accidental. John didn't do any research,

01:55:03   Margo and Casey wouldn't let him, cause it was accidental. It was accidental. And you

01:55:13   can find the show notes at ATP.fm. And if you're into Twitter, you can follow them at

01:55:25   C-A-S-E-Y-L-I-S-S, so that's Casey List M-A-R-C-O-A-R-M

01:55:33   A-N-T-M-A-R-C-O-R-M-E-T S-I-R-A-C-U-S-A-C-R-A-C-U-S-A

01:55:41   It's accidental (accidental) They didn't mean to accidental (accidental)

01:55:49   ♪ Check my cast so long ♪

01:55:52   - I don't know if anyone else enjoys it,

01:55:56   but I freaking love when we nerd out like that.

01:55:58   I think we did it all the time.

01:55:59   It'd be terrible.

01:56:00   And I would hate the show.

01:56:01   - Software methodologies, Casey.

01:56:03   - I know.

01:56:04   What are these days, guys?

01:56:05   - It'll be an even longer show.

01:56:07   - What are these days?

01:56:08   - We'll talk about why Link and ORMs are not solutions.

01:56:12   - Nice.

01:56:13   - You see, but you keep associating Link

01:56:15   with Link to Sequel, which is one piece of Link.

01:56:18   - I know.

01:56:18   I know, I know.

01:56:19   I didn't bring up like, oh, I can query my database using XPath.

01:56:22   It'll be awesome.

01:56:25   Nor did I bring up the database drivers for in-memory things and comma-separated files,

01:56:31   all that good stuff that Perl was doing decades ago.

01:56:33   Oh, god, here we go.

01:56:34   Dbdd CSV, man.

01:56:35   Dbdd memory, yeah.

01:56:36   Operative first, Perl, yeah.

01:56:38   Now, I think link is awesome.

01:56:40   I think it's amazing.

01:56:41   I just think that like the ability to try something like that is the important thing.

01:56:45   the actual success.

01:56:48   Once you try it, you're like, well,

01:56:49   it has strengths and weaknesses versus all the other things

01:56:51   we've tried before.

01:56:52   And then someone else tries again.

01:56:53   But you can't even try something like Link

01:56:55   if the language doesn't provide support for it.

01:56:57   So we'll keep trying.

01:57:00   I don't know what the solution is to the problem

01:57:02   that Link and ORMs and everything else

01:57:05   we've tried to use.

01:57:07   See, but here again, you keep associating Link with ORMs,

01:57:10   and it's so much more than that.

01:57:12   I know, but it's a way to get a data.

01:57:13   It doesn't have to be in a database.

01:57:14   basically a way to bridge the world of, like, I want to get this information. It's in some place.

01:57:19   Like, to be able to view everything through a certain lens. What if I could query a dictionary

01:57:24   the same way I can query a database? Now they're unified under the single API.

01:57:28   [Jon] Yes, that's a much better way of looking at it.

01:57:30   [Joey] There are advantages to that. And then sometimes you're like,

01:57:33   "But that's not really a good fit for this type of thing. Maybe I want to get it in a different

01:57:36   way." And the same way that people would say, "I don't want to view my database as a database,

01:57:41   I want to view it as a bunch of objects and I like ORM better or maybe I have an object database

01:57:46   because then the database actually will be like the objects that I'm getting, but then object

01:57:49   databases suck. We keep trying to figure this out. I give it full marks for being an interesting and

01:57:56   novel way, approach to a familiar class of problems aided by the abilities of the language.

01:58:03   Yeah, and the thing that I love so much about LINC is I use it against objects constantly,

01:58:07   And not just dictionaries, I'll use it against arrays.

01:58:10   Give me all the items where such and such property is greater than such and such value.

01:58:15   Give me all the people where age is greater than 21.

01:58:17   And yeah, that sounds a lot like a database query, and that's where link got its start,

01:58:22   but I can do that against an array in memory, and that's what makes it so powerful.

01:58:26   And I very, very rarely, in fact almost never use link against SQL.

01:58:30   I almost exclusively use link against objects, and it's so powerful.

01:58:34   And again, you can do a lot of that with NS Predicate, but it's not quite so clean.

01:58:39   It's not quite so transparent.

01:58:40   Although perhaps I'm saying that because I'm just used to LingQ.

01:58:43   So you would love Perl, because Perl is the big thing about Perl is that you're comfortable

01:58:49   speaking in that sort of, you know, not dialect, but like, "I want to get things out of an

01:58:54   array and I think of it.

01:58:55   I can think of it in the same way as I would think of getting out of a dictionary."

01:58:58   It's comfortable with me.

01:58:59   Perl is the poster child for giving your way

01:59:03   to express the same sentiment in whatever way

01:59:05   you're the most comfortable thinking about it.

01:59:07   So if you're more comfortable thinking

01:59:08   about getting information out of array

01:59:09   as phrasing it in that way,

01:59:11   then that's a way that will work.

01:59:12   And not just more than one way to do it,

01:59:15   but more than one way to say it.

01:59:16   Like people would argue,

01:59:18   why do you wanna say it in these two different ways?

01:59:19   Well, sometimes people's brains work in a certain way

01:59:22   and they think of it in this manner.

01:59:23   Other times people brains think of the same exact task

01:59:25   in a totally different way

01:59:26   with everything switched around in a different order,

01:59:28   should be able to express that as well.

01:59:30   Yeah, that makes sense.

01:59:32   I also want to bring up one more quick thing. That's a famous last word. And that's

01:59:38   concurrency. And a lot of the posts and thoughts about the next big language revolve around

01:59:46   concurrency, which is a valid concern. The problem is that what a lot of people seem

01:59:50   to want is for concurrency to be like hand-waved away. Oh, we'll just make everything concurrent

01:59:57   at the language level and it'll make concurrency easier.

02:00:01   And the reason why concurrency is hard

02:00:05   is not because of the language.

02:00:08   The reason why concurrency is hard

02:00:09   is because it's complicated and it's--

02:00:12   - But there are language aspects of it though.

02:00:14   Like, I mean, you think of something like Erlang,

02:00:16   where if you design the language

02:00:17   around the idea of concurrency,

02:00:19   a lot of the code that we have to write now

02:00:21   to do things safely and concurrently,

02:00:23   it like implicit concurrency,

02:00:25   where like, I mean, Go has a little bit of this,

02:00:27   you know, lots of things where you can express something in a high enough level way where

02:00:32   not only do you not care about the details of how it's done, you don't have any control

02:00:35   over the details of how it's done and there are invariants that are provided by the language

02:00:39   in runtime that you can guarantee.

02:00:41   All that does is just move your set of problems up to a higher level because you're never

02:00:45   going to get rid of like, but at least it gets rid of like the super low level concerns

02:00:49   and the medium low level concerns.

02:00:50   And now you deadlock on much higher level concerns than you were previously, right?

02:00:55   But that's progress, because you want to have some sort of primitive semaphores and atomic

02:01:00   operations on CPUs, and that lets us stop thinking about that particular problem and think one level

02:01:04   up. It's never going to be easy, but what people want is, "Look, I'm tired of thinking about

02:01:09   concurrency at this level. I would love it if, simple things, I could do simple concurrent

02:01:14   operations on sets of data where I didn't care about the parallelism and that was built into

02:01:18   the language, and I would just implicitly express something like, 'Do all this on all these with...'

02:01:24   And GCD goes away towards that, where it's like, I don't want to worry about those details.

02:01:29   The language itself can provide you lots of ways of worrying about things at a slightly

02:01:33   higher level concern.

02:01:35   And I think everyone would see that as a big win.

02:01:37   And that's why they're mostly talking about concurrency.

02:01:39   Maybe they have fantasies where there's not going to be any problems.

02:01:41   Really they're just going to reduce the number of deadlocks or deadlock on higher level things.

02:01:46   But again, so many of these wishlist items, this included, isn't this much more of an

02:01:53   problem than a language problem? But it can be a language problem if you design

02:01:57   a language with concurrency in mind, even if it's just part of like the standard library.

02:02:01   I don't know enough about Go to know whether their concurrency things are part of the language

02:02:04   or whether they're just a library that comes with the language and that that line is fuzzy

02:02:07   to begin with. I mean like Objective-C technically is basically like a C library. It's not like

02:02:11   it's there an Objective-C language, but there's a Objective-C runtime which is a C program

02:02:14   that runs your, you know what I mean, like it's a fuzzy line. But I think Erlang and

02:02:18   Haskell and other kind of things where you express operations at such a high level that

02:02:24   there's no way to control any sort of like the parallelism may either be non-existent

02:02:28   or like pervasive and you just you know you know sort of the preconditions and the post

02:02:33   conditions and language guarantees that and you're not concerned with how how it performs

02:02:37   those things if you can get that kind of implicit parallelism built into the language whole

02:02:41   classes of problems that people like that regular sort of run-of-the-mill programmers

02:02:45   are afraid to tackle with concurrency now even though they totally have the tools to

02:02:48   to do it, become open to them.

02:02:51   In the same way the GCD has opened up parallelism

02:02:54   to people who otherwise wouldn't try it,

02:02:55   but now you're like, oh, I got this great library GCD.

02:02:58   Previously I would just run that on the main thread,

02:02:59   but it's so easy for me not to run that on the main thread.

02:03:01   I'll just throw it off.

02:03:02   And then those people learn that actually you can screw

02:03:04   yourself doing that too.

02:03:05   But it's all about lowering the bar to what type of parallelism

02:03:10   am I willing to attempt and feel confident is going to work.

02:03:12   And if you can bake things like that into the language

02:03:15   or into a library that's so much part of the language that

02:03:17   seems like the language, it lets more people do parallels and more easily.

02:03:21   Yeah, I don't know. I guess I'm much more of an optimist that there's still tons of

02:03:27   room for improvement with libraries and APIs with the same language, and that you don't

02:03:32   need to throw out the entire language and the entire existing API to get progress on

02:03:37   a lot of these fronts that people are asking for. And I think that's, you know, you're

02:03:39   right that if you make it part of the syntax and part of the native way of doing things,

02:03:44   then it certainly can go deeper, but I just think there's so much more we can do.

02:03:50   And I think that's one of the reasons why Objective-C has stuck around all this time

02:03:53   and probably has a pretty long future, because there is so much more you can do with just

02:03:58   libraries and API changes, and maybe a little help from the editor and the tools.

02:04:03   >> WESLEY CHUNG: You can bring up core data, speaking of like LINC and ORM and all the

02:04:08   other ways.

02:04:09   Core data is yet another way to try to deal with like large troughs of data that you can

02:04:14   rummage through and they have a different model which is kind of like ORM, not really

02:04:18   like Lync.

02:04:19   Like you mentioned-

02:04:20   Don't call it a database.

02:04:21   You mentioned NS Predicate.

02:04:23   It's an object store.

02:04:24   It's not a data.

02:04:25   That's, you know, that problem had been run at many different times.

02:04:28   Never, I think, at the language level.

02:04:29   I think maybe Lync is as close as you've gotten, even though it's not language level.

02:04:32   It's like, it relies on language features, but-

02:04:34   It's language integrated.

02:04:36   That's what it says in the damn name.

02:04:37   You know what I mean?

02:04:39   But it's language integrated.

02:04:40   I know what you're saying.

02:04:41   I know what you're saying.

02:04:42   Yeah, that's... problems... yeah.

02:04:46   Having more tools to run at a problem, having the language help you in that regard can let

02:04:51   you try new solutions.

02:04:52   Those solutions may not be better or worse than what came before, but it at least opens

02:04:55   up the door.

02:04:56   And I think...

02:04:57   I don't know enough about these highly parallel languages to know... like, if you had an Erlang

02:05:01   expert on here, they would explain what it is specifically about Erlang that makes it

02:05:05   so much better than doing the same things in any other language, because the language

02:05:09   was designed with concurrency in mind.

02:05:12   I'm convinced enough from things that I read about language that that is the case. It's just

02:05:17   that Erlang is so much worse at everything else that people want to do with programs that it

02:05:20   hasn't really caught the world on fire. But who knows, if the eye pinky ring was a program

02:05:25   but only in Erlang and everyone on Earth bought 10 of them, then we'd all learn Erlang.

02:05:30   [