PodSearch

ATP

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:53 ◼   ► Airdrop.

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:38 ◼   ► nothing.

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:20 ◼   ► (laughing)

00:06:21 ◼   ► - Sure.

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:39 ◼   ► (laughing)

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:27 ◼   ► [Music]

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 ◼   ► - Really?

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:17 ◼   ► (laughing)

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:42 ◼   ► (laughing)

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:41 ◼   ► (laughing)

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:39 ◼   ► okay fine.

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:48 ◼   ► done this.

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:55 ◼   ► forth.

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:19 ◼   ► No.

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:18 ◼   ► life.

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:57 ◼   ► it.

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:14 ◼   ► - Yeah.

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 ◼   ► - Agreed.

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:53 ◼   ► - They are.

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:03 ◼   ► Software.

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:25 ◼   ► Whoa.

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:18 ◼   ► (laughing)

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:06 ◼   ► (laughing)

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:40 ◼   ► is there.

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:16 ◼   ► anymore.

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:18 ◼   ► off I go.

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:06 ◼   ► problems.

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:10 ◼   ► to do.

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:55 ◼   ► tubes.

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:35 ◼   ► goals.

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:51 ◼   ► Anyway.

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:55 ◼   ► Guido?

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:48 ◼   ► Accidental

01:39:50 ◼   ► Tech Podcast

01:39:52 ◼   ► So long

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:01 ◼   ► [Laughter]

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:22 ◼   ► Why not?

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:35 ◼   ► posts.

01:40:36 ◼   ► I think I still have achieved that goal, because I write so few posts that it's still come

01:40:40 ◼   ► out ahead.

01:40:41 ◼   ► Right, exactly.

01:40:42 ◼   ► Good point.

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:45 ◼   ► even know.

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:40 ◼   ► - Really?

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:43 ◼   ► (laughing)

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:56 ◼   ► (laughing)

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:51 ◼   ► I know.

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:50:58 ◼   ► Yeah.

01:50:59 ◼   ► I know.

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:57 ◼   ► again.

01:52:58 ◼   ► It just has to figure out where in memory that page is.

01:53:02 ◼   ► Yeah.

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:09 ◼   ► like Swift.

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:32 ◼   ► But yeah.

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:39 ◼   ► (laughing)

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.

01:57:03 ◼   ► (beeping)