204: You’re Only Stable When You’re Dead
00:00:00
◼
►
- Sorry for the fish.
00:00:01
◼
►
- So long and thanks for all of them.
00:00:03
◼
►
- I'm not really, I'm not sorry.
00:00:04
◼
►
- That's a reference, Jon.
00:00:05
◼
►
- I actually, I have not gotten a lot of headphone time
00:00:09
◼
►
since their New Year's show,
00:00:11
◼
►
and I actually haven't even heard
00:00:12
◼
►
the whole New Year's run yet.
00:00:14
◼
►
- Once you see the hot dog flying around the room.
00:00:17
◼
►
- No spoilers.
00:00:18
◼
►
That was a great year though.
00:00:19
◼
►
- I should have said the hot dog bouncing around the room.
00:00:22
◼
►
That's a reference, Marco.
00:00:23
◼
►
- Yeah, I know, my bell was too far away.
00:00:25
◼
►
Also, it was a terrible reference.
00:00:27
◼
►
(phone ringing)
00:00:28
◼
►
A bunch of people wrote in via Twitter and via email telling you you really should have
00:00:35
◼
►
tried Airdrop when you were at, I think it was Tiff's parents, and you were trying to
00:00:40
◼
►
send files around.
00:00:41
◼
►
Now, I will be the first to tell you I have a comically bad memory, a woefully bad memory,
00:00:47
◼
►
but I could swear you said during the show that you had done one of these transfers with
00:00:54
◼
►
Is that not the case, or did you cut it?
00:00:55
◼
►
What happened?
00:00:56
◼
►
I did these transfers via AirDrop,
00:00:58
◼
►
however there's a couple of limitations with AirDrop.
00:01:01
◼
►
Number one, the iPad has to be there.
00:01:03
◼
►
In the first instance, my father-in-law had handed me
00:01:07
◼
►
just the card reader with an SD card in it.
00:01:09
◼
►
So that was problem number one.
00:01:10
◼
►
So the iPad was not actually nearby.
00:01:12
◼
►
Normally I am a big AirDrop user.
00:01:15
◼
►
I use AirDrop probably at least two or three times a week,
00:01:19
◼
►
usually to send files either from my phone to my Mac
00:01:22
◼
►
or between me and Tiff,
00:01:23
◼
►
like if one of us shoots a really cute video or photo
00:01:26
◼
►
and we want it to be like in our,
00:01:28
◼
►
you know, in the other person's photo library,
00:01:30
◼
►
we'll AirDrop it over.
00:01:31
◼
►
They, it usually doesn't work very well.
00:01:33
◼
►
People who have AirDrop troubles who it never works for,
00:01:36
◼
►
my biggest advice to you is to switch it over
00:01:39
◼
►
to everyone mode.
00:01:41
◼
►
I know it sounds crazy.
00:01:42
◼
►
In reality, the risk from having it on everyone receive mode
00:01:47
◼
►
seems fairly nonexistent unless you're like in a subway car
00:01:52
◼
►
packed full every day.
00:01:54
◼
►
Maybe people might try to do weird things to you,
00:01:56
◼
►
but I have never once had an unsolicited airdrop
00:02:00
◼
►
incoming thing and I've had it set to everyone
00:02:02
◼
►
for a very long time.
00:02:04
◼
►
So anyway, when it's set to everyone,
00:02:06
◼
►
it works very reliably.
00:02:08
◼
►
When it's set to contacts only, it almost never works.
00:02:11
◼
►
Even, whatever they're using to match your contacts,
00:02:15
◼
►
I guess it doesn't work for me.
00:02:17
◼
►
And from what I've heard from other people,
00:02:19
◼
►
it seems like it doesn't usually work for them either,
00:02:21
◼
►
But the everyone mode is very reliable for me
00:02:24
◼
►
and works all the time and I use it all the time
00:02:25
◼
►
and it's great.
00:02:26
◼
►
- I was trying to do an AirDrop to my own computer
00:02:29
◼
►
with my own phone.
00:02:30
◼
►
- Oh yeah, it doesn't even, no.
00:02:31
◼
►
- Even with the me card, you know,
00:02:33
◼
►
like the one that's marked as like you,
00:02:35
◼
►
which I assume is the same on my phone and on my Mac,
00:02:39
◼
►
- Yeah, but if you say that to everyone, it works great.
00:02:41
◼
►
And what a lot of people might not realize about AirDrop
00:02:44
◼
►
is the implementation of it, like,
00:02:46
◼
►
for a while back, there were certain Macs
00:02:49
◼
►
and things that couldn't do it, like certain old models.
00:02:51
◼
►
and people thought that was kinda BSE,
00:02:53
◼
►
but there was actually a good reason for that.
00:02:55
◼
►
Basically what AirDrop does is it uses
00:02:57
◼
►
either a second radio or just like a second mode
00:02:59
◼
►
of the WiFi radio to basically create a second
00:03:03
◼
►
like private WiFi network directly between the two devices.
00:03:07
◼
►
So even if the two devices that you're sharing
00:03:11
◼
►
aren't even on WiFi, or one of them's on a WiFi network
00:03:14
◼
►
and the other one isn't, or they're on different
00:03:15
◼
►
WiFi networks, AirDrop still works.
00:03:17
◼
►
And that's pretty cool.
00:03:18
◼
►
And it saves a lot of hassle.
00:03:21
◼
►
So big fan of AirDrop here.
00:03:23
◼
►
Keep it on everyone mode if you want it to work
00:03:25
◼
►
and it doesn't.
00:03:26
◼
►
- So if you see Marco at WWDC, now you all know what to do.
00:03:29
◼
►
His phone is totally open, you can send him anything.
00:03:31
◼
►
- But it still prompts you to accept things anyway.
00:03:33
◼
►
So there is a risk, it'll show you a preview of the picture.
00:03:37
◼
►
So if somebody wanted to send a vulgar picture,
00:03:39
◼
►
you would see the preview of it before saying deny.
00:03:42
◼
►
So that I think would be the risk.
00:03:44
◼
►
But so far that has yet to happen to me.
00:03:46
◼
►
I know I'm inviting horrible things,
00:03:48
◼
►
but that just doesn't happen in my everyday life.
00:03:51
◼
►
So maybe during WBC week I'll put it on contacts only
00:03:53
◼
►
and just hope for the best.
00:03:55
◼
►
- So I actually have a fun anecdote about this.
00:03:58
◼
►
This was-- - Oh God.
00:03:59
◼
►
- Maybe, this is maybe a year ago,
00:04:01
◼
►
and I don't think I ever told the story on the show.
00:04:05
◼
►
We were, I believe, returning home from your house, Marco.
00:04:08
◼
►
I'm not 100% sure, but we were certainly up
00:04:10
◼
►
in the New York state of mind, if you will.
00:04:13
◼
►
And we were in the Jersey Turnpike,
00:04:15
◼
►
and it was with Declan. - What's that mean?
00:04:16
◼
►
- It's a Billy Joel song.
00:04:18
◼
►
I know the song, I still don't know what it means.
00:04:20
◼
►
I just wanted to drop some sort of reference so Jon would love me again.
00:04:23
◼
►
It's a losing battle, Casey.
00:04:26
◼
►
It really is. So we're on our way back home and we stopped at the Jersey Turnpike
00:04:31
◼
►
and we stopped at one of those rest stops that's on the Turnpike and we went and got a Roy
00:04:36
◼
►
Rogers burger, maybe it was Burger King or whatever it was. And we're sitting there and
00:04:41
◼
►
it's Erin and Declan and me and I'm eating and somebody comes walking up and I see this out of
00:04:46
◼
►
my periphery and I'm and it looks like this person is intent on talking to me which is
00:04:50
◼
►
fine but surprising because nobody knows where I am right now. And it was a very nice person.
00:04:57
◼
►
I don't recall his name and I apologize if this very nice person is listening. But they
00:05:02
◼
►
were very kind and very nice and said, "Oh my gosh, I just wanted to know, are you Casey?
00:05:05
◼
►
I just wanted to introduce myself, blah, blah, blah." And you know, I have to tell you a
00:05:09
◼
►
funny story. I walked in and I was curious if the place had any Wi-Fi. And as I was looking,
00:05:17
◼
►
I noticed that there was somebody broadcasting their iPhone's Wi-Fi and it said, "Casey lists
00:05:24
◼
►
his iPhone." And I thought to myself, "Oh my God, maybe he's here. I should have a quick look."
00:05:31
◼
►
What had happened was I was using my iPad in the car and I had personal tethering or personal
00:05:36
◼
►
hotspot, whatever it's called, on. And I just never bothered turning it off. And so this very
00:05:40
◼
►
enterprising young man decided, or well, happened to see my iPhone in the list and then looked around
00:05:47
◼
►
and happened to spot us and came up and said hi. And he was very, very nice and very kind. And it
00:05:51
◼
►
was very funny. But goodness did it ever take me by surprise that somebody had, like from across the
00:05:57
◼
►
room, figured out that I was there and came over with intention to say hi. It was startling in the
00:06:03
◼
►
in the most flattering way possible and quite funny.
00:06:06
◼
►
So that's, be aware of your personal hotspot and AirDrop,
00:06:10
◼
►
I don't know, aware of your tendencies
00:06:14
◼
►
'cause it could get you in trouble.
00:06:15
◼
►
Although that wasn't trouble for me.
00:06:16
◼
►
- So did you rename your phone to VZW Wireless 15678?
00:06:22
◼
►
- It's kind of a shame that you can't edit
00:06:24
◼
►
the WiFi network name, like the only thing you could do
00:06:27
◼
►
is like rename your device and then it will take on that name
00:06:30
◼
►
- I guess that's true.
00:06:31
◼
►
Because wouldn't it be amazing if like our thing
00:06:34
◼
►
was to get thousands of people to change their hotspot name
00:06:38
◼
►
to Casey Liss's iPhone?
00:06:40
◼
►
And then like you just know like,
00:06:41
◼
►
oh there's an ATP fan in the room.
00:06:43
◼
►
But that would be awesome, but you can't do it on the phone
00:06:46
◼
►
without changing your phone's name to Casey Liss's iPhone.
00:06:50
◼
►
- Yeah, so be aware of your airdrop
00:06:53
◼
►
in personal hotspot hygiene.
00:06:54
◼
►
(upbeat music)
00:06:55
◼
►
- We're sponsored this week by a new sponsor.
00:06:58
◼
►
It's HelloFresh.
00:06:59
◼
►
For $35 off your first week of deliveries,
00:07:01
◼
►
visit hellofresh.com and enter code ATP when you subscribe.
00:07:05
◼
►
Whether you're a busy professional couple
00:07:07
◼
►
or a large family that runs at a breakneck pace
00:07:09
◼
►
or it's somebody who just wants to start cooking more,
00:07:11
◼
►
HelloFresh makes it easier, tastier,
00:07:13
◼
►
and healthier than ever to enjoy the experience
00:07:16
◼
►
of cooking new recipes and eating together at home.
00:07:18
◼
►
From creating the recipes and planning the meals
00:07:20
◼
►
to grocery shopping and even delivering
00:07:22
◼
►
all of the pre-measured ingredients,
00:07:24
◼
►
HelloFresh delivers right to your door
00:07:26
◼
►
so you can skip the trip.
00:07:28
◼
►
They currently offer customers a classic box or veggie box
00:07:31
◼
►
and will soon be launching a family box.
00:07:33
◼
►
Customers can order three, four,
00:07:34
◼
►
or five different meals per week
00:07:36
◼
►
designed for either two or four people,
00:07:38
◼
►
and new recipes are created every week.
00:07:41
◼
►
HelloFresh is the meal kit delivery service
00:07:43
◼
►
that makes cooking fun, easy, and convenient
00:07:46
◼
►
with step-by-step, easy-to-follow instructions
00:07:48
◼
►
designed to take around 30 minutes for everyone,
00:07:50
◼
►
from novices to seasoned home cooks who are short on time.
00:07:54
◼
►
They source the freshest ingredients
00:07:55
◼
►
measured to the exact quantities needed so there's no waste,
00:07:59
◼
►
And HelloFresh employs a full-time registered dietitian
00:08:02
◼
►
on staff who reviews each recipe to ensure
00:08:04
◼
►
it is nutritionally balanced.
00:08:06
◼
►
All of this delivered to your doorstep
00:08:08
◼
►
in a special insulated box for free.
00:08:10
◼
►
Go to hellofresh.com and enter code ATP when you subscribe
00:08:15
◼
►
to get $35 off your first week of deliveries.
00:08:18
◼
►
Once again, for 35 bucks off your first week,
00:08:21
◼
►
visit hellofresh.com and enter code ATP when you subscribe.
00:08:24
◼
►
Thank you very much to HelloFresh for supporting our show.
00:08:31
◼
►
So we got a series of tweets from Adam Russell, and I thought these were really interesting,
00:08:35
◼
►
and I'll just read them as one contiguous block.
00:08:38
◼
►
"The answer to the Mac progress quandary from John is simple. The Mac is obviously not the future,
00:08:44
◼
►
but you are all legitimately frustrated because the Mac is being functionally
00:08:48
◼
►
deprecated faster than the iPhone and iPad are being empowered.
00:08:52
◼
►
Continuing to argue beyond that right now is pointless. We just need to wait and see what Apple does next.
00:08:58
◼
►
I thought that was a very interesting summary, and by and large I agree with that.
00:09:02
◼
►
I don't know if the Mac is dead or not. We don't need to cross this bridge for the 95th time, at least not yet anyway.
00:09:08
◼
►
But I do agree that while incredible strides are being made on iPhone and iPad, and iOS in general, I guess I should say,
00:09:17
◼
►
it seems like there's more going missing from Mac OS.
00:09:21
◼
►
It just feels that way.
00:09:25
◼
►
Maybe that's not even true.
00:09:27
◼
►
Maybe if we looked at the feature list, maybe we're crazy,
00:09:29
◼
►
but it certainly feels that way.
00:09:32
◼
►
And so I just thought this was a really interesting point.
00:09:34
◼
►
Any thoughts from you, Marco?
00:09:36
◼
►
- I mean, one thing, again, I don't wanna get too far
00:09:39
◼
►
in the weeds on this, 'cause you know we can talk forever
00:09:41
◼
►
about this, 'cause we have and usually do.
00:09:43
◼
►
One idea I've had for a future episode that we should do
00:09:46
◼
►
after we've had a little more time to think about it,
00:09:47
◼
►
is like, what big things are still possible to do
00:09:52
◼
►
and left to do on the desktop?
00:09:54
◼
►
That like, what big challenges aren't being solved?
00:09:57
◼
►
That like, you know, major new directions or advancements
00:10:01
◼
►
that desktop OS's still could use,
00:10:03
◼
►
and in particular Mac OS still could use.
00:10:05
◼
►
And like, there's some low-hanging fruit here.
00:10:07
◼
►
Like obviously, like one of them that I mentioned before
00:10:09
◼
►
was cellular Macs, and the reason why there's no cellular
00:10:13
◼
►
Macs is probably because of the, you know,
00:10:15
◼
►
all the different software needs
00:10:16
◼
►
that would be needed for that.
00:10:17
◼
►
And right now, you can use things like tripmode.ch
00:10:19
◼
►
to kind of fake it.
00:10:21
◼
►
Sorry, tripmode.helvetica.
00:10:23
◼
►
But it would be so much better if there was
00:10:26
◼
►
OS level awareness of cellular connections,
00:10:28
◼
►
which actually there is, but if more things actually used it
00:10:32
◼
►
with the switch to NSURL session,
00:10:34
◼
►
that actually was added in the API,
00:10:36
◼
►
but nothing uses it, at least to any meaningful amount
00:10:39
◼
►
on OS 10, or excuse me, on Mac OS.
00:10:43
◼
►
And sorry Steven.
00:10:44
◼
►
And so there are areas like that where like,
00:10:46
◼
►
yeah, you know what, cellular Macs would be awesome,
00:10:49
◼
►
but why don't we have that?
00:10:51
◼
►
Oh, well, it would take a lot of work in the OS.
00:10:53
◼
►
Well, there's a lot of answers like that
00:10:54
◼
►
where the question is like, why don't we have that,
00:10:56
◼
►
oh, it would take a lot of work on the OS.
00:10:57
◼
►
Why are Mac apps so much harder to develop
00:10:59
◼
►
for iOS programmers than iOS apps?
00:11:01
◼
►
Well, some of those reasons are good reasons
00:11:02
◼
►
that will stay there forever,
00:11:03
◼
►
but part of it is that AppKit and UIKit are very different
00:11:07
◼
►
and in a lot of ways that they don't need to be different.
00:11:10
◼
►
Some ways they need to be different,
00:11:11
◼
►
but a lot of ways they don't, and they are,
00:11:13
◼
►
for legacy reasons.
00:11:14
◼
►
And so there are major advancements
00:11:17
◼
►
could be made in the frameworks.
00:11:18
◼
►
We could talk about things like the security model
00:11:21
◼
►
of what they tried to do with sandboxing,
00:11:23
◼
►
which has mostly failed.
00:11:26
◼
►
Mostly, I think, because not enough apps could fit
00:11:30
◼
►
within what the sandbox requirements were,
00:11:32
◼
►
and then they never really added new sandbox capabilities.
00:11:35
◼
►
But I think with attention and maintenance and iteration,
00:11:38
◼
►
I think that model actually could work.
00:11:40
◼
►
I think the assumption that desktop OSes are,
00:11:44
◼
►
quote, the past, or are finished,
00:11:46
◼
►
or functionally complete,
00:11:48
◼
►
and there's no more advancement to be had,
00:11:49
◼
►
I think that's totally wrong.
00:11:51
◼
►
And you can look at Microsoft just to see,
00:11:53
◼
►
even though Microsoft messes up a lot of things they try,
00:11:56
◼
►
a lot of things they try don't work out,
00:11:58
◼
►
but a lot of things they try are actually,
00:12:01
◼
►
you could see, wow, you know what,
00:12:03
◼
►
if Apple tried to do something similar
00:12:04
◼
►
and did a better job of it,
00:12:06
◼
►
that could be really great.
00:12:07
◼
►
And so, not to mention,
00:12:09
◼
►
not even getting into things like AR and VR,
00:12:11
◼
►
which might be really useful in a general purpose PCOS.
00:12:15
◼
►
We don't know yet.
00:12:16
◼
►
So there are lots of areas where PCOS development
00:12:21
◼
►
could go with effort.
00:12:24
◼
►
So to say that the Mac OS is done or finished
00:12:27
◼
►
or PCs are a solved problem, we can move on,
00:12:30
◼
►
is I think incredibly short-sighted.
00:12:32
◼
►
- I was looking at these tweets and I think I disagree
00:12:36
◼
►
with every single sentence in it.
00:12:38
◼
►
series of three tweets, mostly in like technical ways, like if you want to get picky, what
00:12:42
◼
►
you, you know, but yeah, we talked about it a lot in the past shows, but I mean I could
00:12:47
◼
►
just start with the first and last sentence, I don't want to go through a blowaway, but
00:12:49
◼
►
the answer to the Mac progress quandary is simple, first of all I don't even know which
00:12:55
◼
►
quandary to talk about, second of all, the answer is never simple, alright?
00:12:57
◼
►
And then the last sentence, skipping over all the stuff in the middle, the last sentence,
00:13:01
◼
►
continuing to argue beyond that right now is pointless.
00:13:05
◼
►
Obviously I disagree with that, if I thought it was pointless we wouldn't talk about it
00:13:07
◼
►
for hours and hours every week.
00:13:08
◼
►
So anyway, I think we've covered all these points,
00:13:11
◼
►
but yes, I guess I agree
00:13:14
◼
►
that we are legitimately frustrated.
00:13:16
◼
►
That's the part I agree with.
00:13:19
◼
►
- Wow, well, tough crowd.
00:13:21
◼
►
I thought it was interesting, if nothing else.
00:13:23
◼
►
All right, any other follow-up
00:13:25
◼
►
before we talk about something that's awesome?
00:13:27
◼
►
- Follow-up on the MacBook Pro.
00:13:30
◼
►
The more I use it, the more I like it.
00:13:32
◼
►
The ports still drive me nuts,
00:13:34
◼
►
but the ports drive me nuts and the keyboard arrow key
00:13:39
◼
►
lack of gaps drives me nuts.
00:13:41
◼
►
But so far everything else about it I'm actually enjoying.
00:13:45
◼
►
I've been running some tests and I've been finding,
00:13:48
◼
►
this might make it into a blog post at some point,
00:13:49
◼
►
I don't know, but I've been running some battery tests
00:13:52
◼
►
because Consumer Reports, I figure if their
00:13:54
◼
►
Weeder test counts, maybe I can make my own.
00:13:56
◼
►
And so I made my own kind of similar one,
00:13:59
◼
►
but that involves a little bit heavier workload,
00:14:01
◼
►
things like periodic Xcode compilations,
00:14:05
◼
►
to periodically peg the CPUs for a few seconds
00:14:08
◼
►
and then go back to normal,
00:14:09
◼
►
and to kind of simulate what I do.
00:14:12
◼
►
And what I'm finding so far is that
00:14:14
◼
►
the new one's battery life is really mediocre,
00:14:17
◼
►
but so was the old one.
00:14:20
◼
►
Like I wrote this post a couple years ago
00:14:23
◼
►
about disabling turbo boost,
00:14:24
◼
►
and the effect that it has on battery life.
00:14:27
◼
►
And on the previous generation MacBook Pro,
00:14:30
◼
►
it had a pretty noticeable effect.
00:14:32
◼
►
It added something like 20% battery life roughly,
00:14:35
◼
►
a pretty big effect.
00:14:36
◼
►
What I'm finding with the new one is,
00:14:40
◼
►
by disabling turbo boost, it does work, you can do it,
00:14:42
◼
►
but the savings are much smaller.
00:14:44
◼
►
There is some savings to be had,
00:14:46
◼
►
but instead of adding an hour,
00:14:47
◼
►
it adds like 20 minutes or a half hour or whatever.
00:14:50
◼
►
And of course, this depends on what you do,
00:14:52
◼
►
but basically what I'm finding is
00:14:55
◼
►
that the new one's battery life, while it does suck,
00:14:59
◼
►
I don't think it's actually worse than the previous one.
00:15:01
◼
►
I think it's actually very slightly better under load,
00:15:06
◼
►
but very slightly worse when used lightly.
00:15:09
◼
►
So it depends on what you're doing, but for my uses,
00:15:11
◼
►
the battery life on the new one is actually
00:15:13
◼
►
very slightly better if you really baby it,
00:15:16
◼
►
if you turn off turbo boost,
00:15:17
◼
►
if you turn off the dGPU uses and various things.
00:15:20
◼
►
Like, you can get it to be better.
00:15:22
◼
►
So anyway, I'm kind of enjoying the new MacBook Pro,
00:15:27
◼
►
and it does feel awesome when you have to move it around
00:15:30
◼
►
and pick it up and stuff, it is noticeably better.
00:15:32
◼
►
So kind of enjoying that.
00:15:34
◼
►
The more I use it, the more I like it,
00:15:35
◼
►
and the more I realize, okay, Intel really screwed them
00:15:39
◼
►
on progress here, but this is not that bad.
00:15:42
◼
►
And in some ways, in many ways, and possibly even most ways,
00:15:47
◼
►
it's better than the old one.
00:15:48
◼
►
- Still coming around on the keyboard?
00:15:50
◼
►
- I still hate the key switches,
00:15:52
◼
►
but I still feel when I use the old one
00:15:55
◼
►
that it's mushy and horrible.
00:15:57
◼
►
So, again, it's like I'm ruined.
00:15:59
◼
►
I'm in the middle now.
00:16:01
◼
►
I think it's more of an issue of the reduced gaps
00:16:05
◼
►
between the keys and of the arrow key layout
00:16:08
◼
►
than necessarily the key travel.
00:16:11
◼
►
- When I tried it briefly in the store,
00:16:14
◼
►
and I can't emphasize enough, it was super briefly,
00:16:17
◼
►
I felt like it was 80% of my freaking beloved
00:16:21
◼
►
Magic keyboard, I'm sure I've talked about this
00:16:23
◼
►
18 times on the show, but I'll say it one more time, I love the Magic Keyboard.
00:16:28
◼
►
It's my favorite keyboard I've ever used ever.
00:16:30
◼
►
I personally am not a mechanical keyboard kind of guy.
00:16:32
◼
►
Maybe you are, that's fine, it's not my cup of tea.
00:16:35
◼
►
I love the Magic Keyboard, and I felt like the new MacBook Pro keyboard got me really
00:16:41
◼
►
close, but I wanted just a little bit more travel on the keys, and then it would have
00:16:47
◼
►
been just perfect.
00:16:49
◼
►
So I'm a little surprised if you say
00:16:52
◼
►
that the Key Travel doesn't really bother you.
00:16:55
◼
►
- It's not good, but it is no longer
00:16:58
◼
►
the thing about the keyboard that bothers me.
00:17:00
◼
►
Like the change in layout, you know,
00:17:03
◼
►
certain things are just things you get used to.
00:17:05
◼
►
- Yeah, yeah.
00:17:06
◼
►
- But certain things are actually just like worse over time.
00:17:10
◼
►
And I think one of the things that really
00:17:13
◼
►
negatively affects me about this keyboard,
00:17:14
◼
►
that one of the problems I keep hitting
00:17:16
◼
►
is just the lack of dead space around the keys to feel.
00:17:21
◼
►
As I'm figuring out by using it,
00:17:24
◼
►
turns out I did that a lot.
00:17:25
◼
►
Like feel around the dead spaces around the keys
00:17:27
◼
►
to kind of orient myself physically without looking,
00:17:29
◼
►
and especially around the arrow keys.
00:17:31
◼
►
So to have now the shrunk down little tiny margin
00:17:36
◼
►
between the keys now,
00:17:37
◼
►
the keys are now much bigger, flatter,
00:17:40
◼
►
and because they reduce travel,
00:17:42
◼
►
the edges are actually less noticeable by feel
00:17:45
◼
►
and everything else too.
00:17:46
◼
►
So it's a harder keyboard to type on blindly for me.
00:17:50
◼
►
Like I have to, I make a lot more mistakes,
00:17:53
◼
►
but even now that I'm like more accustomed
00:17:55
◼
►
to the feel of it, I'm making a lot more mistakes
00:17:58
◼
►
with that involve my hands not being oriented correctly
00:18:01
◼
►
on the keys where I thought they were.
00:18:03
◼
►
So that part I still don't love.
00:18:06
◼
►
I still think this is a bad keyboard.
00:18:08
◼
►
But it's only because the bar was pretty high
00:18:11
◼
►
because for a long time Apple has made laptop keyboards
00:18:14
◼
►
that I would never describe them as great,
00:18:17
◼
►
'cause they still had laptop scissor key switches,
00:18:19
◼
►
which are always a compromise, right?
00:18:20
◼
►
But overall, Apple's laptop keyboards,
00:18:23
◼
►
I haven't given them any thought whatsoever, ever,
00:18:28
◼
►
until the MacBook One came out,
00:18:29
◼
►
and now that that keyboard's on,
00:18:31
◼
►
or close enough to that keyboard is on all the new ones.
00:18:34
◼
►
All previous Apple laptops I've had before this,
00:18:37
◼
►
and I've had one of every generation
00:18:38
◼
►
since the PowerBook G3 aluminum,
00:18:40
◼
►
sorry, G4 aluminum, sorry Steven again.
00:18:43
◼
►
Steven's having a problem that I have with me.
00:18:45
◼
►
But anyway, yeah, since the G4 aluminum powerbook,
00:18:48
◼
►
every keyboard since then, I've had no problems with
00:18:51
◼
►
and I've enjoyed using it and it's been great and fine.
00:18:53
◼
►
And this is the very first time where they've made,
00:18:55
◼
►
like to me, a very controversial keyboard.
00:18:59
◼
►
And so, anyway, all that is to say, overall I like it.
00:19:04
◼
►
The new giant trackpad I really do love.
00:19:06
◼
►
I've loved that since the beginning.
00:19:08
◼
►
I have not had the issues that people have had
00:19:10
◼
►
with accidental input with your wrist resting on it.
00:19:13
◼
►
Otherwise, yeah, overall, good computer.
00:19:15
◼
►
The SSD speed increase is very, very nice.
00:19:17
◼
►
The GPU speed increase might be affecting me,
00:19:19
◼
►
I don't even know, probably not, but anyway,
00:19:22
◼
►
overall, good computer.
00:19:23
◼
►
I wish the battery lasted longer in heavy use,
00:19:26
◼
►
but it turns out it actually is no worse
00:19:28
◼
►
than the last one in heavy use.
00:19:30
◼
►
- Right, didn't you just say you love the track pad?
00:19:32
◼
►
- Yeah, I do, well, since I, so I love the largeness of it.
00:19:36
◼
►
I do not love force touch, or force click,
00:19:39
◼
►
whatever, oh god, whatever they're calling
00:19:40
◼
►
that feature on the Mac.
00:19:42
◼
►
- You just mean clicking?
00:19:43
◼
►
Like clicking in general is what you're talking about.
00:19:45
◼
►
You're not talking about force,
00:19:48
◼
►
like where you press really hard.
00:19:49
◼
►
Like that's not what you're talking about.
00:19:50
◼
►
You're just talking about clicking
00:19:51
◼
►
because your complaint has been like,
00:19:53
◼
►
I don't like the track pads that don't actually move.
00:19:55
◼
►
- Right, I stopped using it.
00:19:57
◼
►
- On two shows you've been raving about this.
00:19:59
◼
►
Is it entirely because you're in
00:20:00
◼
►
tap to click wizard school with Harry?
00:20:02
◼
►
- Yes, if I actually have to invoke a real,
00:20:05
◼
►
like a real like normal click by pushing forcefully
00:20:09
◼
►
or by pushing somewhat hard on the track pad,
00:20:11
◼
►
I hate those clicks, they're terrible.
00:20:12
◼
►
And the fact that everyone thinks they're just as good
00:20:14
◼
►
or okay, baffles me.
00:20:15
◼
►
I have no idea why anybody could think that's a good click.
00:20:18
◼
►
But I can switch to tap to click mode and it's fine.
00:20:20
◼
►
- Any other follow up?
00:20:22
◼
►
- I guess not.
00:20:23
◼
►
I can keep derailing this if you want.
00:20:25
◼
►
We are sponsored this week by Squarespace.
00:20:29
◼
►
Make your next move, make your next website,
00:20:32
◼
►
and make that move on Squarespace.
00:20:35
◼
►
Squarespace is the best website builder I have ever seen
00:20:38
◼
►
in the entire internet for all of time.
00:20:41
◼
►
It is so ridiculously powerful,
00:20:43
◼
►
yet also so incredibly easy to use.
00:20:46
◼
►
And it scales well from novices
00:20:49
◼
►
who don't want to put a lot of time into it,
00:20:50
◼
►
or who don't have the skills to code their way
00:20:54
◼
►
through their customizations,
00:20:55
◼
►
all the way up to nerds like me,
00:20:57
◼
►
who can code if we want to,
00:21:00
◼
►
but usually don't have the time to,
00:21:02
◼
►
or we probably shouldn't be spending our time doing that.
00:21:05
◼
►
But you know, Squarespace can accommodate all these needs.
00:21:08
◼
►
From their simple what you see is what you get,
00:21:10
◼
►
and drag and drop tools to customize their templates
00:21:12
◼
►
and create content, all the way down to,
00:21:14
◼
►
if you wanna be a geek like me, you can inject code,
00:21:17
◼
►
you can inject JavaScript and CSS
00:21:18
◼
►
directly into your template.
00:21:20
◼
►
You have a ridiculous level of control with Squarespace.
00:21:23
◼
►
These tools are amazing.
00:21:25
◼
►
They host your site for you,
00:21:26
◼
►
they support your site for you.
00:21:28
◼
►
If you're making a site for somebody else,
00:21:30
◼
►
you don't wanna support it,
00:21:31
◼
►
you want Squarespace to support it.
00:21:32
◼
►
And you don't want the person you're making the site for
00:21:35
◼
►
calling you for help, Squarespace does that.
00:21:37
◼
►
They take care of that.
00:21:38
◼
►
So if you're making a website for yourself
00:21:40
◼
►
or for somebody else, you need to check out Squarespace.
00:21:43
◼
►
It is by far the best solution I've ever seen
00:21:46
◼
►
for doing this and it covers so many needs
00:21:49
◼
►
that chances are whatever you need to do,
00:21:50
◼
►
Squarespace can already do it with no hacks
00:21:53
◼
►
and not a lot of effort at all.
00:21:54
◼
►
So check it out today.
00:21:56
◼
►
When you wanna make your next move for the new year,
00:21:58
◼
►
make your new site, try new things, start a new business,
00:22:01
◼
►
make your next move with Squarespace.
00:22:03
◼
►
Go to squarespace.com, make sure to use offer code ATP
00:22:06
◼
►
you need to get 10% off your first purchase.
00:22:09
◼
►
Once again, squarespace.com, code ATP
00:22:11
◼
►
for 10% off your first purchase.
00:22:13
◼
►
Make your next move with Squarespace.
00:22:15
◼
►
(upbeat music)
00:22:17
◼
►
- Apparently, Consumer Reports went into
00:22:21
◼
►
a Safari debug area and said, "Hey, guess what?
00:22:26
◼
►
"We are going to turn off the cache."
00:22:28
◼
►
Which, okay, I guess that kinda makes sense
00:22:30
◼
►
because you wanna make sure that it's not
00:22:33
◼
►
cruising along and just regurgitating the same stuff it has over and over and over again,
00:22:40
◼
►
But nevertheless, it's still not a completely fair test.
00:22:45
◼
►
And so they spoke with Apple and Apple was like, "Well, you guys probably shouldn't have
00:22:49
◼
►
Most users won't have done that.
00:22:51
◼
►
Maybe some developers do.
00:22:52
◼
►
I can't say that I usually do."
00:22:55
◼
►
But also on top of that, there was some sort of issue that I've heard was related to favicons,
00:23:00
◼
►
favicons, whatever they're called, but I don't know if that was ever confirmed or not.
00:23:05
◼
►
And so there was a legitimate bug here in addition to them just meddling about.
00:23:10
◼
►
So I don't think they're really meddling because the whole point of battery tests is to simulate
00:23:15
◼
►
real user activity.
00:23:16
◼
►
I think we should put a link in the show notes for Jason Snell's article.
00:23:19
◼
►
He went over all this stuff.
00:23:21
◼
►
Having done some battery testing myself, I can relate to this.
00:23:24
◼
►
You can't actually have human beings do your testing because they're too variable.
00:23:29
◼
►
But to try to simulate human activity is actually very difficult because humans are inscrutable,
00:23:34
◼
►
but you need it to be exactly the same every single time.
00:23:39
◼
►
And you also want it to be comparable from year to year and model to model.
00:23:43
◼
►
And what they're doing with the cache is, I mean, it could be argued that they should
00:23:47
◼
►
get thousands upon thousands of unique websites that they need to load, but then you have
00:23:51
◼
►
to worry about the variability of those websites being up and them changing and so on and so
00:23:56
◼
►
So instead they have probably a small set of URLs that they cycle through and they want
00:23:59
◼
►
it to load from the network each time, they don't want it to be a test of how well it
00:24:03
◼
►
can read from the cache, right? So they want to exercise the Wi-Fi and all the other things.
00:24:08
◼
►
In the end, it's all a vague approximation of what an actual person might do with the
00:24:12
◼
►
computer, and it's probably not particularly scientific in terms of, like, we let 100 users
00:24:17
◼
►
use their computer and put metrics on every single input and output, and said how many
00:24:21
◼
►
bytes over Wi-Fi on what intervals with what bursts and what -- like, they don't do that,
00:24:25
◼
►
and then try to find an artificial workload that exactly matches it. Maybe Apple does
00:24:28
◼
►
But Consumer Reports doesn't like it's all kind of guesswork, but in the end
00:24:32
◼
►
It doesn't really matter because I think like Marco said in his thing like
00:24:35
◼
►
The numbers they give you for like X amount of hours that only applies to their test and even if it was done by a human
00:24:41
◼
►
You're not that human you might do different things with your computer
00:24:43
◼
►
All you're looking for is is it better or worse than the last laptop is it you know?
00:24:48
◼
►
you're looking for big swings of like we have a light web browsing test and like an intensive test and
00:24:54
◼
►
What is the difference between them and is the light test like two hours less time than last year or more time or you know?
00:25:01
◼
►
It's all voodoo. So I'm disabling the cache to say
00:25:05
◼
►
We really want to test fetching this information over the network every single time. So don't even bother looking at your disk cache
00:25:12
◼
►
I think that's a perfectly valid thing to do and furthermore that wouldn't explain their widely variable results
00:25:19
◼
►
They're reading like from 19 hours to like three hours or something
00:25:22
◼
►
disabling the cash is nothing to do that except as the story goes that
00:25:27
◼
►
disabling the cash also triggered some other weird Safari bug that I haven't seen a technical explanation for but anyway
00:25:34
◼
►
Apple identified this bug they're gonna fix the bug consumer report says I think they have a beta build that fixes the bug and lo
00:25:41
◼
►
And behold they get sane testing results
00:25:43
◼
►
Marco was cranky about this. He wrote a blog post saying how
00:25:46
◼
►
The real story is this was an Apple bug
00:25:49
◼
►
but Apple's press release about it tries to deflect blame and say it's consumer reports doing a weird thing and
00:25:54
◼
►
Consumer Reports was only doing a weird thing in so far as all artificial battery testing is a weird thing
00:26:00
◼
►
I think everything consumer reports was doing was reasonable. What if you wanted to yell at Consumer Reports about something would be like
00:26:06
◼
►
It's pretty clear some reports that you've identified a bug like you are not privy to some secret information that no other person who owns
00:26:13
◼
►
This laptop has figured out like everyone else is getting anywhere from 19 to 3 hours
00:26:18
◼
►
But they're not saying anything but you consumer reports have revealed this amazing secret
00:26:22
◼
►
So go ahead and publish your story and say we can't recommend these laptops because we're getting crazy results out of the out of our battery
00:26:29
◼
►
Tests that's a sign consumer reports that it's not time for you to publish yet
00:26:32
◼
►
It's time for you to figure out what the hell's going on
00:26:33
◼
►
Because if the entire world was getting three hours to 19 hours, you would have heard about it
00:26:38
◼
►
So that's what I would yell consumer reports about but instead Apple was like, oh they're using a special developer setting
00:26:43
◼
►
The most people don't use it's not reflective of real-world use. Well, no crap. It's not reflective real-world use
00:26:48
◼
►
They have to make an artificial benchmark and it's probably the same thing they've been doing to Mac laptops for years
00:26:52
◼
►
Anyway, I'm gonna work that about it now
00:26:54
◼
►
But Apple Marco didn't like their tone
00:26:57
◼
►
I generally didn't like the the the idea that consumer reports is doing something wrong with their testing
00:27:03
◼
►
But I also didn't like the idea that consumer reports decided to go ahead and publish before they'd actually figured out what the hell was
00:27:08
◼
►
Going on, even though they were pretty close to figuring out like if they'd waited an extra week
00:27:12
◼
►
Anyway, there's enough blame to go around here
00:27:14
◼
►
but the bottom line is that the laptop's battery life
00:27:17
◼
►
is pretty much what everyone has been saying about it,
00:27:20
◼
►
which is not fantastically better than the previous ones,
00:27:22
◼
►
worse in some situations, potentially better in others
00:27:24
◼
►
if you learn how to do all the magic things
00:27:26
◼
►
that Marco's doing to it.
00:27:28
◼
►
But certainly not, oh, you're gonna get three hours now,
00:27:31
◼
►
or possibly 19.
00:27:33
◼
►
It's not that variable, that was a bug.
00:27:36
◼
►
- Well, but again, I have seen though,
00:27:38
◼
►
in light usage so far, from what I can tell,
00:27:42
◼
►
it actually is a step back for a lot of,
00:27:44
◼
►
depending on what your usage is, what it includes,
00:27:46
◼
►
what apps you're using, what their needs are.
00:27:49
◼
►
I think Consumer Reports was right to point out
00:27:53
◼
►
the battery life on this laptop is weird, because it is.
00:27:57
◼
►
And that's what, you see that from users,
00:27:59
◼
►
from actual owners of it, you're seeing, yeah,
00:28:01
◼
►
the battery life on this laptop is weird,
00:28:03
◼
►
because what we're seeing is everything is so incredibly,
00:28:07
◼
►
aggressively power managed to the last drop,
00:28:11
◼
►
If any factor takes more power than it should
00:28:15
◼
►
or than you think it is,
00:28:16
◼
►
or if you have anything running away in the background,
00:28:18
◼
►
or turning on the discrete GPU,
00:28:20
◼
►
or burning a CPU core for a while,
00:28:22
◼
►
if anything is not perfect,
00:28:25
◼
►
your battery life can be dramatically reduced.
00:28:28
◼
►
Like on the order of hours less than what you thought
00:28:31
◼
►
or what you usually get.
00:28:32
◼
►
That is a real problem.
00:28:35
◼
►
And in Consumer Reports' case,
00:28:37
◼
►
it was because of seemingly the Safari bug,
00:28:40
◼
►
which you can figure out if it's a bug
00:28:43
◼
►
that only shows up when the cache is disabled
00:28:45
◼
►
and it seems apparently by some other statement
00:28:47
◼
►
to be related to Safari's caching of icons,
00:28:49
◼
►
then that makes a lot of sense.
00:28:50
◼
►
It's almost certainly like the Apple touch icon
00:28:52
◼
►
or favicon infinite loop of fetching those things
00:28:55
◼
►
because it thinks it doesn't have them
00:28:56
◼
►
because they aren't in the cache
00:28:58
◼
►
because the cache is disabled.
00:28:59
◼
►
So it's probably that.
00:29:01
◼
►
Any web programmer can figure out,
00:29:03
◼
►
okay, that's probably what the bug,
00:29:04
◼
►
or the bug is probably in that area.
00:29:05
◼
►
But it doesn't really matter.
00:29:07
◼
►
- If that's what it was,
00:29:08
◼
►
Why would, like, I don't think what Consumer Reports
00:29:10
◼
►
is revealing is what you're talking about,
00:29:11
◼
►
the variability between, you know, idle and regular power.
00:29:14
◼
►
Because as far as I understand
00:29:16
◼
►
from reading the Consumer Reports thing,
00:29:18
◼
►
they were running the same battery test.
00:29:21
◼
►
And from one execution of that same test to the next,
00:29:25
◼
►
getting one time they get three and a half hours,
00:29:28
◼
►
one time they get 19.
00:29:29
◼
►
The same test, not people like users,
00:29:31
◼
►
like one day you're using Xcode
00:29:32
◼
►
and the other day you're browsing the web.
00:29:33
◼
►
Of course your results are gonna vary.
00:29:35
◼
►
And potentially they could vary as much as you said.
00:29:36
◼
►
Like if you spend the entire time playing a game
00:29:40
◼
►
or doing renders in a multi-core ray tracing program,
00:29:44
◼
►
you could get three hours and you could get 19
00:29:46
◼
►
if you're just text editing with everything turned off.
00:29:48
◼
►
But Consumer Reports is like,
00:29:49
◼
►
we're running the same battery test
00:29:51
◼
►
and we're getting these wildly variable results.
00:29:53
◼
►
And that I think is not illuminating
00:29:55
◼
►
in the way that you were describing.
00:29:57
◼
►
To inform consumers that depending on your activity,
00:30:02
◼
►
the battery life can be variable.
00:30:03
◼
►
It's almost like they were saying
00:30:04
◼
►
the thing is broken and unpredictable.
00:30:05
◼
►
that if you buy this laptop,
00:30:06
◼
►
you never know what you're gonna get,
00:30:08
◼
►
which is not the case.
00:30:08
◼
►
- But that's true.
00:30:10
◼
►
No, that's actually, like, that's a real thing.
00:30:12
◼
►
And in this case, like, you know,
00:30:15
◼
►
would this be the first time an Apple bug
00:30:17
◼
►
caused a process to go a little bit crazy?
00:30:20
◼
►
- Yeah, I know, but it's related to a bug.
00:30:22
◼
►
I mean, that's true of any laptop.
00:30:24
◼
►
You could have any laptop that has some process
00:30:26
◼
►
grinding through an infinite loop in the background
00:30:27
◼
►
and your fans spin up,
00:30:28
◼
►
and it'll slaughter your battery life.
00:30:29
◼
►
I mean, like, maybe they made the fans too quiet
00:30:31
◼
►
so you don't have any external indication.
00:30:33
◼
►
Remember when you, that used to listen to your computers
00:30:35
◼
►
to tell how they were doing,
00:30:36
◼
►
you'd hear the floppy drive going to know how it's going,
00:30:39
◼
►
or later you'd hear the hard drive going
00:30:41
◼
►
to be able to figure out is the thing in a loop,
00:30:44
◼
►
is it frozen?
00:30:44
◼
►
- It sounds like I need more RAM.
00:30:46
◼
►
- Is it swapping, is something going wrong?
00:30:49
◼
►
Or looking at drive lights blinking and stuff like that,
00:30:51
◼
►
we've slowly lost most of these physical manifestations
00:30:53
◼
►
of the computer.
00:30:55
◼
►
All we have left is on laptops in particular
00:30:58
◼
►
on the Apple line, the terrible fan noise,
00:31:00
◼
►
and now even that is tamped down.
00:31:02
◼
►
- Or, well, no, you feel it like when your phone gets hot.
00:31:04
◼
►
You're like, "Why is my phone so hot?
00:31:05
◼
►
I don't think I'm doing anything.
00:31:06
◼
►
Yeah, or laptops get hot for that matter, you know.
00:31:09
◼
►
But anyway, it is true that performance is variable, but their battery tests giving these
00:31:14
◼
►
results in this thing, we just can't recommend this because we can't get a beat on the battery
00:31:19
◼
►
That was not a useful or accurate statement.
00:31:21
◼
►
What they should have said is, "We think we've revealed a bug."
00:31:24
◼
►
And then they could have spun it out into a larger story about variability between idle
00:31:27
◼
►
and whatever power and demonstrated that by saying, "Here we played some game for this
00:31:31
◼
►
amount of time.
00:31:32
◼
►
Look at what it did to the battery life.
00:31:33
◼
►
we just tool around text editor like I don't know I'm not a fan I'm for example
00:31:38
◼
►
I'm not a fan of Consumer Reports reviews of cars because I think they
00:31:41
◼
►
don't understand what makes a good car and in general I haven't been a fan of
00:31:44
◼
►
Consumer Reports reviews of computers because they especially when it comes to
00:31:47
◼
►
Apple they're prone to go to press with something that sounds sensational rather
00:31:54
◼
►
than working out until they figure out what the hell is going on because
00:31:57
◼
►
figuring out what the hell is going on you still have a story there that you
00:31:59
◼
►
can explain, but going to press and saying,
00:32:03
◼
►
"We can't recommend these laptops."
00:32:05
◼
►
Coming from us to show that it's complained
00:32:08
◼
►
about these laptops a lot, that is too far.
00:32:10
◼
►
It's not as if this is a broken product
00:32:12
◼
►
that no one should buy.
00:32:13
◼
►
Maybe it doesn't suit your needs or whatever,
00:32:14
◼
►
but then just say, "We just can't recommend this laptop."
00:32:17
◼
►
That's not a responsible thing to publish
00:32:20
◼
►
given the facts that we know so far.
00:32:22
◼
►
- Well, and to be fair though,
00:32:23
◼
►
they actually did contact Apple beforehand,
00:32:26
◼
►
and Apple gave them some kind of canned response,
00:32:28
◼
►
it sounded like basically, it's just like,
00:32:30
◼
►
basically a non-response from PR.
00:32:33
◼
►
So they did first contact Apple to ask about this.
00:32:37
◼
►
- I know, but it's still on them to figure out
00:32:40
◼
►
what's going, to make the right recommendation.
00:32:43
◼
►
That's their job as a publication.
00:32:44
◼
►
And to backslide three days later when Apple works with them
00:32:47
◼
►
some more and finds out it's a bug, it's like,
00:32:49
◼
►
well, I don't know.
00:32:50
◼
►
As people are pointing in the chat room,
00:32:52
◼
►
can you imagine a non-tech going through the same thing
00:32:55
◼
►
and publishing that, that they'd figure out
00:32:57
◼
►
what was going on?
00:32:58
◼
►
why they're a more trusted source
00:32:59
◼
►
for how good computers are?
00:33:01
◼
►
- Probably yes, but I have a hard time looking at this.
00:33:05
◼
►
I mean, look, Consumer Reports,
00:33:07
◼
►
we all know that they're not perfect
00:33:09
◼
►
and that they are prone to clickbaity headline sensationalism
00:33:12
◼
►
however, what they saw was a real problem
00:33:17
◼
►
and it was not their problem.
00:33:18
◼
►
And they asked Apple about it
00:33:20
◼
►
and Apple gave them a non-response.
00:33:21
◼
►
So what were they supposed to do?
00:33:23
◼
►
These days, sometimes it takes a little bit of pushing
00:33:26
◼
►
for Apple from the outside to get things fixed.
00:33:29
◼
►
I think it's on them, though, to realize that, like, if they haven't heard this from anyone
00:33:33
◼
►
else, maybe it has something to do with the fact that they are, they're testing it under
00:33:37
◼
►
conditions that you have to test it under. They're testing it in an artificial testing
00:33:40
◼
►
condition, which I said aren't bad, but they have to realize that maybe what we're encountering,
00:33:45
◼
►
because we haven't heard anyone else have this problem, is because of something that
00:33:49
◼
►
we have to do as part of our uniform testing procedure, right? For example, the way you
00:33:53
◼
►
can figure this out is take your laptop that you're supposedly testing and give it to
00:33:56
◼
►
to one of your staffers and have them take it home
00:33:59
◼
►
with them at night and use it as their regular work laptop
00:34:01
◼
►
and say, when you use it like a normal person,
00:34:03
◼
►
does it seem okay to you?
00:34:04
◼
►
That's a non-scientific test,
00:34:05
◼
►
but it can definitely tell you whether,
00:34:07
◼
►
like, I used it yesterday and I got this battery life
00:34:10
◼
►
and I used it the next day and did pretty much
00:34:11
◼
►
the same stuff and got like one eighth of that.
00:34:14
◼
►
And if they say no, it's much more consistent
00:34:16
◼
►
when I use it like that, well, like,
00:34:18
◼
►
they can narrow it down to this,
00:34:18
◼
►
maybe it's because we're disabling the cache.
00:34:20
◼
►
Now, granted, that's a little bit of debugging there
00:34:22
◼
►
to understand that, you know, what are you doing
00:34:24
◼
►
to cause this problem and removing variables
00:34:26
◼
►
and stuff like that.
00:34:27
◼
►
But if you're gonna come out as a publication and say,
00:34:30
◼
►
we just can't recommend that,
00:34:31
◼
►
like there's things like, can't recommend this laptop,
00:34:34
◼
►
like you should not buy this product.
00:34:36
◼
►
That is going too far for something that,
00:34:40
◼
►
Consumer Reports would agree if they test it,
00:34:41
◼
►
it does not manifest a normal usage in the way they saw
00:34:44
◼
►
that if you do pretty much the same thing with it,
00:34:47
◼
►
that you get that much variability in your battery life.
00:34:50
◼
►
'Cause again, if that was true,
00:34:51
◼
►
every single publication that reviewed these laptops
00:34:54
◼
►
would say I do pretty much the same thing
00:34:56
◼
►
and sometimes I get 6X the battery life
00:35:00
◼
►
that I do other times and I can't figure out why.
00:35:03
◼
►
- I partly agree with you.
00:35:05
◼
►
I agree with some of the things you're saying
00:35:06
◼
►
but basically the disagreement I think we're having
00:35:09
◼
►
is whether Consumer Reports was reasonable
00:35:11
◼
►
to say what they said or whether they should have done
00:35:14
◼
►
more work and testing or investigation or whatever.
00:35:17
◼
►
And I think, I don't think they were perfect about it
00:35:20
◼
►
but I think given what they were seeing,
00:35:23
◼
►
I think they were mostly reasonable
00:35:25
◼
►
to say what they said at that time.
00:35:27
◼
►
And now that they have new information,
00:35:29
◼
►
they said they are gonna retest it, and that's great.
00:35:31
◼
►
'Cause it would be one thing,
00:35:33
◼
►
if Apple eventually went to them and figured this out,
00:35:36
◼
►
and Consumer Reports said, "Well, no, our test is done.
00:35:38
◼
►
"Sorry, too late.
00:35:39
◼
►
"Try again in 18 months when you release a new one."
00:35:42
◼
►
That would be kind of a bad move on their part.
00:35:44
◼
►
But in the situation they were in,
00:35:46
◼
►
with the very little information they had,
00:35:48
◼
►
and with a non-response from Apple
00:35:50
◼
►
when they asked them about it,
00:35:52
◼
►
I don't think it was unreasonable
00:35:53
◼
►
to publish what they did when they did.
00:35:55
◼
►
Again, I would make a few edits, but for the most part,
00:35:57
◼
►
I think it was in the ballpark.
00:35:58
◼
►
Now that they have new information, now they are retesting.
00:36:01
◼
►
I think that is very reasonable, and I think,
00:36:04
◼
►
the problem I had about this was basically
00:36:07
◼
►
Apple's PR framing of their official statement.
00:36:10
◼
►
Apple's tone is really bitter almost recently.
00:36:17
◼
►
The statement about the Dash developer, Bogdan Povescu,
00:36:21
◼
►
I'm sorry if I mispronounced that.
00:36:23
◼
►
Their statement about that situation was also
00:36:26
◼
►
really a little bit defensive and weird,
00:36:29
◼
►
and as more fact came out from both sides,
00:36:32
◼
►
I think it became a little bit clear,
00:36:34
◼
►
like oh that statement was a little bit too aggressive
00:36:37
◼
►
and bitter and a little unnecessarily so.
00:36:39
◼
►
There's something up,
00:36:40
◼
►
like when Apple gives a defensive statement like that,
00:36:43
◼
►
I think it can use a little more editing
00:36:46
◼
►
than what it's getting before it comes out,
00:36:47
◼
►
because it's like if you wanna write a nasty email,
00:36:50
◼
►
wait till the next morning to send it.
00:36:52
◼
►
It's like, I think Apple needs to do that a little bit
00:36:53
◼
►
with its defensive PR statements here,
00:36:56
◼
►
because they come out with this very overly defensive
00:36:59
◼
►
attitude that's honestly slightly BSE in certain ways.
00:37:04
◼
►
They kinda BS around certain facts of the matter
00:37:07
◼
►
or whatever, and it does not reflect well on them.
00:37:11
◼
►
They're usually a trustworthy, straightforward company
00:37:15
◼
►
with clear communication, and so to have these little
00:37:18
◼
►
defensive PR statements where that's not the case
00:37:23
◼
►
is just off-putting and a little bit concerning
00:37:26
◼
►
for a company that we respect so much.
00:37:28
◼
►
- I agree the PR statement was bad,
00:37:29
◼
►
but I still think it's in reports
00:37:31
◼
►
what they should have published was,
00:37:32
◼
►
we can't tell what's going on,
00:37:34
◼
►
'cause that was the truth.
00:37:35
◼
►
They did not know what was going on.
00:37:37
◼
►
And what they should have said is,
00:37:40
◼
►
when normal people use this,
00:37:41
◼
►
we don't see this kind of variability,
00:37:43
◼
►
but in our battery test we get this variability,
00:37:45
◼
►
we can't explain that.
00:37:46
◼
►
If they want to say, "Therefore, we can't recommend this," that's a matter of semantics.
00:37:50
◼
►
Like, I guess they can't recommend it technically because if they don't get good results on
00:37:54
◼
►
their artificial test, then that's their criteria of recommendation that they can't recommend
00:37:58
◼
►
But the way it was written up, it was almost as if they were recommending against it and
00:38:01
◼
►
that it seemed conclusive.
00:38:03
◼
►
There wasn't much of saying, "Look, we were stumped.
00:38:06
◼
►
We can't figure this out.
00:38:08
◼
►
Something here is going on that we obviously don't understand."
00:38:10
◼
►
I think the piece of information that was missing is that we are not privy to special
00:38:15
◼
►
information that the rest of the world doesn't have. The rest of the world is using these
00:38:18
◼
►
laptops. Other publications are testing them. Other people own them. This is a thing that
00:38:22
◼
►
only we are seeing. And that was, you know, if you were to read this and that was your
00:38:27
◼
►
source, your authoritative source, you would say, well, these laptops are obviously haunted,
00:38:33
◼
►
which is not the case. It was just like that Consumer Reports was doing a thing that induced
00:38:37
◼
►
a bug. And the bug is a problem. And you're right, there can be other kinds of bugs. But
00:38:40
◼
►
I don't know. It just rubs me the wrong way. And you're right, there is some history there
00:38:44
◼
►
with Consumer Reports doing similar types of things, and in general I don't like Consumer
00:38:48
◼
►
Reports for, I guess at this point, or the advent of the Wirecard and everything, I don't
00:38:52
◼
►
like Consumer Reports for almost anything anymore.
00:38:55
◼
►
So maybe a little bit of my general attitude about them is showing through.
00:38:58
◼
►
But like I said, and I didn't like the PR statement, for all the reasons you noted,
00:39:02
◼
►
like them framing it as if Consumer Reports was doing a terrible thing, that is the wrong
00:39:06
◼
►
framing when the reality was there was an Apple bug.
00:39:09
◼
►
You should have led with that.
00:39:10
◼
►
It's like, there was a bug, we fixed it, Consumer Reports is retesting.
00:39:13
◼
►
- It's such an easy PR win.
00:39:15
◼
►
- Like if we read that statement, what would we go,
00:39:16
◼
►
we'd be like, all right, well that explains it.
00:39:18
◼
►
Thanks Apple, we all understand that bugs exist,
00:39:20
◼
►
but instead they led with,
00:39:22
◼
►
Consumer Reports doing a weird thing.
00:39:23
◼
►
It's not that weird.
00:39:24
◼
►
Anyway, now I'm mad at everybody.
00:39:26
◼
►
- Right, that's like, they couldn't just say,
00:39:29
◼
►
you know, we discovered the problem they were having
00:39:32
◼
►
was due to a bug, we fixed it, and they're gonna ret--
00:39:34
◼
►
Like that would be the direct, honest way.
00:39:36
◼
►
Instead they had to drill in that Consumer Reports' test
00:39:40
◼
►
was somehow invalid or irrelevant.
00:39:42
◼
►
- A hidden feature, it's a checkbox in the prefs window.
00:39:44
◼
►
- Yeah, they're like implying intent and possible malice
00:39:48
◼
►
that Consumer Reports was using this hidden feature.
00:39:50
◼
►
- They're mad at Consumer Reports too.
00:39:52
◼
►
- Yeah, and it's like Apple couldn't give a statement
00:39:56
◼
►
without showing how mad they were about it.
00:39:58
◼
►
And that's, again, that's becoming more common
00:40:01
◼
►
with their defensive statements here.
00:40:02
◼
►
And I don't think that's a professional way
00:40:07
◼
►
to conduct yourselves in the context of PR.
00:40:09
◼
►
Like that's what PR is not supposed to do.
00:40:12
◼
►
Like, I don't see, it's just,
00:40:15
◼
►
it leaves a sour taste in my mouth is all.
00:40:17
◼
►
- On the flip side of the coin though,
00:40:18
◼
►
you could make the argument to kind of take
00:40:20
◼
►
Jon's point to the next level.
00:40:22
◼
►
It was irresponsible and PRE in a bad way
00:40:26
◼
►
for consumer reports to say,
00:40:29
◼
►
"Oh, we can't recommend it, the battery's crap."
00:40:32
◼
►
You know, the direct report, like Jon said,
00:40:34
◼
►
should have been, "Well, we're not really sure
00:40:37
◼
►
"what's going on, nobody else in the world
00:40:39
◼
►
"seems to be getting similar results,
00:40:40
◼
►
So either don't publish anything or alternatively, you know, right now we're saying no, but we got to get back to it.
00:40:47
◼
►
Whereas it seems like it was, from what I gather, it was a little bit more aggressive than that.
00:40:53
◼
►
Like, I don't think there was malice there, but the same way, Marco, that you're reading all this like malice and
00:40:58
◼
►
propaganda in the Apple response, which I think there's truth to that, or at least it appears to be true from my point of view,
00:41:06
◼
►
you can take that exact same
00:41:09
◼
►
approach to looking at the Consumer Reports statement,
00:41:12
◼
►
which was in many ways also irresponsible
00:41:14
◼
►
and also premature and also PRE and also just not good.
00:41:19
◼
►
- Consumer Report, maybe it's because my standards
00:41:21
◼
►
are so low for Consumer Reports, because like Jon,
00:41:23
◼
►
I have lost a lot of faith in them over the years.
00:41:25
◼
►
- Yeah, agreed.
00:41:26
◼
►
- So maybe I'm grading them on a curve here,
00:41:28
◼
►
but even if Consumer Reports did something outrageous,
00:41:31
◼
►
I don't think that makes Apple's tone of their response okay.
00:41:35
◼
►
Like Apple should be the bigger person here.
00:41:38
◼
►
exactly the same argument was made by a few people,
00:41:42
◼
►
I think including Matt and Reese,
00:41:44
◼
►
with Bodan Popescu about Dash.
00:41:47
◼
►
Like Apple is Apple, and they're making these statements
00:41:51
◼
►
against this one indie developer,
00:41:53
◼
►
and this magazine/website that has cut its staff
00:41:58
◼
►
to the bone in recent years and is like barely afloat.
00:42:01
◼
►
And they're Apple, right?
00:42:03
◼
►
They are like Goliath here, right?
00:42:07
◼
►
I'm sorry to mess up the metaphor,
00:42:09
◼
►
I know that's kind of how that story goes,
00:42:10
◼
►
but Apple does not,
00:42:13
◼
►
Apple can afford to be the bigger person here
00:42:16
◼
►
with their statements,
00:42:17
◼
►
and to not kind of play the bully almost.
00:42:19
◼
►
And what, the tone they take in these statements is like,
00:42:23
◼
►
we're not gonna just tell you what happened,
00:42:25
◼
►
we are going to discredit the people
00:42:27
◼
►
who are making these accusations against us first.
00:42:29
◼
►
We're gonna make, we're gonna drag them through mud,
00:42:31
◼
►
we're gonna make them look like they were bad
00:42:34
◼
►
and malicious and at fault,
00:42:36
◼
►
and doing crazy and valid things
00:42:38
◼
►
when actually it was our problem.
00:42:39
◼
►
- All right, let's move on.
00:42:42
◼
►
On the Swift evolution email list,
00:42:45
◼
►
which who knew that email lists were still a thing?
00:42:49
◼
►
This is like straight out of '98, but anyway.
00:42:51
◼
►
- They are for language nerds.
00:42:54
◼
►
There's a post from Chris Latner
00:42:56
◼
►
that the title is Update on the Swift Project Lead.
00:43:00
◼
►
And there's a little bit of preamble
00:43:01
◼
►
and then the meat of it is--
00:43:02
◼
►
- Wait, wait, wait, before you start reading,
00:43:05
◼
►
the subject line of that email.
00:43:08
◼
►
Having worked in corporate America for a long time.
00:43:12
◼
►
- Oh yeah, we all know what this means.
00:43:13
◼
►
- Based solely on the subject line,
00:43:15
◼
►
you can tell what kind of news is gonna be in that email.
00:43:19
◼
►
But having seen enough emails that euphemistically express
00:43:23
◼
►
personnel changes or other bad news about the company, yeah.
00:43:28
◼
►
- The best one is when the subject line is somebody's name.
00:43:31
◼
►
Like the subject line is from someone else in the company
00:43:33
◼
►
and the name is like, and the subject is just
00:43:35
◼
►
like the employee's name, like all right,
00:43:36
◼
►
either they died or they got fired.
00:43:38
◼
►
Like that's one of those two things that's happened here.
00:43:40
◼
►
- Or updates on, update on is another great euphemism
00:43:43
◼
►
is what we have in here.
00:43:44
◼
►
- Yeah, and by the way, the language used
00:43:46
◼
►
when somebody dies versus getting fired is pretty close.
00:43:49
◼
►
- Yeah. - Let's not go there.
00:43:50
◼
►
Okay, not to say you're wrong, but let's not go there.
00:43:52
◼
►
So update on the Swift project lead from Chris Latner,
00:43:56
◼
►
and we'll explain who he is in a second,
00:43:58
◼
►
but the meat of this email is,
00:44:01
◼
►
I'm happy to announce that Ted Kremenick,
00:44:03
◼
►
is that how you pronounce it?
00:44:04
◼
►
Do you guys know?
00:44:06
◼
►
Let's go with it.
00:44:06
◼
►
Okay, I am happy to announce that--
00:44:08
◼
►
- ATP, the kings of pronunciation.
00:44:10
◼
►
- Seriously.
00:44:11
◼
►
That Ted Kremenick will be taking over for me as,
00:44:13
◼
►
quote, project lead, quote, for the Swift project,
00:44:16
◼
►
managing the administrative and leadership responsibility
00:44:18
◼
►
for Swift.org.
00:44:19
◼
►
This recognizes the incredible effort
00:44:21
◼
►
that he has already been putting into the project
00:44:23
◼
►
and reflects the decision I've made
00:44:24
◼
►
to leave Apple later this month
00:44:26
◼
►
to pursue an opportunity in another space.
00:44:28
◼
►
- Way to bury the lead, Chris.
00:44:30
◼
►
Yeah, this decision wasn't made lightly and I want you all to know that I'm still completely
00:44:34
◼
►
committed to Swift.
00:44:35
◼
►
I plan to remain an active member of the Swift core team as well as a contributor to the
00:44:38
◼
►
Swift evolution mailing list.
00:44:41
◼
►
And then there's some very nice comments about working at Apple blah blah blah, everything
00:44:45
◼
►
will be okay, this guy's been following blah blah blah.
00:44:48
◼
►
That was about noonish our time yesterday.
00:44:53
◼
►
Followed a few hours later with a blog post on Tesla.com.
00:44:58
◼
►
Welcome Chris Latner.
00:44:59
◼
►
We would like to welcome Chris Lattner, who
00:45:01
◼
►
will join Tesla as our Vice President of Autopilot
00:45:04
◼
►
Chris's reputation for engineering excellence
00:45:06
◼
►
is well known.
00:45:06
◼
►
He comes to Tesla after 11 years at Apple,
00:45:08
◼
►
where he was primarily responsible for creating
00:45:10
◼
►
Swift, the programming language for building apps on Apple
00:45:12
◼
►
platforms, and one of the fastest growing languages
00:45:14
◼
►
for doing so on Linux.
00:45:16
◼
►
Prior to Apple, Chris was the lead author
00:45:18
◼
►
of the LLVM compiler infrastructure, an open source
00:45:20
◼
►
umbrella project that is widely used in commercial products
00:45:22
◼
►
and academic research today.
00:45:26
◼
►
So let's back up a smidge.
00:45:28
◼
►
John, do you want to tell us who Chris Latner is?
00:45:30
◼
►
- Well, I think both of those statements
00:45:31
◼
►
had his various titles in there.
00:45:32
◼
►
I had to actually look this up.
00:45:34
◼
►
I think his title upon departure from Apple
00:45:37
◼
►
was Senior Director and Architect
00:45:40
◼
►
Developer Tools Department.
00:45:42
◼
►
That's a comma inside the title.
00:45:43
◼
►
It's such a long title, not a comma.
00:45:45
◼
►
But he was basically in charge of all dev tools.
00:45:47
◼
►
And when he came on board at Apple,
00:45:49
◼
►
he was lower down, but also doing compiler-y stuff.
00:45:52
◼
►
He is responsible for getting Apple off GCC
00:45:56
◼
►
and onto what was first a GCC work-alike compiler
00:46:00
◼
►
based on the LVM compiler building toolkit that he made,
00:46:05
◼
►
that he started before he came to Apple,
00:46:06
◼
►
it's probably one of the reasons Apple hired him, I'm sure.
00:46:09
◼
►
And then eventually Clang, which is the replacement for GCC,
00:46:12
◼
►
and of course the Swift programming language
00:46:14
◼
►
that we all know and love and/or are avoiding.
00:46:21
◼
►
So that's who Chris Lattner is.
00:46:23
◼
►
He's the, in sort of nerds who follow Apple parlance,
00:46:28
◼
►
but don't know him personally,
00:46:29
◼
►
he's the guy who was on stage announcing Swift at WWDC.
00:46:34
◼
►
So that's the dude.
00:46:35
◼
►
So a very important person in Apple
00:46:37
◼
►
has had a very illustrious career.
00:46:39
◼
►
Obviously the driving force behind
00:46:42
◼
►
many of the biggest changes having to do
00:46:44
◼
►
with developer tools at Apple,
00:46:46
◼
►
with the platform on which you develop them.
00:46:48
◼
►
'Cause at this point, his final title,
00:46:50
◼
►
I think he was in charge of all Xcode,
00:46:51
◼
►
not just like the compiler nitty bit,
00:46:52
◼
►
He started off just doing compiler stuff
00:46:55
◼
►
and moved all the way up until he's ahead of all dev tools.
00:46:57
◼
►
So a wide ranging influence.
00:47:00
◼
►
And unquestionably Swift is the biggest thing to happen
00:47:03
◼
►
to develop on Apple platforms in many, many, many years.
00:47:06
◼
►
And so he's leaving and he's going to Tesla.
00:47:11
◼
►
And the first thing that occurred to me
00:47:13
◼
►
about this announcement was that it took place,
00:47:17
◼
►
the first place I saw it anyway,
00:47:18
◼
►
and I'm pretty sure the first place
00:47:19
◼
►
that it appeared anywhere publicly
00:47:22
◼
►
was on the Swift evolution mailing list,
00:47:25
◼
►
which is a public mailing list about the open source
00:47:28
◼
►
development of the Swift programming language,
00:47:30
◼
►
because Swift is open source,
00:47:32
◼
►
thanks to Chris's efforts inside Apple.
00:47:35
◼
►
And that's where he chose to announce his departure,
00:47:37
◼
►
not on Twitter, not an Apple press release,
00:47:39
◼
►
not in any other channel, not on his blog,
00:47:42
◼
►
but on the open source mailing list.
00:47:44
◼
►
And then he buried it, you know,
00:47:46
◼
►
two paragraphs down in email about a change
00:47:48
◼
►
and leadership of the open source effort,
00:47:50
◼
►
which I think in itself is a statement about
00:47:52
◼
►
his dedication to open source
00:47:55
◼
►
and his respect for the community,
00:47:57
◼
►
the few nerds who are following a mailing list
00:48:00
◼
►
of all things, can you believe who people,
00:48:03
◼
►
oh, people like me who still subscribe to mailing lists,
00:48:05
◼
►
still happens, and that he's telling not the public at large
00:48:09
◼
►
and not a bunch of press outlets,
00:48:12
◼
►
but the people who contribute to the evolution
00:48:15
◼
►
of the Swift language.
00:48:17
◼
►
So I thought that made a statement.
00:48:19
◼
►
And at the time they announced he was leaving,
00:48:23
◼
►
I didn't know where he was going,
00:48:24
◼
►
but as Casey points out, we didn't have to wait very long.
00:48:27
◼
►
Only an hour or two later and the mystery was solved.
00:48:30
◼
►
- Yeah, this is a big deal as far as I'm concerned.
00:48:34
◼
►
I mean, it's hard to say from an outsider's point of view
00:48:38
◼
►
how much Chris was involved in,
00:48:43
◼
►
well, I shouldn't even say that since it is open source,
00:48:46
◼
►
But I personally don't keep up with the day-to-day doings on the Swift project.
00:48:52
◼
►
And certainly, since Apple was kind enough—and I mean that genuinely, I'm not trying to be
00:48:57
◼
►
snarky—Apple was kind enough to upload the entire commit history for Swift to GitHub.
00:49:02
◼
►
And people went digging through the early commits for Swift.
00:49:09
◼
►
And it really was Latner's baby for like a year or something like that.
00:49:12
◼
►
And then gradually and gradually and gradually more and more Apple engineers came on board.
00:49:16
◼
►
But I mean, this is the language in which I write code every weekday.
00:49:22
◼
►
And this is in many ways how I pay for the roof over my head this very moment.
00:49:27
◼
►
So I mean, I personally owe a great debt of gratitude to Chris Latner.
00:49:32
◼
►
And I think Marco does as well by virtue of Xcode being under Chris Latner as well.
00:49:37
◼
►
Yeah, and LLVM and a lot of other stuff too.
00:49:41
◼
►
Not just Swift.
00:49:42
◼
►
You know, there were a lot of other things that he, like,
00:49:43
◼
►
you know, I don't use Swift yet, as everyone knows, ha ha,
00:49:46
◼
►
but, like, he also did tons of stuff
00:49:48
◼
►
for the entire rest of the developer stack,
00:49:50
◼
►
including the compiler and Objective-C.
00:49:53
◼
►
- Yeah, yeah, so this certainly strikes me
00:49:57
◼
►
as a pretty darn big deal.
00:50:00
◼
►
It's a pretty big blow to see somebody that important,
00:50:04
◼
►
that high up, and from everything I've ever heard
00:50:09
◼
►
that well-liked leave Apple, and then it's just turning the darn knife for him to be
00:50:14
◼
►
going to Tesla.
00:50:15
◼
►
That's not a bad thing necessarily, but I've got to imagine that Apple's pretty sensitive
00:50:20
◼
►
to these sorts of defections, and this one's got a sting.
00:50:24
◼
►
And he's not the only one, as people are pointing out right now.
00:50:27
◼
►
There have been several relatively high-profile, although I don't think as high-profile, Apple
00:50:32
◼
►
departures on their way to Tesla.
00:50:35
◼
►
So this is kind of a bummer for Apple, for sure.
00:50:37
◼
►
Yeah, we have a link in the show notes for Christina Warren's article where she gathered
00:50:42
◼
►
this big list of recent departures and the companies that they're going to, and you see
00:50:46
◼
►
a lot of Tesla in that list.
00:50:47
◼
►
I mean, obviously this is not a scientific sample.
00:50:50
◼
►
We have no idea what Apple's normal turnover is and if this is more than usual or whatever,
00:50:54
◼
►
but high profile ones like this, those are the ones that we notice, and it's a good occasion
00:50:59
◼
►
to see if people are leaving Apple, where are they going?
00:51:01
◼
►
And it looks like right now, perhaps more people than perhaps people thought were leaving
00:51:07
◼
►
Apple to go to Tesla, which I guess would seem weird if there hasn't been rumors of
00:51:11
◼
►
an Apple car related project for so many years, but now just like, yeah, that kind of makes
00:51:15
◼
►
sense, right?
00:51:16
◼
►
- I mean, and it depends on the person too.
00:51:19
◼
►
Like somebody like Latner, I mean, this is, he's obviously an incredibly smart engineer,
00:51:26
◼
►
and that's like understating things, right?
00:51:29
◼
►
Also is apparently a really good woodworker.
00:51:32
◼
►
But anyway, really smart engineers tend to do two things.
00:51:37
◼
►
Either they get a job at one company
00:51:40
◼
►
and work there forever for their entire career,
00:51:43
◼
►
like a place like Google or something.
00:51:44
◼
►
They go there and they stay forever.
00:51:47
◼
►
This is often what more academic programmers
00:51:49
◼
►
tend to like to do, because that tends to enable them
00:51:53
◼
►
to be a little bit more academically free in a way
00:51:56
◼
►
and to really get established and to really not
00:51:58
◼
►
have to worry about the employment situation much
00:52:01
◼
►
and just do great intellectual things.
00:52:04
◼
►
And then the other pattern you usually see
00:52:06
◼
►
for really talented, very smart people,
00:52:09
◼
►
in engineering at least, they'll do one thing
00:52:12
◼
►
for a couple years and then they'll wanna do something else
00:52:14
◼
►
because they just wanna keep attacking
00:52:17
◼
►
new crazy interesting problems.
00:52:20
◼
►
And once they have kinda gotten something stable
00:52:24
◼
►
or released or whatever, they get antsy
00:52:26
◼
►
and wanna move to something else.
00:52:28
◼
►
Usually you see those two extremes
00:52:30
◼
►
with very smart engineers.
00:52:31
◼
►
Because we know Chris is that level of talent,
00:52:36
◼
►
it could have just been the latter.
00:52:38
◼
►
It's hard to look at this and to really read anything
00:52:42
◼
►
into this one person changing jobs.
00:52:46
◼
►
And that's not to say the aggregate
00:52:48
◼
►
doesn't maybe say something,
00:52:49
◼
►
but this one person changing jobs to a different company,
00:52:53
◼
►
somebody who's that smart,
00:52:54
◼
►
it is not unheard of for them to change.
00:52:58
◼
►
And he's been an Apple for a long time.
00:53:00
◼
►
And so, to change, what was it, 11 years, I forgot, 11?
00:53:03
◼
►
Something like that. - I believe that's right.
00:53:04
◼
►
- It's a long, and that's a long,
00:53:05
◼
►
for somebody of that caliber, that's a long time.
00:53:08
◼
►
So, the fact that he just left,
00:53:10
◼
►
and even though he left us somewhere
00:53:12
◼
►
that's possibly like a bit of a red flag,
00:53:16
◼
►
that alone, I don't think is reason for concern.
00:53:18
◼
►
Now, if you look, there's a couple of things about this
00:53:21
◼
►
that are interesting and possibly concerning
00:53:24
◼
►
if you're looking at Apple.
00:53:26
◼
►
One, I think, is the timing is a little odd.
00:53:30
◼
►
Apple is, at this point, it's barely even secret anymore
00:53:36
◼
►
that Apple is working on a car project
00:53:38
◼
►
and that they're devoting a lot of resources to it.
00:53:41
◼
►
You can look around what they're doing
00:53:42
◼
►
in the rest of their product lines
00:53:43
◼
►
and it seems like they're having a hard time
00:53:46
◼
►
keeping up with pretty much everything
00:53:48
◼
►
and they're devoting a lot of resources to something.
00:53:52
◼
►
- Well, less than before, though,
00:53:53
◼
►
if the rumors are to be believed.
00:53:55
◼
►
Because before they were devoting way more resources
00:53:57
◼
►
when they were supposedly making an actual physical car,
00:54:00
◼
►
and then supposedly rumor says that they laid off
00:54:02
◼
►
a whole bunch of people and said,
00:54:03
◼
►
"No, we're not actually making a physical car.
00:54:05
◼
►
Instead, we're making self-driving software for cars."
00:54:08
◼
►
- Well, it sounds more like the answer was,
00:54:10
◼
►
"We're not making a car yet."
00:54:11
◼
►
I think that was the actual pivot is,
00:54:13
◼
►
or at least we're not making this car
00:54:15
◼
►
that we have been working on.
00:54:16
◼
►
- Anyway, all we've got is rumors
00:54:17
◼
►
'cause Apple didn't say anything about this,
00:54:19
◼
►
but the non-rumor thing is,
00:54:21
◼
►
what is Chris Lander gonna do at Tesla?
00:54:24
◼
►
vice president of autopilot software.
00:54:26
◼
►
So if Chris was actually interested
00:54:28
◼
►
in working on software for self-driving cars,
00:54:32
◼
►
obviously we know for a fact Tesla
00:54:34
◼
►
has a department working on that.
00:54:35
◼
►
And supposedly Apple possibly,
00:54:38
◼
►
maybe if you believe the rumors
00:54:39
◼
►
also had a department doing that.
00:54:40
◼
►
So it's not even as if he had to leave Apple
00:54:44
◼
►
to work on car things maybe.
00:54:47
◼
►
But that's why we're saying it's like
00:54:50
◼
►
twisting the knife to go to Tesla,
00:54:51
◼
►
because it's kind of strange to compare rumors of what Apple is supposedly doing with the
00:54:57
◼
►
concrete reality of what we know Tesla is doing, but in tech news circles and the fact
00:55:03
◼
►
that Tesla and Apple have this open door policy apparently with their personnel going in both
00:55:09
◼
►
directions and the slight animosity about poaching each other's employees, the competition
00:55:14
◼
►
between Apple and Tesla seems to be a real thing. Whether it's founded on an actual overlap
00:55:18
◼
►
in product efforts is still unknown.
00:55:22
◼
►
- Yeah, that's the thing, is that irrespective
00:55:23
◼
►
of whether or not Apple is working on a car
00:55:26
◼
►
or car-related things, it seems pretty clear,
00:55:30
◼
►
even from all the way on the other coast,
00:55:32
◼
►
that there is increasing amounts of animosity
00:55:34
◼
►
between the two companies about defections
00:55:37
◼
►
from one to the other.
00:55:39
◼
►
- Yeah, and that's why, like, you know,
00:55:41
◼
►
the company he went to is interesting,
00:55:45
◼
►
you know, for that reason.
00:55:46
◼
►
What he went there to do when Apple allegedly,
00:55:50
◼
►
rumor-wise, has that department in active development
00:55:54
◼
►
is interesting, and the timing, I think, is interesting
00:55:58
◼
►
because I don't, Casey, does Swift seem like it's in
00:56:03
◼
►
a very stable place right now?
00:56:04
◼
►
Honestly, I don't know, I don't follow it.
00:56:07
◼
►
- Okay, so I can't answer that question
00:56:10
◼
►
because no matter what I say, half of the Swift users
00:56:14
◼
►
will say I am dead wrong.
00:56:16
◼
►
So the simple answer is it is not yet totally stable,
00:56:21
◼
►
but we are told that Swift 4 will bring ABI stability
00:56:26
◼
►
and at that point, all the bumps on the road
00:56:29
◼
►
should really start to smooth out.
00:56:31
◼
►
I'm not saying that's accurate,
00:56:33
◼
►
but I'm saying that's what everyone is being told.
00:56:35
◼
►
So take that for what you,
00:56:37
◼
►
you can interpret that to be whatever you mean,
00:56:39
◼
►
but that should be soon.
00:56:42
◼
►
Also next year's the year of Linux on the desktop.
00:56:45
◼
►
Well, you know, stability, another word for stability, you know, you're only stable when
00:56:49
◼
►
you're dead.
00:56:50
◼
►
Like, it's never actually going to be stable.
00:56:51
◼
►
It's always going to be growing.
00:56:52
◼
►
You know, it's, the question is like, so Swift is Chris Lattner's baby, right?
00:56:59
◼
►
And timing-wise, if you were to look at it in terms of the Swift language, it's a little
00:57:04
◼
►
bit weird to move on to other things before you're sure that like, that, you know, your
00:57:11
◼
►
child has grown into an adult or at the very least is potty trained.
00:57:15
◼
►
I'm not going to say ABI compatibility is potty training, but having to bundle all the
00:57:23
◼
►
libraries with your application because you can't be guaranteed binary compatibility with
00:57:28
◼
►
the next version of the standard library and stuff, that to me still feels like a language
00:57:32
◼
►
that is not yet fully formed.
00:57:35
◼
►
It's not like it's unstable or too much is changing because their source compatibility
00:57:41
◼
►
They're on the source compatibility train at that point.
00:57:43
◼
►
And even so, even when they weren't on the source compatibility training, I don't think
00:57:46
◼
►
it was that bad and Xcode was good about helping you update your stuff.
00:57:48
◼
►
Like it wasn't, you know, it's on version three.
00:57:51
◼
►
It's not version, you know, 0.09 or whatever.
00:57:54
◼
►
Like they, they incremented the major versions pretty quickly because they did change major
00:57:58
◼
►
changes to the language during that time.
00:58:01
◼
►
One last thing, like Casey said, is ABI compatibility.
00:58:03
◼
►
I feel like after that, it's not as if it's stable.
00:58:06
◼
►
It's still going to improve and get better, but I think it will have crossed the line
00:58:09
◼
►
into a language that you can use without any more caveats, any more implementation caveats,
00:58:15
◼
►
because now your caveats may be like, "Oh, well, I don't like this feature or that feature,"
00:58:19
◼
►
but once it works like Objective-C and that it's like a language that you can write in to be,
00:58:24
◼
►
you know, and your application will be compatible with the next version of the OS and all the
00:58:28
◼
►
frameworks and libraries and all that other stuff without you having to bundle all that
00:58:31
◼
►
crap with your app, like that's a sign of a language that isn't quite done. So to have
00:58:35
◼
►
Chris leave before the, you know, the baby leaves the nest. I keep searching for new
00:58:40
◼
►
analogies and I don't know which one we're going to pick as a favorite, but like, because
00:58:44
◼
►
it's so bad to say like, "Oh, he left before Swift is done." Swift is never going to be
00:58:46
◼
►
done. The language is never done, but like before, I feel like it crosses the line. Now,
00:58:51
◼
►
he didn't leave right after 1.0 because that would be a much worse time to leave. And Swift
00:58:55
◼
►
is certainly in good hands. It's not like it was hinging on him being there, but purely
00:58:59
◼
►
from the perspective of, wouldn't you like to be there to see this thing through, even
00:59:04
◼
►
Even if, as he expresses in his letter, it's not, you know, the language is fine.
00:59:08
◼
►
It's in good hands.
00:59:09
◼
►
There is a roadmap.
00:59:10
◼
►
There are people executing on it.
00:59:12
◼
►
He is not super essential to that.
00:59:13
◼
►
And even if he was, he can still contribute to it in open source.
00:59:16
◼
►
Like that's fine.
00:59:17
◼
►
It's not as if he's, it's not as if him leaving is a problem for Swift the language at all.
00:59:22
◼
►
But emotionally speaking, it, you know, it seems, you know, if I put myself in his place,
00:59:29
◼
►
I would want to like, say you were going to retire or whatever.
00:59:32
◼
►
You would choose not to retire until, "Let me just get this swift thing and just see
00:59:36
◼
►
it off into the sunset and say, 'Here's my great accomplishment.'"
00:59:39
◼
►
And he can do that now, but I don't know.
00:59:42
◼
►
I think I would want to see it along a little bit farther before I considered it a mission
00:59:50
◼
►
accomplish and now it can continue to grow and blossom into a successful adult or whatever.
00:59:57
◼
►
And so that gets me into the next larger point here about big departures like this, reasons
01:00:04
◼
►
people might leave Apple.
01:00:06
◼
►
Marco touched on a lot of these already, like really smart people, you get bored.
01:00:09
◼
►
Or if you just want to try something else, you decide you don't want to be a programmer
01:00:17
◼
►
You don't feel like you can advance in the organization anymore.
01:00:20
◼
►
But I feel like at this very high level, when you start getting into people with senior
01:00:24
◼
►
and director in their title. I have to think that the only reason people leave aside from
01:00:30
◼
►
what Marco said of like, "I just want to do something else," which is definitely a thing,
01:00:34
◼
►
is that there's some fundamental disagreement about something important. If that important
01:00:40
◼
►
thing is your own advancement in the organization, that could be it for people who feel like
01:00:46
◼
►
their careers always have to be advancing and if they feel like they'll never be able
01:00:48
◼
►
to advance farther. I don't, you know, even though Chris climbed up the ladder very quickly,
01:00:53
◼
►
I don't feel like he was going to be CEO, so I don't think that's his barrier.
01:00:59
◼
►
I have no information here, nobody does, no one is going to talk about this, but I have
01:01:03
◼
►
to think it's just a disagreement about something.
01:01:06
◼
►
And it doesn't need to be a disagreement that involves any animosity, and it doesn't need
01:01:10
◼
►
to be a disagreement in which either Apple or the person leaving is right or wrong and
01:01:15
◼
►
the company is doomed or the person is doomed or anything like that, but just sometimes
01:01:20
◼
►
is just a fundamental, intractable disagreement,
01:01:22
◼
►
and you either live with it, or you decide,
01:01:26
◼
►
I don't have to live with it,
01:01:27
◼
►
because I can go do whatever I want,
01:01:28
◼
►
and maybe I wanna try something different,
01:01:30
◼
►
because, you know, whatever.
01:01:31
◼
►
So in the absence of any other information,
01:01:35
◼
►
which will obviously never be forthcoming,
01:01:37
◼
►
because nice people don't talk about these things
01:01:40
◼
►
until many, many years later, and perhaps not even then,
01:01:43
◼
►
it seems to me an amicable departure
01:01:47
◼
►
based on a fundamental disagreement about a thing that is probably not particularly
01:01:54
◼
►
consequential to Apple, but was obviously very consequential to Chris Latner. And so
01:02:00
◼
►
I think that is a reasonable reason to move on to something else, just as reasonable as
01:02:07
◼
►
I'm bored and want to try something else.
01:02:10
◼
►
So as an illustrative example, let's suppose that Latner really, really wanted to open
01:02:16
◼
►
source Swift. And you know, this is three or four years ago or two years ago, whatever
01:02:19
◼
►
it was, and that hadn't happened yet. An example of something that Apple may not be that big
01:02:24
◼
►
a deal, but to Chris, maybe a huge deal is he goes to his higher ups, to Craig or whomever
01:02:29
◼
►
at Apple and says, I want to open source Swift. And Craig or whomever says, not going to happen.
01:02:34
◼
►
And Chris says, well, you know what? I'm out. You know, obviously that isn't the case, but
01:02:37
◼
►
that's the sort of thing, Jon, I think you're talking about just as a hypothetical example.
01:02:42
◼
►
Is that fair?
01:02:43
◼
►
Yeah, that's a perfect example, because that's the type of thing that he might care deeply about.
01:02:48
◼
►
His dream might not just be, "I'm going to make this new language called Swift," but also that
01:02:55
◼
►
he wants to be open source because he wants to see the language spread beyond the walls of Apple.
01:02:59
◼
►
Now, arguably, if they told him no open source after the language had been announced,
01:03:05
◼
►
like it's a little bit late for that or whatever, but obviously they did announce the language,
01:03:08
◼
►
And it wasn't open source, and only was open source later.
01:03:10
◼
►
So he was a driver for that inside Apple, which is no secret.
01:03:17
◼
►
He says it himself on his own website, if you want to read it.
01:03:19
◼
►
And anyone who's heard him speak about it before it was open source
01:03:23
◼
►
could tell that he was in favor of it, because if he was asked in interviews
01:03:27
◼
►
or whatever about it, Swift open source, he'd be like, "Oh, you could tell that he wanted it."
01:03:30
◼
►
And eventually he got it.
01:03:31
◼
►
If he hadn't gotten it, maybe that would have been something that said,
01:03:34
◼
►
you know, this has really crushed my dream about Swift, and I really wanted to be open source,
01:03:40
◼
►
and this is a deal breaker for me. And it's the type of thing that Apple would know. I mean,
01:03:44
◼
►
they would know that this important person who's been important to the company wants this thing,
01:03:49
◼
►
and if we decide no on it, it could cause him to leave. Like, that's, you know,
01:03:53
◼
►
turnover is a possibility. And so, like, it's not as if I think this is a mystery or surprise to
01:03:58
◼
►
anyone involved in it. And, like, that's how these things go down. If you have a super important
01:04:02
◼
►
person in the company, you will be willing to do things to retain that person that you
01:04:06
◼
►
wouldn't otherwise. That's another one of these bullet points. How do you retain? How do you
01:04:10
◼
►
retain the best people in your company? One of the ways you retain them is finding out what's
01:04:14
◼
►
important to them and wherever possible, without compromising the good of the whole company or the
01:04:20
◼
►
rest of the people who work there, being willing to bend over backwards to keep them there. I'm
01:04:25
◼
►
sure, I don't know what kind of things they had to do to keep Johnny Ive there, but I'm sure there
01:04:29
◼
►
there are a lot of them and you know apple will be entirely willing to do them oh you
01:04:32
◼
►
want to work from england for a few years oh you want to you know make this product
01:04:35
◼
►
you want to do the apple watch edition you want to make a 300 book like whatever like
01:04:39
◼
►
those are easy easy sure we're going to keep johnny eiv we're going to make him happy that's
01:04:44
◼
►
how you retain employees but at a certain point if johnny eiv says i want to stop making
01:04:49
◼
►
iphones and start making pens only with ink in them and they're going to and if you don't
01:04:55
◼
►
let me do this i'm leaving the company apple's going to say well johnny we're of a market
01:04:59
◼
►
something?" Yeah, well, I don't know. They're gonna say, "Well, Johnny, we're gonna have to part ways
01:05:02
◼
►
here because we're not gonna stop making iPhones no matter how much you want to make pens." So,
01:05:07
◼
►
there's no bad guy in that situation. It's just an amicable parting of ways among titans of industry.
01:05:15
◼
►
- Yeah, it's wild. And I mean, a lot of people have been saying for a long time that retention
01:05:22
◼
►
is one of the biggest threats to Apple.
01:05:26
◼
►
And not that Chris Lattner leaving alone proves that theory,
01:05:31
◼
►
but certainly it gives credence to that theory
01:05:35
◼
►
'cause this certainly seems like a big deal.
01:05:37
◼
►
Now, a lot of people in the chat seem to think that this is,
01:05:40
◼
►
well, I'm filling in some blanks here,
01:05:42
◼
►
but seem to be perseverating on the thought
01:05:45
◼
►
that he's now going to be a VP at Tesla.
01:05:47
◼
►
So this is in principle an upgrade in title.
01:05:52
◼
►
And that could be enough. I don't think that's the case. I mean, I don't know Chris, but
01:05:57
◼
►
the impression of him that I got is that he's not the kind to chase a title. He's the kind that just
01:06:03
◼
►
wants to do interesting work. But it could be as simple as he wanted to be a VP and, you know,
01:06:09
◼
►
Craig isn't going anywhere. And I don't even know if he reported up to Craig, but it seems logical.
01:06:13
◼
►
And so he decided, you know what, I want to be a VP somewhere and Tesla's doing interesting stuff. So
01:06:19
◼
►
I tend to think that John is right,
01:06:21
◼
►
that it's something deeper than that,
01:06:23
◼
►
but you never know.
01:06:24
◼
►
People do odd things for odd reasons,
01:06:26
◼
►
and it very well could be that.
01:06:28
◼
►
- I mean, honestly, like,
01:06:29
◼
►
if I were to take a job in Silicon Valley,
01:06:33
◼
►
that's a massive if, I know,
01:06:34
◼
►
and that's very unlikely to ever happen.
01:06:36
◼
►
- I can't even compute that.
01:06:38
◼
►
- We should make a reality show of that
01:06:39
◼
►
if that ever happens, by the way.
01:06:40
◼
►
- Oh my God, yes.
01:06:41
◼
►
- But if I were to ever take a job at Silicon Valley,
01:06:43
◼
►
I think Apple and Tesla would be my top two picks,
01:06:47
◼
►
And I think it might be more interesting for me
01:06:50
◼
►
to work at Tesla, I don't know.
01:06:52
◼
►
I would honestly very heavily consider both
01:06:56
◼
►
if I got offers from both.
01:06:58
◼
►
And I think I might lean towards Tesla
01:06:59
◼
►
because I think that might be kind of the more exciting
01:07:03
◼
►
place to be right now for my interests.
01:07:06
◼
►
I don't know.
01:07:07
◼
►
I could totally see why somebody would make that decision.
01:07:09
◼
►
So anyway, my summary of this is basically like,
01:07:13
◼
►
there are lots of legitimate reasons why somebody
01:07:16
◼
►
would go from Apple to Tesla that are not
01:07:20
◼
►
like bad signs for Apple.
01:07:23
◼
►
However, there are enough possible bad signs for Apple here,
01:07:28
◼
►
especially with things like the timing
01:07:30
◼
►
and what he's going there to do with Apple
01:07:32
◼
►
possibly having that same position
01:07:34
◼
►
in active development right now.
01:07:35
◼
►
There are reasons here for people to be concerned.
01:07:39
◼
►
I don't think this is a massive story on its own,
01:07:45
◼
►
but it might be part of a bigger story.
01:07:48
◼
►
We don't know, like is Tesla poaching tons
01:07:51
◼
►
of people from Apple?
01:07:52
◼
►
We don't really know because typically when people
01:07:54
◼
►
go to Apple from anywhere else,
01:07:56
◼
►
Apple tends to keep that pretty quiet.
01:07:59
◼
►
So we're only seeing one side of this.
01:08:02
◼
►
I think when Tesla takes people,
01:08:03
◼
►
they're not that quiet about it and they don't really care.
01:08:06
◼
►
But when Apple hires people,
01:08:07
◼
►
they tend to wanna keep that very quiet.
01:08:08
◼
►
So we're only really seeing one direction of this.
01:08:11
◼
►
It could be a more balanced exchange of people,
01:08:15
◼
►
We don't know.
01:08:16
◼
►
However, if you look at the scraps that we're getting,
01:08:21
◼
►
scraps of info and rumors and knowledge about Apple,
01:08:25
◼
►
it's getting increasingly hard to look at this
01:08:29
◼
►
in a way that doesn't look bad.
01:08:31
◼
►
Like it looks like something is going wrong
01:08:33
◼
►
in a pretty serious way.
01:08:36
◼
►
And that could be wrong, 'cause again,
01:08:37
◼
►
we don't have that much information here.
01:08:39
◼
►
But it's getting harder and harder to look at this
01:08:43
◼
►
and explain it in a way where, oh yeah, everything's fine.
01:08:47
◼
►
- Well what do you think a serious issue is?
01:08:49
◼
►
Give a hypothetical where this would be concerning.
01:08:51
◼
►
You mentioned the fact that Apple
01:08:53
◼
►
potentially has a self-driving software thing too,
01:08:55
◼
►
so why couldn't he just stay at Apple
01:08:57
◼
►
and do the self-driving software thing?
01:08:58
◼
►
Is that the only situation you think looks bad,
01:09:01
◼
►
or are there other ones?
01:09:03
◼
►
- It's seeming like we are eating a lot of costs
01:09:06
◼
►
as Apple customers in order to fund the Apple Car project.
01:09:10
◼
►
It seems like they're putting a whole lot of talent
01:09:12
◼
►
on something big there that almost everyone seems to agree
01:09:16
◼
►
is almost certainly a car project.
01:09:19
◼
►
Even Apple has been like,
01:09:21
◼
►
decreasingly secretive about that.
01:09:23
◼
►
Like in like Tim Cook's statements and everything,
01:09:24
◼
►
like it doesn't seem like they're trying to hide it.
01:09:26
◼
►
I think the cat's out of the bag on that.
01:09:27
◼
►
- But we don't know who they're putting on it.
01:09:29
◼
►
They could be hiring all new people for the car team,
01:09:31
◼
►
for all we know.
01:09:32
◼
►
- That's true, but we're hearing a lot of rumblings
01:09:37
◼
►
from a lot of different places over time
01:09:40
◼
►
that it's actually becoming a significant talent suck
01:09:43
◼
►
to the organization.
01:09:44
◼
►
So basically Apple's putting a lot of resources
01:09:49
◼
►
and sacrificing some attention on their existing
01:09:53
◼
►
product lines into this car project.
01:09:56
◼
►
And it doesn't seem like it's going well internally
01:10:01
◼
►
through whatever reasons, like whether it's interpersonal
01:10:04
◼
►
issues, management issues, bad direction, who knows.
01:10:07
◼
►
We're probably never gonna know that.
01:10:08
◼
►
but it doesn't appear that whatever's happening there
01:10:11
◼
►
doesn't look good.
01:10:12
◼
►
It seems like we're seeing a lot of cracks
01:10:15
◼
►
and symptoms on the outside that indicate
01:10:18
◼
►
things are not going the way they were expected to go.
01:10:21
◼
►
And so if Apple is pouring all of these resources
01:10:25
◼
►
into something, I sure hope that we're getting
01:10:27
◼
►
something out of it.
01:10:28
◼
►
I sure hope that this is gonna be worth it to some end,
01:10:31
◼
►
because if not, this is a serious management problem.
01:10:36
◼
►
That is my main concern, that it seems like we're seeing
01:10:41
◼
►
increasing signs, you know, over the last couple years,
01:10:45
◼
►
we're seeing increasing signs that Apple
01:10:48
◼
►
might be having serious management problems.
01:10:50
◼
►
And almost any one of these individual problems
01:10:54
◼
►
or symptoms or failures that we see that trickles out,
01:10:58
◼
►
almost any individual one could be explained away by like,
01:11:00
◼
►
oh well, you know, that was Intel's fault,
01:11:02
◼
►
that was just, you know, happenstance,
01:11:04
◼
►
or that just didn't go well or whatever else.
01:11:07
◼
►
But they're sure a lot of these things piling up
01:11:09
◼
►
and it's getting increasingly harder
01:11:11
◼
►
to draw any other conclusion
01:11:12
◼
►
than they're having serious management problems.
01:11:15
◼
►
- I don't know, my position on this is always
01:11:17
◼
►
that I don't know enough about the internal workings
01:11:18
◼
►
of Apple to assign blame.
01:11:20
◼
►
And the few things I do know,
01:11:22
◼
►
the most I know about the internal workings of Apple
01:11:24
◼
►
are things from the past,
01:11:26
◼
►
because that's when people talk years and years
01:11:28
◼
►
after it already happened,
01:11:28
◼
►
then you find out what really went on.
01:11:30
◼
►
And organizationally, personality-wise
01:11:33
◼
►
management wise, you know, Apple seemed to be just as big a pit of vipers around the
01:11:40
◼
►
time that Apple introduced the iPhone, you know, their greatest success as it was at
01:11:45
◼
►
any other time.
01:11:46
◼
►
So I just don't know what goes on inside Apple.
01:11:50
◼
►
I don't know if it's any worse than it was before.
01:11:52
◼
►
All I have to judge them by are the products that they put out, right?
01:11:57
◼
►
And in that respect, as we've talked about in past shows, you feel like they're slacking
01:12:00
◼
►
off in some areas where you think they shouldn't be and so on and so forth, but I personally
01:12:06
◼
►
can't make a leap from my satisfaction with the products they're putting out to internal
01:12:13
◼
►
management-related things.
01:12:14
◼
►
Because I just feel like I don't have enough visibility there, because there's such a black
01:12:17
◼
►
box, I have no idea what's going on in there.
01:12:19
◼
►
Maybe it's ten times better than it was when the iPhone was introduced, right?
01:12:24
◼
►
Maybe it's ten times worse.
01:12:25
◼
►
I don't know.
01:12:26
◼
►
I can't match it up.
01:12:28
◼
►
Chris leaving is not really a point on that graph because, as we discussed earlier, there
01:12:33
◼
►
are so many reasons I feel like he could leave.
01:12:35
◼
►
Even if the getting back to the scenario was like, "Why didn't you just stay at Apple
01:12:38
◼
►
and do self-driving car stuff?"
01:12:40
◼
►
If I was Apple management, I wouldn't really want Chris Latner working on self-driving
01:12:44
◼
►
car stuff, no matter how much he wants to.
01:12:46
◼
►
I feel like that would almost be a situation where it's like, "Well, Chris, if you really
01:12:49
◼
►
want to work on self-driving car stuff, we've already got a team doing that, and even though
01:12:54
◼
►
it seems cool to you, we have someone managing that team and Chris's value to Apple, your
01:13:00
◼
►
value to Apple is higher leading the SWIFT effort right now. And Chris may disagree with
01:13:05
◼
►
that and say, "Well, I don't care. I don't want to do that." And there may be parting
01:13:08
◼
►
a ways there and say, "We want you to do this. You know what I mean?" I just feel like I
01:13:14
◼
►
don't have enough visibility into that type of stuff to know. As we've discussed in the
01:13:19
◼
►
past, I'm personally concerned about some of the products they're putting out and decisions
01:13:24
◼
►
they're making about the products,
01:13:25
◼
►
but I can't draw the line to the internals
01:13:27
◼
►
'cause it's just a big cloud to me.
01:13:29
◼
►
- Well again, that's why I think it's important
01:13:31
◼
►
to not jump on the something's going wrong at Apple train
01:13:36
◼
►
with any one of these things.
01:13:37
◼
►
'Cause again, any one of these, you're right,
01:13:39
◼
►
any one of these various things that happen
01:13:41
◼
►
that one explanation could be a management issue.
01:13:45
◼
►
You can't conclude that from just one point.
01:13:49
◼
►
But what I'm saying is that we're seeing
01:13:52
◼
►
over the last year or two, an increasing number
01:13:56
◼
►
of seeming cracks in the foundation
01:13:58
◼
►
where that's one of the explanations.
01:14:00
◼
►
And eventually, it's hard to make other conclusions
01:14:05
◼
►
when you have a lot of things that all could be explained
01:14:09
◼
►
by, oh, well, maybe this thing just went badly,
01:14:12
◼
►
or maybe there's some other explanation.
01:14:14
◼
►
But one of the explanations is problems going on.
01:14:18
◼
►
- I mean, that certainly could be,
01:14:20
◼
►
But I tend to come down on Jon's side on this in that it could be that it's management issues,
01:14:27
◼
►
but we can't know.
01:14:29
◼
►
I mean, especially someone at Chris's level, and I mean that both in terms of org chart
01:14:33
◼
►
and just brute intelligence.
01:14:36
◼
►
After a while, it wouldn't surprise me if he just got bored.
01:14:38
◼
►
Like comparatively, compared to Chris Ladner, I'm a friggin idiot, and I get bored after
01:14:43
◼
►
a few years at most jobs I've ever had.
01:14:46
◼
►
And so he was at Apple 11 years.
01:14:49
◼
►
And granted, he worked on different things while he was there, and he has a lot to be
01:14:52
◼
►
proud of, but it could be something as simple as boredom.
01:14:55
◼
►
I still come back to what Jon said.
01:14:56
◼
►
I think this was some sort of disagreement with somebody.
01:14:58
◼
►
But I don't personally see such a direct line from Lattner and others leaving to management
01:15:07
◼
►
And let's go back to what one of you said about the iPhone, when everyone was getting
01:15:10
◼
►
sucked into the iPhone.
01:15:11
◼
►
It's the beginning of that multi-year process that probably looked kind of not good and if we were around
01:15:18
◼
►
Well, we were around but if we were a podcast then if we were all all three of us Apple fans
01:15:23
◼
►
Then we would probably be saying wow the iPod really looks like crap compared to a year ago
01:15:27
◼
►
I wonder what's going on in there and as it turns out what was going on in there was the iPhone now is
01:15:32
◼
►
Project Titan or whatever it's called today. Is that going to be the next iPhone? Who knows but it doesn't necessarily mean
01:15:40
◼
►
that bad things are happening if
01:15:42
◼
►
Talent is getting sucked into Titan. It doesn't necessarily mean that bad things are happening if talent is leaving Apple
01:15:49
◼
►
All that being said we are certainly getting enough data points to point to something not being good
01:15:57
◼
►
Examine up to management it may or may not like I think I'm I'm beating you up a little bit about it being management
01:16:03
◼
►
but I agree with you Marco that
01:16:05
◼
►
something looks
01:16:07
◼
►
amiss here, I just don't know what.
01:16:10
◼
►
- Oh yeah, and when I say management,
01:16:11
◼
►
I'm not saying this one particular person
01:16:14
◼
►
should be fired or whatever, I'm saying,
01:16:16
◼
►
in the sense of it's a manager's job to fix this,
01:16:19
◼
►
and management level decisions might be problematic.
01:16:23
◼
►
So things like resource allocation,
01:16:25
◼
►
choosing what direction things should go in,
01:16:27
◼
►
personnel changes, those all rest on management.
01:16:32
◼
►
And so if it appears that Apple's having problems
01:16:35
◼
►
in those kinds of areas over a decent amount of time
01:16:39
◼
►
and with enough of these data points where like
01:16:42
◼
►
that looks like a likely explanation,
01:16:45
◼
►
that is up to management to fix.
01:16:47
◼
►
And so it's up to either the lower level people
01:16:51
◼
►
who these various problems might be under,
01:16:53
◼
►
but ultimately it's up to Tim.
01:16:54
◼
►
Like that is the CEO's job is to be the ultimate manager.
01:16:58
◼
►
Like if things are going wrong with management
01:17:01
◼
►
inside the company, the ultimate responsibility to fix it
01:17:04
◼
►
eventually rests at the CEO.
01:17:07
◼
►
Again, I do think there might be other explanations
01:17:12
◼
►
for these things.
01:17:14
◼
►
Maybe everyone's doing a great job,
01:17:17
◼
►
but there sure are a lot of cracks showing in the foundation
01:17:20
◼
►
and at some point, I think we as Apple commentators
01:17:23
◼
►
have to consider the possibility
01:17:25
◼
►
that maybe things aren't going so well.
01:17:27
◼
►
- Yeah, I don't think anyone's debating,
01:17:29
◼
►
well, I don't think the two of us are debating with you
01:17:31
◼
►
that things may not be going well.
01:17:33
◼
►
It's such a big black box that it's so hard to pontificate, and arguably that's what we're
01:17:38
◼
►
supposed to do, but it's hard to pontificate with any sort of accuracy and reliability
01:17:44
◼
►
of what's going on in there.
01:17:45
◼
►
But it's certainly interesting, and it is even more interesting, like one of you guys
01:17:50
◼
►
said, because everything we know is that there's an equivalent project happening within Apple.
01:17:57
◼
►
But I mean, to use a silly example, so a couple of jobs ago I was doing a whole bunch of SharePoint
01:18:02
◼
►
development, which if you've ever touched SharePoint, you'll know it's a miracle I'm
01:18:06
◼
►
not bald right now from ripping my hair out. But anyway.
01:18:09
◼
►
>> No, there's anything wrong with that. >> Not that there's anything wrong with that,
01:18:11
◼
►
of course. But I had been doing it for like four years and I had begged and begged and
01:18:18
◼
►
begged to do anything other than SharePoint. And eventually it was made clear to me that
01:18:25
◼
►
that wasn't going to happen because I was too valuable as a SharePoint developer to
01:18:30
◼
►
to move me off to do something else.
01:18:34
◼
►
And so I left.
01:18:35
◼
►
Now, to Marco's point,
01:18:36
◼
►
that is to some degree a management problem.
01:18:38
◼
►
- Yeah. - But, but--
01:18:40
◼
►
- That is absolutely a management problem.
01:18:42
◼
►
- But what I'm driving at is,
01:18:43
◼
►
it isn't necessarily indicative of a problem
01:18:46
◼
►
throughout the entire company,
01:18:47
◼
►
it's a problem with how I was handled.
01:18:50
◼
►
And either I was not valuable enough to them
01:18:54
◼
►
to acquiesce and to do what I wanted them to do,
01:18:59
◼
►
Or they just didn't care, or they didn't realize how serious I was about how cranky I was.
01:19:04
◼
►
You know, there's any number of reasons.
01:19:05
◼
►
But the moral of the story is, I eventually left, because I couldn't do the thing I wanted
01:19:11
◼
►
And I think John had said, "Latner's valuable to Apple doing the crazy compiler nerdery
01:19:19
◼
►
that he does."
01:19:20
◼
►
Or at least that's the way it seems, right?
01:19:22
◼
►
He's also in charge of a hundred-some people.
01:19:24
◼
►
So maybe all of us are reading this wrong.
01:19:26
◼
►
he's just tired of being a manager and just wants to sling code again. Now as a VP, it sounds to me
01:19:30
◼
►
like he's probably going to be a manager again, but you get what I'm talking about.
01:19:32
◼
►
Yeah, it sounds like he's still a manager.
01:19:34
◼
►
And he was still writing code at Apple. Like, you can go look at the commits. It's not like he was,
01:19:38
◼
►
you know, he didn't give up writing code.
01:19:40
◼
►
No, no, but you see what I'm driving at, though. So I guess all I'm saying is there are lots of
01:19:45
◼
►
different explanations, some of which are management, some of which are not, that all
01:19:48
◼
►
are feasible, but may or may not be indicative of a fundamental problem at Apple. I agree with you,
01:19:56
◼
►
you Marco that I still agree with you that there is a possibility that
01:20:00
◼
►
something is not good and it certainly seems that way but man it's hard for us
01:20:05
◼
►
to tell. Well and ultimately we don't need to tell like again like we we can't
01:20:11
◼
►
know unless they both talk like which I can't imagine we can't know what the
01:20:18
◼
►
cause here was and what it means like again this one incident this one person
01:20:23
◼
►
and leaving is not itself a massive deal
01:20:27
◼
►
because we don't know these things, right?
01:20:29
◼
►
It might be a massive deal, but we can't say, right?
01:20:32
◼
►
'Cause we don't know.
01:20:33
◼
►
I'm just talking about the overall pattern,
01:20:36
◼
►
like the trend of the graph, the way things are going.
01:20:40
◼
►
It just seems like we're getting increasingly
01:20:43
◼
►
more problems where the explanation
01:20:46
◼
►
could be something's wrong.
01:20:48
◼
►
And it might not be, for any one of those problems,
01:20:51
◼
►
It might not be that, but there's sure a lot building up.
01:20:55
◼
►
Basically, I don't know how anybody could be
01:20:59
◼
►
a really big Apple fan and look at the way things are
01:21:02
◼
►
right now and not be a little bit worried.
01:21:05
◼
►
- Yeah, I think that's fair.
01:21:06
◼
►
- If you don't care about the Mac,
01:21:07
◼
►
I'm not quite sure why you'd be that worried
01:21:09
◼
►
because I still think iPhones and iPads are great.
01:21:12
◼
►
The iPad is the best it's ever been.
01:21:13
◼
►
The iPhone is arguably the best it's ever been,
01:21:15
◼
►
if you don't mind that the case looked
01:21:16
◼
►
the same three years in a row.
01:21:17
◼
►
So if you don't care about the Mac,
01:21:19
◼
►
I think Apple's still doing pretty well.
01:21:21
◼
►
I mean, like, but getting back to what I was saying before about the state of the internals
01:21:25
◼
►
of Apple and the parts that we actually do know about because enough time has passed.
01:21:30
◼
►
Like think of when, you know, Tony Fidele, father of the iPhone, apparently didn't get
01:21:34
◼
►
along with a lot of people inside Apple and eventually got booted out.
01:21:38
◼
►
And then you have Scott Forstall, who was he not getting along with?
01:21:41
◼
►
Johnny Ive or something?
01:21:42
◼
►
Everybody, it sounded like.
01:21:43
◼
►
But then Steve liked him.
01:21:44
◼
►
Like, it was a friggin' mess in there.
01:21:46
◼
►
And people were leaving and getting kicked out.
01:21:47
◼
►
And it's like, if he stays, then I'm not gonna stay.
01:21:49
◼
►
they have to make these hard choices between two people who are arguably, you know, how
01:21:53
◼
►
do you kick out the guy who, you know, was the origins of the iPod project?
01:21:58
◼
►
It's like, well, but he disagrees with this other person who's even more important to
01:22:00
◼
►
the company.
01:22:01
◼
►
It's like, what can you do?
01:22:02
◼
►
Like, they're doing the best they can.
01:22:03
◼
►
And yet, during that time, the company was producing the iPhone, for crying out loud.
01:22:08
◼
►
So you know, good old Ed Catanil, Success Hides Problems, or you know, or Bob Mansfield
01:22:12
◼
►
and him leaving and then coming back.
01:22:14
◼
►
Like, there's always been a lot of drama at the visible top levels of the things, but
01:22:17
◼
►
But nobody cares when you're releasing the iPhone, but go a few years and don't have
01:22:21
◼
►
an iPhone-like hit, and then all of a sudden now we're going to look at all your high-level
01:22:25
◼
►
departures and wring our hands about them.
01:22:28
◼
►
I'm not saying that—I don't endorse the political infighting and personality disagreements
01:22:34
◼
►
among these multimillionaire, city-level executives.
01:22:38
◼
►
Like that's—whatever, that's a Silicon Valley sport that I'm not really interested
01:22:43
◼
►
in engaging in.
01:22:44
◼
►
But the proof is in the pudding.
01:22:45
◼
►
You can have an apparently personally dysfunctional upper ranks of Apple and produce great products,
01:22:52
◼
►
and I'm assuming you could have everybody getting along but the company going down the
01:22:56
◼
►
So that's why I'm hesitant to connect those two things, both because I have no visibility
01:23:01
◼
►
into it and also because I think maybe it's not even connected.
01:23:05
◼
►
Maybe you have the most dysfunctional group of children fighting with each other and produce
01:23:10
◼
►
a world-shattering product at the same time.
01:23:13
◼
►
Steve Jobs certainly wasn't the most pleasant person to get along with and they did a lot
01:23:17
◼
►
of good work under him too.
01:23:19
◼
►
Fair enough.
01:23:20
◼
►
We are sponsored tonight by Betterment.
01:23:24
◼
►
Go to betterment.com/ATP.
01:23:27
◼
►
Betterment investing made better.
01:23:29
◼
►
It is never too early or too late to start saving for retirement or your other financial
01:23:36
◼
►
Nobody has ever said, "I wish I started investing later in life."
01:23:40
◼
►
No, you gotta start now, 'cause these things add up
01:23:43
◼
►
over time, and if you're gonna invest your money,
01:23:45
◼
►
it is much more wise to do it in a way
01:23:49
◼
►
that does not charge you a lot of fees,
01:23:51
◼
►
because all those fees also add up over time,
01:23:54
◼
►
so if you can get something with very, very low fees
01:23:56
◼
►
up front over the course of the rest of your life,
01:23:58
◼
►
that's gonna add up to a massive difference
01:24:01
◼
►
in what you're actually saving.
01:24:02
◼
►
So Betterment is the largest independent
01:24:05
◼
►
automated investing service out there,
01:24:07
◼
►
managing more than five and a half billion dollars
01:24:09
◼
►
for over 180,000 customers as of this past September,
01:24:13
◼
►
and of course they're always growing.
01:24:15
◼
►
And with Betterment, they take the same strategies
01:24:18
◼
►
that financial advisors use with clients
01:24:20
◼
►
who have millions of dollars,
01:24:22
◼
►
and through this automated technology
01:24:23
◼
►
you're able to bring it to everyone
01:24:25
◼
►
and at a fraction of the fees
01:24:28
◼
►
that traditional financial services would charge
01:24:30
◼
►
for similar types of services.
01:24:32
◼
►
Of course any excess cash your portfolio generates
01:24:34
◼
►
is automatically reinvested with their algorithms,
01:24:37
◼
►
so every dollar you invest is always put to work
01:24:39
◼
►
your portfolio is always balanced.
01:24:41
◼
►
Investing always involves risk.
01:24:44
◼
►
Right now, check out Betterment.
01:24:45
◼
►
Get up to six months of no fees.
01:24:47
◼
►
To learn more, visit betterment.com/ATP.
01:24:50
◼
►
That's betterment.com/ATP.
01:24:53
◼
►
Betterment, investing made better.
01:24:55
◼
►
- So the only thing that I still think
01:25:00
◼
►
is worth discussing here is what does this mean for Swift?
01:25:04
◼
►
One of us is really enthusiastic about Swift,
01:25:07
◼
►
And I'm curious what this means.
01:25:09
◼
►
I mean, it sounds like if you were to read,
01:25:12
◼
►
if you were to take Chris's mailing list post,
01:25:15
◼
►
mailing it at face value,
01:25:17
◼
►
it sounds like Ted Kraminek has been doing
01:25:18
◼
►
all the work anyway.
01:25:20
◼
►
Now, if I were Chris and I wanted a smooth transition
01:25:23
◼
►
and I wanted to be a nice guy,
01:25:25
◼
►
I would give all the credit to whoever's taking over.
01:25:27
◼
►
But there's presumably some amount of truth to that.
01:25:30
◼
►
And unfortunately, while I do write Swift every day,
01:25:33
◼
►
I don't follow the ins and outs, day-to-day stuff that goes on, so I personally don't
01:25:41
◼
►
have a good feel for how much of this is true or false.
01:25:43
◼
►
But I mean, this is the—Lattner is the daddy.
01:25:46
◼
►
What was—what do they call—is it the Python guy that has a really funny nickname?
01:25:49
◼
►
Somebody has a really funny nickname.
01:25:52
◼
►
John, you should know this.
01:25:53
◼
►
Python is like Perl, right?
01:25:54
◼
►
I don't follow Python.
01:25:56
◼
►
I don't know what Guido's nickname is.
01:25:57
◼
►
It's like Supreme Ruler of—it's like something like that.
01:26:00
◼
►
- Benevolent dictator for life, something like that.
01:26:02
◼
►
- Yeah, maybe that's it, maybe that's it.
01:26:04
◼
►
So anyway, so Latner is sort of
01:26:06
◼
►
the benevolent dictator for life.
01:26:09
◼
►
And now, we can debate whether his full-time job
01:26:14
◼
►
at Apple was working on Swift.
01:26:17
◼
►
I mean, given that he had 100 people under him
01:26:20
◼
►
and from his own website, in additional languages,
01:26:22
◼
►
Swift and Objective-C, compilers and low-level tools
01:26:24
◼
►
that took on responsibility for the Xcode IDE,
01:26:26
◼
►
Instruments Performance Analysis tool, Apple Java releases,
01:26:29
◼
►
a variety of internal tools. It doesn't sound like Latner's full-time job was swift anyway,
01:26:33
◼
►
but how much time is he really going to have to dedicate to it if he's working full-time at Tesla?
01:26:40
◼
►
Is that a problem? Is that just a change? I mean, it seems like he's let this beautiful
01:26:47
◼
►
bird fly all on its own and he's let go of the leash, but I don't know, it's slightly alarming,
01:26:54
◼
►
right? It's a change no matter how you slice it. Well, he was not benevolent at
01:26:59
◼
►
did it for life, but everyone took that for life. I'm familiar with this concept because
01:27:02
◼
►
it was adopted by the Pearl community as well, and it was bestowed on Larry Wall. As an interesting
01:27:07
◼
►
way for nerds to deal with each other and consensus building and everything, to have
01:27:16
◼
►
one trusted person who everyone agrees both has a credible claim to dictatorship, like
01:27:26
◼
►
invented the language in the case of Larry Wall. It's like, you know, well, if one guy's going to
01:27:29
◼
►
be in charge of Pearl, it's going to be Larry Wall, right? And also has proven to be like,
01:27:34
◼
►
level headed and reasonable, you know, and like that everyone agrees, like, you may agree with
01:27:39
◼
►
Larry Wall or disagree with them, but we think he's a reasonable person. So you bless him as
01:27:43
◼
►
benevolent dictator for life. And then you have an open source process where everyone
01:27:47
◼
►
argues with each other and tries to come to some consensus. But every once in a while,
01:27:51
◼
►
there's some big disagreement about some big important thing, and it has to go to, you know,
01:27:55
◼
►
the ultimate tiebreaker and you defer everyone agrees that we all agree we're going to defer to
01:28:00
◼
►
the benevolent dictator for life and that person makes the call and hopefully that rarely happens
01:28:05
◼
►
and most of the time the open source community works out among themselves but you have this one
01:28:08
◼
►
person as the backstop as the tiebreaker as the one that everyone agrees is the authority and has
01:28:15
◼
►
a rightful claim to make the decision but and that person part of being benevolent is they don't use
01:28:20
◼
►
that they don't abuse that power they don't use it to override other people they wait to be called
01:28:24
◼
►
called a pawn, most of the time they defer to the community when there's consensus.
01:28:28
◼
►
Like, that's the benevolent part.
01:28:29
◼
►
It's really important.
01:28:30
◼
►
This is, by the way, a terrible system for government because, as we all know, absolute
01:28:33
◼
►
power corrupts absolutely, and you should not do this, but in open source projects,
01:28:37
◼
►
in these specific cases with these specific people who are really nice nerds, like I assume
01:28:41
◼
►
Guido is and I know Larry is, it has worked out.
01:28:44
◼
►
But that's not what Chris Lautner is in the Swift open source community.
01:28:48
◼
►
It's a much more democratic process.
01:28:50
◼
►
Now here's the twist.
01:28:52
◼
►
He's kind of a de facto, he was kind of a de facto benevolent dictator for term of employment
01:29:00
◼
►
at Apple because he was the boss of the most powerful contributors to the code.
01:29:06
◼
►
So he was their boss in the company, which is a powerful position, right?
01:29:09
◼
►
They kind of had to do what he said because he was their boss.
01:29:12
◼
►
And they were working on Swift on Apple employee time, like not just in their free time as
01:29:16
◼
►
their hobby or whatever.
01:29:19
◼
►
And he would be leading the meetings discussing the community proposals for the Swift language.
01:29:25
◼
►
And the impression from the outside, at least, is that Chris would deliver the result of
01:29:28
◼
►
those meetings.
01:29:29
◼
►
We had a meeting about this proposal.
01:29:30
◼
►
This is a community proposal.
01:29:32
◼
►
The Swift evolution processes you propose, and then the Swift core team, or whatever
01:29:36
◼
►
they're called – I forgot what this – probably some name for this.
01:29:37
◼
►
You know, they have like a governance process.
01:29:39
◼
►
We decide whether your proposal will be adopted or not.
01:29:42
◼
►
And then Chris usually, especially in the beginning, will write to the list, say, "The
01:29:46
◼
►
core team met.
01:29:47
◼
►
Here were our comments.
01:29:48
◼
►
was the conclusion we made. The problem with that is the core team had a lot of Apple employees
01:29:53
◼
►
on it and Chris was their boss. So even though he was not anointed as the benevolent dictator
01:29:58
◼
►
for life, it seemed like he had a, let's say he had a larger influence on decisions related
01:30:06
◼
►
to the Swift language than any other single person, which I don't think anyone would argue
01:30:10
◼
►
with. It doesn't mean he was like he was in charge of everything and made every decision.
01:30:13
◼
►
Far from it. Like he mostly, like a good benevolent dictator might defer to the community. And
01:30:18
◼
►
In fact, the process does not have him in an anointed position of controlling everything,
01:30:23
◼
►
which means as he leaves Apple, I think he's going to now have less control over the evolution
01:30:28
◼
►
of Swift than he did before.
01:30:30
◼
►
But in actuality, he was never benevolent dictator for life.
01:30:32
◼
►
That's not how Swift's open source effort looks.
01:30:34
◼
►
And so to get back to Casey's question, what does this mean for Swift?
01:30:37
◼
►
I think Swift will be fine.
01:30:39
◼
►
It may end up going in a different direction that would have gone in had Chris stayed at
01:30:43
◼
►
Apple, but that's not necessarily a worse direction.
01:30:47
◼
►
And there are so many smart, good people working on Swift, both inside and outside of Apple.
01:30:54
◼
►
And especially with the force of Apple behind it, if Apple remains dedicated to Swift, as
01:30:58
◼
►
they seem to be over these past many years, it will be perfectly fine.
01:31:02
◼
►
The only change will be is that it may end up going in slightly different directions
01:31:06
◼
►
than it would have gone if Chris was there.
01:31:08
◼
►
But who's to say whether that's good or bad?
01:31:10
◼
►
So what is he doing for Tesla?
01:31:12
◼
►
I understand what it said on the tin, that he's going to be what was a VP of autopilot
01:31:16
◼
►
software. But why Latner? Like, what do you think he uniquely brings to the table?
01:31:23
◼
►
Well, I think that's pretty easy. Like, if you look at his resume, like, he came to Apple as
01:31:28
◼
►
this guy who started this C++ compiler building toolkit, right, and took that into a company that
01:31:35
◼
►
already had an entire IDE and toolchain for developing for the new operating system,
01:31:40
◼
►
and slowly but surely replace their compiler from the bottom up first by cloning it and then
01:31:46
◼
►
replacing it entirely and then you know by by proving the worth of his little compiler thing
01:31:51
◼
►
i can use my little compiler tools to help you in this area of the company i can use it to compile
01:31:55
◼
►
shaders in a platform agnostic format i can uh you know rip out the guts of the back end of gcc
01:32:03
◼
►
and replace it with this thing and i can replace all of gcc with my own compiler and then guess
01:32:07
◼
►
what? I've been looking at your language and it's kind of crap. I can replace that too.
01:32:10
◼
►
That type of being able to come into an organization and eventually solve huge
01:32:20
◼
►
organization community ecosystem spanning problems is, you know, that's a hell of a resume. That's a
01:32:25
◼
►
unique ability. So you're going to drop this person into this project. In some respects,
01:32:30
◼
►
Tesla is so much simpler and more narrow than Apple because Apple has so many stakeholders
01:32:36
◼
►
and so many complicated things in software development ecosystem. Tesla's just got cars
01:32:40
◼
►
at this point. I mean, at least that's only what he's going to be involved in. He's not
01:32:43
◼
►
in solar roofs or whatever, right? They've got cars, and he's a specific aspect of the
01:32:48
◼
►
cars, not all aspects of the cars, just the self-driving part, which again is a huge problem.
01:32:53
◼
►
But if anyone can get dropped into that situation and figure out how to make a team of people
01:32:57
◼
►
successful at accomplishing the goals put for them, he's proven that he can do that in the
01:33:02
◼
►
in the context of a big important company with millions of customers.
01:33:05
◼
►
Now, how much of that experience translates to cars?
01:33:09
◼
►
I don't really know, but if the problem the team is currently having has anything to do
01:33:16
◼
►
with tools, languages, compilers, or anything he has any familiarity with, he can hit the
01:33:20
◼
►
ground running.
01:33:21
◼
►
And even if it doesn't, he's smart and he's proven he can navigate large organizations
01:33:25
◼
►
and get things done.
01:33:26
◼
►
So I feel like he's a no-brainer hire to anybody who has some portion of their
01:33:32
◼
►
product that involves software and needs someone to lead that effort, because he's shown he
01:33:38
◼
►
can do that.
01:33:39
◼
►
You know, imagine if Tesla wanted to have a single language that could go from embedded
01:33:46
◼
►
systems all the way up to server-side programming.
01:33:49
◼
►
If only there was a man or woman who had invented such a thing, that would be so convenient
01:33:55
◼
►
to have hired.
01:33:56
◼
►
Yeah, I'm not entirely sure he'll be using Swift at Tesla.
01:34:00
◼
►
Maybe he will, but maybe he won't.
01:34:02
◼
►
I don't know what the software staff looks like for self-driving car tech at this point.
01:34:07
◼
►
>> Yeah, neither do I.
01:34:08
◼
►
>> Well, and I think maybe that's part of why he would be so valuable to them is if
01:34:13
◼
►
you look at like the kinds of, like, you know, most programmers, you know, people like me,
01:34:18
◼
►
like the work I do, it's almost unimportant whether I get my code correct or not. Like
01:34:26
◼
►
it's like does it work most of the time? Yes. Okay. Good enough. And I think that applies
01:34:30
◼
►
to almost every working programmer. Very few programmers really need to get things correct
01:34:38
◼
►
all the time or it really matters. And if you look at the job of autopilot software,
01:34:44
◼
►
this is a really big deal. People's lives are at stake. That's on the order of space
01:34:51
◼
►
shuttle software. This really has to be correct. And not only does a compiler author have similarly
01:34:59
◼
►
high requirements, right? Because compilers really have to be correct. You can't have
01:35:05
◼
►
a bug in a compiler, that's a really bad thing for a lot of people. So that really has to
01:35:10
◼
►
be correct. So not only that, but Chris has also proven himself to be really good at making
01:35:16
◼
►
tools to tell whether your code is correct. To do things like static analysis and things
01:35:22
◼
►
like that. That was all him too, right? Or at least rooted in his stuff.
01:35:25
◼
►
>> Yeah, that was all LVM tech enabling those features.
01:35:28
◼
►
So like that's if you look at like the the the specific needs of autopilot software that needs
01:35:34
◼
►
somebody leading it who is both really good at writing correct code and also able to
01:35:39
◼
►
Improve the correctness of the code of the rest of the organization. It's interesting point
01:35:44
◼
►
yeah, the only thing that gives me pause here is that like
01:35:46
◼
►
Everything he did at Apple
01:35:50
◼
►
Were things that if you were to present the the possibility of doing them to anybody else
01:35:57
◼
►
You know versed in the art as the the legalese saying go and patent law. They would be like, yeah, that's a possibility
01:36:03
◼
►
It's possible to do that right self-driving cars are still in the realm of
01:36:07
◼
►
Nobody has done it yet. Like we've come close. We're getting better. We're doing this but like
01:36:12
◼
►
It's not a straightforward thing. It's not even clear what the correct approach is
01:36:16
◼
►
I mean there was a good YouTube video I said that day but someone gave a presentation all the different
01:36:20
◼
►
problems that self-driving cars and different approaches and you know
01:36:23
◼
►
One of the ones being promoted by Nvidia of all companies,
01:36:26
◼
►
because they sell GPUs that do it,
01:36:27
◼
►
is like the neural net type of thing,
01:36:29
◼
►
where instead of the Tesla way,
01:36:32
◼
►
which seems more straightforward and programmatic,
01:36:34
◼
►
instead you get this learning network that you train,
01:36:38
◼
►
and you're not even really programming it,
01:36:41
◼
►
you're just kind of treating it like a little living thing,
01:36:44
◼
►
and you don't even know how it works internally,
01:36:45
◼
►
you just know what the results are,
01:36:48
◼
►
and you can train it in the real world
01:36:49
◼
►
and in simulations or whatever,
01:36:51
◼
►
versus the approach of having a rule-based approach
01:36:54
◼
►
where it's lots of sensors, lots of rules,
01:36:56
◼
►
and lots of intelligence and systems
01:36:59
◼
►
conversing with each other and coming to consensus,
01:37:01
◼
►
but in an inexplicable way, right?
01:37:03
◼
►
And that's more of the Tesla approach right now,
01:37:05
◼
►
which I think Chris is better suited
01:37:07
◼
►
to manage a project like that
01:37:09
◼
►
because it fits more with his other things.
01:37:11
◼
►
He's not, as far as I know, an academic
01:37:13
◼
►
versed on machine learning and neural networks and stuff,
01:37:16
◼
►
right, so that's a good fit.
01:37:17
◼
►
But if you were to go to somebody and say,
01:37:20
◼
►
"Hey, can you take that approach
01:37:22
◼
►
"and build self-driving software that gets good enough
01:37:24
◼
►
"that you can remove the steering wheel from cars?"
01:37:27
◼
►
Nobody knows, 'cause nobody's done it, right?
01:37:29
◼
►
And that is, that's both exciting,
01:37:31
◼
►
it's an exciting challenge, right?
01:37:33
◼
►
But also, it's a big question mark.
01:37:35
◼
►
I mean, in addition to the question mark of like,
01:37:37
◼
►
"Hey, will Tesla still be in business?
01:37:39
◼
►
"Will they run out of money?
01:37:40
◼
►
"Will somebody buy them?"
01:37:41
◼
►
Because there's one thing you don't have to worry about
01:37:42
◼
►
at Apple, at least in the short term,
01:37:44
◼
►
is will they be able to pay my paycheck?
01:37:47
◼
►
Answer, yes.
01:37:48
◼
►
Tesla on the other hand has not actually been making money.
01:37:51
◼
►
And I'm not sure when the prospects of them making money is
01:37:54
◼
►
and I'm not sure whether they'll be bought or whatever.
01:37:56
◼
►
But if you're looking for,
01:37:58
◼
►
it's exciting at many levels,
01:37:59
◼
►
you're looking for a challenge,
01:38:00
◼
►
this is definitely a challenge,
01:38:01
◼
►
I'm just not entirely sure that Chris has any more
01:38:05
◼
►
of a chance of solving this problem.
01:38:07
◼
►
Especially if the correct approach turns out
01:38:09
◼
►
to be like the neural net thing
01:38:10
◼
►
and that's not the approach Tesla's taking,
01:38:12
◼
►
then he's not gonna do it and someone else is.
01:38:16
◼
►
But if it is the right approach and it can be done,
01:38:19
◼
►
I guess he's got a punch's chance, right?
01:38:22
◼
►
It's just, it's a much bigger question mark
01:38:25
◼
►
than can you figure out how to fix
01:38:27
◼
►
Apple's compiler infrastructure and make a new language
01:38:29
◼
►
that will be backward compatible with Objective-C
01:38:32
◼
►
and also work with, you know, like, he did a great job
01:38:35
◼
►
and that is a tremendously hard problem,
01:38:37
◼
►
but it is a thing that has been done before
01:38:39
◼
►
in different forms versus self-driving cars,
01:38:41
◼
►
which is this big, you know,
01:38:43
◼
►
pie in the sky question mark at this point.
01:38:46
◼
►
Thanks to our three sponsors this week,
01:38:48
◼
►
HelloFresh, Betterment, and Squarespace,
01:38:50
◼
►
and we will see you next week.
01:38:52
◼
►
(upbeat music)
01:38:55
◼
►
♪ Now the show is over ♪
01:38:57
◼
►
♪ They didn't even mean to begin ♪
01:39:00
◼
►
♪ 'Cause it was accidental ♪
01:39:01
◼
►
♪ Accidental ♪
01:39:02
◼
►
♪ Oh, it was accidental ♪
01:39:04
◼
►
♪ Accidental ♪
01:39:05
◼
►
♪ John didn't do any research ♪
01:39:07
◼
►
♪ Marco and Casey wouldn't let him ♪
01:39:10
◼
►
♪ 'Cause it was accidental ♪
01:39:12
◼
►
♪ Accidental ♪
01:39:13
◼
►
♪ Oh, it was accidental ♪
01:39:15
◼
►
♪ Accidental ♪
01:39:16
◼
►
And you can find the shown notes at ATP.FM
01:39:20
◼
►
And if you're into Twitter, you can follow them
01:39:25
◼
►
@C-A-S-E-Y-L-I-S-S
01:39:30
◼
►
So that's Casey, Liszt, M-A-R-C-O-A-R-M
01:39:34
◼
►
Auntie Marco, Armin, S-I-R-A-C
01:39:39
◼
►
USA, Syracuse, it's accidental
01:39:45
◼
►
They didn't mean to accidental
01:39:50
◼
►
Tech Podcast
01:39:54
◼
►
How is John not using Swift yet?
01:39:57
◼
►
Why the hell would he?
01:39:58
◼
►
Because he basically caused it to exist
01:40:03
◼
►
I'll go that far
01:40:04
◼
►
Seriously, how are you not using it?
01:40:06
◼
►
Well, I don't have, I would use it if I had occasion to use it
01:40:09
◼
►
But I don't have occasion to use it at work
01:40:11
◼
►
And I don't have time for anything at home because I'm always podcasting
01:40:14
◼
►
And I just added support for a certain feature that Marco was aware of to my blog recently,
01:40:20
◼
►
but my blog is not written in Swift.
01:40:23
◼
►
Swift didn't exist when I made it, and I haven't touched it since, and it's a pile of crap.
01:40:26
◼
►
Well apparently you touched it somehow to add this feature.
01:40:29
◼
►
Well, yeah, it was not that big of a feature.
01:40:31
◼
►
It would be like the programmer thing to do to spend more time on the engine than on writing
01:40:36
◼
►
I think I still have achieved that goal, because I write so few posts that it's still come
01:40:41
◼
►
Right, exactly.
01:40:43
◼
►
I'm at this point. I'm such a high language
01:40:45
◼
►
Dilaton high level language dilaton that I just can't bear to deal with anything that even yeah
01:40:50
◼
►
I know Swift is not you know not down in the muck, but right like what is too low for you within Swift?
01:40:56
◼
►
It's got unsafe stuff in there. You know yeah, but you don't have to use it for God's sake
01:41:00
◼
►
I know, but sometimes you do depending what frameworks you want to use with it and
01:41:03
◼
►
Yeah, and and types and like another high level thing
01:41:07
◼
►
so much about types and
01:41:10
◼
►
- Well, any moment of my life I spend wrangling
01:41:14
◼
►
a type system, I feel like is a wasted moment
01:41:16
◼
►
'cause I'm so used to not doing it.
01:41:17
◼
►
- Oh my God, that's a feature, not a bug, John.
01:41:19
◼
►
- Wait, so hold on. - I know, I understand.
01:41:21
◼
►
- Using Perl, I assume, is your holy grail here.
01:41:24
◼
►
- No, it is not a holy grail, but JavaScript is the same way
01:41:28
◼
►
where you have to worry less about types, less.
01:41:31
◼
►
- Oh my God. - Obviously,
01:41:32
◼
►
you have to worry about them somewhat.
01:41:33
◼
►
- Not true, oh my God, okay.
01:41:35
◼
►
- Less than Swift, certainly.
01:41:36
◼
►
- John, as a JavaScript fan,
01:41:39
◼
►
I like JavaScript and even I will tell you
01:41:42
◼
►
that appealing to authority with JavaScript
01:41:45
◼
►
was not the right word.
01:41:46
◼
►
- It's not appealing to authority,
01:41:46
◼
►
I'm just saying it's a language that I use
01:41:48
◼
►
that has the same characteristics
01:41:50
◼
►
and that you don't have to type everything.
01:41:52
◼
►
- Okay, well so going back to your earlier complaint,
01:41:55
◼
►
like about unsafe things, like you're using Perl.
01:41:57
◼
►
Perl is just calling out to libraries
01:41:59
◼
►
written in C half the time.
01:42:01
◼
►
So like-- - Yeah, but they all work.
01:42:02
◼
►
- Oh yeah, okay, right.
01:42:04
◼
►
- So like time tested, not modified for the past 15 years.
01:42:09
◼
►
Yeah, that's, that's, yeah, okay.
01:42:13
◼
►
The great thing about using a language like that though, by the way, as I've said many
01:42:15
◼
►
times, is when it's segfaults, it's not your fault.
01:42:19
◼
►
That is, that should be a slogan on, you know, if Perl was still a popular language, people
01:42:22
◼
►
could put up a whole, "segfaults, not your fault."
01:42:25
◼
►
Whereas when you get segfaults, Marco, guess what?
01:42:27
◼
►
It's your fault.
01:42:28
◼
►
But you do that in Perl, and it's like, "I couldn't have done anything to cause that,
01:42:32
◼
►
because I'm writing Perl.
01:42:33
◼
►
It's some stupid C programmers problem."
01:42:35
◼
►
And you're right.
01:42:37
◼
►
I don't get segfaults.
01:42:38
◼
►
I get like, you know, uncaught exceptions and things.
01:42:41
◼
►
- I know, everyone's got a different name.
01:42:43
◼
►
You have no pointer exceptions in Java, yes I know.
01:42:46
◼
►
- Well no, Marco doesn't have that problem.
01:42:47
◼
►
I do, but it's all within the Swift compiler
01:42:50
◼
►
segfaulting left and right.
01:42:51
◼
►
- Yeah, I was gonna, when Marco was saying before,
01:42:52
◼
►
compilers, those can't have bugs.
01:42:54
◼
►
I can feel everyone on the Swift mailing list saying,
01:42:57
◼
►
oh yeah, compilers never have bugs.
01:42:58
◼
►
- Yeah, no, they don't.
01:42:59
◼
►
- Yeah, I mean, I was referring more to like
01:43:00
◼
►
the generated code, but I, yeah,
01:43:02
◼
►
I know about that kind of thing.
01:43:06
◼
►
- Yeah, but you're right, the standard is higher,
01:43:08
◼
►
which is why when there is a bug, it's noteworthy.
01:43:09
◼
►
But in the world of Swift's compiler,
01:43:12
◼
►
we are still definitely in the realm
01:43:14
◼
►
of regularly having actual bugs in the compiler.
01:43:17
◼
►
Otherwise, all those people at Apple
01:43:18
◼
►
working on the Swift compiler
01:43:19
◼
►
wouldn't have anything to do,
01:43:20
◼
►
but rest assured that they do.
01:43:21
◼
►
- Well, let me tell you, type inference is magical
01:43:23
◼
►
until it stops working and then it's the worst.
01:43:26
◼
►
- Yeah, you're worrying about types.
01:43:28
◼
►
- John, oh my God.
01:43:30
◼
►
(John laughing)
01:43:31
◼
►
- The correct argument against JavaScript for types
01:43:33
◼
►
is all their inane coercions that,
01:43:37
◼
►
Like they made a few bad choices with
01:43:38
◼
►
coercion and truth valuness and it's why
01:43:41
◼
►
everyone has all their religion about triple equals
01:43:43
◼
►
'cause they just want to avoid any of that stuff
01:43:45
◼
►
'cause it behaves in ways that people don't agree with.
01:43:47
◼
►
- Well that's what drives me nuts,
01:43:49
◼
►
like people have written off PHP entirely
01:43:52
◼
►
for exactly that kind of thing
01:43:54
◼
►
and now they're all using JavaScript.
01:43:56
◼
►
It has the same problems.
01:43:57
◼
►
- But they're not using JavaScript 'cause they love it.
01:44:00
◼
►
You know why they're using JavaScript.
01:44:01
◼
►
They have no choice 'cause it's in every freaking browser.
01:44:03
◼
►
- What about people who use Node, they have a choice?
01:44:06
◼
►
No, they don't, because the reason they're using JavaScript on the server side is because
01:44:10
◼
►
it's used on the client side, and when you can share code behind the client side and
01:44:13
◼
►
the server side, it is a win.
01:44:15
◼
►
And also because Node is actually a reasonable way to do async stuff server side, as compared
01:44:21
◼
►
to the other languages that offer similar features.
01:44:23
◼
►
But totally, it's like, JavaScript wins not because anybody loves it, but because you've
01:44:27
◼
►
got to use it because it's in the friggin' browser.
01:44:29
◼
►
I mean, I chose Node willingly.
01:44:31
◼
►
I could have done Ruby when I wrote Camel.
01:44:33
◼
►
Yeah, but it would have been slower.
01:44:36
◼
►
faster. It never would have scaled for those millions and millions of bits I get every
01:44:41
◼
►
day. But no, I chose Node because I was familiar with JavaScript, but I didn't, I mean, I don't
01:44:46
◼
►
Yeah, but why were you familiar with JavaScript?
01:44:47
◼
►
Because of the web, for sure.
01:44:48
◼
►
Exactly. That's why.
01:44:49
◼
►
Well, it's slow down though, but I don't have jQuery on 99% of the blog posts I write. In
01:44:55
◼
►
fact, I don't even have it on the standard template because I use it so rarely.
01:44:59
◼
►
Oh, but you know the language and you know little bits of the standard library and you
01:45:02
◼
►
you know, kind of how the regular expression things work.
01:45:05
◼
►
And it's, yeah, JavaScript is a mess.
01:45:08
◼
►
Have you done any ES6 stuff in JavaScript?
01:45:12
◼
►
Where they tried to make it less of a mess?
01:45:13
◼
►
- No, nor have I touched like TypeScript
01:45:15
◼
►
or CoffeeScript or any of that stuff.
01:45:17
◼
►
- Next time you do something in Node,
01:45:19
◼
►
upgrade to a reasonably recent version of Node
01:45:21
◼
►
and do the whole thing in the ES6
01:45:23
◼
►
and see how you feel about it.
01:45:24
◼
►
- Well, to be honest,
01:45:25
◼
►
I really want to convert camel from static-ish
01:45:31
◼
►
to full bore static like you two knuckleheads do.
01:45:35
◼
►
And I started, I have a branch with it.
01:45:38
◼
►
- I actually wanted to move away from that, but go ahead.
01:45:41
◼
►
- Yeah, I wanna go back to server base,
01:45:42
◼
►
to dynamic generation.
01:45:44
◼
►
Basically, I have some experience with web scalability.
01:45:48
◼
►
Basically, the language speed is never your problem.
01:45:53
◼
►
If that's your problem, you are not doing something right.
01:45:57
◼
►
Dynamic serve pages can be almost as fast
01:46:02
◼
►
as a static site served through Nginx if you do it right.
01:46:07
◼
►
If you have things like, you know,
01:46:09
◼
►
what all the servers do to serve static pages quickly,
01:46:12
◼
►
you have things like caching.
01:46:13
◼
►
You know, the basic caching required.
01:46:16
◼
►
Like, we're getting into an era now where,
01:46:20
◼
►
I think like as the web is shifting
01:46:24
◼
►
into the new era of mobile and whatever else,
01:46:27
◼
►
I think we more than ever need things like
01:46:31
◼
►
publishing API support so we can use tools on the go
01:46:35
◼
►
and stuff like that, as well as various
01:46:37
◼
►
dynamic format generation like AMP
01:46:40
◼
►
and whatever garbage is thrust upon us in the future.
01:46:42
◼
►
And also, servers are so cheap and powerful now,
01:46:49
◼
►
and web traffic is pretty much down for everybody,
01:46:52
◼
►
So it's getting increasingly harder to justify static only site generation when a decently
01:47:03
◼
►
written conscientious modern dynamic application can do things just as well and provide some
01:47:09
◼
►
pretty nice benefits for the world of mobile.
01:47:12
◼
►
>> But when you do a static site, you lose the opportunity for a programming bug to make
01:47:18
◼
►
your site unresponsive.
01:47:20
◼
►
And so we go back to doing dynamic,
01:47:21
◼
►
you finally get that ability back.
01:47:23
◼
►
- How complex is your blog CMS, John?
01:47:26
◼
►
- Now I can make a programming error
01:47:28
◼
►
that brings me back to the good old days
01:47:30
◼
►
when sites would get slash dotted.
01:47:32
◼
►
Whereas if it's static, the worst you can do
01:47:33
◼
►
is make your site look ugly because your static generator
01:47:35
◼
►
produced a bunch of crap.
01:47:36
◼
►
But that ugliness will load real fast.
01:47:38
◼
►
- You guys have obviously not used PHP.
01:47:41
◼
►
- Why, you think, why, because it can also make things ugly?
01:47:43
◼
►
I don't know.
01:47:44
◼
►
- Well, that too, but no, I mean,
01:47:45
◼
►
Honestly, modern web languages and tool chains
01:47:50
◼
►
and stacks are really fast.
01:47:53
◼
►
You'd be shocked how fast they are.
01:47:54
◼
►
- I know, I'm just saying, you make a programming error
01:47:57
◼
►
that causes, you put something that goes
01:47:59
◼
►
into an infinite loop somewhere,
01:48:00
◼
►
and then all of your child processes get tied up
01:48:04
◼
►
in the infinite loop and now you have no more responders.
01:48:06
◼
►
It's an error, you're not doing it on purpose,
01:48:08
◼
►
not saying it's performing correctly,
01:48:09
◼
►
but when you have no code and you just have static files,
01:48:13
◼
►
that whole class of errors is gone.
01:48:14
◼
►
And so that's why people do static stuff.
01:48:17
◼
►
It's like, well, it will have predictable performance.
01:48:21
◼
►
And there's nothing I can do to mess up
01:48:23
◼
►
that predictable performance, because I'm not
01:48:24
◼
►
serving the files.
01:48:25
◼
►
Nginx is, or Apache is, and I haven't upgraded it in 17 years.
01:48:29
◼
►
And it's just doing what it always does.
01:48:30
◼
►
And it is 100% predictable.
01:48:32
◼
►
Once you add your own code to the mix,
01:48:34
◼
►
you open up the window, however small,
01:48:35
◼
►
for you making a silly programmer error that causes
01:48:38
◼
►
your thing to hang when it gets much traffic or something.
01:48:40
◼
►
I think you might be overestimating the complexity
01:48:42
◼
►
of a PHP blog engine.
01:48:45
◼
►
No, I said it as a good thing, it's not very hard.
01:48:47
◼
►
There's not much code and there's not much opportunity
01:48:51
◼
►
for things like infinite loops.
01:48:52
◼
►
- Oh, there's always opportunity for infinite loops.
01:48:54
◼
►
Just you can do that in a regular expression
01:48:56
◼
►
for crying out loud.
01:48:57
◼
►
Not an infinite loop. - No, John, you could.
01:48:59
◼
►
- But I hate Death of the Universe.
01:49:01
◼
►
- A Perl programmer can do that with a regular expression.
01:49:03
◼
►
- No, anybody, anybody, even a PHP,
01:49:06
◼
►
even a JavaScript programmer can make a regular expression
01:49:09
◼
►
that does not terminate. - No way.
01:49:10
◼
►
- Well, I don't know, does PHP only use DFAs
01:49:12
◼
►
than its reg extension, do you know?
01:49:14
◼
►
- I don't even know what that means.
01:49:15
◼
►
- Well, someone in the chat room will know
01:49:17
◼
►
and tell me the answer. - Discrete finite automata?
01:49:19
◼
►
Or deterministic?
01:49:21
◼
►
- The non-deterministic finite automata
01:49:23
◼
►
are the ones that you can make a regular expression
01:49:25
◼
►
that tries a bazillion permutations of how to match
01:49:28
◼
►
and it won't succeed or fail for a huge amount of time,
01:49:32
◼
►
so it effectively looks like a hang.
01:49:34
◼
►
- I think if you are using regular expressions
01:49:36
◼
►
to that level of complexity,
01:49:38
◼
►
you might be using the wrong tool for the job.
01:49:40
◼
►
- It's not, it's not a complex thing.
01:49:41
◼
►
It's really, you can make a trivial example
01:49:43
◼
►
with like six characters, with just like characters
01:49:46
◼
►
and pluses and a couple of parens,
01:49:47
◼
►
and you can make one that goes like that.
01:49:49
◼
►
But some regular expressions, like e-grep, I believe,
01:49:52
◼
►
from the command line, only does DFAs,
01:49:53
◼
►
and those don't have that problem.
01:49:55
◼
►
But to use the fancier features that Perl has
01:49:57
◼
►
in its regular ops engine,
01:49:58
◼
►
you have to have an NFA engine in there as well.
01:50:00
◼
►
And I think Perl switches between them,
01:50:01
◼
►
uses a DFA when it's faster.
01:50:03
◼
►
And anyway, this is all esoteric.
01:50:05
◼
►
But the point is, infinite loops are everywhere,
01:50:07
◼
►
if you look hard enough.
01:50:08
◼
►
- What are you doing with your blog?
01:50:10
◼
►
Like honestly, I've written a number of blog CMSs
01:50:14
◼
►
ill advisedly over the years,
01:50:15
◼
►
and I don't think I've ever even needed anything
01:50:19
◼
►
that complex, like what are you doing?
01:50:21
◼
►
- I'm not doing anything, I have static files,
01:50:22
◼
►
I'm just saying, you've seen it done.
01:50:23
◼
►
I mean, the most common case is what you said before,
01:50:25
◼
►
that someone doesn't,
01:50:26
◼
►
someone either implements caching wrong
01:50:28
◼
►
or doesn't implement it at all,
01:50:29
◼
►
and then you get to see their MySQL connection errors
01:50:32
◼
►
when they're being slash dotted, like the bad old days.
01:50:34
◼
►
It's not like the language isn't fast enough,
01:50:35
◼
►
it's like they didn't realize that they might need
01:50:38
◼
►
to have 7,000 simultaneous connections
01:50:39
◼
►
their MySQL database and they didn't do any form of caching and their page gets popular
01:50:43
◼
►
and all you get to see is their lovely MySQL error on a white error page.
01:50:47
◼
►
Like remember those days?
01:50:49
◼
►
That used to happen a lot.
01:50:50
◼
►
That still happens.
01:50:52
◼
►
Well, that's the magic of a dynamically generated website combined with, you know.
01:50:56
◼
►
That's just a bad site.
01:50:57
◼
►
Like it's...
01:51:00
◼
►
You should do caching, but you know, then you've got to worry about cache invalidation
01:51:01
◼
►
and it's just another...
01:51:02
◼
►
It's a whole class of bugs that doesn't exist when you do static sites.
01:51:05
◼
►
No, you don't.
01:51:06
◼
►
You know what you can do?
01:51:07
◼
►
because of the scale we're talking about here,
01:51:08
◼
►
like the most simple caching in the world works just fine.
01:51:12
◼
►
You know what you do?
01:51:12
◼
►
You put a caching proxy in front of your application
01:51:16
◼
►
and your application sends a cache header
01:51:18
◼
►
with a TTL of one second.
01:51:20
◼
►
Because then it will, in most cases,
01:51:22
◼
►
only ever have to generate one page per second dynamically,
01:51:25
◼
►
which they can all do.
01:51:26
◼
►
And you can be serving that to a thousand people per second
01:51:28
◼
►
on the front end and that's fine
01:51:30
◼
►
because the caching server can do that.
01:51:31
◼
►
- You still get cache stampedes though.
01:51:33
◼
►
You still get stampedes for when the one second expires.
01:51:36
◼
►
- Only for badly written caching servers.
01:51:39
◼
►
We have better ones now, they avoid that.
01:51:40
◼
►
- But there are so many ways you can screw this up.
01:51:42
◼
►
That's what I'm saying.
01:51:44
◼
►
The reason people do static sites
01:51:46
◼
►
is because it eliminates this entire class
01:51:47
◼
►
of performance related problems.
01:51:49
◼
►
And you trade it for the other problem,
01:51:50
◼
►
which is that your site takes longer to update
01:51:52
◼
►
and potentially you could host your entire site
01:51:53
◼
►
if you make a bug there.
01:51:55
◼
►
But that trade off is why people do static sites.
01:51:57
◼
►
- And you're more limited in the kind of features
01:52:00
◼
►
your site can support, which sometimes can be important.
01:52:03
◼
►
- Yeah, well you can have your site be entirely static
01:52:06
◼
►
just have a little sub URL be dynamic. But anyway, Casey's proof of this, because his
01:52:09
◼
►
node site was what, it was 100% dynamic, right? You were doing like the stupidest dynamic
01:52:12
◼
►
thing ever. Like, were you doing any caching? Or were you just caching it in memory? Whatever
01:52:16
◼
►
it was, it was like...
01:52:17
◼
►
How do you really feel?
01:52:20
◼
►
No, like it was not stupid. Like the most naive. Like it wasn't like you were going
01:52:23
◼
►
through great efforts to have some...
01:52:24
◼
►
Oh, that's much better.
01:52:25
◼
►
You're not stupid, Casey. You're naive.
01:52:26
◼
►
Yeah, for real. I feel like a million bucks right now.
01:52:29
◼
►
Naive is a term of art. A naive approach to serving pages.
01:52:33
◼
►
To answer your question, what happens is the first time, actually it's upon load, basically
01:52:38
◼
►
when the engine is spun up, it looks through the file system and it looks at a bunch of
01:52:42
◼
►
markdown files, converts those to HTML, renders full bore HTML for each page, and then holds
01:52:50
◼
►
that in memory.
01:52:51
◼
►
So in principle, once the thing is spun up, it should never have to think about anything
01:52:58
◼
►
It just has to figure out where in memory that page is.
01:53:03
◼
►
Obviously that approach doesn't work for a site with a billion pages on it, like archive.org
01:53:07
◼
►
or something, but it works fine for a blog, and it's technically dynamic because it's
01:53:12
◼
►
not like it's hitting the disk every time you make a request, right?
01:53:15
◼
►
But it's also basically static.
01:53:17
◼
►
It's static dynamic.
01:53:18
◼
►
Right, and that's exactly the point.
01:53:20
◼
►
Like, what did I put on the readme?
01:53:21
◼
►
Where did that go?
01:53:22
◼
►
I just had this damn window open.
01:53:23
◼
►
Maybe it's in an infinite loop and you can't find it.
01:53:26
◼
►
Yeah, you know what?
01:53:27
◼
►
I think you're right.
01:53:28
◼
►
I think that's exactly what happened.
01:53:29
◼
►
Yeah, I'll send you guys some good infinite loop breakers.
01:53:31
◼
►
I gotta find out, maybe JavaScript doesn't suffer from this.
01:53:33
◼
►
It wouldn't be surprising me if JavaScript resolved DFAs
01:53:35
◼
►
because I suspect that I would see more of it on the web
01:53:37
◼
►
if it was a thing.
01:53:39
◼
►
- So this conversation was probably meant to have me
01:53:42
◼
►
like start learning Swift, but now instead I just wanna do
01:53:46
◼
►
the worst possible use of my time
01:53:47
◼
►
because I wanna write a new blogging engine in PHP.
01:53:50
◼
►
- Why don't you write a new blogging engine in Swift?
01:53:52
◼
►
Combine two into one.
01:53:53
◼
►
- Are the server-side frameworks there yet?
01:53:56
◼
►
'Cause like honestly I would consider that.
01:53:58
◼
►
- I think so, there's a bunch of projects that,
01:54:00
◼
►
- I mean, I'm sure they're not mature or probably even good,
01:54:03
◼
►
but I think you can get the job done,
01:54:05
◼
►
'cause like you said, blogging engine
01:54:07
◼
►
is not that complicated.
01:54:08
◼
►
- The one that IBM is working on,
01:54:09
◼
►
from what I understand, isn't bad.
01:54:11
◼
►
I can't remember the name off the top of my head.
01:54:14
◼
►
- It's very easy to do this kind of thing
01:54:16
◼
►
in one of the very popular old languages,
01:54:19
◼
►
like PHP or Python or Ruby,
01:54:21
◼
►
because there's libraries to do everything
01:54:23
◼
►
that blogs ever need.
01:54:24
◼
►
So markdown processors, things like that.
01:54:27
◼
►
That's really easy to just bolt on,
01:54:29
◼
►
because it's right there.
01:54:30
◼
►
Like there's a million libraries to do it
01:54:32
◼
►
and it's great, right?
01:54:33
◼
►
- Right, that's the thing.
01:54:34
◼
►
- Yeah, so like I am, and things like image resizing,
01:54:38
◼
►
thumbnailing if that's ever necessary, stuff like that.
01:54:41
◼
►
Like the kind of stuff that blog CMSs tend to need.
01:54:46
◼
►
It's fairly simple but there are a few components
01:54:48
◼
►
that are somewhat complex and it's nice to have
01:54:50
◼
►
like good support for them from like a webby type
01:54:55
◼
►
of language that's been around for a while.
01:54:58
◼
►
and things like PHP and Ruby and Python,
01:55:01
◼
►
those have tons of good libraries out there
01:55:03
◼
►
for that kind of stuff.
01:55:04
◼
►
Something that's brand new
01:55:06
◼
►
or that hasn't been really used in a web context very much,
01:55:10
◼
►
I've also had this problem with Go, honestly.
01:55:12
◼
►
Go has a lot of built-in libraries
01:55:14
◼
►
for stuff like math and stuff,
01:55:16
◼
►
but once you get into more webby type needs,
01:55:19
◼
►
you very quickly hit walls of like,
01:55:21
◼
►
oh, there just isn't a library to do this,
01:55:23
◼
►
or there's this one library that just shells out
01:55:25
◼
►
to this obscure C library that won't compile
01:55:29
◼
►
or whatever else.
01:55:29
◼
►
I've had a lot of issues with Go in that regard.
01:55:34
◼
►
I'm kinda down on Go now, honestly.
01:55:36
◼
►
Like I feel like Swift kinda did Go better than Go.
01:55:41
◼
►
And so now I just kinda want Swift to be on the server
01:55:43
◼
►
so I could just use that.
01:55:45
◼
►
- Should try Rust next.
01:55:46
◼
►
Maybe Rust has better server-side libraries.
01:55:48
◼
►
I don't know anything about their library situation
01:55:50
◼
►
but it's in the similar vein
01:55:51
◼
►
if you're into those type of languages.
01:55:53
◼
►
- Yeah, I haven't looked at Rust recently.
01:55:54
◼
►
I did look at it about two years ago,
01:55:57
◼
►
but I would expect it might have the same issues as Go,
01:56:02
◼
►
where it probably doesn't have a lot of those
01:56:04
◼
►
rich client-side libraries,
01:56:07
◼
►
'cause I think it's more of a low-level thing.
01:56:09
◼
►
It is also very new and not incredibly popular yet.
01:56:14
◼
►
- I don't know, there's a couple
01:56:15
◼
►
of different options for Swift.
01:56:16
◼
►
There's Taylor, which is funny,
01:56:18
◼
►
but just woefully badly named,
01:56:21
◼
►
because then you're searching for Taylor Swift.
01:56:23
◼
►
There's "Perfect" and then there's "Katura" which is,
01:56:26
◼
►
well, "Perfect" is just an obnoxious name.
01:56:28
◼
►
And then "Katura" which is probably the best kind of name
01:56:31
◼
►
because I've never heard that word
01:56:32
◼
►
used anywhere else before.
01:56:34
◼
►
And so that theoretically should work.
01:56:37
◼
►
- Does "Perfect" have a bug tracker?
01:56:42
◼
►
- I don't know, I would assume so.
01:56:43
◼
►
That's funny as hell.
01:56:44
◼
►
That's on GitHub, so yes, it does.
01:56:46
◼
►
- The first heading, what is "Perfect"?
01:56:48
◼
►
I think in my head, like nothing.
01:56:50
◼
►
I don't know, not this, obviously.
01:56:51
◼
►
But you're saying nothing is so perfect.
01:56:55
◼
►
There we go.
01:56:56
◼
►
Obviously not.
01:56:57
◼
►
I'll leave an issue on there.
01:56:58
◼
►
They're not bugs, they're issues.
01:57:00
◼
►
Issue number one, nothing is so perfect.