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)