65: The Year Of Casey
00:00:00
◼
►
What do you keep saying? You'll be at what?
00:00:02
◼
►
Well, I don't know what that is. I don't know how to spell what you're saying.
00:00:05
◼
►
P-R-O-M. High school prom.
00:00:06
◼
►
Oh, you're one of those people who leaves off the "the".
00:00:08
◼
►
Probably Marco does too, because he's from Ohio.
00:00:10
◼
►
Yeah, there was never a "the".
00:00:12
◼
►
Yeah, there's never a "the".
00:00:13
◼
►
Yeah, where I'm from, there's a "the" in front of it.
00:00:15
◼
►
You're going to the prom?
00:00:17
◼
►
That's the dumbest thing I've ever heard.
00:00:19
◼
►
No, the rest of the country is dumb. New York is right, as always.
00:00:21
◼
►
F***ing angel. You are the worst.
00:00:24
◼
►
We also don't put mustard on our hamburgers, and that's right!
00:00:28
◼
►
Say that again, you don't put mustard on the hamburgers?
00:00:30
◼
►
No, McDonald's does not put mustard on its hamburgers in the New York metro area.
00:00:35
◼
►
Interesting.
00:00:35
◼
►
I thought, I didn't know they did in the rest of the country until I went to Boston and asked
00:00:39
◼
►
for a hamburger from McDonald's that had mustard on it. I'm like, what the hell's going on?
00:00:41
◼
►
So, what's going on this week?
00:00:45
◼
►
Well, let's start with Overcast. Something happened over the last few days.
00:00:50
◼
►
Yeah, I shipped the Overcast beta and it's been really awesome, actually. I've been extremely
00:00:57
◼
►
impressed and happy and
00:00:59
◼
►
just overwhelmed and humbled by the amount of feedback I've gotten from the beta. The beta went out to about, you know,
00:01:05
◼
►
30 or so people and
00:01:07
◼
►
And let me interrupt you right there. You are not currently seeking any more testers. Is that correct?
00:01:11
◼
►
That's right. Well, I'm running low on UDIDs because the problem is like, you know, you have these 30 people
00:01:17
◼
►
You know, that's plus my own device. That's about 40 devices. You only get a hundred per year and
00:01:22
◼
►
I have to realize also like in the fall
00:01:26
◼
►
half these people are gonna get new phones.
00:01:27
◼
►
So if I wanna have them keep testing,
00:01:29
◼
►
I'm gonna have to overlap for a little while.
00:01:32
◼
►
And your device limit resets
00:01:36
◼
►
like on some calendar anniversary
00:01:38
◼
►
of your developer account or something.
00:01:39
◼
►
And I don't even know when,
00:01:40
◼
►
I think that's like in July for me or something.
00:01:42
◼
►
So it's sometime not ideal for the iPhone release cycle.
00:01:45
◼
►
So basically I have to like keep my number
00:01:49
◼
►
of actual devices I care about under 50.
00:01:52
◼
►
Plus if I ever make an iPad version,
00:01:53
◼
►
I gotta account for people's iPads
00:01:55
◼
►
and that's a whole other thing,
00:01:56
◼
►
so it's really a pain in the butt.
00:01:58
◼
►
But overall, the beta's going fantastically.
00:02:01
◼
►
I'm getting tons of feedback.
00:02:03
◼
►
I'm extremely happy about it.
00:02:04
◼
►
Meanwhile, Casey, you have way better news than that.
00:02:07
◼
►
(Casey laughs)
00:02:08
◼
►
- Yes, indeed.
00:02:09
◼
►
So the great news is my blogging engine works
00:02:12
◼
►
and can sustain traffic from your site,
00:02:15
◼
►
which is significant.
00:02:16
◼
►
- Great, moving on.
00:02:17
◼
►
- Moving on. - No, just kidding.
00:02:18
◼
►
- The reason I know that is because I announced
00:02:22
◼
►
couple days ago that Aaron is pregnant finally which is extremely exciting
00:02:28
◼
►
congratulations thank you we have been working on this for quite literally
00:02:31
◼
►
three-and-a-half years and I won't go into the details here on the show because
00:02:36
◼
►
we aren't an explicit show yeah right well here's what we did we went to the
00:02:40
◼
►
bedroom so anyway I wrote a blog post about this which I entitled finally
00:02:47
◼
►
which I thought was hysterical and only a couple people I think really picked up
00:02:51
◼
►
on the joke there. But anyway, I wrote a blog post about this, which Marco you linked to
00:02:55
◼
►
and tweeted about and John you tweeted about and that was very kind of you guys. And so
00:03:01
◼
►
I went into kind of the nitty-gritty of the journey from saying in 2010, "Hey, we should
00:03:07
◼
►
probably start trying to have kids," to being here we are all the way in 2014 saying, "Oh
00:03:12
◼
►
my God, we're finally pregnant." And it was a long and difficult road, but we are here
00:03:17
◼
►
And that's all that matters and so far everything
00:03:20
◼
►
Sounds good and is healthy and we'll meet our little sprout as we're calling it in the first week of November
00:03:26
◼
►
So we're seriously seriously excited. I'm glad to see that you got to go public before overcast it
00:03:31
◼
►
Yes, although if I'm honest
00:03:35
◼
►
It's still it's still wearing on me that I haven't gotten my iOS 7 update for fast text out because I cannot
00:03:43
◼
►
get auto layout working right and I'm too stubborn to revert to springs and struts and
00:03:47
◼
►
I've got something the the composed message view is just not working properly
00:03:52
◼
►
And I think it's the what is it the content inset or something like that so basically I have a I wasn't planning on going
00:03:59
◼
►
Into this but since I have oh is it under the navbar yep, that's a very common thing yeah
00:04:03
◼
►
Yeah, and I haven't figured out how to fix it yet, and I've been trying to go back and look at the old the auto layout
00:04:09
◼
►
Talks from old WWDCs, but I haven't really had time because well, we've had something else going on lately
00:04:15
◼
►
That's a pretty good reason. Yeah, so I like to think of it as a good reason
00:04:19
◼
►
But I was real I well I will be upset if I don't get the iOS 7 update in before overcast ships
00:04:26
◼
►
I won't be necessarily upset if I don't get it in before iOS 8 is in beta
00:04:29
◼
►
But I will be upset if I don't get it in before overcast ship
00:04:32
◼
►
So I got to find some time to do that you have some time don't worry
00:04:34
◼
►
to bring this back around
00:04:37
◼
►
Camel my blogging engine which I believe I mentioned I had open-sourced a week and a half ago something like that that did survive
00:04:42
◼
►
So I'm pretty excited about that
00:04:44
◼
►
It seems like it didn't crumble Heroku
00:04:48
◼
►
Although I will say that and I probably shouldn't but I will say that I noticed in my Google Analytics refers some
00:04:55
◼
►
Domain, I genuinely don't remember what it was, but it was like daily something dot Heroku comm which I tried to load and it
00:05:04
◼
►
challenged me for authentication, which makes me wonder if I had actually
00:05:07
◼
►
Hit some sort of threshold wherein the Heroku people were like
00:05:12
◼
►
Hmm what's going on over there? But to this to this moment
00:05:17
◼
►
I'm running on a single dyno which is Heroku speak for you know one process and I'm using node and
00:05:24
◼
►
Things haven't crumbled so a lot of big things going on. This is really this is like the year of Casey. This is great
00:05:31
◼
►
Well, it's weird to be in the spotlight, which probably sounds really weird given that
00:05:36
◼
►
I'm on this podcast, but it's weird to be in the spotlight.
00:05:38
◼
►
It sounds like you.
00:05:39
◼
►
But that's true.
00:05:42
◼
►
But no, we're super, super excited.
00:05:44
◼
►
And oh, I'm such a jerk.
00:05:45
◼
►
I forgot to mention that after I put up this post, a lot of people came out of the woodwork
00:05:51
◼
►
to send emails and tweets and just unbelievably, unbelievably kind things.
00:05:56
◼
►
And if you were one of those people, thank you so very, very much.
00:05:59
◼
►
I'm still going through all the email and trying to reply to every single one of them,
00:06:03
◼
►
and I will at some point.
00:06:04
◼
►
But the support has been amazing, and not to completely get us derailed, but it's
00:06:12
◼
►
been interesting seeing how many people come out of the woodwork and say, "We too had
00:06:15
◼
►
fertility problems," or alternatively, "We know someone who has had fertility problems,
00:06:21
◼
►
and oh man, this really rings true."
00:06:24
◼
►
And that's been really kind of—well, it's sad in that I would never wish this upon anyone,
00:06:30
◼
►
but also really awesome to know that it's not just us and that people appreciate talking
00:06:37
◼
►
about something that's actually fairly taboo and not something you hear talked about a
00:06:41
◼
►
So I'm happy as can be.
00:06:43
◼
►
Erin is overjoyed.
00:06:45
◼
►
It is a tragedy that Erin isn't already a mom because I think she'll be a great mom.
00:06:49
◼
►
So I'm really, really excited.
00:06:52
◼
►
Let's hope the year of Casey goes better than the year of Luigi.
00:06:55
◼
►
I wish I understood that joke.
00:06:57
◼
►
That's okay.
00:06:58
◼
►
Is that a Nintendo joke about their...
00:07:00
◼
►
Yeah, you're going to have to explain that one, sorry.
00:07:05
◼
►
I believe it was the beginning of 2013 Nintendo said this is going to be the year of Luigi,
00:07:10
◼
►
which means they were going to release games featuring Luigi more prominently, and 2013
00:07:16
◼
►
was not a good year financially for the company.
00:07:18
◼
►
You should never have me explain these references to you on the show.
00:07:21
◼
►
You just let them go by.
00:07:22
◼
►
You too can acknowledge that you don't get them, but rest assured I was surprised that
00:07:26
◼
►
the chat room didn't already make this joke, so I'm just kind of disappointed in them.
00:07:29
◼
►
But you too, expect it.
00:07:31
◼
►
But like, whoever liked Luigi?
00:07:33
◼
►
That's the whole point of this, the whole point is the year of Luigi.
00:07:35
◼
►
Oh, who cares about Luigi?
00:07:37
◼
►
Well, this is the year of Luigi.
00:07:38
◼
►
I don't know.
00:07:39
◼
►
Right, that's terrible.
00:07:40
◼
►
Like, who has ever, in the million years, who has ever said like, "You know what Nintendo
00:07:45
◼
►
More Luigi."
00:07:46
◼
►
You know, I would like to play more games with Luigi, please.
00:07:49
◼
►
And the games that support multiple players, I want to spend more time playing as Luigi.
00:07:53
◼
►
They launched the GameCube with Luigi, with Luigi's Manson, because they didn't have
00:07:56
◼
►
a Mario game ready.
00:07:57
◼
►
Yeah, look how well that went.
00:07:58
◼
►
Well, the GameCube did much better than the Wii U, I'll tell you that.
00:08:02
◼
►
Well, everything is done better than the Wii U, and we'll probably get to that later.
00:08:05
◼
►
I think the 3DO did better than the Wii U.
00:08:09
◼
►
We have another piece of follow-up, and speaking of things that are expected, Marco, did you
00:08:12
◼
►
do your homework?
00:08:13
◼
►
Of course not.
00:08:15
◼
►
did my homework, John? Do I get a gold star?
00:08:18
◼
►
I thought maybe you tweeting a screenshot would have shamed Marco or reminded him that
00:08:23
◼
►
this homework existed. Let's start with that. Reminded him that it existed because we know
00:08:26
◼
►
he's not looking at the notes file, so.
00:08:28
◼
►
Well to be fair, last night I told Tiff about the game and she installed it and she played
00:08:34
◼
►
it next to me in bed, so I heard some of it.
00:08:38
◼
►
And she thinks it's pretty good.
00:08:40
◼
►
Did she finish it? It doesn't take long, right, Casey? I'm assuming you finished it?
00:08:43
◼
►
Yes, well, and that's the funny thing is, okay, so let me back up.
00:08:47
◼
►
So we're talking about Monument Valley, which came out, what would you say, a couple
00:08:50
◼
►
months ago maybe?
00:08:51
◼
►
A month ago?
00:08:52
◼
►
Something like that, I don't remember.
00:08:54
◼
►
So it came out fairly recently.
00:08:55
◼
►
And as we've talked about in the past, it seems that there are oftentimes premier iOS
00:09:03
◼
►
You know, Letterpress is a great example.
00:09:04
◼
►
Threes is a great example.
00:09:06
◼
►
Flight Control way back when was a great example.
00:09:08
◼
►
And so Monument Valley was one of the premier games recently.
00:09:12
◼
►
And so I downloaded it last night and started playing it and Erin was watching over my shoulder
00:09:18
◼
►
and was like, "Hmm, that looks kind of interesting."
00:09:20
◼
►
And so we share an iTunes store account and so she had it already.
00:09:25
◼
►
And so there we were sitting on our iPads next to each other playing Monument Valley.
00:09:29
◼
►
And I definitely have some thoughts about it, but the funny yet frustrating thing about
00:09:32
◼
►
it was I had started playing somewhere between five and 30 minutes before Erin.
00:09:37
◼
►
I wasn't paying close attention.
00:09:39
◼
►
And sure enough, by the time we finished, which was only about an hour to an hour and
00:09:42
◼
►
a half later, she finished easily just a couple minutes after I did.
00:09:47
◼
►
And we had started quite a bit more than a couple minutes apart.
00:09:51
◼
►
So I was a little annoyed by that, but I guess she's the smart one in the family.
00:09:55
◼
►
Nevertheless, it was very good.
00:09:57
◼
►
It was very, very good.
00:09:58
◼
►
I quite liked it.
00:10:00
◼
►
Did you want us to play it for any particular reason, Jon?
00:10:03
◼
►
It was the last show when we talked about the game.
00:10:06
◼
►
I was mentioning that a lot of people said they had gotten stuck on it or that it was hard, but
00:10:10
◼
►
that I couldn't tell if they were joking because I thought it was just relentlessly linear and
00:10:13
◼
►
extremely easy. And then I thought since you two hadn't been playing a lot of the kind of games you
00:10:19
◼
►
used to play, but playing more casual games, that this was the casual game that you might enjoy.
00:10:23
◼
►
I thought it had some interesting aspects to it, like the artwork I thought was great and the idea
00:10:29
◼
►
was very clever. And it took advantage of touch in an interesting way. It's a type of game that
00:10:34
◼
►
that wouldn't have been as interesting if you did it on a console or on a PC.
00:10:38
◼
►
And so I figured you should give it a try.
00:10:40
◼
►
So the two things I wanted to know was basically, did you find it easy and what did you think
00:10:46
◼
►
of it overall?
00:10:47
◼
►
At the beginning, I most certainly did not find it easy.
00:10:51
◼
►
And when you download Monument Valley, which you should do, it was absolutely a great game
00:10:55
◼
►
and it's worth the, what was it, $4?
00:10:58
◼
►
But we'll get to that later.
00:11:00
◼
►
When you download it, they kind of just dump you in a level.
00:11:03
◼
►
And I almost thought something was wrong because they don't explain anything and I've seen this before but it seemed
00:11:11
◼
►
Surprising how little explanation there was and and it took me a minute to realize what the crap I had to do
00:11:19
◼
►
And monument valley if I were to summarize it is kind of a game playing off the drawings of it was MCS sure
00:11:25
◼
►
Is that correct? Yeah, you got it. Okay, so stairs guy. Yeah the stairs guy
00:11:30
◼
►
So it's it's geometry that can't really be real but you know, it's I don't know how to explain this
00:11:37
◼
►
I won't try but suffice to say I had to explain it to my kids and this is what I came up with
00:11:41
◼
►
If it looks like it touches it touches
00:11:43
◼
►
Yeah, that's a good way of looking at it and two things that look like they shouldn't be able to touch with one in with
00:11:49
◼
►
the same intermediary piece
00:11:51
◼
►
Depending on how things are set up may actually touch if you like spin that intermittent intermediary piece around
00:11:57
◼
►
So anyways, so they dump you into this game and it didn't have a lot of explanation and at first
00:12:03
◼
►
I was like what the crap is going on and I was I almost started to get frustrated at the very beginning and then right when
00:12:09
◼
►
I was going from this is weird to oh my god. What the hell that's when I figured it out
00:12:13
◼
►
And then I was okay. And so for the first
00:12:16
◼
►
Half to two-thirds of the game. I did not find it easy. I found it to be the correct balance of
00:12:23
◼
►
hard but not annoying and I also would not say it was terribly linear in
00:12:28
◼
►
At least the way I experienced it because I had to think about things then there were a couple levels
00:12:33
◼
►
I should have taken a note on which ones they were but there were a couple levels where I was like, okay
00:12:37
◼
►
This is seriously linear and it's beautiful and it sounds great
00:12:41
◼
►
And I didn't realize that I should have been wearing headphones to play it
00:12:44
◼
►
But I heard after the fact that it's it I guess it uses, you know stereo to its advantage or whatever, but it sounds great
00:12:51
◼
►
It's beautiful, but there were some levels. I think there was one going into like a dungeon
00:12:56
◼
►
It actually I think is what leads up to the picture
00:12:58
◼
►
I tweeted that it was extremely linear and as you're tapping about moving this little girl around the stage that you're playing
00:13:05
◼
►
things are happening so it's not like
00:13:08
◼
►
Boring, but nevertheless it was very linear then after that there were other levels like the one with the box that I
00:13:15
◼
►
Just took forever to figure out and I did and I wouldn't have said it was linear at all
00:13:19
◼
►
What did you think John? Well, here's what I mean by linear what I mean by linear and the sense of this game is that
00:13:25
◼
►
every time you
00:13:28
◼
►
Solve some problem you're presented with a new problem and there's one way to do it more or less like, you know
00:13:34
◼
►
If you hit this switch it opens up the door
00:13:36
◼
►
Next step is that you're gonna go through that door and then you're not gonna be able to go anyplace except for one place and
00:13:41
◼
►
To get that place you do something that it takes you there. Like it faces solve this problem. Here's your new problem solve this problem
00:13:46
◼
►
here's your new problem, you know, like not linear
00:13:49
◼
►
in that it's like a long series of corridors or whatever,
00:13:51
◼
►
but gameplay-wise and flowchart-wise,
00:13:53
◼
►
it doesn't make you do 10 things at once.
00:13:56
◼
►
It doesn't make you like, okay,
00:13:57
◼
►
I'm gonna set this up over here,
00:13:58
◼
►
let me set that up over there,
00:13:59
◼
►
let me go through and do this and do this
00:14:01
◼
►
and then go over there and do that and then come back here
00:14:02
◼
►
and when I come back here, it doesn't ask that of you,
00:14:05
◼
►
which many games for more experienced gamers do.
00:14:08
◼
►
So this is definitely in the category of casual game.
00:14:11
◼
►
And it's more of like a game-like experience
00:14:14
◼
►
in that you feel like you're participating in the narrative
00:14:16
◼
►
but it's very clearly you're just pushing the character
00:14:19
◼
►
along a certain little arc.
00:14:20
◼
►
My main complaint is not so much with the casualness,
00:14:23
◼
►
because again, like I said in the past show,
00:14:25
◼
►
a lot of people can make the same complaint about Journey.
00:14:27
◼
►
It's very linear, it's relentlessly linear.
00:14:29
◼
►
It's just that there's more freedom within the linearity
00:14:32
◼
►
and there's more of an overarching story
00:14:34
◼
►
to get you wrapped up.
00:14:35
◼
►
And this one had kind of like a hint of a story,
00:14:37
◼
►
but it didn't, you know,
00:14:39
◼
►
I don't want to ruin Journey for people,
00:14:40
◼
►
but I think comparing Monument Valley to Journey
00:14:43
◼
►
would be very instructive for a game design perspective because they are so similar in
00:14:48
◼
►
so many ways and yet the experience of playing them is so very, very different.
00:14:51
◼
►
People like Monument Valley is getting good reviews, but I don't think any game critic
00:14:55
◼
►
would hold it anywhere near Journey.
00:14:58
◼
►
Figuring out why, why is Journey so much better than Monument Valley, despite them sharing
00:15:03
◼
►
so many characteristics, that I think is an interesting thing to think about that I would
00:15:09
◼
►
probably blog about if I ever blogged.
00:15:11
◼
►
Yeah, and the funny thing is, if I were to describe Monument Valley in just a couple
00:15:18
◼
►
of words, it would be broken promises.
00:15:20
◼
►
And an example of this is the level selector, which I didn't realize when it was first
00:15:27
◼
►
introduced to you.
00:15:28
◼
►
So this is kind of like, and I'm using huge air quotes here, the menuing system.
00:15:32
◼
►
It's a building, and you twist the building to advance from level one to two to three,
00:15:37
◼
►
et cetera, et cetera.
00:15:38
◼
►
When they show you this building originally they spin the building around and I didn't pay close attention
00:15:43
◼
►
So I get through level one level two level three level four and at this point
00:15:48
◼
►
I've seen all four sides of the building and so I'm like, okay
00:15:52
◼
►
well, am I gonna see a new building now or what's gonna happen and sure enough there's a fifth side of the building and
00:15:57
◼
►
that was a silly example of just a
00:16:00
◼
►
continual series of broken promises
00:16:03
◼
►
But that's part, didn't you catch that being part of the theme?
00:16:06
◼
►
Like how can something have more than four sides, the impossible geometries?
00:16:10
◼
►
Absolutely. And it's not a bad thing. I don't mean to make that sound like it's a bad thing,
00:16:14
◼
►
but any time that you didn't think that something was an option, like for example,
00:16:18
◼
►
walking vertically or walking off the side of something where in the real world you would just
00:16:24
◼
►
fall right off, when you, or at least I didn't suspect that such moves were legal, and then you
00:16:31
◼
►
find out, "Oh, you can do that." And so it's like one series of broken promise,
00:16:36
◼
►
one broken promise after the other, which is what made it so magical and wonderful.
00:16:40
◼
►
But at the same time, it was like, "Oh, okay, I guess that's a thing." So I really liked it.
00:16:45
◼
►
The only thing is, and I didn't get a chance to press Erin on this because I really wanted to
00:16:50
◼
►
hear her opinion and we didn't do any research, but when it was all over and it lasted, like I
00:16:56
◼
►
said, about an hour, hour and a half, it was all over and Erin said, "Wait, that's it?
00:17:01
◼
►
How much did we pay for this? And it was so interesting to me because my first reaction,
00:17:06
◼
►
which I didn't say out loud, was, "Wait, that's it? How much did I pay for this?"
00:17:11
◼
►
And then immediately after that, I was like, "Well, a lot of work went into this game."
00:17:14
◼
►
It costs half as much as a movie ticket and it lasted about as long as half a movie, right?
00:17:19
◼
►
It's funny you say that because I didn't talk to Aaron about this,
00:17:22
◼
►
but that's exactly what I thought to myself. And in our case, we shared this
00:17:26
◼
►
quote-unquote movie ticket because we have the same store account.
00:17:29
◼
►
So we paid $4 once and each got an hour to an hour and a half of enjoyment out of it.
00:17:36
◼
►
So really it's a great deal, but something about software has just programmed both of
00:17:44
◼
►
I wish I could – I don't mean this that way, but I kind of wish I could throw Erin
00:17:46
◼
►
under the bus and be like, "Oh, well, she doesn't know what she's talking about.
00:17:49
◼
►
She's not a developer."
00:17:50
◼
►
But no, I had the same thought.
00:17:51
◼
►
And it's really kind of crummy that there's this race to the bottom and race to free,
00:17:56
◼
►
but I enjoyed it.
00:17:57
◼
►
I'd recommend spending the four dollars.
00:17:59
◼
►
I would have done it again, but I'd be lying if I said I didn't think to myself, "Wow,
00:18:05
◼
►
that was short."
00:18:06
◼
►
Well, see, I have to say that the production values were super high, though.
00:18:09
◼
►
Like that game is so polished.
00:18:12
◼
►
There's no part of that game that looks like it's broken, that looks artificial.
00:18:16
◼
►
Every part of it, even like you said, the menu system, it's all of a piece.
00:18:19
◼
►
It is a beautifully made game.
00:18:21
◼
►
I mean, if there's a bug in that game, I didn't find it.
00:18:25
◼
►
If there's some visual element out of place,
00:18:28
◼
►
I didn't find it.
00:18:29
◼
►
And it's not a simple game.
00:18:30
◼
►
It's not like, oh, I mean, not to say that Threes is simple,
00:18:33
◼
►
but like graphics-wise and gameplay-wise,
00:18:37
◼
►
Threes is a much simpler game
00:18:39
◼
►
than the things that "Mind and Value" pulls off.
00:18:41
◼
►
It is an amazingly well-made game
00:18:43
◼
►
in terms of just the construction
00:18:44
◼
►
of how the pieces are put together.
00:18:45
◼
►
So production values are high,
00:18:46
◼
►
so I don't mind paying more for it.
00:18:48
◼
►
And I don't buy things based on length and price or anything like that.
00:18:51
◼
►
I just wish that if it's not going to have difficult gameplay for experienced gamers,
00:18:56
◼
►
it should have a more compelling story.
00:18:59
◼
►
Like Year Walk was like that.
00:19:00
◼
►
And the gameplay in Year Walk is not particularly difficult for anyone who's played point
00:19:04
◼
►
and click adventures their entire life.
00:19:05
◼
►
But the atmosphere and mood and story pulls you in and feels and like makes it feel like
00:19:12
◼
►
more of an experience. I felt like Year Walk was a better game overall, but also one that
00:19:16
◼
►
would probably repel most casual players.
00:19:17
◼
►
At Monument Valley, I don't know, like, I hate coming down with a mediocre opinion on
00:19:25
◼
►
this and people feel like I'm pushing them away like you shouldn't get this game.
00:19:30
◼
►
That's why I wanted you to play it, to see if someone who doesn't consider himself a
00:19:35
◼
►
gamer doesn't play games all the time, will they find this game much more compelling than
00:19:40
◼
►
And it seems like you identified a lot of the same problems as I did.
00:19:44
◼
►
And the one thing you brought up that I didn't realize was that I didn't think of is that
00:19:47
◼
►
if you're not familiar with sort of the the joke like the not the joke or that the background or the thing like the
00:19:53
◼
►
Moment I saw a screenshot of this game. I'm like, oh it's an MCS game
00:19:57
◼
►
I know exactly what to expect of the entire game because I played a lot of games
00:20:00
◼
►
I know what MCS sure is I know I'm gonna go walking on walls
00:20:02
◼
►
I know if it looks like it touches it touches like I
00:20:04
◼
►
See the whole game before I before I even installed the thing
00:20:08
◼
►
Whereas if you come into a cold and have some vague memory of some water or impossible waterfall looking thing
00:20:13
◼
►
Or you're not a you know a big gamer. Maybe you won't realize immediately. Oh, that's what this game is gonna be about
00:20:19
◼
►
I think that's a lot of the complaints that the gamers have about this is that you show them a screenshot and they feel like
00:20:24
◼
►
They've played the whole game and then you played the whole game. You're like, yeah, that's more or less what I expected
00:20:27
◼
►
So we beautifully made, you know nicely constructed, but they didn't add a lot on top of that
00:20:32
◼
►
Yeah, I would agree and I was familiar with Escher but not
00:20:35
◼
►
Intimately familiar in so I knew what the point of the game was
00:20:40
◼
►
But it still took thought in order to figure out
00:20:44
◼
►
what I needed to do to accomplish things and as a casual gamer, I absolutely recommend it. I thought it was very good.
00:20:52
◼
►
I will say the story
00:20:54
◼
►
either was way over my head or was way too
00:20:58
◼
►
esoteric for me to understand what they were saying and I'm not going to spoil it or anything but
00:21:05
◼
►
I definitely think the game is worth it. It is to John's point about half as well
00:21:10
◼
►
Probably at this point a third as much as a movie ticket and will probably keep you occupied
00:21:14
◼
►
About half as long so Marco. I do recommend playing it. It's only about an hour
00:21:19
◼
►
Maybe two of time to spend but it's really really good and I definitely definitely liked it Marco let Adam play it
00:21:27
◼
►
I think he'll be able to do well on it. He's two. All right, so maybe maybe a couple years
00:21:34
◼
►
He can play it and report back to you.
00:21:37
◼
►
- We are sponsored this week, once again,
00:21:39
◼
►
by our friends at Smile Software.
00:21:40
◼
►
They are promoting this week, PDF/Pen Scan Plus.
00:21:44
◼
►
Now, PDF/Pen Scan Plus, they recently did a great update
00:21:48
◼
►
to the software.
00:21:49
◼
►
Now, what this is, is it's a scanning and OCR app
00:21:52
◼
►
for iPhone and iPad.
00:21:53
◼
►
And all the OCR takes place locally, right on the device.
00:21:58
◼
►
So it doesn't have to upload your file
00:22:00
◼
►
to some cloud OCR service, get the OCR results,
00:22:03
◼
►
send it back. It's all happening right there locally on your device.
00:22:07
◼
►
And Smile Software, I'll tell you what, I use a lot of their stuff, I use PDF Pen
00:22:11
◼
►
and they make high quality stuff, they really do.
00:22:15
◼
►
It's the kind of stuff that like, you might think you don't need
00:22:19
◼
►
some kind of PDF adjustment tool until you do, and then you go to them.
00:22:23
◼
►
And their software has saved my butt so many times
00:22:27
◼
►
doing some quick thing or doing an edit or having to sign something, send it back.
00:22:31
◼
►
And yeah, you can do some of this stuff
00:22:32
◼
►
with preview on the Mac, but trust me,
00:22:34
◼
►
you can do a lot more with PDF Pen.
00:22:36
◼
►
And I end up turning to it quite a lot.
00:22:39
◼
►
So PDF Pen Scan Plus for iPhone and iPad
00:22:42
◼
►
lets you scan directly from your iPhone or iPad camera.
00:22:46
◼
►
And they have batch scanning.
00:22:48
◼
►
Batch scanning is speedy with,
00:22:50
◼
►
you can do post-processing and editing there.
00:22:53
◼
►
You can automatically crop the scan
00:22:55
◼
►
or you can do it manually, quickly and precisely.
00:22:58
◼
►
You can preview the results
00:22:59
◼
►
and then you can copy the text out immediately for use elsewhere. So if you want to scan a document,
00:23:03
◼
►
copy the text, paste it into something else, edit it, email it, whatever you want to do,
00:23:07
◼
►
put it in draft and do a billion things with it, you can do all that stuff right there with
00:23:11
◼
►
PDF/Pen Scan Plus. This new update has been updated for maximum
00:23:15
◼
►
usability. It has not only an improved UI,
00:23:19
◼
►
but effortless multi-page scans with post-process image editing. They have
00:23:23
◼
►
custom paper size settings for receipts. You can also customize the paper
00:23:27
◼
►
to whatever you want. You can preview the OCR text overlaid
00:23:31
◼
►
right on the page which helps you proofread, make sure it got everything right.
00:23:35
◼
►
So really, and of course they're always improving the accuracy
00:23:39
◼
►
of the OCR engine and the text layout and everything. So
00:23:43
◼
►
really it's a fantastic update, it's gotten critical acclaim. And once again this is from Smile Software
00:23:47
◼
►
and they make really good stuff. The whole PDF/Pen family is really great.
00:23:51
◼
►
To learn more about this, go to Smilesoftware.com/ATP
00:23:55
◼
►
Once again, that is SmilesSoftware.com/ATP.
00:23:59
◼
►
Thanks a lot to them and to PDF/Pen/Scan+
00:24:02
◼
►
for iPhone and iPad.
00:24:03
◼
►
- All right, so there's breaking news.
00:24:07
◼
►
- Yeah, about an hour or two ago.
00:24:10
◼
►
And apparently, Apple and Google are sitting in a tree now.
00:24:15
◼
►
K-I-S-S-I-N-G.
00:24:16
◼
►
- Yeah, what is that about?
00:24:17
◼
►
I don't know if we can really talk about that yet,
00:24:19
◼
►
'cause it just happened, we don't really know it.
00:24:21
◼
►
- Well, we know enough.
00:24:22
◼
►
I mean, the one I posted in the notes
00:24:24
◼
►
that you should be looking at is enough.
00:24:27
◼
►
People will know about it by the time they listen to this,
00:24:29
◼
►
of course, or whatever.
00:24:31
◼
►
So Apple and Google have been suing each other over patents
00:24:34
◼
►
because that's what big companies do these days.
00:24:35
◼
►
I mean, I'd love to see,
00:24:37
◼
►
they had this diagram in some article once,
00:24:39
◼
►
like the diagram of who's suing who,
00:24:41
◼
►
everyone's suing everybody.
00:24:41
◼
►
Anyway, but Apple and Google were suing each other
00:24:44
◼
►
over what you'd expect, iPhone patents and Android stuff
00:24:47
◼
►
and who knows what else.
00:24:49
◼
►
And now they're not anymore.
00:24:50
◼
►
They have agreed to dismiss all current lawsuits
00:24:53
◼
►
that exists between the two companies.
00:24:56
◼
►
And they've agreed to work together
00:24:57
◼
►
on patent reform of some form.
00:25:00
◼
►
They haven't said what,
00:25:01
◼
►
I'm assuming nothing will come with that.
00:25:03
◼
►
But anyway, they basically agreed to put their guns back
00:25:07
◼
►
in the holsters for now on the patent.
00:25:10
◼
►
They're not doing a patent cross-license,
00:25:11
◼
►
which is what Apple has done with Microsoft in the past,
00:25:14
◼
►
which is, okay, you can use my patents
00:25:15
◼
►
and I can use your patents.
00:25:16
◼
►
So they're keeping their own patent.
00:25:18
◼
►
I don't know how that works.
00:25:19
◼
►
Like, we just agreed we won't sue each other anymore.
00:25:21
◼
►
They don't even agree to that.
00:25:22
◼
►
they're stopping all current lawsuits. I guess they probably both reserve the right to sue
00:25:25
◼
►
each other about it later, and they declined to comment as to why. And so both companies,
00:25:30
◼
►
this is like the net neutrality thing, technology companies, I mean, I heard some comedians talk
00:25:37
◼
►
about net neutrality, and they assume that technology companies like Microsoft, Apple,
00:25:42
◼
►
Google, or if they're really old, comedian, IBM, are on the bad side of net neutrality,
00:25:48
◼
►
that are against it. That's not the case. In fact, companies like Apple, Google, and even AOL,
00:25:53
◼
►
I saw recently, are on the good side of net neutrality. They're in favor of net neutrality.
00:25:59
◼
►
And Apple and Google, they hate patents. Yeah, they have millions of patents because they have
00:26:01
◼
►
to have them. But they don't like the systems any more than anyone else does. It's just a cost of
00:26:05
◼
►
doing business. It's a terrible cost center for them. They have to spend billions of dollars on
00:26:09
◼
►
defending their patent. I mean, maybe Steve Jobs would disagree. He
00:26:14
◼
►
seem to love patents and love patenting things. But in general, technology companies,
00:26:18
◼
►
I think, would all agree that patents, there's a problem with the current patent system, and it's
00:26:23
◼
►
just an annoying thing they have to do. So these two companies agreeing now in Steve Jobs's absence,
00:26:27
◼
►
perhaps, to say, "Okay, let's stop all these lawsuits. They're just costing us money.
00:26:32
◼
►
No one's going to really win definitively. It's just going to distract us for a long time, and
00:26:36
◼
►
let's concentrate our lobbying efforts in Washington, however meager they may be,
00:26:41
◼
►
on getting some sane form of patent reform through. And my first reaction to this, which I
00:26:47
◼
►
tweeted and also put in the show notes, was, I guess it's Tim Cook holding up a picture of Samsung's
00:26:53
◼
►
logo and saying "Fight the real enemy" and then tearing it up on screen, which is a reference that
00:26:57
◼
►
I assume neither one of you would get. So I put it in the—
00:26:59
◼
►
I actually did. I did. I honestly did.
00:27:01
◼
►
Yay, Casey. Maybe this is the year of Casey. Marco, do you get that reference or not?
00:27:07
◼
►
No, of course not. Come on.
00:27:08
◼
►
All right, but anyway, it's in the show notes and I tweeted it so you can look at it.
00:27:11
◼
►
But I mean, that's just the knee-jerk reaction.
00:27:13
◼
►
The idea being that Apple and Google, that's not the real problem.
00:27:17
◼
►
Apple's real problem is Samsung, which is ripping off not just their patents, but their
00:27:21
◼
►
entire phone inexperience or whatever.
00:27:23
◼
►
And to be clear, this doesn't really have anything to do with Apple fighting Samsung.
00:27:27
◼
►
Yeah, it's just cool.
00:27:28
◼
►
The whole idea is to fight the real enemy and saying, "Oh, maybe Google's not your
00:27:31
◼
►
real enemy," or whatever.
00:27:32
◼
►
So I think this is a good thing overall for both companies, because lawsuits really are
00:27:35
◼
►
stupid distraction and they are expensive and after the Samsung, you know, whatever that the
00:27:41
◼
►
result that lawsuit where Apple got peanuts, you know, like cost the problem. They probably
00:27:45
◼
►
don't even cover the cost of litigation. They got like $120 million set them on or something after
00:27:49
◼
►
years of fighting like I think river was saying that he thought it was like the principle of it
00:27:54
◼
►
like well, see, we're willing to waste all of our money and just fight you in court to the death,
00:27:59
◼
►
even though we know we're not gonna win anything at the end just so how mad we are at you how to
00:28:03
◼
►
to show how Apple is irrationally aggressive
00:28:05
◼
►
with his intellectual property
00:28:06
◼
►
and to try to stop people from stealing their things.
00:28:08
◼
►
But if that is their purpose, which I don't think it is,
00:28:12
◼
►
it's stupid because what everyone else has learned
00:28:13
◼
►
from this is if you have deep enough pockets,
00:28:15
◼
►
you can steal everything Apple does
00:28:17
◼
►
and you'll get a slap on the wrist after a couple years,
00:28:19
◼
►
but you will reap the huge market benefits
00:28:21
◼
►
of having stolen their stuff.
00:28:23
◼
►
Again, this presumes that you believe in patents
00:28:25
◼
►
and all the other stuff, which I do not
00:28:27
◼
►
and I don't think Marco does either.
00:28:28
◼
►
But anyway, I'm glad to see Apple and Google
00:28:31
◼
►
dismiss their current lawsuits.
00:28:33
◼
►
I'm glad to see them concentrate on doing better things,
00:28:37
◼
►
making their products better,
00:28:38
◼
►
and maybe helping patent reform.
00:28:41
◼
►
- Do we really think that, A,
00:28:43
◼
►
they're actually going to do anything
00:28:45
◼
►
to try to reform patents,
00:28:47
◼
►
and B, even if they want to,
00:28:49
◼
►
is there anything they can really do?
00:28:51
◼
►
- I think they will.
00:28:51
◼
►
Like, they do lobbying.
00:28:53
◼
►
Apple and Google do lobby for their interests in Washington.
00:28:55
◼
►
It's just that their money is massively outweighed
00:28:57
◼
►
by the people on the other side of this.
00:29:00
◼
►
And so, yeah, I mean,
00:29:01
◼
►
It's good to see more of the good guys, good guys being people that I agree with, obviously,
00:29:06
◼
►
getting into the fight. But realistically speaking, the bad guys on the other side have
00:29:13
◼
►
way more money and way more influence. And the whole thing is about patents. Like,
00:29:17
◼
►
that's the reason when I talk about patents at Hypercritical that I didn't talk at all
00:29:20
◼
►
about changing the system, because it's in the Constitution. Like, good luck with that.
00:29:24
◼
►
You can't get people to agree. You can't even get laws passed that 90 percent of the people
00:29:28
◼
►
in the country agree with. Good luck trying to get something that's in the Constitution. So,
00:29:31
◼
►
So I have dim hopes that things will get fixed there.
00:29:34
◼
►
But I do like to see these companies actually
00:29:38
◼
►
fighting for their interests when their interests align
00:29:42
◼
►
We are also sponsored this week by our friends at Backblaze.
00:29:45
◼
►
So Backblaze is, quite simply, it is online backup.
00:29:49
◼
►
It's $5 a month.
00:29:51
◼
►
It is native to the Mac.
00:29:53
◼
►
It is unlimited, unthrottled, and uncomplicated.
00:29:56
◼
►
So it's exactly what it sounds like.
00:29:58
◼
►
It's online backup.
00:29:59
◼
►
There's no tricks.
00:29:59
◼
►
there's no upsells or different purchases.
00:30:02
◼
►
You pay $5 a month for unlimited space for one computer.
00:30:05
◼
►
If you have multiple computers,
00:30:06
◼
►
each additional one is just another $5 a month.
00:30:09
◼
►
Really very simple.
00:30:10
◼
►
I've used it for years and it's fantastic.
00:30:14
◼
►
I have, from my computer, I have about a terabyte.
00:30:18
◼
►
From my wife's computer,
00:30:19
◼
►
we have about another two terabytes from that.
00:30:23
◼
►
I back up my mom's computer to it and it's fantastic.
00:30:27
◼
►
It's just a great service.
00:30:28
◼
►
You can easily restore all your files,
00:30:31
◼
►
or you can just restore one file through their web interface.
00:30:34
◼
►
So you can use it even as an extended time machine.
00:30:37
◼
►
So you can say, oh, you know what?
00:30:38
◼
►
I deleted that file a month ago.
00:30:40
◼
►
And they keep some retention there,
00:30:41
◼
►
so they can go find out, stuff like that.
00:30:43
◼
►
You can see if it's there.
00:30:45
◼
►
Or if you're on the road somewhere
00:30:47
◼
►
and you need a file off your desktop,
00:30:48
◼
►
you can get the file right from Backblaze.
00:30:50
◼
►
They also have iOS and Android apps, I believe.
00:30:53
◼
►
At least they have iOS apps.
00:30:54
◼
►
I forget this every time.
00:30:56
◼
►
Anyway, I'm going to go with that at least.
00:30:58
◼
►
They have an iOS app where you can access any of your files that are backup to backblaze
00:31:02
◼
►
from anywhere you are from your iOS device, simply and securely.
00:31:05
◼
►
And of course, as usual, it's unlimited and simple and native.
00:31:10
◼
►
It was actually founded by ex-Apple engineers, which is one of the reasons why the Mac software
00:31:14
◼
►
is so good, it's native and everything else.
00:31:17
◼
►
So try it out.
00:31:18
◼
►
They have a 15-day free trial, no credit card required, you just enter an email and a password
00:31:23
◼
►
and then you're off.
00:31:24
◼
►
Once again, it's online backup.
00:31:26
◼
►
And we always recommend this because you can have local backup, that's great.
00:31:31
◼
►
But local backup does not really help if there's a fire in your house, if there's a flood,
00:31:35
◼
►
or let's say you have water damage, if the apartment above you floods and then it drips
00:31:40
◼
►
into your place and floods your computer desk and messes up all your equipment.
00:31:43
◼
►
It protects you from that.
00:31:45
◼
►
There's all sorts of environmental things that can happen that can knock out your computer
00:31:49
◼
►
and anything connected to it or plugged in nearby.
00:31:52
◼
►
And Backblaze takes care of it.
00:31:54
◼
►
backup, you have all your files off in the cloud somewhere. And they're really great,
00:31:57
◼
►
great company. Thanks a lot to Backblaze. Go to backblaze.com/ATP for just $5 a month,
00:32:04
◼
►
simple, unlimited, unthrottled backup.
00:32:07
◼
►
There's another reason you should go to backblaze.com. They have a great blog where they do what
00:32:10
◼
►
I think every tech company should do is they blog about not like, oh, here's they do blog
00:32:14
◼
►
about but here's the new feature of our new version 2.0 of the product they blog instead
00:32:18
◼
►
what they do is mostly blog about the crazy things they have to do to store your data
00:32:22
◼
►
to like their big devices filled with hard drives
00:32:25
◼
►
and all the stats on their hard drives
00:32:26
◼
►
and the failure rates.
00:32:27
◼
►
And the most recent one was trying to correlate
00:32:30
◼
►
failure rates with temperature changes.
00:32:32
◼
►
It's just awesome stuff if you care about storage,
00:32:34
◼
►
just to look at, you know, it's kind of like, you know,
00:32:38
◼
►
open source type development where they discover things
00:32:42
◼
►
as over the course of doing their work
00:32:44
◼
►
and then they write about it in this sort of an open way.
00:32:46
◼
►
And you're like, oh, don't you want your competitors
00:32:47
◼
►
not knowing how you do things?
00:32:48
◼
►
So like, they don't care.
00:32:49
◼
►
Here's everything we learned.
00:32:50
◼
►
Here's the reliability rates for hard drives
00:32:53
◼
►
over multiple years.
00:32:54
◼
►
They have like, what did they say?
00:32:55
◼
►
Like 34,000 hard drives or something?
00:32:56
◼
►
So they have a pretty good sample size going.
00:32:58
◼
►
I love reading that stuff.
00:33:00
◼
►
And it makes it, it should be unrelated to the product,
00:33:02
◼
►
but it makes me feel better using the product,
00:33:04
◼
►
reading those blog posts.
00:33:05
◼
►
- Yeah, I definitely enjoy those myself as well.
00:33:10
◼
►
- Yeah, Apple supposedly is spending some serious money.
00:33:14
◼
►
- Well, that's the best part of the story
00:33:16
◼
►
before we even get to the story.
00:33:17
◼
►
The best, my favorite part of the story is the,
00:33:20
◼
►
and I'm sure you two both do the same thing,
00:33:23
◼
►
you'll see some tweets go by
00:33:25
◼
►
and you can infer what it is they're about.
00:33:28
◼
►
'Cause they're like the first,
00:33:29
◼
►
maybe the first couple of tweets you see
00:33:30
◼
►
don't link to any story,
00:33:31
◼
►
but they make some kind of vague comment.
00:33:32
◼
►
And you know something's up.
00:33:34
◼
►
Sometimes you know a company's involved,
00:33:37
◼
►
but you're not sure what the deal is.
00:33:38
◼
►
And then you have to like scroll and you see a couple more.
00:33:41
◼
►
If you're lucky, some person will put a link in,
00:33:43
◼
►
a link to a story that explains what it's talking about.
00:33:45
◼
►
But a lot of the times, in my experience anyway,
00:33:47
◼
►
I'll just get the commentary.
00:33:48
◼
►
I won't get the story.
00:33:49
◼
►
and I had to figure out what it's about.
00:33:51
◼
►
And so, you know, and do my own,
00:33:53
◼
►
sometimes you go to Google
00:33:54
◼
►
and you just type in a couple of keywords
00:33:55
◼
►
and then you find like the top result.
00:33:57
◼
►
And so this one was that, you know,
00:33:58
◼
►
Apple was supposedly in talks to buy Beats,
00:34:01
◼
►
the music company that makes the headphones
00:34:04
◼
►
and has the streaming media,
00:34:05
◼
►
music service and stuff like that.
00:34:07
◼
►
And the next question is, did they already buy them
00:34:10
◼
►
and people are writing snarky tweets
00:34:11
◼
►
about the fact that it happened or is it just a rumor?
00:34:13
◼
►
And so more googling around, you find,
00:34:15
◼
►
oh, it's just like, you know, an article that says
00:34:18
◼
►
Apple is in talks to blah, blah, blah, right?
00:34:21
◼
►
And that process repeated itself
00:34:22
◼
►
and continues to repeat itself to this very day.
00:34:25
◼
►
Every time I see people tweeting about it,
00:34:26
◼
►
people will write headlines like why Apple bought Beats.
00:34:29
◼
►
I'm like, oh, did they announce it?
00:34:30
◼
►
Nope, nope, not yet.
00:34:31
◼
►
Why Apple should buy Beats?
00:34:33
◼
►
Okay, I kind of get that one.
00:34:34
◼
►
You know, it's like why Apple buying Beats
00:34:36
◼
►
is the best thing ever, I can't really tell.
00:34:38
◼
►
So I'm constantly, every time I see tweet,
00:34:39
◼
►
it's like, did they announce it?
00:34:40
◼
►
Did they announce it?
00:34:41
◼
►
And since it's been going on for what, a week now?
00:34:43
◼
►
More than a week?
00:34:44
◼
►
It's just, it's both frustrating and hysterical
00:34:47
◼
►
that this can be a story without actually there being an announcement yet.
00:34:51
◼
►
So suppose it's real because I think there's there's enough.
00:34:57
◼
►
Oh, yeah. No, there's tons of smoke.
00:35:00
◼
►
It's just and there's been no denials from anybody. Yeah, right.
00:35:03
◼
►
And it's been it was reported by The Wall Street Journal at first.
00:35:06
◼
►
Like these are you know, there's this is pretty substantial smoke.
00:35:09
◼
►
So I would say it's very likely to be real at this point.
00:35:12
◼
►
All right. So the next question is, why has it not been announced?
00:35:15
◼
►
assuming we all believe that it's real and with everything points in that direction,
00:35:20
◼
►
why no announcement?
00:35:21
◼
►
Well, you know, they could just be delaying it until WWDC to combine it into one big PR
00:35:25
◼
►
announcement. It could just really not be finished, you know, not be a done deal yet,
00:35:29
◼
►
so they kind of can't and shouldn't talk about it yet. You know, there's lots of plausible
00:35:32
◼
►
reasons why it was, you know, leaked but not announced yet.
00:35:36
◼
►
WWDC was my guess as well, but then, like, why leak so early? That seems like if it was
00:35:41
◼
►
a planned leak--
00:35:42
◼
►
It's not that early.
00:35:43
◼
►
I guess maybe I'm in denial about when I'm going to have to be on a plane for six hours,
00:35:46
◼
►
but it's coming up soon, isn't it?
00:35:50
◼
►
But yeah, I think this is a little bit weird because normally Apple's sort of planned leaks
00:35:54
◼
►
happen in closer proximity.
00:35:58
◼
►
Maybe this was just an unplanned leak or whatever.
00:36:00
◼
►
But anyway, it's a weird story, the fact that it just lives on in the zombie mode.
00:36:05
◼
►
Everyone is writing as if it has already happened, which will be funny if it doesn't happen for
00:36:10
◼
►
some weird reason, but just like we've moved on now.
00:36:13
◼
►
Now we're just talking about the repercussions of this deal
00:36:15
◼
►
that hasn't been announced.
00:36:16
◼
►
All right, so anyway, we can talk about the actual deal.
00:36:19
◼
►
- Yeah, I mean, so if it's true,
00:36:21
◼
►
let's assume for now it's true.
00:36:22
◼
►
So it's really interesting, 'cause first of all,
00:36:26
◼
►
yeah, it's for $3 billion,
00:36:27
◼
►
and that's more than what they bought Next for,
00:36:28
◼
►
but these days, that's a mid-priced acquisition.
00:36:33
◼
►
That's not even a massive acquisition in tech anymore.
00:36:36
◼
►
So okay, it's a lot of money,
00:36:38
◼
►
but they are a profitable hardware company.
00:36:41
◼
►
I think somebody said that Beats makes
00:36:43
◼
►
like a billion dollars a year, something like that.
00:36:46
◼
►
So the price really isn't that crazy for that.
00:36:50
◼
►
But anyway, so it's unusual for Apple.
00:36:54
◼
►
It's worth mentioning because this is not
00:36:57
◼
►
the kind of acquisition Apple has really ever done.
00:36:59
◼
►
You know, normally they buy small technology companies
00:37:02
◼
►
that are doing something cool and they buy them
00:37:04
◼
►
for the technology or for the people
00:37:06
◼
►
and you never hear about it.
00:37:09
◼
►
They don't buy big established consumer brands
00:37:12
◼
►
and like Beats and do God knows what with it.
00:37:17
◼
►
This is very unlike Apple.
00:37:18
◼
►
But this is a new Apple, this is Tim Cook's Apple
00:37:22
◼
►
and it's a shifting landscape
00:37:24
◼
►
and Apple does what they think is best
00:37:26
◼
►
and I think there's a lot of reasons why this makes sense.
00:37:30
◼
►
A lot of people are like, "What are they gonna do?
00:37:31
◼
►
This doesn't make any sense, this is stupid."
00:37:33
◼
►
I think this makes tons of sense.
00:37:36
◼
►
Before I explain why, what do you guys think about it?
00:37:39
◼
►
- I don't really have that much of an opinion,
00:37:42
◼
►
which bothers me because I know I should.
00:37:44
◼
►
But I've thought about it on and off
00:37:46
◼
►
since we heard this going on.
00:37:49
◼
►
And the only opinion I have about it
00:37:53
◼
►
is that I'm really pissed off
00:37:54
◼
►
that I didn't immediately think to pitch Dr. Dre
00:37:58
◼
►
as the WWDC Beer Bash artist.
00:38:01
◼
►
It took me a couple days to think of that joke.
00:38:03
◼
►
- He's way too big for that.
00:38:05
◼
►
- Oh, I know.
00:38:05
◼
►
It took me a couple days to think of that joke though and I'm a little bothered by that.
00:38:08
◼
►
But I mean, I guess it makes sense.
00:38:10
◼
►
It's hard to...
00:38:12
◼
►
There are two wildly different businesses that Beats has.
00:38:16
◼
►
There's the streaming music service, kind of similar to Spotify, although I've never
00:38:21
◼
►
And then there's the headphones.
00:38:23
◼
►
And from everything I've heard from audio files, which I don't want to piss them off
00:38:29
◼
►
ever again, because by God, that was a mistake.
00:38:32
◼
►
That was awesome.
00:38:33
◼
►
You and I have different definitions of awesome.
00:38:36
◼
►
Anyway, every audiophile I've ever heard who has had a set of Beats headphones on their
00:38:42
◼
►
head says that they're terrible.
00:38:44
◼
►
Now I am not saying that's right, I'm not saying that's wrong, I'm just saying that's
00:38:49
◼
►
what I've heard.
00:38:50
◼
►
And I've never tried them.
00:38:51
◼
►
I probably should find a pair somewhere that's been on 3,000 years because they're at like
00:38:55
◼
►
a Best Buy or whatever and try them.
00:38:57
◼
►
But there's the hardware business and then there's the streaming music business, which
00:39:02
◼
►
which supposedly is very, very good.
00:39:04
◼
►
And then once you talk about the streaming music business,
00:39:07
◼
►
do they get, does Apple get licenses?
00:39:09
◼
►
If they just buy up Beats and otherwise leave them alone,
00:39:14
◼
►
does Beats keep the licenses?
00:39:15
◼
►
There's like so many different moving parts here.
00:39:17
◼
►
And I just, I don't know what to make of it.
00:39:19
◼
►
And I can't decide if it's good, bad,
00:39:22
◼
►
or somewhere in between.
00:39:23
◼
►
Jon, what do you think?
00:39:25
◼
►
- This is weird in a couple of ways.
00:39:26
◼
►
A lot of them have to be speculative ways
00:39:28
◼
►
because it hasn't been announced.
00:39:31
◼
►
we don't know anything about it. And so everyone has to first decide, okay, assuming it's true,
00:39:35
◼
►
does Apple keep the Beats brand or do they fold it in? Does Apple keep the streaming service or
00:39:40
◼
►
just use the technology to make a new service? Does Apple keep the headphones or ditch them?
00:39:43
◼
►
And so everyone has to sort of build their own Beats acquisition. It's like a kid.
00:39:47
◼
►
So I think they're going to keep the brand. They're going to drop the headphones. They're
00:39:51
◼
►
going to integrate the streaming service with iTunes Radio. I think they're going to keep the
00:39:53
◼
►
brand and keep the streaming service but drop the headphones. I think they're going to keep
00:39:56
◼
►
the headphones but drop the streaming service and keep, you know, there's so many possible
00:39:59
◼
►
I think the licenses won't come with them because they'll have to be renegotiated. No, actually I think licenses will come with them
00:40:04
◼
►
Actually, I don't think it doesn't matter because they're gonna have the Beats guys negotiate with the record labels instead of Apple
00:40:08
◼
►
No do better. Why will they do better? Isn't it? Once they become part of Apple don't they become the enemy as well?
00:40:13
◼
►
You know, it's like so many permutations and so many unknowns. It's hard to solve for things a few things
00:40:17
◼
►
I think we can address and I think Marco talked about some of them already here
00:40:20
◼
►
One the people saying this is a sign of weakness because if Apple has to go outside for this stuff
00:40:26
◼
►
It shouldn't have to go outside the company for this. This is in its strength
00:40:28
◼
►
Why does it have to buy another company to do streaming music? Why does that divide on the company to do headphones?
00:40:33
◼
►
Why does have to buy another company to do to make deals with record labels?
00:40:36
◼
►
It's a sign of weakness that strategy always worked for Microsoft keep everything in-house
00:40:40
◼
►
Don't never look anything outside never admit anything outside is better than what you have
00:40:43
◼
►
Well, the thing is Apple has never been like that when they wanted to get semiconductor manufacturing expertise
00:40:48
◼
►
They bought PA semi when they wanted to you know
00:40:52
◼
►
well, this is a bad example,
00:40:53
◼
►
they wanted to upgrade their store,
00:40:54
◼
►
they bought that company that did the app store thing,
00:40:57
◼
►
that Chomper or whatever it was.
00:40:59
◼
►
They're constantly buying outside companies
00:41:00
◼
►
right in the areas of expertise
00:41:02
◼
►
because it's hard to staff up,
00:41:04
◼
►
and it's much easier to buy a bunch of experienced people
00:41:07
◼
►
who've already done what you want.
00:41:08
◼
►
They're constantly buying,
00:41:09
◼
►
these small companies they're buying,
00:41:10
◼
►
it's because they have people and technology
00:41:12
◼
►
that Apple wants, and yes, they do fold them in,
00:41:14
◼
►
but that's a separate question.
00:41:15
◼
►
So I don't think this acquisition
00:41:16
◼
►
is a sign of Apple's weakness,
00:41:17
◼
►
and I don't think it's unprecedented to acquire companies
00:41:22
◼
►
that have things that Apple wants
00:41:23
◼
►
instead of building them all in-house.
00:41:25
◼
►
So that's all fine.
00:41:26
◼
►
Unprecedented would be keeping the Beats brand
00:41:28
◼
►
and keeping it separate from Apple,
00:41:29
◼
►
'cause they don't do that.
00:41:30
◼
►
Once you get acquired by Apple historically,
00:41:32
◼
►
your people and your technology become part
00:41:33
◼
►
of the Apple fold and whatever branding
00:41:35
◼
►
and product you have before it goes away.
00:41:37
◼
►
And that works with small companies,
00:41:38
◼
►
but once you're buying companies
00:41:39
◼
►
for multiple billions of dollars,
00:41:40
◼
►
it's like, do we really wanna throw away that brand?
00:41:43
◼
►
And that brings me to me,
00:41:44
◼
►
to what I think this acquisition is about,
00:41:46
◼
►
this phantom acquisition with no announced parameters,
00:41:49
◼
►
so that I have to just speculate about.
00:41:51
◼
►
And this says one thing to me and one thing about the future of Apple, and we'll talk
00:41:55
◼
►
about it if we ever talk about wearables, is fashion, which has always been a part of
00:41:59
◼
►
what Apple does.
00:42:02
◼
►
Every part of the research in Apple has been about fashion in some way from the Bondi Blue
00:42:06
◼
►
iMac to the iPod and all their advertisements on television with the dancing silhouette
00:42:15
◼
►
Yes, fashion has always been part of Apple.
00:42:17
◼
►
I think is going further down that road with a possible wearable coming out the line and what does beats bring?
00:42:24
◼
►
Beats is a fashion phenomenon. You talked about the the quality of the headphones not being a great in fashion
00:42:30
◼
►
It doesn't matter that much when the quality of the headphones is
00:42:33
◼
►
It's the fact that they're cool and that people like them and you can say they're right or wrong to like them
00:42:38
◼
►
But they are definitely in fashion the streaming
00:42:40
◼
►
Service as well
00:42:43
◼
►
Could Apple do a streaming service sure, you know Beats is not a big streaming services, you know Spotify and RDO are way bigger
00:42:49
◼
►
But beats seems to have a good brand and it's possible and people like their streaming service
00:42:55
◼
►
And if Apple got behind it they could get the numbers up
00:42:58
◼
►
but this just I mean without knowing anything this definitely seems like a
00:43:02
◼
►
Fashion acquisition and when you buy something with fashion like if Apple bought Versace or something, which I'm probably mispronouncing. Sorry fashion people
00:43:10
◼
►
They would not get rid of the brand like you buy Calvin Klein
00:43:13
◼
►
You don't say and we're not gonna use the Calvin Klein name anymore
00:43:15
◼
►
Of course, you're gonna use the name like that's what you bought
00:43:17
◼
►
So if I'm right and that Apple has bought beats because of for fashion reasons
00:43:22
◼
►
I have to think that it's going to keep the brand because you don't buy something
00:43:25
◼
►
You don't buy a fashion company and then throw away the name brand
00:43:29
◼
►
Yeah, I think I think you're on the right track with all this. I mean
00:43:33
◼
►
So I think again first to address that questions everyone's asking, you know, what will they do with the beats brand?
00:43:38
◼
►
I think it's a no-brainer. The beats brand is really strong
00:43:40
◼
►
They're gonna keep it, no question.
00:43:42
◼
►
Like it would be royally stupid to shut all this down
00:43:47
◼
►
and be like, all right, these are now just Apple headphones
00:43:50
◼
►
and this is now the new iTunes Radio 2.0.
00:43:52
◼
►
That would be a huge mistake.
00:43:54
◼
►
I really, I don't think Apple is stupid in this regard.
00:43:58
◼
►
That would be royally stupid.
00:44:00
◼
►
So that's one thing.
00:44:01
◼
►
The other thing is, if you look at,
00:44:06
◼
►
this is two very different businesses, right?
00:44:08
◼
►
This is headphones, headphone hardware,
00:44:11
◼
►
that's the premium price segment that is very high margin
00:44:15
◼
►
versus this music service which is probably very low margin
00:44:20
◼
►
and not very popular yet.
00:44:23
◼
►
So here's what I think.
00:44:26
◼
►
Basically, the Beats headphones,
00:44:29
◼
►
people think I'm all up in arms about Beats headphones
00:44:32
◼
►
because they're bad.
00:44:33
◼
►
And the fact is I don't think they're that bad.
00:44:35
◼
►
They're not great and you can,
00:44:37
◼
►
It's like Bose, Bose headphones are not bad headphones.
00:44:42
◼
►
You can just get better sound quality
00:44:44
◼
►
at those prices from other brands.
00:44:47
◼
►
Or you can get better sound quality for less,
00:44:49
◼
►
usually from other brands that are less well known
00:44:52
◼
►
or less fashionable or just targeted differently
00:44:56
◼
►
or prioritized differently.
00:44:58
◼
►
So Beats headphones are not terrible.
00:45:01
◼
►
They're better than the earbuds, certainly.
00:45:03
◼
►
They're better than any earbud I've ever tried.
00:45:06
◼
►
And they look nice and they're pretty comfortable.
00:45:11
◼
►
Most of them are.
00:45:12
◼
►
So really, that's pretty good.
00:45:15
◼
►
And they don't necessarily sound accurate.
00:45:19
◼
►
They do not accurately represent
00:45:21
◼
►
with a flat frequency response.
00:45:23
◼
►
But most people don't like flat frequency responses.
00:45:25
◼
►
Most people like a boost in bass and treble.
00:45:28
◼
►
And that's what they supposedly do.
00:45:30
◼
►
And so they make the sound more appealing,
00:45:34
◼
►
even if it's artificial.
00:45:36
◼
►
And so you combine the whole package here,
00:45:40
◼
►
it's pretty appealing to people.
00:45:42
◼
►
You have good looking headphones that are cool,
00:45:45
◼
►
they're from a popular brand,
00:45:47
◼
►
and they sound appealing to you,
00:45:50
◼
►
and they make you look good,
00:45:52
◼
►
or they make you look like a status symbol.
00:45:54
◼
►
That's a very appealing thing.
00:45:57
◼
►
Now, I was in an Apple store a couple days ago,
00:46:00
◼
►
and they had these two giant tables set up
00:46:03
◼
►
with all premium headphones.
00:46:05
◼
►
Like the cheapest pair of headphones on these tables
00:46:07
◼
►
was I think 200 bucks, probably the Bose AE series.
00:46:10
◼
►
And I tried a bunch of them
00:46:12
◼
►
'cause I had to wait a little while.
00:46:13
◼
►
And the Beats ones were fine.
00:46:15
◼
►
Like, you know, they didn't sound amazing,
00:46:18
◼
►
but they sounded good, you know, just not great.
00:46:21
◼
►
They didn't sound like $300,
00:46:23
◼
►
but they sounded like maybe 80 bucks.
00:46:26
◼
►
You know, like I've had $80 headphones
00:46:28
◼
►
that sounded worse than that.
00:46:29
◼
►
- Now really quickly, what is the price point
00:46:31
◼
►
for a set of Beats headphones?
00:46:33
◼
►
Because I genuinely don't know.
00:46:34
◼
►
- I believe they span two to four,
00:46:36
◼
►
or two to three at least.
00:46:37
◼
►
- A hundred?
00:46:38
◼
►
- Yeah, something like that.
00:46:40
◼
►
- And I'm actually not that familiar with the product line.
00:46:41
◼
►
Like I'll try them out in the Apple store
00:46:43
◼
►
every once in a while,
00:46:43
◼
►
but I don't usually do more than that.
00:46:47
◼
►
But if you look at everything else
00:46:49
◼
►
in that segment in the store,
00:46:50
◼
►
everything else they have at the Apple store
00:46:52
◼
►
on those tables,
00:46:53
◼
►
they're all these like premium fashiony brands,
00:46:56
◼
►
brands like Bose or Bang and Olufsen,
00:46:58
◼
►
like these like super high end brands
00:47:00
◼
►
that audio files really don't even look twice at
00:47:03
◼
►
because their sound profiles are almost never very neutral.
00:47:07
◼
►
They usually have a pretty, pretty wacky sound profile
00:47:12
◼
►
like the frequency response line is nowhere near flat.
00:47:15
◼
►
And so, you know, for audio files,
00:47:18
◼
►
that's not really what we're looking for
00:47:20
◼
►
but the fact is these headphones are popular.
00:47:23
◼
►
They're expensive, they're nice, they're well made,
00:47:26
◼
►
they look cool, they are usually extremely comfortable
00:47:29
◼
►
lightweight. Some of them have noise canceling, which is a very useful feature for travelers,
00:47:33
◼
►
air travelers especially. So like, they're useful to people, they're practical. So it's a very
00:47:38
◼
►
successful headphone brand in a very successful segment that is booming partially, in fact,
00:47:43
◼
►
a lot because of Beats. Beats has made this segment popular among young people who were
00:47:48
◼
►
previously just wearing crappy earbuds. So if you like Beats to me, and I mean this in the good and
00:47:55
◼
►
in bad ways, there are good ways here,
00:47:58
◼
►
Beats has done to headphones what Starbucks did for coffee.
00:48:01
◼
►
You know, it isn't the best coffee,
00:48:04
◼
►
but it brought coffee to the masses
00:48:06
◼
►
that was above and beyond both the price
00:48:10
◼
►
and the quality of like 7-Eleven crap
00:48:12
◼
►
that you'd get at gas stations.
00:48:13
◼
►
And that's, you know, Beats has done that to headphones.
00:48:15
◼
►
It's way better than earbuds by a long shot.
00:48:19
◼
►
It's way better than the crappy little,
00:48:20
◼
►
you know, $20 things you get, you know, at the drugstore.
00:48:24
◼
►
It's a lot more expensive and you can do a lot better,
00:48:29
◼
►
but it's bringing, it brought full-sized headphones
00:48:32
◼
►
to the masses again.
00:48:34
◼
►
And it's bringing this whole category
00:48:36
◼
►
of expensive headphones to the masses
00:48:39
◼
►
and making that cool, making it cool to walk around
00:48:41
◼
►
wearing anything beyond earbuds.
00:48:43
◼
►
I mean, I would love to walk around
00:48:46
◼
►
wearing nice big headphones that sound good,
00:48:48
◼
►
but until about this year,
00:48:50
◼
►
I would have felt like an idiot walking around like that
00:48:52
◼
►
'cause I would look ridiculous.
00:48:54
◼
►
Now, everyone's wearing big headphones,
00:48:57
◼
►
and that was largely started by Beats.
00:48:59
◼
►
So anyway, it's a very good headphone brand.
00:49:02
◼
►
It's not for me, but it's a very good successful brand.
00:49:06
◼
►
And they're selling a lot of $300 things in Apple stores.
00:49:09
◼
►
And it's a very high margin business.
00:49:11
◼
►
So I look at this primarily as a retail buy.
00:49:15
◼
►
Like I think the music service,
00:49:16
◼
►
I'll get to that in a second,
00:49:17
◼
►
but I think the music service
00:49:18
◼
►
is actually a secondary deal here.
00:49:20
◼
►
I think this is primarily about the retail headphone brand.
00:49:23
◼
►
and they already have tons of real estate in Apple stores.
00:49:27
◼
►
Apple sells a ton of them,
00:49:28
◼
►
and they're gonna get a nice boost
00:49:30
◼
►
in just retail margins from this.
00:49:33
◼
►
- But do they really need that?
00:49:34
◼
►
I mean, I don't know.
00:49:35
◼
►
I don't buy that they're not going to make Beats headphones
00:49:39
◼
►
become Apple headphones,
00:49:41
◼
►
'cause they don't need more money.
00:49:42
◼
►
I mean, they're freaking printing money, Apple is.
00:49:45
◼
►
- Well, no, but think of it as a strategic thing,
00:49:47
◼
►
like about wearables.
00:49:48
◼
►
How many things does Apple sell that you wear
00:49:50
◼
►
that they're successful selling?
00:49:52
◼
►
I mean, the earbuds.
00:49:54
◼
►
- I guess them and it kind of like the iPod Nano
00:49:57
◼
►
at various times has clipped to you
00:49:59
◼
►
or the shuffle stuff like that.
00:50:00
◼
►
But like, it's clear that,
00:50:02
◼
►
seems clear that Apple wants to get into wearables.
00:50:04
◼
►
Beats is a company that sells something you wear
00:50:07
◼
►
that is very popular.
00:50:09
◼
►
And like, and even though I said,
00:50:10
◼
►
I think they'll keep the brand,
00:50:12
◼
►
the reason this build your own acquisition thing
00:50:14
◼
►
is so much fun is all scenarios are plausible
00:50:17
◼
►
'cause it would be plausible that they bought Beats,
00:50:20
◼
►
they will destroy the Beats brand
00:50:22
◼
►
never use it and merely have bought it because they want the expertise of people who know how
00:50:27
◼
►
to sell something expensive that you wear that is cool and say please do that for us and they want
00:50:31
◼
►
Jimmy Iovine to do deals with the record labels because he knows them or whatever like that is
00:50:36
◼
►
less likely than what I think but it's not it's not outside the realm of possibility like most
00:50:39
◼
►
people aren't talking about that but do you guys think that's impossible that they would ditch the
00:50:43
◼
►
headphones turn the streaming service into an apple streaming service and what they would be
00:50:48
◼
►
be getting out of deals is relationships with music companies, if not necessarily license
00:50:51
◼
►
agreements depending what the legality is, and the expertise of a company that had figured
00:50:56
◼
►
out how to build something with 300 bucks that people wear that they'll happily buy.
00:51:00
◼
►
Well, so let's get to the music thing then, because I think, again, I think the headphone
00:51:06
◼
►
business is way too big and successful for Apple to shut down that brand or get rid of
00:51:13
◼
►
Mmm, I still disagree.
00:51:15
◼
►
People love Beats.
00:51:16
◼
►
Everyone except audiophiles loves Beats.
00:51:18
◼
►
But see, if they killed the business, it would leave a vacuum in the market.
00:51:21
◼
►
Because as Marco pointed out, this is like the Starbucks moment for big headphones.
00:51:26
◼
►
Kind of like a retread of the '70s where big headphones were in briefly, or the '60s and
00:51:29
◼
►
'70s where big headphones were in then, mostly because you couldn't have decent sounding
00:51:32
◼
►
small headphones.
00:51:34
◼
►
But I don't think it's implausible that they would ditch it entirely.
00:51:40
◼
►
I don't know.
00:51:41
◼
►
anything they would become Beats by Apple and then it would become just Apple.
00:51:46
◼
►
Like maybe they don't flush the Beats brand in its entirety immediately, but I don't know
00:51:51
◼
►
if they're after headphones at all, which obviously none of us know if that's the case,
00:51:55
◼
►
but if they're after headphones, I don't see the point in owning a company that continues
00:52:01
◼
►
to operate autonomously when you've already got a crap load of money.
00:52:06
◼
►
It'd be one thing if Apple was barely profitable and then they buy this hugely profitable business,
00:52:10
◼
►
Okay, well in that case don't mess with what works but Apple, like I said, they're printing
00:52:17
◼
►
Why would they not fold that into the Apple brand and hopefully bring those customers
00:52:23
◼
►
But they would, by getting rid of the Beats brand, you'd be putting a void in the market
00:52:27
◼
►
and who fills that void?
00:52:28
◼
►
You're hoping it will be Apple to fill that void but you'd be immediately created.
00:52:31
◼
►
It's like if Starbucks folded and then it would be like, well, but someone's got to
00:52:34
◼
►
buy their, you know, high priced coffee from somewhere.
00:52:36
◼
►
I'm not saying stop having Starbucks stores.
00:52:39
◼
►
I'm saying put the words blue bottle on the store
00:52:44
◼
►
instead of Starbucks, you know, or whatever.
00:52:45
◼
►
- Please email Casey.
00:52:46
◼
►
- Yeah, but what they're selling is the brand though.
00:52:50
◼
►
Like, you know what I mean?
00:52:50
◼
►
Like Beats is not the headphone.
00:52:53
◼
►
If someone else sold the headphone
00:52:55
◼
►
that looks slightly different
00:52:56
◼
►
and didn't have the word Beats in front of it,
00:52:57
◼
►
someone would ask you, hey, is that a new pair of Beats?
00:52:59
◼
►
You'd say, no, it's what, insert name of credit knockoff.
00:53:02
◼
►
You'd be creating a void in the market
00:53:04
◼
►
that would have to be filled by somebody.
00:53:05
◼
►
And it would be up to Apple to fight
00:53:07
◼
►
with all the other people to fill that void.
00:53:09
◼
►
"Oh, please buy our Apple headphones."
00:53:10
◼
►
They're designed by the same guys who designed Beats.
00:53:12
◼
►
- Fine, Beats by Apple.
00:53:13
◼
►
- That will take over the cache that Beats had established.
00:53:17
◼
►
And I mean, it's fashion, you know?
00:53:18
◼
►
If Calvin Klein goes away,
00:53:20
◼
►
you don't immediately get their market share
00:53:22
◼
►
because you made them go away.
00:53:23
◼
►
Like if you acquire Calvin Klein and sunset the brand,
00:53:26
◼
►
you don't get all those customers automatically.
00:53:28
◼
►
Everyone's gotta fight for them again.
00:53:29
◼
►
- Yeah, and also like,
00:53:31
◼
►
you can't underestimate the impact
00:53:32
◼
►
that Beats has had on the market.
00:53:34
◼
►
If you look around at any other headphone company,
00:53:37
◼
►
like even old companies like Sennheiser, AKG,
00:53:41
◼
►
you know, these big old headphone companies
00:53:43
◼
►
that are making these things forever,
00:53:45
◼
►
they all now have headphones in the $1 to $300 range
00:53:49
◼
►
that have certain colors, colored cables,
00:53:52
◼
►
like all this stuff, like all these design cues
00:53:55
◼
►
and adjustments and these brands, brands,
00:53:58
◼
►
all these like, these old boring brands
00:54:02
◼
►
made these like new young model names
00:54:05
◼
►
and like the Sennheiser Momentum and all this stuff
00:54:07
◼
►
and they all look like Beats.
00:54:10
◼
►
They all took all those design cues.
00:54:12
◼
►
It's clearly inspired by Beats, if nothing else.
00:54:17
◼
►
And yeah, they sound way better.
00:54:18
◼
►
I would have the Sennheiser Momentum over Beats any day
00:54:20
◼
►
even though I didn't even like the Momentum that much.
00:54:22
◼
►
But it's impossible to understate
00:54:27
◼
►
how dominant Beats is in this market
00:54:29
◼
►
and how much their brand is really worth
00:54:32
◼
►
and how much people have been inspired by it
00:54:34
◼
►
and are aspiring to be like them.
00:54:37
◼
►
And other headphone brands are copying them left and right,
00:54:39
◼
►
trying to be more like them,
00:54:41
◼
►
but they are dominant in this market.
00:54:42
◼
►
So here's why I think this all ties in.
00:54:45
◼
►
So the hardware business I think is very good.
00:54:49
◼
►
It's a nice boost to their retail margins
00:54:51
◼
►
and everything else, that's fine.
00:54:53
◼
►
I think the bigger, and John, I think you're right
00:54:55
◼
►
that this is more about Apple becoming a fashion
00:54:58
◼
►
and lifestyle company.
00:54:59
◼
►
That is a very, very good reason for this.
00:55:02
◼
►
But I think the music angle and the cool factor is the biggest.
00:55:07
◼
►
If you look at what iTunes is, iTunes is, it's never been that financially important
00:55:13
◼
►
to Apple, but it's always been spiritually important and important for their public perception
00:55:19
◼
►
in marketing and branding.
00:55:21
◼
►
Steve Jobs said a long time ago, he had dismissed streaming services or the demand for them,
00:55:29
◼
►
saying that people want to own their music.
00:55:32
◼
►
And that has proven to be wrong.
00:55:34
◼
►
Like many Steve Jobs dismissals over time.
00:55:38
◼
►
I'm sure if he was still around today,
00:55:39
◼
►
he would totally deny that and say,
00:55:41
◼
►
oh yeah, streaming services are great,
00:55:42
◼
►
'cause now we have one, you know,
00:55:43
◼
►
but in typical Jobs style.
00:55:46
◼
►
But Steve Jobs was wrong.
00:55:49
◼
►
And it turns out, sorry Merlin,
00:55:53
◼
►
turns out that a lot of people don't care
00:55:55
◼
►
about owning their music.
00:55:56
◼
►
And a lot of people want streaming
00:55:57
◼
►
and that's all they want.
00:55:58
◼
►
I know so many people, I mean listen to the prompt,
00:56:00
◼
►
every week I talk about this.
00:56:03
◼
►
So many people just use streaming music now
00:56:06
◼
►
and they don't even keep iTunes libraries anymore.
00:56:10
◼
►
iTunes, like Apple is dominant in the digital music realm,
00:56:15
◼
►
like in selling digital music.
00:56:17
◼
►
But I think the world of selling digital music
00:56:19
◼
►
is on the decline.
00:56:20
◼
►
Like iTunes posted pretty disappointing numbers recently
00:56:22
◼
►
and this has been kinda in the analysis
00:56:26
◼
►
or in the analyst world a little bit.
00:56:28
◼
►
but I think it's pretty clear that Apple
00:56:31
◼
►
is the king of a sinking ship here.
00:56:32
◼
►
This is a terrible mixed metaphor.
00:56:36
◼
►
You know, Apple is so dominant in this world
00:56:41
◼
►
that a whole bunch of people no longer care about.
00:56:45
◼
►
And they try to get into streaming with iTunes Radio,
00:56:49
◼
►
and nobody cares.
00:56:50
◼
►
iTunes Radio is not that good.
00:56:51
◼
►
I've used it here and there,
00:56:53
◼
►
'cause I don't use streaming enough
00:56:54
◼
►
to get one of the better services,
00:56:56
◼
►
but even I can look at iTunes Radio
00:56:57
◼
►
and say this is, I think, the worst of the streaming
00:57:01
◼
►
And they're just not--
00:57:05
◼
►
they're not getting it.
00:57:08
◼
►
And Beats-- if you look at the other streaming services that
00:57:12
◼
►
are more successful than Beats and raw user numbers,
00:57:14
◼
►
I think they're a little bit less Apple-like.
00:57:17
◼
►
Beats is much more about editorial choice
00:57:21
◼
►
and featured playlists made by actual artists and editors
00:57:24
◼
►
and stuff like that.
00:57:25
◼
►
it's less about just pure algorithms.
00:57:28
◼
►
And I think that's more Apple's style,
00:57:30
◼
►
and I think that would fit in better with the iTunes store
00:57:32
◼
►
if it was ever merged in,
00:57:33
◼
►
where it's more about editorial curation
00:57:37
◼
►
from the music industry.
00:57:38
◼
►
That is kind of very Apple versus RDO or Spotify,
00:57:43
◼
►
or the other ones.
00:57:44
◼
►
I think it makes sense for them to buy,
00:57:46
◼
►
and I think there's only,
00:57:48
◼
►
they have to be realizing that Apple is run by a,
00:57:53
◼
►
for the most part, the same very long standing group
00:57:57
◼
►
of pretty uncool middle aged white guys
00:58:00
◼
►
who work at a tech company in California.
00:58:03
◼
►
And that was cool for a while,
00:58:05
◼
►
and I think that time has passed, and I think they know it.
00:58:07
◼
►
And it's pretty clear now that Apple is no longer
00:58:10
◼
►
like inherently cool.
00:58:12
◼
►
They make good stuff here and there that people like,
00:58:14
◼
►
but Apple as a brand is no longer like just the coolest
00:58:19
◼
►
thing in the world, where it was, you know,
00:58:22
◼
►
three to five years ago, say.
00:58:23
◼
►
It is no longer up in that peak.
00:58:25
◼
►
And Beats is, you know, it's not as big as Apple,
00:58:30
◼
►
but it is probably better regarded.
00:58:32
◼
►
And it's certainly, in the area of music alone,
00:58:35
◼
►
you know, obviously Beats doesn't make phones
00:58:37
◼
►
and everything, in the area of music alone,
00:58:39
◼
►
I think Beats is a way better and more promising brand
00:58:43
◼
►
now and in the future than iTunes is.
00:58:46
◼
►
I think iTunes is really on its way out of dominance
00:58:49
◼
►
just because the thing it does is falling out of favor
00:58:51
◼
►
so quickly and probably more quickly
00:58:53
◼
►
than Apple even imagined.
00:58:54
◼
►
And Beats is really good at it
00:58:56
◼
►
and it has a really good foundation
00:58:58
◼
►
and they can bring these people in,
00:58:59
◼
►
they're gonna bring in the executives from Beats
00:59:02
◼
►
and if the rumors are true,
00:59:05
◼
►
they're gonna take on executive roles
00:59:06
◼
►
and lead the music division at Apple,
00:59:08
◼
►
that's awesome 'cause that's exactly what Apple needs.
00:59:11
◼
►
- Let's think about why downloads,
00:59:14
◼
►
why Steve Jobs thought the streaming wasn't a thing
00:59:18
◼
►
and the downloads would be better.
00:59:20
◼
►
I mean, a lot of it is that times change,
00:59:22
◼
►
and the infrastructure changes that
00:59:25
◼
►
make streaming more feasible.
00:59:26
◼
►
But even when he said it, if he had thought about it
00:59:29
◼
►
a little bit differently, I think
00:59:31
◼
►
he would have realized that streaming was inevitable.
00:59:33
◼
►
And maybe he did, because he very often did not
00:59:35
◼
►
reveal his inner thinking about these things.
00:59:37
◼
►
But it was like he was coming from an era
00:59:38
◼
►
where there was two ways to get music.
00:59:41
◼
►
You bought a record at the record store,
00:59:42
◼
►
or you turn on the radio and listen to it.
00:59:44
◼
►
And one, you controlled entirely,
00:59:45
◼
►
and you purchased music, and you owned it.
00:59:46
◼
►
You could pick which songs you wanted.
00:59:48
◼
►
You could go to the store and buy them.
00:59:49
◼
►
You could play them whenever you want.
00:59:51
◼
►
And the other one you had no control over other than changing the radio station.
00:59:53
◼
►
Even that was limited control due to payola and limited bandwidth and various other things.
00:59:59
◼
►
But he should have seen coming is that, okay, we're offering a digital version of you going
01:00:03
◼
►
to the record store and buying music.
01:00:05
◼
►
There will be a digital version of the radio, but you will have some control over it.
01:00:09
◼
►
It won't be like the radio radio where it's broadcast over certain wavelengths and you
01:00:13
◼
►
all just receive it in a certain number of stations.
01:00:16
◼
►
Why shouldn't the listener be able to have almost as much control over what they listen
01:00:20
◼
►
to on a streaming service as they do buying things?
01:00:22
◼
►
That's basically what's happened.
01:00:23
◼
►
No one wants to listen to just a radio station that just plays music.
01:00:29
◼
►
Oh yeah, radio sucks.
01:00:30
◼
►
They want control.
01:00:32
◼
►
These services are like, "Fine, we can give you that.
01:00:34
◼
►
Give us a seed and we'll make you a playlist.
01:00:36
◼
►
We'll have people editorially pick things.
01:00:38
◼
►
We'll have you be able to say songs you don't want to hear again or songs that you do like."
01:00:43
◼
►
All that technology is there.
01:00:45
◼
►
Once that's there, you've got the buying music,
01:00:48
◼
►
and now you've got the listening to the radio,
01:00:50
◼
►
but the listening to the radio starts to have
01:00:51
◼
►
almost all the advantages, in fact, some advantages
01:00:53
◼
►
that buying music doesn't have, which is you're surprised
01:00:55
◼
►
what's gonna come next, you're gonna discover
01:00:57
◼
►
new music that way.
01:00:59
◼
►
And yeah, the business model's different,
01:01:00
◼
►
it's not free within terminal ads,
01:01:01
◼
►
you have to pay some money for it,
01:01:03
◼
►
or iTunes does have ads.
01:01:06
◼
►
Is there a pay tier for iTunes radio?
01:01:07
◼
►
I don't even know.
01:01:08
◼
►
- It's heightened to iTunes match,
01:01:10
◼
►
if you pay for iTunes match,
01:01:11
◼
►
you don't get ads on iTunes radio.
01:01:12
◼
►
Yeah. But anyway, it's streaming, but it's streaming with many, many of the advantages
01:01:19
◼
►
of purchasing music. So it seems like it was almost inevitable that radio's been popular
01:01:23
◼
►
forever. Why were people willing to put up with that crap? Well, it was a nice way to
01:01:26
◼
►
ambiently have music on the go and be surprised, relatively.
01:01:29
◼
►
No, it wasn't. Just our standards were lower. We had fewer alternatives. Radio has always
01:01:34
◼
►
been terrible.
01:01:35
◼
►
The idea that somehow purchasing music of your own would completely replace any kind
01:01:39
◼
►
of broadcast medium, that was never going to happen, and it was clear that streaming
01:01:43
◼
►
would be able to become the thing that it is today.
01:01:46
◼
►
And interesting about Beats, and speaking of streaming and everything, people talk about
01:01:49
◼
►
how Beats, and I just said it earlier, is so small in the streaming market compared
01:01:53
◼
►
to the big players in the streaming market.
01:01:55
◼
►
And even in the headphones market, I mean, yeah, they're the big gorilla in big expensive
01:01:59
◼
►
headphones, but in the grand scheme of things, which I think is what Casey was getting at,
01:02:04
◼
►
how much money is that?
01:02:05
◼
►
A billion here, a billion there, Apple loses that in its sofa, right?
01:02:09
◼
►
So when you're going to buy a company, and we talked about this with Facebook, you want
01:02:14
◼
►
to buy it before you have to pay $19 billion.
01:02:17
◼
►
If you think a company is going to be a $19 billion company, buy it when you can get them
01:02:21
◼
►
for $3 billion.
01:02:23
◼
►
And so all the people are saying, "Why would they buy this small company?"
01:02:27
◼
►
It's buy low, sell high, or buy low, sell never.
01:02:30
◼
►
It's not wait until they're gigantic and say, "Oh, I want to buy the number one streaming
01:02:35
◼
►
you know, the number one streaming company that is Spotify at this point, it would probably
01:02:39
◼
►
cost them more, and it's not—this is a safer bet, because like I said, $3 billion,
01:02:44
◼
►
if it goes out, the beats fizzle out, because fashion things often do, it ends up not being
01:02:49
◼
►
Calvin Klein, but it ends up being, like, I don't know, the Swatch Watch or something
01:02:54
◼
►
else from the 80s that kind of came and went. But that happens in fashion all the time.
01:02:58
◼
►
Hey, you're only out $3 billion. No big deal, right?
01:03:03
◼
►
Also, I mean and this is probably a much smaller concern, but it might it might grow to be a bigger one
01:03:07
◼
►
Beats is on all the platforms or at least on Android. I mean who cares about Windows mobile, but it's on you know
01:03:14
◼
►
So beats might be a way. I don't think Apple would ever swallow its pride and bring iTunes to Android
01:03:20
◼
►
But but having beats radio, whatever. What's the music service called? Just called beats the beats music maybe yes beats music
01:03:28
◼
►
OK, I don't think Apple would be opposed to keeping Beats Music
01:03:32
◼
►
on Android and maintaining it and growing that business there
01:03:35
◼
►
So it's a way for them to--
01:03:36
◼
►
for their music streaming business
01:03:39
◼
►
to get to as many people as possible.
01:03:42
◼
►
iTunes for Windows.
01:03:43
◼
►
I mean, that's the precedent is sometimes
01:03:45
◼
►
in some businesses that Apple wants to be in,
01:03:48
◼
►
you have to be on other platforms.
01:03:51
◼
►
If you want to be $0.70 market share of digital music players,
01:03:54
◼
►
you need iTunes for Windows.
01:03:55
◼
►
And if Apple ever wants to be some big number market
01:03:58
◼
►
share in streaming music, they're gonna have to be
01:04:01
◼
►
another platforms.
01:04:02
◼
►
- Where is Beats Music available?
01:04:04
◼
►
Is it only in the States?
01:04:06
◼
►
- I think so, but it's a very young service.
01:04:09
◼
►
Like usually, the streaming services start out
01:04:11
◼
►
in one country and they broaden as they can negotiate
01:04:14
◼
►
the rights everywhere else.
01:04:15
◼
►
Beats has only been around for a few months, right?
01:04:18
◼
►
It's a very young service.
01:04:19
◼
►
- Launched at the end of January.
01:04:21
◼
►
- Yeah, so it's, I'm pretty sure,
01:04:24
◼
►
I'm pretty sure that's not really that much of a concern
01:04:26
◼
►
Like I'm sure if Apple really is buying Beats that they will make it available
01:04:30
◼
►
worldwide as soon as they can negotiate all that. And I don't think that this is going to come inherently with the deals that Beats
01:04:36
◼
►
negotiated already. I have a feeling there's got to be a clause in those contracts that says that they're that they get renegotiated
01:04:41
◼
►
on acquisition.
01:04:43
◼
►
But yeah, I should also point out that Beats apparently was MOG way back when and MOG was available is available or was
01:04:50
◼
►
available in the US and Australia.
01:04:52
◼
►
But I believe Beats is only available in the US. I think you're right.
01:04:56
◼
►
But, well you know what's available worldwide?
01:04:58
◼
►
Tell us Marco. Our next sponsor,
01:05:00
◼
►
lynda.com, L-Y-N-D-A dot com slash A-T-P.
01:05:04
◼
►
lynda.com helps you learn and keep up to date with your software,
01:05:08
◼
►
pick up brand new skills, or explore new hobbies with easy to follow
01:05:12
◼
►
video tutorials. Whether you want to learn a new programming language,
01:05:16
◼
►
create a graceful user experience for your website, or get your first code up and running with Objective C,
01:05:20
◼
►
lynda.com offers thousands of video courses in a variety of topics.
01:05:24
◼
►
They have over 2400 courses taught by industry experts
01:05:28
◼
►
and they add more every week.
01:05:30
◼
►
Lynda.com works with software companies
01:05:32
◼
►
to provide you with updated training
01:05:33
◼
►
the same day new versions hit the market.
01:05:35
◼
►
So you're always up to speed with things
01:05:37
◼
►
like the new version of Photoshop or Illustrator
01:05:39
◼
►
or Final Cut.
01:05:40
◼
►
They have all these courses on applications,
01:05:43
◼
►
programming languages, all this stuff.
01:05:45
◼
►
And this is for all experience levels,
01:05:47
◼
►
whether you're beginner or advanced.
01:05:49
◼
►
They have all this available for one low monthly price
01:05:53
◼
►
of just $25 a month that gets you unlimited access
01:05:57
◼
►
to the entire lynda.com library.
01:06:00
◼
►
So if you want, you can be like me and learn PHP.
01:06:04
◼
►
They have a course on dynamic data-driven websites with PHP.
01:06:07
◼
►
You can learn everything from using PHP in a web page
01:06:10
◼
►
to building applications for Facebook.
01:06:12
◼
►
Because I once heard a wise programmer say,
01:06:17
◼
►
the world needs more PHP.
01:06:20
◼
►
- If you wanna go with Common Wisdom like Casey
01:06:22
◼
►
and learn Node.js.
01:06:24
◼
►
They have that as well.
01:06:25
◼
►
You can learn to create entire JavaScript applications
01:06:27
◼
►
with Node.js right on lynda.com.
01:06:29
◼
►
They even have courses right there on new stuff like that.
01:06:33
◼
►
They even have courses on branding.
01:06:35
◼
►
So you can learn how to manage the way you're perceived
01:06:37
◼
►
online and off with personal branding strategies.
01:06:40
◼
►
- Oh my God.
01:06:41
◼
►
- I'm hoping they put that in there
01:06:42
◼
►
knowing how to read it like that.
01:06:43
◼
►
We'll find out.
01:06:44
◼
►
You can learn that at lynda.com
01:06:49
◼
►
along with a lot of more useful stuff like programming.
01:06:51
◼
►
So you can bring, they have new stuff with iOS 7,
01:06:55
◼
►
new, you know, every time there's a new SDK,
01:06:57
◼
►
they release a new video, like I'm sure this fall
01:06:59
◼
►
they'll have a new iOS 8 SDK video.
01:07:01
◼
►
You can even explore ASP.NET if you wanna join Casey
01:07:04
◼
►
at his day job.
01:07:06
◼
►
- You can learn the structure behind robust ASP.NET
01:07:08
◼
►
applications and the tools you need to manage data,
01:07:11
◼
►
construct APIs, and establish real-time web connections
01:07:14
◼
►
with a course that they call Up and Running with App.NET,
01:07:17
◼
►
sorry, ASP.NET, sorry.
01:07:19
◼
►
App.net, that would not be very useful these days.
01:07:21
◼
►
Anyway, so go to lynda.com, L-Y-N-D-A.com/ATP,
01:07:27
◼
►
and you can start a free seven-day trial.
01:07:31
◼
►
Once again, it's 25 bucks a month after that,
01:07:35
◼
►
gets you access to the entire catalog,
01:07:36
◼
►
unlimited access to everything.
01:07:38
◼
►
I've learned things about logic and audio editing there
01:07:40
◼
►
for editing this show.
01:07:42
◼
►
I've looked up a few things about some of the languages
01:07:44
◼
►
I was interested in, so really, this is a very good service.
01:07:46
◼
►
The videos are top-notch.
01:07:48
◼
►
They're really professionally made.
01:07:49
◼
►
They have nice little live transcripts on the side.
01:07:50
◼
►
You can scroll around, you can seek right there
01:07:52
◼
►
in the transcript.
01:07:53
◼
►
It's amazing.
01:07:54
◼
►
You can watch them on an iPhone or an iPad.
01:07:55
◼
►
Really great stuff.
01:07:56
◼
►
lynda.com, L-Y-N-D-A dot com slash ATP.
01:08:00
◼
►
Thanks a lot.
01:08:01
◼
►
- Okay, so there's been some interesting developments
01:08:05
◼
►
in the JavaScript world lately.
01:08:06
◼
►
- There have?
01:08:08
◼
►
- It's like he doesn't even read my Twitter feed.
01:08:11
◼
►
- Or the show notes.
01:08:12
◼
►
- I've been a little busy.
01:08:14
◼
►
- Overcast isn't gonna ship this year,
01:08:15
◼
►
so why are you bothering?
01:08:17
◼
►
So, there's been some interesting motion in WebKit and JavaScript.
01:08:24
◼
►
And it's funny because I put a link in the show notes and I'm going to put it in the
01:08:28
◼
►
chat and it's about how Java, or excuse me, WebKit is leveraging LLVM to do some
01:08:37
◼
►
optimizations.
01:08:38
◼
►
We'll get into what that means in just a second.
01:08:40
◼
►
But it's funny because in the show notes, I knew that one or both of you, probably just
01:08:44
◼
►
Marco was going to get snarky about JavaScript.
01:08:47
◼
►
And so in the show notes I have JavaScript Optimization WebKit using LLVM, which is the
01:08:51
◼
►
Then in the show notes I have, or in our show notes I have, when do we realize that JavaScript
01:08:55
◼
►
is for real?
01:08:56
◼
►
Marco, explain to us how this is worse than HHVM.
01:09:00
◼
►
And I don't want you to go there yet, but start thinking.
01:09:02
◼
►
So what the crap are we talking about?
01:09:04
◼
►
So I'm a little fuzzy on the boundaries, and John, interrupt me whenever you're ready.
01:09:08
◼
►
But basically when you run JavaScript in WebKit, there are different stages of compilation
01:09:14
◼
►
and an interpretation that the JavaScript will go through.
01:09:18
◼
►
So at first crack, it'll just run the JavaScript
01:09:21
◼
►
interpreted, which is very quick to get going,
01:09:24
◼
►
but not terribly efficient, because it doesn't look
01:09:26
◼
►
for ways to make the code that other people have written
01:09:30
◼
►
to be a little leaner and a little more efficient.
01:09:33
◼
►
If your code, if any bit of code runs so many times that it
01:09:37
◼
►
crosses a threshold-- and this is where I start to get fuzzy--
01:09:41
◼
►
it will do like a kind of quickie compilation into native code. Is that right, Jon? Or am
01:09:48
◼
►
I already going off the rails? You should have stuck with broader generalities,
01:09:52
◼
►
but I confess that I don't know the specifics either.
01:09:54
◼
►
Okay. Well, let's keep it broad then. That's fine. Good call. So basically, with time,
01:09:58
◼
►
you can go through several stages where each further stage requires a little bit more upfront
01:10:05
◼
►
work, and in some cases, a lot more upfront work, but the results are that much quicker.
01:10:11
◼
►
And the final stage was--
01:10:15
◼
►
after the final stage, I should say--
01:10:17
◼
►
the WebKit developers started thinking to themselves, well,
01:10:19
◼
►
you know what?
01:10:19
◼
►
We really should optimize this code that we've generated.
01:10:22
◼
►
So we've taken JavaScript and kind of translated it into a
01:10:25
◼
►
different kind of code.
01:10:26
◼
►
We should try to optimize this really well.
01:10:29
◼
►
Because if you've gotten all the way down this path, this
01:10:32
◼
►
is something that we feel like is running a lot.
01:10:34
◼
►
Oh, and to be clear, WebKit is the rendering engine that's
01:10:37
◼
►
used in Safari and Chrome.
01:10:38
◼
►
So if you've gotten all the way to stage three, which is
01:10:41
◼
►
the maximum stage up until now, then you're running this code a lot.
01:10:45
◼
►
It's already made as quick as can be without some serious optimizations.
01:10:49
◼
►
Well they thought, "All right, well let's optimize this code and start trying to cut
01:10:52
◼
►
things out that we don't need."
01:10:54
◼
►
Kind of like MP3s, if you will.
01:10:55
◼
►
And so then they decided—
01:10:57
◼
►
Wait, it's lossy?
01:10:58
◼
►
Okay, fair enough.
01:10:59
◼
►
That was a poor analogy.
01:11:00
◼
►
All right, but I'm going to get here.
01:11:01
◼
►
I'm going to get there.
01:11:02
◼
►
That would be amazing.
01:11:03
◼
►
Give me time.
01:11:04
◼
►
I'm going to get there.
01:11:06
◼
►
So they decided, "Well, you know what?
01:11:08
◼
►
another project that's really, really, really good and that is about optimizing, and that's
01:11:13
◼
►
LLVM, which is half of the Clang and LLVM compilation combo.
01:11:18
◼
►
And so they thought, "Well, why don't we just leverage LLVM to do this optimization for
01:11:24
◼
►
And so if you've got JavaScript that runs in WebKit so often that it escalates all the
01:11:29
◼
►
way to this fourth level or fourth tier, I believe they call it, compilation and optimization,
01:11:37
◼
►
In theory, it will get optimized the same way native Objective-C code gets optimized.
01:11:43
◼
►
And so in principle, it should run pretty darn fast.
01:11:47
◼
►
Okay, that's the setup.
01:11:49
◼
►
Jon, go ahead and tear me apart or add what you have to add.
01:11:53
◼
►
Here's how I would have summarized it because I don't have the thing in front of me, so
01:11:56
◼
►
I wouldn't go to the details of the thing.
01:11:58
◼
►
You basically hit all the points, but for people who want the even shorter summary of
01:12:03
◼
►
of it, it's basically, JavaScript comes down
01:12:06
◼
►
as a bunch of text, and you have to,
01:12:09
◼
►
you have a trait, two things you have to balance here.
01:12:11
◼
►
One is how fast can I start running code,
01:12:13
◼
►
and second is how fast is that code when I run it.
01:12:16
◼
►
And that's an important trade off,
01:12:17
◼
►
because if you have some tiny little snippet of JavaScript,
01:12:20
◼
►
you don't wanna wait like, I'm gonna make up numbers here,
01:12:23
◼
►
these aren't real, but you don't wanna wait a second
01:12:25
◼
►
to start running it and then run the code
01:12:27
◼
►
for like a tenth of a second, that's a waste.
01:12:30
◼
►
You wanna start running immediately, right?
01:12:32
◼
►
And that continuum exists.
01:12:33
◼
►
They had three tiers previously to do this.
01:12:36
◼
►
We can run code immediately,
01:12:38
◼
►
but it's not gonna be that fast.
01:12:39
◼
►
We can take a little bit longer
01:12:40
◼
►
and then the code will be a little bit faster.
01:12:41
◼
►
And we can take even longer than that
01:12:42
◼
►
and the code will be really fast.
01:12:43
◼
►
And they're adding a fourth tier.
01:12:45
◼
►
This is the FTL, what is it?
01:12:47
◼
►
Fourth tier, someone look up what that is.
01:12:51
◼
►
- I'm looking, but I can't find it.
01:12:52
◼
►
(upbeat music)
01:12:56
◼
►
Oh, fourth tier LLVM.
01:12:57
◼
►
- Yeah, fourth tier LLVM.
01:12:58
◼
►
The joke I made on Twitter is that,
01:13:00
◼
►
And people think FTL, they think faster than light, obviously.
01:13:04
◼
►
But the secret internal code name
01:13:05
◼
►
might as well be, as far as I'm concerned, F this language.
01:13:08
◼
►
Because they've already had an existing three tiers
01:13:12
◼
►
of figuring out how can we run this language fast.
01:13:16
◼
►
We want to start running immediately
01:13:18
◼
►
and also have it run fast and figure out
01:13:19
◼
►
which one of these tiers to do everything at.
01:13:21
◼
►
So that's the trade-off they're making.
01:13:22
◼
►
And the fourth tier is, all right, for code that--
01:13:26
◼
►
we've gone through all three of those other tiers,
01:13:28
◼
►
and we still want to go faster.
01:13:29
◼
►
and this is just in this piece of code that's running,
01:13:31
◼
►
you know, it's running all the time,
01:13:33
◼
►
it's in some tight loop, it's using a lot of CPU,
01:13:36
◼
►
we will take a huge amount of time, relatively speaking,
01:13:39
◼
►
and figure out how to compile it with our actual compiler,
01:13:42
◼
►
our actual, you know, their core compiler system,
01:13:44
◼
►
LLVM system.
01:13:45
◼
►
And the tricky part of this,
01:13:46
◼
►
and the reason why I say it's F this language,
01:13:48
◼
►
is because all along those three tiers,
01:13:51
◼
►
you don't wanna stop and be like,
01:13:52
◼
►
"Okay, we compiled everything with the really fast ones
01:13:54
◼
►
that starts running stuff immediately,
01:13:56
◼
►
but it's kinda slow when it's running."
01:13:57
◼
►
You know, we got up and running really fast,
01:13:59
◼
►
but it's kind of slow when it's running.
01:14:00
◼
►
We would like to, for this function,
01:14:02
◼
►
and this function, and this function, use the second tier.
01:14:04
◼
►
You can't pause the world and say,
01:14:06
◼
►
"Wait a second, wait a second.
01:14:07
◼
►
"It turns out these two functions are called a lot.
01:14:09
◼
►
"I want to take a little some time here
01:14:11
◼
►
"to compile this in a faster form and run it."
01:14:14
◼
►
You can't pause execution.
01:14:15
◼
►
That will kill your performance.
01:14:17
◼
►
You have to sort of, you know,
01:14:18
◼
►
the old programmer analogy,
01:14:19
◼
►
you have to swap the engine
01:14:21
◼
►
while the airplane is in the air, right?
01:14:24
◼
►
So you have to let everything run along
01:14:25
◼
►
and make an optimized version of this thing
01:14:28
◼
►
on another thread in the background
01:14:29
◼
►
and swap it in for the new one and all the way down the line.
01:14:32
◼
►
And the same thing with the LLVM thing,
01:14:33
◼
►
the fourth tier is it's gonna take you
01:14:35
◼
►
a long time to compile.
01:14:36
◼
►
You know, you find something,
01:14:37
◼
►
you think this is running so much,
01:14:39
◼
►
we really want this to be super fast,
01:14:40
◼
►
we're gonna spend the time to compile this
01:14:42
◼
►
with our actual compiler.
01:14:44
◼
►
You cannot pause execution when that's going on.
01:14:46
◼
►
You have to compile it with the compiler
01:14:48
◼
►
and then when it's ready, swap it in.
01:14:51
◼
►
And this technology for swapping in the faster versions
01:14:53
◼
►
of functions take longer to compile.
01:14:54
◼
►
They already had more or less,
01:14:56
◼
►
and this fourth tier is more difficult
01:14:57
◼
►
because what they're compiling is like,
01:14:59
◼
►
LVM is used to compiling more static languages like C, C++,
01:15:04
◼
►
where variables don't change their type, for example,
01:15:07
◼
►
and where you know the type of things up front.
01:15:09
◼
►
And they had to put in,
01:15:10
◼
►
they have to make a compiled version
01:15:11
◼
►
that they can sort of self modify to say,
01:15:13
◼
►
oh, well, it turns out this optimization
01:15:16
◼
►
or this assumption is violated.
01:15:18
◼
►
So bump back down to one of the slower versions
01:15:20
◼
►
that has the more dynamic properties.
01:15:21
◼
►
Oh, it turns out with this,
01:15:23
◼
►
we don't actually know the type of this,
01:15:25
◼
►
it's actually a different type now,
01:15:26
◼
►
swap in a different type there.
01:15:27
◼
►
You can read the article which we put in the show,
01:15:28
◼
►
it's very long and very complicated,
01:15:30
◼
►
but this is essentially the trick they're doing,
01:15:32
◼
►
is they're doing this trade off between
01:15:34
◼
►
how fast can we start running and how fast do we run,
01:15:36
◼
►
and they're doing this thing all in parallel
01:15:38
◼
►
where they don't stop the running of the program
01:15:40
◼
►
to swap in the faster versions.
01:15:42
◼
►
And finally in the fourth tier,
01:15:44
◼
►
they're shoving in a much more rigidly optimized version
01:15:47
◼
►
in the hopes that all their assumptions
01:15:49
◼
►
about the version will be correct,
01:15:50
◼
►
and when they're not correct, they have fallbacks.
01:15:52
◼
►
And it's a really great article,
01:15:55
◼
►
in the same sense as the backlays thing,
01:15:57
◼
►
telling you the internals of how they decided to do something.
01:16:01
◼
►
It's great insight into how do you make JavaScript fast, essentially.
01:16:06
◼
►
How do you F this language?
01:16:08
◼
►
How do you apply brains and engineering experience and say, "We're going to make JavaScript
01:16:14
◼
►
I don't care if this is a terrible language that is incredibly resistant to optimization.
01:16:19
◼
►
We're just going to throw engineering resources at it until we get fast."
01:16:21
◼
►
I mean, same thing with the PHP and HHVM.
01:16:24
◼
►
If you have enough money and enough engineering resources, you can make them with any language
01:16:29
◼
►
And that's what they're doing.
01:16:30
◼
►
And it's an amazing engineering feat.
01:16:33
◼
►
And by the way, the other JavaScript engines that are used by Firefox and that Chrome is
01:16:39
◼
►
doing with their V8 engine, Google's doing with the V8 engine.
01:16:42
◼
►
And by the way, Casey, you said that WebKit is used by Chrome.
01:16:46
◼
►
That's Blink now, which is a fork of WebKit.
01:16:48
◼
►
Right, right, right.
01:16:50
◼
►
They all have similar things to this.
01:16:51
◼
►
They all have to make the same exact trade-off.
01:16:53
◼
►
How do we start running immediately, but also be able to run the thing that runs a lot faster?
01:16:58
◼
►
And they do similar type of things with tracing execution, seeing which things are run frequently
01:17:03
◼
►
and compiling them into a faster form and swapping them in.
01:17:05
◼
►
Like this is not an amazing breakthrough from Apple that is unprecedented in the JavaScript
01:17:10
◼
►
We have tons of really smart people all trying to make JavaScript faster.
01:17:14
◼
►
And as to your question, Casey, when do you realize JavaScript is for real?
01:17:19
◼
►
I think everyone realizes we're stuck with it.
01:17:21
◼
►
except for maybe Google is trying to make Dart,
01:17:23
◼
►
like it's in web browsers everywhere.
01:17:26
◼
►
And so that's why we're like,
01:17:27
◼
►
well, we're just gonna have to make it faster.
01:17:28
◼
►
And we're trying to make JavaScript better,
01:17:30
◼
►
but that's such a slow process.
01:17:31
◼
►
You have to wait for all the web browsers to turn over
01:17:33
◼
►
and to get a new version of ECMAScript approved.
01:17:35
◼
►
And it's just such a long timeline.
01:17:37
◼
►
It's like, JavaScript is what we've got.
01:17:39
◼
►
Is it for real?
01:17:41
◼
►
Well, it's what we're stuck with.
01:17:42
◼
►
And so we're just gonna do what we can to make it fast.
01:17:44
◼
►
And I think everybody who is
01:17:47
◼
►
into dynamic programming languages,
01:17:49
◼
►
pick your favorite PHP, Perl, Python, Ruby.
01:17:53
◼
►
We all wish that we had the engineering resources
01:17:56
◼
►
put towards our favorite language to make it fast
01:17:58
◼
►
because it suffers from all the same hard to optimize bits
01:18:00
◼
►
about, you know, type list variables or dynamic types
01:18:03
◼
►
or things that could be faster.
01:18:05
◼
►
It's like, man, can you imagine how fast Python would run
01:18:09
◼
►
if it had this amount of engineering resources thrown at it
01:18:12
◼
►
or Ruby or Perl or I mean,
01:18:13
◼
►
PHP is kind of getting a similar amount of resources
01:18:16
◼
►
thrown at it by at least by one company.
01:18:17
◼
►
So it's interesting, not so much because it's novel,
01:18:21
◼
►
but just because you get to see Apple
01:18:23
◼
►
doing what it does best, which is great engineering.
01:18:25
◼
►
The WebKit team is very skilled.
01:18:27
◼
►
And yes, they're doing something similar
01:18:29
◼
►
to what other people have done,
01:18:30
◼
►
but in a slightly different way.
01:18:31
◼
►
And it's smart of them to leverage the compiler
01:18:34
◼
►
that they've sort of brought up
01:18:35
◼
►
to be a world-class compiler, which is, it's open source.
01:18:39
◼
►
Other people could have used LLVM as well.
01:18:40
◼
►
And I think I saw a lot of people poo-pooing LLVM saying,
01:18:43
◼
►
"Well, it's too slow.
01:18:44
◼
►
"You can't use that for a just-in-time compiler."
01:18:45
◼
►
No, you can't.
01:18:46
◼
►
have to save it for the bits that you really know are going to be running quickly and you
01:18:49
◼
►
have to be able to swap them in.
01:18:50
◼
►
And they did some clever changes to LLVM itself to make this happen, which is nice when you're
01:18:55
◼
►
kind of steering the LLVM project as well.
01:18:57
◼
►
So I think I tweeted, I don't know whether to give a standing ovation or weep.
01:19:03
◼
►
And the standing ovation would be, good job, guys.
01:19:05
◼
►
This is great engineering.
01:19:06
◼
►
You know, it's interesting.
01:19:08
◼
►
Great blog post about it.
01:19:11
◼
►
You know, I like JavaScript being faster.
01:19:12
◼
►
weep to say, "You guys have got to go through heroic measures to make JavaScript fast."
01:19:18
◼
►
Because it's the language we're all stuck with.
01:19:20
◼
►
So I guess I've turned a new leaf in my appreciation for JavaScript because it, in so many ways,
01:19:28
◼
►
it really is a terrible, terrible language.
01:19:30
◼
►
And I forget the name of the—oh, Gary Barnhart did a great, like, literally two or three
01:19:36
◼
►
minute video about how JavaScript and Ruby are really kind of wonky and we'll put a link
01:19:43
◼
►
in the show notes.
01:19:45
◼
►
But be that as it may, I feel like JavaScript, like it or not, whether or not it's academically
01:19:53
◼
►
a good language, it is, just like you said John, it's here.
01:19:57
◼
►
And this is the real deal and this is what we're using for certain things at certain
01:20:05
◼
►
come back to I've started to write a lot or do a lot more DOM manipulation my day
01:20:11
◼
►
job with JavaScript and jQuery and the things you can get done are really
01:20:16
◼
►
really impressive with not that much code. I wrote not a lot of code to get my
01:20:20
◼
►
blogging engine going. Now granted I stood on the work of many other people
01:20:24
◼
►
in a lot of code that they wrote but I didn't write that much and I feel like
01:20:29
◼
►
in this the same guy Gary Barnhart did a really great talk about the birth and
01:20:32
◼
►
death of JavaScript we'll put that in the show notes this one is about half an
01:20:35
◼
►
hour, but it's worth it. And really, I agree that JavaScript is academically
01:20:41
◼
►
just a terrible language in so many ways, but at what point do we realize, you know
01:20:47
◼
►
what, it's good enough. And to me, I don't see why it's that terribly different
01:20:54
◼
►
than PHP, which in some ways is far superior academically, but really in the
01:21:01
◼
►
same boat. It's kind of slow, or slow enough that you need
01:21:05
◼
►
HHVM to make it quick. So Marco, I'm trolling, but I'm also honestly
01:21:09
◼
►
asking you, how do you feel like PHP and JavaScript are not
01:21:13
◼
►
very similar? Why do you like PHP so much?
01:21:17
◼
►
No, why do you like PHP so much? I'm not talking about the particulars of the language. Why do you like PHP so much
01:21:21
◼
►
and why do you snicker so much at JavaScript? PHP is actually
01:21:25
◼
►
a pretty C-like language. There's a lot
01:21:29
◼
►
that I like about it that is because it resembles the way C works.
01:21:33
◼
►
And not at the low level of course, but conceptually, syntactically,
01:21:37
◼
►
a lot of the direct mappings to C libraries that are available
01:21:41
◼
►
within it, stuff like that. I like that about it.
01:21:45
◼
►
I like that it's everywhere. It is way faster than JavaScript.
01:21:49
◼
►
Even like five years ago it was way faster than JavaScript. Like even before
01:21:53
◼
►
HHVM, just inherently it is
01:21:57
◼
►
possible to make way faster I think. I don't know if I'm about to say that for sure but it at least
01:22:01
◼
►
always has been way faster and I'm like no one has ever really complained that oh my god the PHP on my
01:22:07
◼
►
server is too slow except Facebook only because they have a billion servers so it actually matters
01:22:12
◼
►
for them but PHP in general is has always been very fast there's lots of other problems with it
01:22:17
◼
►
but but performance has never been one of them and you know obviously it's not as fast as like C or
01:22:23
◼
►
a really fancy compiler like the way HVN can make it super optimized and just
01:22:29
◼
►
compile it and everything but it's still really fast for what it is. So I don't
01:22:34
◼
►
see a whole lot of parallels here honestly except that they're both
01:22:38
◼
►
academically bad languages that we are stuck with by ubiquity. That's a very
01:22:43
◼
►
good point. Or by familiarity you know like I still like I don't like JavaScript
01:22:47
◼
►
to me I I still don't look forward to having to use JavaScript to do anything
01:22:52
◼
►
I try to avoid it where possible. Even on the web, I will use it sparingly.
01:22:58
◼
►
And I certainly have never been tempted by Node because of the language that it is.
01:23:04
◼
►
I like the idea of Node, of its structure and its event-driven system.
01:23:10
◼
►
I don't like the JavaScript language at all. And so that's why I've never been tempted by it.
01:23:15
◼
►
Can I try to tempt you for a moment?
01:23:18
◼
►
So the temptation that should get you into JavaScript is that it lets you run your code
01:23:24
◼
►
on other people's computers instead of your servers, and it lets you make your servers
01:23:28
◼
►
act more like boring transaction processors that send and receive JSON in response to
01:23:32
◼
►
like RESTful requests.
01:23:35
◼
►
And it's kind of refreshing, as someone who's sort of gone from the server-side programming
01:23:38
◼
►
to the client-side programming throughout the history of the web, to suddenly be able
01:23:42
◼
►
to run all your crap on someone else's computer, because their computer is way faster than
01:23:47
◼
►
the proportion of your server that they're going to get, right?
01:23:50
◼
►
They're not going to get your entire server, they're going to get one eight-thousandth
01:23:53
◼
►
of it, depending on how many people are hitting it.
01:23:56
◼
►
And there's a lot of freedom in that.
01:23:57
◼
►
And then it lets you write your server in a more sort of structured, boring way, where
01:24:03
◼
►
it is just like, you end up just writing an API.
01:24:07
◼
►
It doesn't make the language any better, but it is kind of an interesting change.
01:24:11
◼
►
If you think of web development as, "Oh, I have to write things on the server that spit
01:24:14
◼
►
out HTML to my clients with a little bit of JavaScript, and changing it to "I send my
01:24:19
◼
►
clients something once and they run a persistent JavaScript application that talks to my server
01:24:23
◼
►
through API endpoints that just talk in data."
01:24:26
◼
►
That is a refreshing change for web development.
01:24:29
◼
►
It may make you think on it less harshly.
01:24:32
◼
►
I mean, that's certainly interesting, and there are some benefits to that by all means.
01:24:38
◼
►
I'm not denying that at all, especially with modern browser support for things like pushing
01:24:43
◼
►
onto the URL bars without actually making a request so that you can take over the back
01:24:48
◼
►
button and kind of simulate a hierarchy without actually causing page reloads, stuff like
01:24:53
◼
►
There are a lot of benefits to that, to a lot of different application types, but I
01:24:56
◼
►
hardly write web applications anymore.
01:24:58
◼
►
I hardly have a rhythm to begin with and usually I write web backends and then I started writing
01:25:04
◼
►
iOS frontends.
01:25:06
◼
►
And my web applications have always been like, I'll do the minimum required to get the job
01:25:11
◼
►
done. But as I mentioned in the past, like I'm really not, I'm not into it. Like I'm
01:25:17
◼
►
not driven to make an amazing web front end for anything. I don't care.
01:25:23
◼
►
If you ever needed one, though, since you have to write the backends to talk to your
01:25:26
◼
►
iOS app, you've already got a back end that's ready for your JavaScript app to talk to like
01:25:30
◼
►
you wouldn't have to you wouldn't have to, you know, duplicate that code and like having
01:25:34
◼
►
direct queries from your PHP to your database that does the same thing with the API endpoint,
01:25:38
◼
►
If you do it once for your iOS app,
01:25:40
◼
►
you could use that same back end if you've done a good job
01:25:42
◼
►
to do your web front end as well.
01:25:44
◼
►
And that would save you some time.
01:25:46
◼
►
- Right, and one of the things I like,
01:25:48
◼
►
like in Overcast, I'm actually using a CDN
01:25:53
◼
►
for part of the API as a way to,
01:25:56
◼
►
and I'm thinking about what API requests
01:25:58
◼
►
can be cacheable at the CDN layer.
01:26:01
◼
►
So it's another layer of caching that is
01:26:03
◼
►
both faster for clients to access
01:26:05
◼
►
and doesn't involve many hits to my server.
01:26:08
◼
►
And so that'll make scaling a lot easier
01:26:10
◼
►
because not every single request will hit me.
01:26:13
◼
►
And so if I'm looking at it from a JavaScript perspective,
01:26:17
◼
►
that could be useful there too.
01:26:18
◼
►
If I can pull feed or episode data off of the CDN,
01:26:23
◼
►
'cause a feed, no matter who's looking at it,
01:26:25
◼
►
has the same episodes in it,
01:26:27
◼
►
which might have different progress,
01:26:29
◼
►
different settings, stuff like that,
01:26:31
◼
►
but the episode list itself is shared data.
01:26:36
◼
►
So there's cool things I could do with that,
01:26:38
◼
►
but I don't see myself putting that much effort
01:26:42
◼
►
into the web side of things.
01:26:43
◼
►
So I'm a bad example to even be asking this question to,
01:26:46
◼
►
but I don't know, I see this whole thing
01:26:49
◼
►
with JavaScript optimization is a really technically
01:26:54
◼
►
interesting progress and solution to a problem
01:26:58
◼
►
I just don't care about and that I don't really
01:27:00
◼
►
personally have very often.
01:27:02
◼
►
I don't even use very many heavy JavaScript web apps.
01:27:06
◼
►
I use Google Maps on the web, but that's it.
01:27:08
◼
►
Like I don't use Gmail,
01:27:09
◼
►
I don't use a whole lot of like crazy web stuff like that.
01:27:12
◼
►
So I don't even, this will benefit a lot of people,
01:27:16
◼
►
- It will definitely benefit you,
01:27:17
◼
►
because the bottleneck on mobile clients still
01:27:21
◼
►
is JavaScript execution speed.
01:27:23
◼
►
You don't think it is,
01:27:24
◼
►
you think, oh, this page is loading slowly,
01:27:26
◼
►
but JavaScript, there's tons of it everywhere.
01:27:28
◼
►
And the speed of JavaScript execution on mobile phones
01:27:31
◼
►
is still a limiting factor.
01:27:33
◼
►
I mean, just compare the render times on desktop
01:27:35
◼
►
versus, you know, it's not like over the same connection,
01:27:37
◼
►
desktop versus mobile, yeah, phones are getting faster,
01:27:40
◼
►
but JavaScript is not, you know,
01:27:42
◼
►
it's difficult to optimize.
01:27:43
◼
►
Look at all these things they're doing to optimize it.
01:27:45
◼
►
So you'll benefit from it as a user
01:27:46
◼
►
more than a developer perhaps.
01:27:48
◼
►
You know, if they do a good job, it should,
01:27:51
◼
►
again, not in web views probably,
01:27:52
◼
►
'cause we assume this is all gonna only be in Safari,
01:27:54
◼
►
but hey, at least in mobile Safari,
01:27:56
◼
►
things will get a little bit faster.
01:27:58
◼
►
Like in some respects, what Apple is doing here
01:28:00
◼
►
is just the cost of being in the web browser business.
01:28:02
◼
►
If you want to be in this business,
01:28:04
◼
►
which is we make a web rendering engine
01:28:06
◼
►
and Apple does want to and should be in it,
01:28:08
◼
►
you've got to keep up with the Joneses
01:28:09
◼
►
and competition is good and everyone's getting faster
01:28:12
◼
►
along the same rate.
01:28:13
◼
►
So I think you will benefit from it.
01:28:17
◼
►
And if you don't think you will,
01:28:18
◼
►
try loading the same webpage,
01:28:20
◼
►
pick one of these web pages that you think
01:28:21
◼
►
doesn't use any JavaScript to speak of,
01:28:23
◼
►
load it in a web view,
01:28:24
◼
►
which presumably run without the optimizations
01:28:26
◼
►
and then load it in mobile Safari and just time it
01:28:28
◼
►
and see which one takes longer
01:28:29
◼
►
before you can interact with the page before it renders.
01:28:32
◼
►
I think you'll be able to measure the difference
01:28:33
◼
►
with a stopwatch.
01:28:34
◼
►
Now, Jon, out of curiosity, I didn't
01:28:37
◼
►
think you did very much front end development at your day job.
01:28:42
◼
►
So what is the stack that you're using?
01:28:44
◼
►
Are you using Angular or something like that?
01:28:46
◼
►
I know you're using--
01:28:47
◼
►
A full stack developer, Casey.
01:28:49
◼
►
Didn't we do this?
01:28:49
◼
►
That's what they call it in the resumes.
01:28:52
◼
►
We need a full stack developer.
01:28:53
◼
►
Anyway, web development, as I've said--
01:28:56
◼
►
Ninja Rockstar.
01:28:57
◼
►
As I've said in the past, yeah, right.
01:28:59
◼
►
Being in web development means you-- in most places,
01:29:03
◼
►
They don't have these regimented roles where you are a backend and you are a frontend.
01:29:08
◼
►
You end up having to learn everything, the full stack.
01:29:12
◼
►
It's not a ridiculous term to say "full stack developer."
01:29:15
◼
►
I've used a lot of different frameworks.
01:29:17
◼
►
The thing about JavaScript that people love and hate is that the framework that's popular
01:29:21
◼
►
now will not be popular in 18 months.
01:29:23
◼
►
It's a lot of churn.
01:29:24
◼
►
There's a lot of the Cambrian explosion of different species, and we're hoping there's
01:29:30
◼
►
some sort of consolidation, but it never seems to come.
01:29:32
◼
►
So it is a young and vibrant community.
01:29:35
◼
►
And yeah, I've tried a lot of the ones that are out there.
01:29:38
◼
►
At a certain point, each project has to commit to one library or framework or a set of them,
01:29:43
◼
►
and then you use them for a long period of time, and then the next thing you do will
01:29:46
◼
►
go through the same process and you'll make different choices, including new things that
01:29:50
◼
►
didn't exist when you made the first choice.
01:29:52
◼
►
So what's the flavor of the month over at where you work?
01:29:55
◼
►
Well, I mean, jQuery seems to have more or less won out over the alternatives.
01:30:00
◼
►
The alternatives are still out there and people still like them, so it hasn't totally squashed
01:30:03
◼
►
them, but jQuery is fairly dominant in the realm of "let me manipulate the DOM without
01:30:07
◼
►
crying," that category of thing.
01:30:11
◼
►
Underscore and Backbone, I'm not saying they have their individual markets sewn up, but
01:30:16
◼
►
they seem to be pretty popular these days.
01:30:17
◼
►
I don't even know what those are.
01:30:20
◼
►
Yeah, well, so that's why you hate JavaScript so much.
01:30:23
◼
►
They take away some of the pain.
01:30:25
◼
►
Like in the same—you know what jQuery is, right?
01:30:27
◼
►
So jQuery—
01:30:29
◼
►
Although I've hardly used it, honestly.
01:30:30
◼
►
jQuery very little, because I just haven't needed to.
01:30:33
◼
►
Most of my DOM stuff is simple, and I just
01:30:36
◼
►
use the DOM straight for it.
01:30:38
◼
►
Yeah, so using the DOM straight used to be a nightmare,
01:30:40
◼
►
because of IE, right?
01:30:41
◼
►
And maybe you missed those days, but like--
01:30:43
◼
►
Oh, I just never cared about supporting it.
01:30:44
◼
►
Yeah, part of the big selling point initially of jQuery
01:30:47
◼
►
is, oh, god, thank god I don't have to do the 8,000 things I
01:30:49
◼
►
have to do to manipulate the DOM directly,
01:30:51
◼
►
because the APIs were just so incredibly different,
01:30:53
◼
►
semantically, and different function names and everything.
01:30:55
◼
►
It's like, I need something to paper over that.
01:30:58
◼
►
And these days, the DOM APIs are more or less the same
01:31:03
◼
►
on all popular browsers.
01:31:04
◼
►
You still don't want to use them directly
01:31:06
◼
►
'cause you want to do stuff like use CSS selectors
01:31:08
◼
►
to select elements and you're relying on jQuery
01:31:09
◼
►
to do something that's fast.
01:31:11
◼
►
It's kind of like using a database where you're like,
01:31:12
◼
►
oh, I can just type arbitrary CSS selectors into jQuery
01:31:15
◼
►
and I'll get the elements that I want
01:31:16
◼
►
and my problems are all solved.
01:31:18
◼
►
And that's like the honeymoon period of jQuery.
01:31:20
◼
►
Do you realize, like the query planner
01:31:22
◼
►
that makes poor life choices,
01:31:23
◼
►
you say, I'm assuming right now it will do,
01:31:26
◼
►
get elements by class name, which is native,
01:31:27
◼
►
And then I assume after it does that, it will do it.
01:31:29
◼
►
No, it is not.
01:31:31
◼
►
The query optimizer in jQuery, again,
01:31:32
◼
►
it has to do the same trade-off.
01:31:34
◼
►
Trade-off between start doing what you asked me to do
01:31:36
◼
►
right now or spend some time thinking about
01:31:38
◼
►
what you asked me to do.
01:31:39
◼
►
Come up with a really awesome plan and execute that.
01:31:41
◼
►
And so like in a database, you have to learn,
01:31:44
◼
►
well, you can write this expression in jQuery,
01:31:46
◼
►
but your code will be 10 times faster
01:31:47
◼
►
if you split it up into two jQuery selectors,
01:31:50
◼
►
or if you use native DOM to get these elements
01:31:52
◼
►
and then use jQuery on them.
01:31:53
◼
►
And anyway, I think I've lost my thread.
01:31:56
◼
►
and wondering and discussion of jQuery.
01:31:58
◼
►
The question was, what is your framework or frameworks
01:32:01
◼
►
du jour at the moment?
01:32:02
◼
►
You had mentioned underscore and jQuery and one other one
01:32:07
◼
►
Backbone for-- I don't know.
01:32:09
◼
►
What else are we using that's--
01:32:11
◼
►
Wait, are we talking about David Smith
01:32:12
◼
►
or a different underscore?
01:32:14
◼
►
It's a different underscore, yeah.
01:32:15
◼
►
I'm surprised people don't make that joke anymore often.
01:32:17
◼
►
Maybe different circles.
01:32:19
◼
►
And the other thing is, how do you modularize JavaScript?
01:32:23
◼
►
Because the JavaScript designers were kind enough
01:32:25
◼
►
not to include namespaces, just like some other language we are all familiar with.
01:32:28
◼
►
>> Yep. >> And so the various conventions for
01:32:33
◼
►
defining JavaScript modules, which are standardized into AMD modules. I don't know if that's an ECMA
01:32:37
◼
►
thing or not. But anyway, there's RequireJS, which is AMD-like modules, and there's Node's module
01:32:43
◼
►
system, which actually is AMD, I believe, and then they're half compatible with shims. And
01:32:47
◼
►
this whole practice of how do I write a JavaScript application, because you're not going to write
01:32:52
◼
►
write your JavaScript application by writing a big long single .js file from top to bottom,
01:32:56
◼
►
right? That's not PHP we're talking about here. You're gonna do it in modules and how
01:33:01
◼
►
do the modules require each other and integrate with each other and stay out of each other's
01:33:06
◼
►
namespaces and then, you know, that's, I mean, Casey's familiar with it because he's done
01:33:10
◼
►
a little bit of the Node stuff, but that's what modern JavaScript looks like these days
01:33:14
◼
►
and it's not great, but you can, every part of it, if you squint at it, you're like, "Yeah,
01:33:18
◼
►
I can kind of see why if you're going to write a serious application you need something that
01:33:21
◼
►
does this, and you need something that does that, and if you're going to manipulate the DOM, it would
01:33:24
◼
►
be nice to have something like jQuery that can paper over some of the weird things for you and
01:33:27
◼
►
provide some conveniences. And if you want to go really insane, you can talk about what's the
01:33:32
◼
►
meteor thing that lets you query the database directly from JavaScript, which seems like a
01:33:38
◼
►
terrible idea to me. But anyway, there's lots of interesting things out there. Ember and Angular
01:33:43
◼
►
are the cool things that I've only vaguely looked at if not used to do anything serious. So maybe
01:33:49
◼
►
be Casey can write his next blogging engine using one of those and tell us how it is.
01:33:53
◼
►
A couple of coworkers using Angular and have very good things to say about it. I'd like
01:33:56
◼
►
to check out React, both React and JavaScript and reactive Cocoa, but I haven't had the
01:34:03
◼
►
time. And shoot, oh, I was going to say the other reason that JavaScript is really appealing
01:34:07
◼
►
to me, which will mean nothing to Marco, is that in my day job I tend to work on top of
01:34:15
◼
►
content management systems. Things like SharePoint, although not always SharePoint, and a recent project we did,
01:34:20
◼
►
we did it using this
01:34:23
◼
►
really not awesome cloud-based
01:34:26
◼
►
content management system where we had not a lot of control over what the CMS was doing.
01:34:32
◼
►
And so content management system, if you're not familiar, basically means it's easy for a regular
01:34:36
◼
►
shmo to go in and add and edit the things that are on the website.
01:34:40
◼
►
So in our case, we had this cloud-based CMS that we really couldn't do all that much to,
01:34:45
◼
►
And so what we ended up doing was basically just making an API to get data in and out of its database and then hitting that
01:34:53
◼
►
with JavaScript, with jQuery, with Handlebars, which is a templating engine. And
01:34:58
◼
►
in that situation was great because I
01:35:01
◼
►
couldn't do a lot of the things that I would have otherwise chosen to do server-side.
01:35:06
◼
►
So just like John was saying earlier, I pushed that to the client and it actually worked out really really well.
01:35:10
◼
►
well. And that was the beginning of perhaps not my love affair with JavaScript, but that's
01:35:16
◼
►
when I started to turn the corner from Marco's point of view of, "Oh, this is crap," to,
01:35:20
◼
►
"You know what? This actually can be pretty good if you're using it for the right reasons."
01:35:25
◼
►
That's another one I forgot to mention. Handlebars, Mustache, JavaScript templating systems, all
01:35:29
◼
►
of which I think are terrible. But people are always looking for, speaking of Node, you
01:35:34
◼
►
don't want to duplicate code on the client side and the server side. And if you write
01:35:37
◼
►
any serious JavaScript application, you end up having to do that. It's like, "What if
01:35:41
◼
►
we just use JavaScript on the server side, thus Node.js? Then we could use the same code
01:35:45
◼
►
client-side and server-side, but we wouldn't have this duplication. And what if we had
01:35:49
◼
►
...?" And then I want to use the same templating system client-side and server-side, too. So
01:35:52
◼
►
they came up with these terrible templating systems using multiple curly braces that I
01:35:55
◼
►
hate because they're- Why do you hate them?
01:35:57
◼
►
You know how many templating systems there have been in Perl? It's like 9,000. And we've
01:36:01
◼
►
evolved way past, "This is my first template. I had no idea. Let's let you put variables."
01:36:07
◼
►
and we don't want to have too much logic because that would mix code and templates.
01:36:10
◼
►
So I'll make some kind of simple conditional, but no loops.
01:36:12
◼
►
Okay, we'll have loops, but we'll only have a simple kind of loop.
01:36:16
◼
►
But you'll still have to make a Boolean to check.
01:36:17
◼
►
Or you just pass in a flag.
01:36:18
◼
►
It's like, stop it.
01:36:19
◼
►
We did this already.
01:36:20
◼
►
We did this for two decades doing this.
01:36:24
◼
►
They'll figure it out in ten years.
01:36:26
◼
►
I think what drives me nuts about this, and what turns me off from learning a lot of this new web stack stuff,
01:36:32
◼
►
is, like, when you're talking about,
01:36:36
◼
►
like, I looked in the chat,
01:36:37
◼
►
I've never heard of almost anything
01:36:38
◼
►
that we're talking about.
01:36:39
◼
►
Somebody pasted a link to React,
01:36:41
◼
►
and so I looked at that for a second,
01:36:43
◼
►
and like, React, when you look at React,
01:36:45
◼
►
it is not JavaScript, it's React, it's its own thing.
01:36:49
◼
►
- jQuery is kinda like that too.
01:36:51
◼
►
- Exactly, jQuery is exactly like that,
01:36:53
◼
►
where like, they add so much on top of the language,
01:36:56
◼
►
and they replace so much built into functionality
01:36:58
◼
►
with their own way of doing it,
01:37:00
◼
►
that they become like a little sub-language of themselves.
01:37:04
◼
►
Like the language, like--
01:37:06
◼
►
- Well we haven't even started talking about
01:37:07
◼
►
like CoffeeScript and--
01:37:09
◼
►
- Yeah, CoffeeScript, TypeScript.
01:37:10
◼
►
- Yeah, yeah. - Right.
01:37:11
◼
►
And like if you, like if I were to invest
01:37:13
◼
►
a whole bunch of my time learning quote, JavaScript,
01:37:17
◼
►
well what does that include?
01:37:18
◼
►
And you have all these like,
01:37:20
◼
►
it seems like the web developers these days
01:37:22
◼
►
are so happy to pile on pretty large frameworks
01:37:26
◼
►
and components, pretty complex stuff
01:37:28
◼
►
that replaces so much built-in stuff that like,
01:37:31
◼
►
you're really a jQuery developer,
01:37:33
◼
►
you're really a React developer,
01:37:34
◼
►
you're really an X developer,
01:37:35
◼
►
and the problem is that changes quickly over time,
01:37:39
◼
►
and that fragments everything.
01:37:41
◼
►
And so if I have a problem with something
01:37:43
◼
►
in iOS development using Fx2C and the Cocoa frameworks,
01:37:48
◼
►
everyone's using that, everyone's using the same thing,
01:37:51
◼
►
and it doesn't change over years and years and years.
01:37:54
◼
►
And so it's easy for me to both learn it,
01:37:58
◼
►
to master it and to find answers to questions I have about it,
01:38:02
◼
►
because everyone's working with the same base
01:38:05
◼
►
and with the same API.
01:38:07
◼
►
Whereas if you go into the web development world--
01:38:10
◼
►
and CSS has the same problem with all the crazy stuff they have,
01:38:13
◼
►
all the crazy frameworks they have going on with CSS,
01:38:15
◼
►
with JavaScript, all this crazy stuff--
01:38:17
◼
►
there are all these bolt-ons that all
01:38:19
◼
►
want to be radically different and all
01:38:21
◼
►
want to provide extremely rich functionality, where
01:38:24
◼
►
you write three characters and you have a blogging engine.
01:38:27
◼
►
and all this stuff, and that it just,
01:38:31
◼
►
it piles on so many layers and layers and layers
01:38:34
◼
►
that it all feels not only very brittle,
01:38:37
◼
►
but you specialize your learning
01:38:39
◼
►
to this one little set of what you have,
01:38:43
◼
►
and you have to be constantly updating your knowledge
01:38:45
◼
►
and throwing away expertise to keep up
01:38:47
◼
►
with all the crazy new stuff that's always coming out
01:38:49
◼
►
with there's gonna be a new JavaScript framework next week,
01:38:52
◼
►
and after that, there's gonna be a new CSS compiler
01:38:55
◼
►
or the month after that.
01:38:56
◼
►
There's so many of these things,
01:38:58
◼
►
and none of them are ever dominant.
01:39:00
◼
►
jQuery is as dominant as any of them have ever become,
01:39:03
◼
►
and that's even pretty old by today's standards.
01:39:05
◼
►
And so you end up having such fragmented knowledge
01:39:10
◼
►
that you end up being like a master in liquid markup
01:39:14
◼
►
or whatever, one of these creative things,
01:39:15
◼
►
and it's like, okay, well, the next year,
01:39:17
◼
►
that's out of fashion, and you gotta relearn everything
01:39:18
◼
►
from whatever's new then.
01:39:20
◼
►
- It's not as bad as you make it out to be,
01:39:21
◼
►
because jQuery is vastly more popular than Objective-C
01:39:25
◼
►
in the grand scheme of things.
01:39:26
◼
►
And it's like, what you end up doing is you pick
01:39:28
◼
►
the technologies for your current project
01:39:31
◼
►
and you use them for your project.
01:39:32
◼
►
And your current project is I'm making an iOS app.
01:39:34
◼
►
And yes, you're lucky that an iOS technology
01:39:36
◼
►
has changed much more slowly than I do in JavaScript world,
01:39:38
◼
►
but at a certain point you pick what you're gonna use.
01:39:39
◼
►
Am I gonna use core data?
01:39:40
◼
►
Am I gonna use auto layout or whatever?
01:39:42
◼
►
And you may change your mind and evolve that product,
01:39:44
◼
►
but when you go to your next product, you say,
01:39:45
◼
►
oh, this one, I'm gonna use auto layout,
01:39:47
◼
►
or I'm gonna use Arc where a previous one I didn't.
01:39:49
◼
►
So it's a slow motion version of the same thing.
01:39:51
◼
►
But in terms of like being able to find an answer,
01:39:54
◼
►
believe me, you can find answers to your jQuery questions,
01:39:56
◼
►
your backbone questions, your underscore questions.
01:39:59
◼
►
There's enough popularity, because the total market size
01:40:02
◼
►
of people who write web developers is so much bigger
01:40:04
◼
►
than the size of people who write iOS apps,
01:40:06
◼
►
you'll be able to find the answers.
01:40:07
◼
►
But you're right, there is more turnover and less stability.
01:40:09
◼
►
But the analogy I would use in terms of building
01:40:12
◼
►
on top of things is, first you learn C.
01:40:16
◼
►
That will really help you understand Objective-C,
01:40:18
◼
►
because Objective-C is essentially a program written in C.
01:40:20
◼
►
The Objective-C runtime, if you understand how C works,
01:40:22
◼
►
then you can understand how the Objective-C runtime works,
01:40:24
◼
►
then you understand this new syntax that is basically like CoffeeScript, but that lets
01:40:27
◼
►
you run, you know, I write this crazy syntax with square brackets, and it calls these C
01:40:31
◼
►
functions and there's a runtime, and the runtime is fairly small and understandable, and once
01:40:35
◼
►
you understand it, like, that's the layering, and it's like, "Oh, now I'm not a C programmer,
01:40:39
◼
►
I'm an objective C programmer."
01:40:41
◼
►
You can go a bridge too far, I would say things that are like source filters, like CoffeeScript
01:40:44
◼
►
and stuff, that maybe is taking it too far, and obviously you're not going to dive into
01:40:48
◼
►
one of those expecting it to disappear, but at this point you're pretty sure Objective-C
01:40:51
◼
►
C is not a flash in the pan for iOS development. And even though it's based on C and there's
01:40:56
◼
►
a C runtime, if anything it's evolving into a direction where that may not necessarily
01:40:59
◼
►
be the case if they can help it. But it's not much different than that. First you have
01:41:04
◼
►
to learn the JavaScript language, because without that you'll be lost. In the same way
01:41:07
◼
►
you have to learn C before you know Objective-C, at least these days anyway. And then you build
01:41:14
◼
►
on top of that and pick a library and a framework and use it for an entire project to use it.
01:41:19
◼
►
- I think AF networking is very popular in the iOS space.
01:41:22
◼
►
So for example, are you using AF networking in Overcast?
01:41:25
◼
►
- I'm using, the only part I'm using is the category
01:41:28
◼
►
that lets you load images off the network,
01:41:32
◼
►
because I just haven't had much of a reason
01:41:34
◼
►
to rewrite that, but I actually,
01:41:36
◼
►
the old AF networking before iOS 7 made a lot more sense.
01:41:40
◼
►
It added a lot more value.
01:41:42
◼
►
New AF networking with URL session stuff
01:41:45
◼
►
is such a thin layer on top of it,
01:41:47
◼
►
I actually don't think it's necessary for the most part.
01:41:50
◼
►
And I wrote my own API layer wrapper around my API
01:41:55
◼
►
so I could standardize things like
01:41:57
◼
►
what different return values mean and stuff like that.
01:41:59
◼
►
And so I write everything through that,
01:42:01
◼
►
so it's a little bit different.
01:42:03
◼
►
Again, I think there's tons of reasons to use
01:42:05
◼
►
AP Networking, but I think if what it presented
01:42:08
◼
►
was a vastly different interface,
01:42:10
◼
►
like reactive cocoa is something that I don't know
01:42:13
◼
►
a lot about, but I've seen a few things here and there
01:42:15
◼
►
about it. And reactive cocoa is very, very different in from
01:42:22
◼
►
from the way you'd regularly write stuff. And to me, like,
01:42:25
◼
►
that's a big risk, because it's so different. And it's so
01:42:28
◼
►
specialized. And so you know, that
01:42:31
◼
►
is not from the platform vendor. Like I know, these were all
01:42:33
◼
►
talking about third party things. But like to give an
01:42:35
◼
►
example, something that's sort of from the platform vendor and
01:42:37
◼
►
web parlance, it would be like local storage, where it's like,
01:42:40
◼
►
if you're deploying a web application for people with
01:42:42
◼
►
iPads, like hospital or something, right? And you know,
01:42:45
◼
►
they're all going to have iPads, and Apple adds local storage to a mobile Safari, you
01:42:49
◼
►
have more confidence in that than you do in like, "I'm going to build everything on Reactive
01:42:52
◼
►
Cocoa," even though it's awesome, because what if the company that makes Reactive Cocoa
01:42:56
◼
►
goes out of business, whereas you're not worried about Apple going out of business, because
01:42:58
◼
►
if it does, you have bigger problems than WebKit local storage.
01:43:02
◼
►
Right, and I don't want to pick on that. That was just the first thing I thought of. Maybe
01:43:06
◼
►
this doesn't apply to them as much as I'm thinking, but generally, I don't add a lot
01:43:13
◼
►
of third party code that requires dramatic changes
01:43:16
◼
►
in everything I'm doing in something.
01:43:18
◼
►
Like I try to add things that are small and thin,
01:43:21
◼
►
like self-contained utility functions.
01:43:24
◼
►
Like I added a thing called Lockbox,
01:43:25
◼
►
which is an easy wrapper on the keychain APIs,
01:43:28
◼
►
which are terrible.
01:43:29
◼
►
So it's a perfect thing to have like CocoaPod installed,
01:43:33
◼
►
just get me this nice little wrapper,
01:43:34
◼
►
it's a couple of files around this terrible API
01:43:37
◼
►
so I can use it simply, done and done.
01:43:39
◼
►
- But see, the JavaScript guys are writing
01:43:41
◼
►
these same things, but they've written them for you.
01:43:43
◼
►
Like, they're essentially writing, you know,
01:43:46
◼
►
they're essentially writing cocoa, right?
01:43:49
◼
►
- Right, but they're writing a different cocoa
01:43:51
◼
►
every six months.
01:43:52
◼
►
- But, yeah, I know, but like,
01:43:53
◼
►
but if you pick the ones that you wanna use,
01:43:54
◼
►
again, there's different cocos for
01:43:55
◼
►
how am I gonna do layouts,
01:43:57
◼
►
springs and starts are a layout,
01:43:58
◼
►
how am I gonna do my data,
01:43:59
◼
►
core data, a bunch of plists, my own custom thing,
01:44:00
◼
►
like there's always choices within the stack,
01:44:02
◼
►
and Apple keeps adding new choices,
01:44:04
◼
►
granted at a slower pace and with more definitive,
01:44:06
◼
►
like this is officially supported
01:44:08
◼
►
than the JavaScript community,
01:44:09
◼
►
but it's not all that different.
01:44:11
◼
►
And a lot of the things that you're writing yourself
01:44:13
◼
►
to get like the keychain API,
01:44:14
◼
►
if you're doing the JavaScript world,
01:44:16
◼
►
some would have already written
01:44:17
◼
►
several different wrappers for that
01:44:18
◼
►
and you would have found a reasonable one
01:44:20
◼
►
and you could have used,
01:44:21
◼
►
like I think you'd be working at a higher level
01:44:24
◼
►
in the JavaScript world.
01:44:25
◼
►
It may be more confusing,
01:44:26
◼
►
especially if you don't know which ones to pick or whatever,
01:44:29
◼
►
but a lot of the work you're doing with FC model,
01:44:32
◼
►
like there are equivalent JavaScript frameworks
01:44:35
◼
►
that multiple ones of them that have already hashed out
01:44:37
◼
►
and there have been one or two ones
01:44:39
◼
►
that have sort of come out on top that you could use.
01:44:42
◼
►
And you wouldn't have to do that.
01:44:43
◼
►
And you'd be like, "Oh, I'll just use Backbone.
01:44:44
◼
►
"I don't have to write FC model.
01:44:46
◼
►
"It's already there for me," or whatever.
01:44:47
◼
►
Maybe you wouldn't like it,
01:44:48
◼
►
and maybe you'd write one yourself anyway.
01:44:50
◼
►
But it's not that as different an experience
01:44:53
◼
►
as you might think coming in from the outside.
01:44:56
◼
►
It's just that I think you're more comfortable
01:44:57
◼
►
doing the things you're doing in Objective-C,
01:45:00
◼
►
because it seems like you have more of an idea
01:45:02
◼
►
of like, "Apple is the firmament upon which I build,
01:45:05
◼
►
"and they provide so much stuff already."
01:45:07
◼
►
Like all those libraries, they're not third party,
01:45:10
◼
►
they're first party.
01:45:11
◼
►
Like the entire framework and everything there is from Apple
01:45:13
◼
►
and you can trust it and when they add new stuff,
01:45:15
◼
►
you can choose from it.
01:45:16
◼
►
And then you just add a thin layer of third party stuff
01:45:18
◼
►
on top of that.
01:45:20
◼
►
- Right, 'cause and you know, like I,
01:45:21
◼
►
that's what I prefer, like the strong, rich,
01:45:24
◼
►
rich frameworked built-in platform
01:45:27
◼
►
to like to the official language.
01:45:28
◼
►
Like the Microsoft world is very much like this, right, Casey?
01:45:31
◼
►
Like the .NET framework is very rich and full featured
01:45:35
◼
►
And, you know, Casey, like how,
01:45:38
◼
►
I mean, I haven't done Microsoft stuff ever professionally,
01:45:41
◼
►
and even as a hobby, not for about 15 years,
01:45:44
◼
►
but how much third party code do you end up having to add
01:45:50
◼
►
to a typical .NET project?
01:45:52
◼
►
- See, this is a very simple question
01:45:56
◼
►
with kind of a complex answer,
01:45:58
◼
►
but the short version is you don't really have
01:46:02
◼
►
add anything, but there's a project called NuGet, N-U-G-E-T, that is approximately the
01:46:12
◼
►
equivalent of NPM or CocoaPods.
01:46:16
◼
►
And so because of that, it used to be that nobody ever used third-party anything because
01:46:20
◼
►
it was impossible to add to the project.
01:46:23
◼
►
But now with NuGet, it's just like CocoaPods, it's just like NPM, where you can just,
01:46:29
◼
►
in the case of Microsoft, obviously, point and click your way into getting a package
01:46:33
◼
►
added into your project. And because of that, what used to be a pain and kind of taboo is
01:46:40
◼
►
now actually fairly popular. And you'll see a lot of projects that are like Underscore
01:46:49
◼
►
in JavaScript or ReactiveCoco is probably not the best example, AF Networking is a better
01:46:54
◼
►
example. So you'll see a lot of that, but that's a very new thing. And Microsoft actually
01:46:58
◼
►
started bundling NuGet in with Visual Studio, which is a big deal because this was a third-party
01:47:04
◼
►
thing that they decided to kind of unofficially yet officially bless as being the package
01:47:10
◼
►
manager for .NET applications.
01:47:13
◼
►
So years ago, you never saw third-party code used, or certainly not often.
01:47:17
◼
►
Today, it happens relatively often.
01:47:21
◼
►
That's having a good management system like CocoaPods or NPM or CPAN with Perl makes such
01:47:26
◼
►
a difference in the experience of using a language. It's not surprising that Apple wasn't all gung
01:47:33
◼
►
ho, let's give you guys a great way to add this. So the community had to come up with its own way
01:47:37
◼
►
to do it, and it seems like CocoaPods is the popular one now. And having that really changes
01:47:44
◼
►
the culture in terms of, it's not just a bunch of people sharing their projects, "Oh, if you want
01:47:48
◼
►
AF Network, go to this GitHub page and you can get it." It's so much easier if there's a command
01:47:52
◼
►
you can type and say, "Oh, now you've got it, now it's added to your project." And obviously,
01:47:56
◼
►
Obviously doing that without Apple support is in itself risky and weird, and you never
01:48:00
◼
►
know when Apple will do something that makes CocoaPods stop working or have to update stuff
01:48:04
◼
►
when you would hope that Apple would do something.
01:48:06
◼
►
Think of how easy it would be if Apple had a way to share, like, basically the equivalent
01:48:12
◼
►
of CPAN in Perl or NPM even.
01:48:13
◼
►
It was just a giant directory of third-party code in a particular format that you could
01:48:18
◼
►
easily integrate with your Xcode projects and share between projects and do it like...
01:48:22
◼
►
Developers would love that.
01:48:23
◼
►
Apple would love it because Apple was saying, "What are you using AF networking for? That
01:48:26
◼
►
shows there's a hole in our API. We're going to go back to the drawing board and come out
01:48:29
◼
►
with the NS URL session." Or what is it called? NS...
01:48:32
◼
►
Yeah, that's it. NS URL session, yeah. Anyway. And same thing
01:48:36
◼
►
with all their file handling. Every time they would come up with an API, they should probably
01:48:39
◼
►
just sit there in GitHub and look at all the third-party Cocoa things and see what people
01:48:44
◼
►
are wrapping. Granted, it hasn't happened with Keychain yet, so sorry Marco. But see
01:48:49
◼
►
the things that people are wrapping and then come back the next year at WRC and say, "Stop
01:48:53
◼
►
those wrappers, we don't like that. We don't like it all our applications are using this
01:48:57
◼
►
particular wrapper. We don't like when all our applications are built on PowerPlant to go way
01:49:03
◼
►
back in time and talk about a dark time that both of you missed. That's a bad situation to be in,
01:49:07
◼
►
and now Apple is totally crazed about avoiding that in the future. So I don't know if it's a
01:49:13
◼
►
healthy dynamic, but I'm glad something like CocoaPods exists, and I wish it was even better
01:49:18
◼
►
than it is. Yeah, and I think in the end of the day, what we're running against, and Marco,
01:49:22
◼
►
Marco, you and I went back and forth about this on an episode or two ago, is that you
01:49:27
◼
►
tend to have this just deep-rooted need for control over almost everything.
01:49:34
◼
►
And so that makes you reticent, I think, to use some of this third-party code.
01:49:39
◼
►
It makes you reticent to use Heroku, where you would rather just roll your own VPS.
01:49:45
◼
►
And so I think this is another reflection of that, that you want to control everything.
01:49:50
◼
►
And I think that is both your greatest strength
01:49:52
◼
►
and your biggest weakness all at once.
01:49:54
◼
►
- Well, certainly there's like,
01:49:57
◼
►
there are some weaknesses,
01:49:57
◼
►
there are some downsides to that, no question.
01:50:00
◼
►
And I do, I am overly controlling in some ways.
01:50:03
◼
►
However, a lot of that comes from
01:50:05
◼
►
having gotten burned in the past.
01:50:08
◼
►
- And like that's what, like, you know,
01:50:09
◼
►
people as they get older tend to get more conservative
01:50:12
◼
►
with choices that they make because they are,
01:50:14
◼
►
you know, they're fighting the last battle.
01:50:16
◼
►
Like they're trying not to repeat bad things
01:50:19
◼
►
that have happened to them in the past, even to a fault.
01:50:22
◼
►
And so I try to avoid third party code
01:50:25
◼
►
because I've relied on so much bad third party code before
01:50:29
◼
►
that I've had to replace or rewrite under pressure
01:50:32
◼
►
because it stopped working or it broke
01:50:35
◼
►
or it had some major shortcoming
01:50:38
◼
►
that I didn't hit until a certain point
01:50:40
◼
►
and then oh crap, this is really bad
01:50:43
◼
►
and the server's down as a result and stuff like that.
01:50:46
◼
►
Or oh yeah, this doesn't support this many users anymore
01:50:48
◼
►
and stuff like that.
01:50:49
◼
►
just little, you know, just stuff that, you know,
01:50:53
◼
►
it has caused small and large problems in the past.
01:50:57
◼
►
And I also try to get by with as little code as I can.
01:51:00
◼
►
You know, I try to not have thousands and thousands
01:51:05
◼
►
of lines of third party includes in my files
01:51:09
◼
►
if I only need like one function.
01:51:10
◼
►
That's why like I'm trying to remove AF networking
01:51:12
◼
►
from my project because I'm only using it
01:51:16
◼
►
for that one small thing now.
01:51:17
◼
►
And as soon as I can write my own thing
01:51:20
◼
►
or even just pull those files out and just use those,
01:51:22
◼
►
I'll do that, it just hasn't been worth the time yet.
01:51:24
◼
►
But it's so easy and so common to get burned by this stuff
01:51:28
◼
►
that that's why I'm so conservative.
01:51:31
◼
►
And from, a lot of it's also from a laziness angle,
01:51:34
◼
►
like when it comes to learning a new language
01:51:37
◼
►
or learning a new platform or learning a new library,
01:51:39
◼
►
I don't want my knowledge to be out of date in six months.
01:51:42
◼
►
And so that's why I look at the web language landscape
01:51:46
◼
►
And it's so easy now.
01:51:50
◼
►
There's so many people who make new frameworks
01:51:52
◼
►
and new tools and new compilers and new languages
01:51:54
◼
►
and new libraries on top of everything else.
01:51:56
◼
►
Like there's gonna be a new everything every six months.
01:51:59
◼
►
And all the cool kids are gonna switch to it
01:52:02
◼
►
and then switch to the next thing right after that.
01:52:04
◼
►
And so if I take that six months to learn something
01:52:07
◼
►
and to really get involved and to become an expert in it,
01:52:10
◼
►
which takes longer than six months usually,
01:52:13
◼
►
but if I invest a whole bunch of my time
01:52:15
◼
►
to become an expert in something that goes out of fashion
01:52:18
◼
►
soon after I become an expert in it, that sucks.
01:52:20
◼
►
That's a lot of wasted time and effort,
01:52:22
◼
►
and I don't want to spend all of my time gaining expertise
01:52:25
◼
►
in constantly new things.
01:52:28
◼
►
I want to spend my time applying that expertise
01:52:30
◼
►
to build stuff.
01:52:31
◼
►
That's where I get more satisfaction,
01:52:33
◼
►
and a lot of programmers aren't like that.
01:52:36
◼
►
A lot of programmers get more satisfaction
01:52:38
◼
►
out of learning the new stuff, and that's fine,
01:52:40
◼
►
but that's not me.
01:52:41
◼
►
And so it's much more important to me
01:52:43
◼
►
to master a small number of things
01:52:47
◼
►
and then use that knowledge to produce stuff
01:52:49
◼
►
that is satisfying to me.
01:52:52
◼
►
- So you don't want your knowledge
01:52:54
◼
►
to be out of date in six months?
01:52:56
◼
►
Is that what you just said?
01:52:57
◼
►
- Yeah, that's right.
01:52:58
◼
►
- Well, you better get the hell off PHP
01:53:00
◼
►
'cause that shit's older than hell.
01:53:02
◼
►
- Thanks a lot to our three sponsors this week,
01:53:04
◼
►
lynda.com, PDF Pen Scan Plus, and Backblaze.
01:53:09
◼
►
And we will see you next week.
01:53:12
◼
►
And now the show is over, they didn't even mean to begin
01:53:18
◼
►
Cause it was accidental, accidental, accidental
01:53:24
◼
►
John didn't do any research, Marco and Casey wouldn't let him
01:53:29
◼
►
Cause it was accidental, accidental, accidental
01:53:35
◼
►
And you can find the show notes at ATP.fm
01:53:41
◼
►
And if you're into Twitter, you can follow them
01:53:46
◼
►
S-C-A-S-O-Y-M-I-S-S-K-C-U-S-M-A-R-C-O-A-R-M
01:53:55
◼
►
N-T-O-O-M-N-T-M-A-R-C-O-A-M-E-T
01:53:58
◼
►
S-I-R-A-C-U-S-A-C-O-R-Q-S-O
01:54:04
◼
►
♪ I said I don't, I said I don't ♪
01:54:07
◼
►
♪ Can you handle me like a child ♪
01:54:09
◼
►
♪ I said I don't, I said I don't ♪
01:54:12
◼
►
♪ Take my cares, take me so long ♪
01:54:17
◼
►
- Hey, we went long, but that felt good.
01:54:19
◼
►
I really didn't want to stop.
01:54:20
◼
►
In fact, I kind of wanted to keep going on this conversation,
01:54:21
◼
►
which is probably for the best that we killed it.
01:54:23
◼
►
- Yeah, 'cause I mean, there's so much to say on it,
01:54:25
◼
►
you know, 'cause it's,
01:54:27
◼
►
and this isn't even the first time
01:54:28
◼
►
we've had this conversation.
01:54:29
◼
►
- Yeah, yeah, yeah.
01:54:30
◼
►
- But there's always more to say, you know?
01:54:32
◼
►
topic is Marco's developer therapy. Trying to work through his issues as a developer
01:54:37
◼
►
and trying to make sure that everything he's doing is the right thing.
01:54:41
◼
►
Yeah, you know, and the only point I wanted to bring up, so now we're starting it again,
01:54:44
◼
►
it's my fault, but I wonder if part of the reason you're so against using third-party
01:54:48
◼
►
code is because so much of the PHP third-party code is crap.
01:54:52
◼
►
I'm sure that's a big part of it. By far, like, the objective C code that I've used
01:54:57
◼
►
from third parties has been way better
01:55:00
◼
►
than any third party PHP code I've ever seen from anybody.
01:55:04
◼
►
From Zend all the way down.
01:55:06
◼
►
The PHP code that I've seen third party is awful.
01:55:10
◼
►
Now granted, because of that,
01:55:13
◼
►
I haven't looked at third party PHP code
01:55:14
◼
►
in probably three years or so for the most part.
01:55:19
◼
►
So I miss the whole Composer revolution that's happened
01:55:22
◼
►
since Composer is like a new package manager for PHP
01:55:25
◼
►
that everyone loves and I miss that whole revolution.
01:55:27
◼
►
So maybe it's better now, but it was so terrible
01:55:30
◼
►
for so long, I'm not willing to try it again.
01:55:34
◼
►
And my PHP needs are pretty small.
01:55:37
◼
►
I have my own framework that I've written
01:55:39
◼
►
over the last eight years or whatever.
01:55:41
◼
►
It's great, it works for me, it's fantastic.
01:55:43
◼
►
I'll open source it eventually.
01:55:45
◼
►
In fact, I even bought a .plumbing domain for it
01:55:50
◼
►
because I figured that it is plumbing,
01:55:54
◼
►
so that makes sense, and there were no other
01:55:55
◼
►
ones available. PHP works for me the way I do it, but one of the reasons why I have an
01:56:02
◼
►
open source framework in the last eight years yet is because I don't think anyone cares
01:56:08
◼
►
except me. Everyone has their own way of doing PHP and that's fine. There's the whole
01:56:12
◼
►
community of pro PHP people that I not only am not a part of but never want to be a part
01:56:18
◼
►
of and have never wanted to even pay attention to because it's so different from the way
01:56:21
◼
►
way I do things with the language. Whereas with Objective-C, I care a lot about the way
01:56:26
◼
►
the community does that. I write my Objective-C code with the goal of it looking like Apple
01:56:32
◼
►
code and with the APIs looking like Apple APIs. And to the standards, the third parties
01:56:39
◼
►
consider best practices. I want to be part of the good, elite Objective-C community,
01:56:46
◼
►
or at least pay very close attention to it if I can't be a part of it. Whereas PHP has
01:56:50
◼
►
has been so awful I've never even wanted to be a part of that community.
01:56:53
◼
►
It's hard for me to reconcile you, I don't know if slandering is the right word, but
01:56:58
◼
►
you being very dismissive of the community, yet being, and sometimes, often even the language,
01:57:05
◼
►
and yet being such a repeat customer, for lack of a better way of phrasing it, of this
01:57:12
◼
►
Like, I don't love the Microsoft community, but man do I love the language.
01:57:19
◼
►
I really do love C#, and it is really, really, really good.
01:57:23
◼
►
It's got problems, but it's really, really good.
01:57:27
◼
►
And it would be really crummy, I think, for me to use a language that I don't respect
01:57:37
◼
►
I'm not trying to put words in your mouth, but a language I don't respect in a community
01:57:41
◼
►
I don't care about and make my living off of that.
01:57:44
◼
►
And if it works for you, which it clearly does, there's nothing wrong with that.
01:57:47
◼
►
It's just, man, that's so different than what I would want.
01:57:50
◼
►
- Well, but again, it's like, I don't care as much
01:57:52
◼
►
about the website of things.
01:57:53
◼
►
I care about the client side of things a lot.
01:57:55
◼
►
And so, you know, if it was flipped,
01:57:57
◼
►
if I was very unhappy and critical of the community
01:58:01
◼
►
and not caring about quality relative
01:58:04
◼
►
to what other people think about it,
01:58:06
◼
►
on the client side, where I really care,
01:58:09
◼
►
that would be discouraging, at least.
01:58:14
◼
►
But because I just don't care about the website,
01:58:17
◼
►
Like the reason I use PHP still,
01:58:19
◼
►
and I keep using the same framework
01:58:21
◼
►
that I keep modifying over time,
01:58:23
◼
►
but it's still basically the same thing.
01:58:26
◼
►
The reason I keep doing that is because it allows me
01:58:30
◼
►
to get done with the website quickly
01:58:33
◼
►
in a way that I know will work, that will scale,
01:58:36
◼
►
and that will be cheap to run and easy to run.
01:58:39
◼
►
That's why I do it.
01:58:40
◼
►
And I do respect the language for a lot of those things.
01:58:44
◼
►
And there's a reason why,
01:58:45
◼
►
Like the biggest reason why I haven't learned
01:58:48
◼
►
a new language on the website anytime recently
01:58:51
◼
►
is because they haven't really been motivating me to.
01:58:53
◼
►
Like there has been no language
01:58:55
◼
►
that I've been very tempted to learn on the website.
01:59:00
◼
►
The advantages they offer just don't get me.
01:59:04
◼
►
Like they don't motivate me to go through
01:59:05
◼
►
the massive cost of switching.
01:59:07
◼
►
So like I'm, 'cause I have to keep in mind
01:59:10
◼
►
like with Overcast the last thing I wanna be doing
01:59:14
◼
►
is if I launch this thing, if it gets popular,
01:59:16
◼
►
the last thing I wanna be doing is having to mess
01:59:19
◼
►
with the server for days and weeks on end
01:59:20
◼
►
to just get it optimized, get it to scale.
01:59:23
◼
►
I just can't possibly, that would crush my spirit
01:59:28
◼
►
if I had to spend a lot of time doing that.
01:59:31
◼
►
If I stick with what I know on that side of things,
01:59:34
◼
►
I know I'll have to do very little.
01:59:35
◼
►
- Do we wanna do titles?
01:59:39
◼
►
- We probably should do titles.
01:59:41
◼
►
- It is self-serving, I do think the year of Casey
01:59:42
◼
►
adorable but I think F This Language is probably my second favorite although a
01:59:47
◼
►
little on the risque side. I think I'd go Year of Casey. The Year of Casey is
01:59:52
◼
►
a better title than F This Language. It's also the clear winner by a
01:59:56
◼
►
long shot. That's true we haven't had a, well, accepting some stupid title like a
02:00:00
◼
►
Syracuse County title which we'll never use, we haven't had this clear winner in
02:00:05
◼
►
a long time. It's all the more unfortunate that you two both didn't get the
02:00:08
◼
►
reference and made me explain it. Someday, John, someday we will get a reference
02:00:12
◼
►
The sad thing is John and I were having a conversation in the Google Doc and I wrote
02:00:20
◼
►
Sounds exciting.
02:00:21
◼
►
Yeah, it was pretty bad.
02:00:22
◼
►
Yeah, speaking of ways to different mediums for communication, please note that the Google
02:00:26
◼
►
Doc is instant message, Casey.
02:00:27
◼
►
This is a hybrid of your discussion on IRL Talk.
02:00:30
◼
►
I know, I know.
02:00:32
◼
►
But yeah, so we were kind of typing back and forth very briefly and I wrote, "You're killing
02:00:36
◼
►
me Smalls and I felt compelled to indicate that I knew that was Sandlot by putting Sandlot.
02:00:43
◼
►
But you were making the reference.
02:00:44
◼
►
You don't have to show me that you know your own references.
02:00:46
◼
►
I wanted you to know that it wasn't just something I've heard somewhere, that I knew where it
02:00:52
◼
►
Alright, have you seen the movie?
02:00:53
◼
►
Yeah, and I didn't like it.
02:00:54
◼
►
Yeah, okay, well I've seen it too.
02:00:55
◼
►
Also didn't like it, but I got the reference.
02:00:55
◼
►
I've seen it too. Also didn't like it, but I got the reference.
02:00:57
◼
►
[BLANK_AUDIO]