151: The Opposite of Final


00:00:00   Hello everybody we are live from Las Vegas with our CES

00:00:05   Extravaganza, I thought it was extravaganza. Is it extravaganza? No, not really. No, I'm just kidding and say we're gonna talk about Star Wars for three hours

00:00:13   There's a little exchange between one of our listeners and the ever watching ever listening up there folks

00:00:22   They're in the cloud. That's why I see everything

00:00:24   Peter Brock and Howard

00:00:27   Was tweeting at us about this and he said an FYI up there is hosted on AWS little snitch told me so

00:00:33   AWS is Amazon's web services and little snitch is a firewall program that tells you where computers connecting to yeah

00:00:38   And up there on Twitter responded not true. We built our own stack from the ground up and host our service on this stack

00:00:45   So I'm not quite sure what little snitch was on about maybe it connects to AWS or some ancillary things

00:00:50   But straight from the up there horses mouse mouth. They're not using AWS

00:00:55   they have built their own stack, which is what I was talking about in the last show.

00:00:57   Whatever mysterious technology they're using, presumably the whole point of the company

00:01:01   is not to write an iOS and a Mac app that connects to S3.

00:01:07   That's not, I don't think Bertrand Serlet would do a startup and focus on that because

00:01:12   there's a million of those things already.

00:01:13   Well, I mean, they could have also just been working a layer above that.

00:01:17   Like they could have been using EC2 servers or some other part of AWS as part of their,

00:01:22   like how iCloud uses some AWS stuff and some Azure stuff as far as we knew forever ago.

00:01:28   Yeah, but that like, what would they use from it? Even, even EC2, like, I don't know, it

00:01:34   just seems, it seems counter, because that's all there is, that's all there is up there.

00:01:37   There's no, iCloud is built on top of this whole bunch of other stuff, like that's just

00:01:40   this, you could use S3 for the storage backend, or if you, if you don't want to have your

00:01:45   own data centers or whatever, maybe you could use EC2 for compute stuff, but I don't know,

00:01:49   I just always imagine whatever they're doing being more interesting than that.

00:01:53   Fair enough.

00:01:55   Any other follow up?

00:01:56   I threw in some follow up just because it's, I don't know if there's any information here,

00:02:00   but it's...

00:02:01   You threw in some follow up just because you couldn't stand to not have any.

00:02:03   No, I mean, like, I was, I had this in the topic section before, but I said, you know,

00:02:06   we talked about this on a past show, and so it's kind of follow up, but I'm not sure how

00:02:10   filled with information it is.

00:02:11   So a friend of mine was messaging me today, and he's like, so how do you feel about the

00:02:15   headphone port going away from the iPhone 7?

00:02:19   And I said, A, you obviously don't listen to my podcast.

00:02:23   And B, what are you talking about?

00:02:26   Did I miss some news or something?

00:02:27   He's like, oh, yeah, they were talking about it before,

00:02:29   but it wasn't confirmed until today.

00:02:31   I'm like, what are you talking about?

00:02:32   I really thought that Apple had announced

00:02:34   that there was going to be no headphone

00:02:35   for it on the iPhone 7,

00:02:36   but I forget that regular people

00:02:38   don't know what confirmed means.

00:02:40   So this is a Forbes article.

00:02:42   - Wow.

00:02:42   - This is a Forbes article that says,

00:02:44   the headline is iPhone 7 Leaks Confirm in Single Quotes,

00:02:48   Apple-abandoning headphone jack.

00:02:50   I said they did the work for you.

00:02:52   They put it in scare quotes in the headline.

00:02:53   At least they have the decency to say,

00:02:55   "Confirm," I'm doing air quotes now, "Confirm."

00:02:57   Anyway, more, so we talked a lot about this on a past show.

00:03:02   More rumors, more supposed part leaks.

00:03:05   This one has a neat little concept image,

00:03:07   'cause if you're gonna have a rumor story,

00:03:09   you gotta have someone do a mock-up image

00:03:10   with the iPhone 7, and I'm looking at this mock-up image,

00:03:14   and what do you guys think?

00:03:16   It looks a little thin to me.

00:03:17   But anyway, this is more smoke for this potential fire

00:03:21   of the headphone port going away.

00:03:23   I don't know.

00:03:23   I think it's too early to make any kind of call.

00:03:26   But if I keep, not that Forbes has a great track record,

00:03:30   but it's making me think about it again.

00:03:32   It's making me think how Apple could explain

00:03:35   this inevitability, if not this year,

00:03:37   then next year, the year after, the year after.

00:03:40   And I think a lot of the stuff in this article

00:03:42   is a good way that they might explain it.

00:03:44   The idea being that the phone would be smart

00:03:47   about where it sends its audio output depending on context.

00:03:50   I wish all of Apple's devices would get smarter this way.

00:03:53   All of Apple's service and devices.

00:03:54   So if I'm listening on my wireless headphones,

00:03:58   you know, I'm in my car, it's playing through Bluetooth.

00:04:00   I get out of the car,

00:04:00   it's just on my wireless earbuds or whatever.

00:04:03   I sit down at my desk and it switches to outputting

00:04:06   through the headphone jack of my computer or something.

00:04:09   You know what I mean?

00:04:10   Like situational awareness where you don't have to be

00:04:12   plugging and unplugging things where it will just know

00:04:14   based on your location of one of the devices there,

00:04:16   or what your preferred sound output device is.

00:04:19   That, and then you say,

00:04:20   "See, isn't that better than headphone jacking?"

00:04:22   Say, "Yeah, if that actually worked,

00:04:24   "that would kinda be better than headphone jack."

00:04:25   And it lets you make your phone thinner,

00:04:27   so everybody's happy.

00:04:28   I don't know if that world is gonna arrive

00:04:31   in time for the iPhone 7,

00:04:32   but it's one way to sell this feature, I guess.

00:04:36   - Yeah, I mean, we talked about this to death

00:04:37   a few episodes back,

00:04:39   so I don't think we should spend too much time on it,

00:04:41   but I do think that the world of not having

00:04:44   the headphone jack is probably on its way.

00:04:46   I think as we discussed last time,

00:04:48   it's probably still a few years off.

00:04:50   I mean, I think one of the biggest supports for this

00:04:54   is to look at the MacBook One.

00:04:56   And the MacBook One has two ports,

00:04:58   the multipurpose USB-C/charging port and a headphone jack.

00:05:03   And they couldn't justify any other ports on that,

00:05:05   but they could justify a headphone jack.

00:05:07   And I think that goes to show just how often they're used.

00:05:10   And Bluetooth headphones do exist.

00:05:13   They've used it for quite some time.

00:05:14   There are some decent ones, there are very few good

00:05:19   or even great ones, and there's a lot of trade-offs

00:05:22   to Bluetooth headphones that make them not only less good

00:05:25   in some ways, but actually unusable

00:05:27   for certain applications.

00:05:28   So it is not a clean transition.

00:05:32   I'm guessing that that one kind of crazy,

00:05:37   translated a million times from different languages story

00:05:39   that we got back then, back a month ago or two,

00:05:42   That one story about how there would just be a passive

00:05:45   special lightning adapter for this new revision

00:05:48   of the lightning port that would basically have a DAC

00:05:51   on the phone and have it be able to send analog audio

00:05:55   through a cheap passive adapter through the port

00:05:58   into a headphone jack port

00:06:00   that threw like a little breakout cable.

00:06:01   I think that's pretty plausible.

00:06:03   And so that I think is the most plausible explanation

00:06:07   I've heard for why this might not be a big deal,

00:06:10   is if they can make a cheap little passive adapter like that

00:06:12   and just sell that to you or even include one in the box

00:06:16   if it's really that cheap and passive.

00:06:18   They probably won't, it'll be more likely

00:06:19   they would sell it for 30 bucks, but we can dream.

00:06:23   But I think where there's smoke, there's usually some fire

00:06:27   and I think there's enough smoke around this

00:06:29   that I would move it from unlikely to somewhat likely.

00:06:34   And I think if we consider that special lightning adapter

00:06:40   passive adapter thing, that makes it more,

00:06:44   I don't know, digestible.

00:06:47   It makes it suck less, basically.

00:06:50   - With all these type of stories,

00:06:52   there's a build to the inevitability

00:06:54   until we eventually get the real parts leaks,

00:06:56   especially with the phones,

00:06:57   as the date of the new phone approaches.

00:06:59   We're pretty far away now.

00:07:01   So I was thinking that this next round of stories

00:07:04   about this rumor, nudge it slightly more

00:07:09   towards the realm of possibility,

00:07:10   but it's still so far out that it's within the realm

00:07:14   of things that could end up being totally wrong.

00:07:15   But we'll keep watching.

00:07:16   We'll keep watching it nudge ever closer.

00:07:18   I mean, we'll basically know for sure

00:07:20   when the real parts leaks come out,

00:07:21   'cause I don't think we've had a significant iPhone revision

00:07:24   in a long time where we haven't gotten a look

00:07:26   at pretty much every piece of this thing

00:07:29   disassembled before it arrives.

00:07:31   - And we'll probably know it by April or May.

00:07:33   (laughing)

00:07:35   - And especially like this,

00:07:36   like you may not know everything,

00:07:37   'Cause you can't figure out all the software features,

00:07:41   obviously, and then the hardware features,

00:07:43   sometimes they're hard to tell from parts,

00:07:44   but things like, does it have a hole

00:07:46   for the headphone port to go in?

00:07:48   We'll be able to tell it just by looking at cases.

00:07:49   - Yeah, and the back case is often

00:07:51   one of the very first parts to leak.

00:07:52   So it can't probably, that's what I'm saying,

00:07:55   we'll probably know this one by the spring, really.

00:07:58   - All right, what's awesome these days, Marco?

00:08:00   - Our first sponsor this week is Audible.com.

00:08:03   Audible.com has more than 180,000 audio books

00:08:06   spoken word audio products. Get a free 30 day trial at audible.com/ATP. If you want

00:08:12   to listen to it, Audible has it. Listen to audiobooks from virtually every genre, anytime,

00:08:17   anywhere. You can play Audible's audiobooks on phones, tablets, computers, most Kindles,

00:08:22   even iPods if you're Stephen Hackett. Now audiobooks are great for flights, long road

00:08:26   trips, even your daily commute. You may think you don't have time to read books, but you'd

00:08:30   be surprised how many audiobooks you can hear each year, even if you only listen to and

00:08:33   from work every day. With more than 180,000 audiobooks and spoken word audio products,

00:08:39   you will find what you're looking for. We have a book recommendation, don't we?

00:08:43   Indeed. I believe Jon has one, and I have one if you'd like one as well.

00:08:47   We'll do Jon's this time and yours next time. How's that?

00:08:49   Sounds good.

00:08:50   Or do you want to go first?

00:08:51   Oh, no, no, no. It's cool. Especially since Jon is going to make fun of my book selection,

00:08:54   so we can definitely save that.

00:08:55   Oh, let's do yours then.

00:08:56   Ah, shouldn't have said it. So I really enjoyed the book "Ready Player One" by Ernest Cline,

00:09:02   which I made the mistake of listening to the incomparable about it, and they basically spent an hour and a half talking about how terrible it is.

00:09:09   Anyway, his second book came out, I believe was in 2015, I could be wrong about that, and it's called Armada.

00:09:17   And it is not as good as Ready Player One, which at this point John is seriously rolling his eyes, but it is good.

00:09:23   I did like it. If you happen to be a fan of Ender's Game, you'll like this and/or Ready Player One.

00:09:29   And it is also narrated by Wil Wheaton, who is kind of an internet darling, and I mean

00:09:34   that in a not sarcastic way, and a not derisive way.

00:09:37   So I definitely recommend it.

00:09:39   It's apparently just a shade under 12 hours, so that's what, like two ATP episodes?

00:09:44   And it's available on Audible.

00:09:46   So check it out today with more than 180,000 audiobooks and spoken word audio products,

00:09:51   you will find what you're looking for.

00:09:52   Get a free 30-day trial today by signing up at audible.com/ATP.

00:09:57   It's audible.com/ATP.

00:10:00   Thanks to Audible for sponsoring our show.

00:10:02   Ready Player One is mostly harmless, silly, garbage.

00:10:08   You really sold it, Joe.

00:10:11   We had fun making fun of it on The Incomparable, but it's also all in good fun.

00:10:15   I think just because we have a lot of things where it's easy to ridicule the book and

00:10:21   poke at it and find flaws, it's still a fun read.

00:10:25   I don't regret reading it.

00:10:27   I guess that makes me feel a little better?

00:10:30   It's not...

00:10:31   I don't like to use guilty pleasure because I don't like that concept, but it's kind of

00:10:33   like junk food.

00:10:34   It's like a bag of potato chips.

00:10:35   Whatever.

00:10:36   Just chomp it down.

00:10:37   It's fine.

00:10:38   Goodness.

00:10:39   All right.

00:10:40   Well, anyway, yeah, you should check out Audible.

00:10:44   All right.

00:10:45   So what else are we talking about tonight?

00:10:47   We see that somebody has fixed Apple's grievous mistake with the MacBook One.

00:10:54   two kinds of mistakes, so just two things that I just happened to see recently and I'm

00:10:57   sure there's more.

00:10:59   The MacBook One has got the one little lonely USB Type-C port on the side of it, but USB

00:11:05   Type-C can do all sorts of stuff.

00:11:08   That's why it's one port, you can put the power through it and you can do all sorts

00:11:12   of other things.

00:11:13   And so the first link in this tooling set here is for a Griffin device that you plug

00:11:20   into your USB-C port on your MacBook One and it gives you back a MagSafe connector, sort

00:11:26   of.

00:11:27   Basically a magnetic thing that if someone trips over the cord it will become disconnected.

00:11:30   Now I find this interesting for a couple of reasons.

00:11:33   When we were first talking about the MacBook One, we of course discussed the fact that

00:11:38   this one connector also replaces MagSafe.

00:11:41   What happened to MagSafe?

00:11:42   Isn't MagSafe great?

00:11:43   Doesn't everybody love MagSafe?

00:11:44   Doesn't everybody love being able to trip over a cord and not have it yank your computer

00:11:47   off the thing or break your adapter or whatever.

00:11:50   Isn't MagSafe a great feature?

00:11:51   Why would they get rid of it?

00:11:52   And my question, which I still don't have an answer to because I don't have one of these

00:11:55   and neither do any of us, was maybe you don't need MagSafe because maybe the USB-C connector

00:12:00   is so small that if you trip over it, it just pops out anyway harmlessly.

00:12:04   The connector is so small that MagSafe is no longer needed.

00:12:08   I still don't know if that's the case.

00:12:09   Obviously, Griffin thinks that people think it's not the case.

00:12:13   Or maybe they know themselves that it's not the case, but they're saying, "Hey, buy this

00:12:16   adapter whose sole purpose is to provide a magnetic breakaway connection for the power

00:12:22   for your laptop. uh and i don't know like i i feel like i would buy this thing by the laptop

00:12:28   by itself and i would see is tripping over the i mean i don't know how to find out maybe find out

00:12:33   by yanking the thing onto the floor and watching the screen crack or something maybe just do some

00:12:36   experiments to see but boy it seems a long way to go to fill the one and only port on your thing

00:12:42   with this giant adapter, $40 giant adapter, not yet available, that gives you a big magnetic

00:12:49   thing? Weird product.

00:12:53   Yeah, this is, I don't know. Whenever there's a computer or technology thing that comes

00:12:59   out and lacks something that came before it, there's always a market for third parties

00:13:05   to come in and offer the comforts of the previous thing in some kind of bolt-on thing that costs

00:13:11   between $40 and $100. This is true of all technology whenever any progress is made.

00:13:17   And sometimes it's worth using, usually it's not. In this case, and you know, Griffin's

00:13:22   stuff I've had, honestly I've had mixed success with Griffin's stuff, so I'm not even sure

00:13:27   I would trust this to work and be of high quality. So I don't know, I don't really see

00:13:35   why people would want to go through the hassle of this and as you said, to kind of like bulk

00:13:40   up that port, ruin that port, I don't know. It doesn't seem, it seems like this is a problem

00:13:46   that is not worth solving because the solution to it is too clunky itself.

00:13:50   I don't even know if it's a problem, like we don't know. The other thing is, there's

00:13:53   no USB pass-through. This takes your one and only port, this fills it with power and that's

00:13:58   it. So, you know, I can't believe they didn't even provide a pass-through so you could...

00:14:02   You sure about that? That makes it suck, really.

00:14:05   So, $40 to fill the one port.

00:14:09   Anyway, it shows like, that's kind of how product companies work.

00:14:11   Like you said, you hit the nail right on the head saying, "Someone always makes one of

00:14:15   these things."

00:14:16   And it's mostly to make people, like you said, feel more comfortable.

00:14:18   I used to have MagSafe, and regardless of whether I need MagSafe now, I want to still

00:14:24   have it because it makes me feel comfortable.

00:14:25   Maybe it's needed.

00:14:26   I don't know.

00:14:27   I haven't done the experiment, and as far as I know, nobody has.

00:14:30   But another solution to this would be if Apple just put enough battery life in that laptop

00:14:34   that you wouldn't need to plug it in all day.

00:14:36   You gotta plug it in sometime.

00:14:39   Even if you're just putting it somewhere to charge and someone walks by your desk and

00:14:41   yanks the thing.

00:14:42   Yeah, but the MacBook One has pretty mediocre battery life among the rest of the lineup.

00:14:47   It's pretty small.

00:14:49   The Skylake revision will presumably get noticeably better, but it's still gonna probably require

00:14:54   being plugged in if you're using it all day.

00:14:56   So the next one is another thing that takes advantage of the versatility of the USB Type-C

00:15:02   port.

00:15:03   It's even bigger.

00:15:04   like rectangular thing that pokes out the side of your MacBook one but it

00:15:09   gives you a whole mess of ports it gives you two big normal size USB it gives you

00:15:13   SD card looks like a CF card and also has to pass through for USB C and this

00:15:17   one is from hyper this looks nice to me I was just talking at work today with

00:15:23   someone so I think I'd mentioned in the past that where I'm working these days

00:15:26   there are cinema displays everywhere or well really Thunderbolt displays I

00:15:30   should say and I've always been so jealous because I've always kind of

00:15:33   wanted one of those so that I could just sit my laptop down,

00:15:36   plug in just a couple of cables,

00:15:37   and then I'd be connected to ethernet,

00:15:39   my microphone and whatnot.

00:15:41   And this is a $50 on sale, kind of mini docking station.

00:15:46   Although it doesn't have ethernet,

00:15:48   which is a little bit of a bummer,

00:15:50   this is the sort of thing that if I had a MacBook One,

00:15:52   I would absolutely stick one of these on my desk

00:15:54   and make it a little easier to use.

00:15:56   - Yeah, I mean, what's promising about this too is,

00:15:59   there have always been similar products,

00:16:01   although never very many of them,

00:16:03   before Thunderbolt, and they were always basically

00:16:06   from like $200 and up.

00:16:07   So it's promising that USB-C stuff is so cheap to make,

00:16:12   even though it is obviously a little more limited,

00:16:13   like technically, than the Thunderbolt.

00:16:16   But this is nice.

00:16:17   What's a few more interesting things,

00:16:19   first of all, this is very, very small,

00:16:20   and it seems to fit the profile pretty well of the laptop,

00:16:24   so that's nice.

00:16:25   - Yeah, it is small, but it's a small laptop,

00:16:29   compared to the size.

00:16:31   It adds significantly to the laptop percentage-wise, I feel like.

00:16:35   Like it changes you from your little tiny portable thing to something that's really

00:16:38   big and here's the thing that worries me a lot when I look at it.

00:16:41   Is the USB-C port the only mechanical connection between this, again, like small and absolute

00:16:47   size, but large and relative size?

00:16:49   Is that the only connection to the thing?

00:16:51   Like what if you tried to pick this thing up from the side with the adapter on it and

00:16:54   accidentally grabbed a little bit below the USB-C port?

00:16:56   Would you twist and crack the thing off?

00:16:58   doesn't seem to have any other means of connecting itself to the thing other than the USB-C,

00:17:04   but I'm sure it's lightweight and everything. It just, what it looks like is extending your

00:17:08   laptop sideways by an inch, but it's not. It's like, I don't know, it just seems like

00:17:13   it is a lever made to break that connector. Yeah, that's a good point. This, well, and

00:17:18   again, you know, you can look at this stuff, like, I think if you're going to be connecting

00:17:22   things to your MacBook on a regular basis, the MacBook One is probably not the right

00:17:28   model for you. You know, because we know a lot of people who have these things, most

00:17:32   of whom love them, and the number one thing we hear from these people who love them whenever

00:17:38   the port conversation comes up is, "They don't really ever plug anything in, so it's

00:17:42   fine." And I think if you're going to be plugging things in, just get either an Air

00:17:47   or the presumed soon to becoming Skylake 13 inch Pro,

00:17:52   which should probably be pretty competitive

00:17:55   thinness and lightness wise to the 13 inch Air,

00:17:58   but we'll see.

00:17:59   - Yeah, I dig this though.

00:18:00   Especially the price, like you said, Mark.

00:18:02   I mean, that is stunningly cheap.

00:18:04   - Yeah, 50 bucks.

00:18:05   I mean, you can't get a Thunderbolt cable for 50 bucks.

00:18:09   - Seriously.

00:18:09   - Well, you probably can now, please don't email me,

00:18:11   but you couldn't at first.

00:18:13   - It reminds me of like a PC peripheral

00:18:15   because it's like a CF card reader?

00:18:17   Really?

00:18:18   No, it's not.

00:18:19   Oh no, it's SD and microSD.

00:18:20   Yeah.

00:18:21   Oh yeah, maybe I'm misjudging the size then, because everything is relative to the size

00:18:24   of the MacBook and I keep forgetting how darn small that thing actually is, so yeah.

00:18:28   But anyway, the SD and the microSD, if you took out those two slots, then you wouldn't

00:18:34   have such a long lever with which to crack off the USB-C connector.

00:18:38   But then there would be, it's almost as if I think like, go full length and just add

00:18:42   like seven more slots or go even shorter and just add the full size USB you know and the

00:18:49   passthrough I don't know I don't know anyway people apparently buying them so like I said

00:18:53   you can't really go that far wrong for 50 bucks and I would definitely recommend this for people

00:18:59   who have their laptop on their desk like not for people who are constantly picking it up and

00:19:04   carrying it from place to place or if you want to travel with it and like if you want to be like on

00:19:07   on the plane but you have like plain old USB peripherals

00:19:11   that you need to use or you wanna be swapping SD cards

00:19:13   to do but you know pulling pictures off cameras

00:19:16   while you're sitting in your plane seat,

00:19:17   I wouldn't want this thing hanging out the side

00:19:19   while I'm trying to handle my thing on the tray.

00:19:21   Anyway.

00:19:22   - Well, see to me I think this would actually,

00:19:24   I would go the opposite way.

00:19:25   I would say for a desk you'd want something

00:19:27   with like one cable that plugs in

00:19:29   and then has some kind of breakout box

00:19:31   with the other stuff in it.

00:19:32   That way you can kind of get it away

00:19:33   from the side of the computer

00:19:34   and not have the stress on there every single day

00:19:37   and kind of make a cleaner desk if you can hide that stuff

00:19:40   somewhere behind the desk or under it or whatever.

00:19:42   Whereas this one I think would be better for travel

00:19:44   because you get adaptability to these

00:19:48   three different port types in one small thing

00:19:50   that doesn't have itself its own cable.

00:19:53   So for like size and tidiness in a travel bag

00:19:56   full of other cables and adapters and computer junk,

00:19:59   this would actually be a big win I think.

00:20:00   - I was saying on the desk,

00:20:02   mostly because then there's less chance of

00:20:05   someone lifting up and cracking the thing off.

00:20:07   You know what I mean?

00:20:08   'Cause it's like it's laying flat on the desk

00:20:10   and you can manipulate it and stick the things into it.

00:20:12   But you're right, like on desk even better

00:20:13   would be a cable that snakes away from the thing.

00:20:15   And it does work well for travel in terms of clutter,

00:20:18   but I don't know, it just makes me nervous just looking at it

00:20:21   like I keep looking at the close of pictures.

00:20:23   Like it really is just that little tiny connector.

00:20:26   It just, it doesn't seem right.

00:20:29   - Yeah, that would make me nervous as well, to be honest.

00:20:31   But I mean, it's not, and the thing is,

00:20:32   I think you're not gonna break the computer with that.

00:20:34   you're gonna break the adapter because the computer has the aluminum case like laser cut opening around that that's not you're not gonna break the

00:20:41   Computer by twisting the thing

00:20:42   I feel like you're gonna break the or maybe it would be just a battle between the two pieces of aluminum to see which one

00:20:47   World's least interesting battle. Yeah. Well, it's exactly all these people are doing like the what was it?

00:20:54   MKB HD or whatever was doing his

00:20:57   Stabbing the the iPhone 6 suppose that iPhone 6 screens with a knife and everything

00:21:02   We need the even more boring equivalent of that,

00:21:05   of let's stress test the connector

00:21:06   on this USB hub type thing, 'cause that's our domain.

00:21:09   If we had a YouTube channel, it would be all USB hubs.

00:21:13   - Hey, you heard it here first, Hyper Shop.

00:21:15   Send us one of these to review,

00:21:16   along with a MacBook One that you don't want,

00:21:18   and we will do this test on the air for you.

00:21:22   - Marco will film it on his fancy still image camera

00:21:24   that's also kind of a video camera.

00:21:26   - Yeah, yeah.

00:21:26   - Goodness.

00:21:29   All right, anything else on this thing?

00:21:31   I can't believe this is the news this week.

00:21:34   This is why I hate CES, because the only news that happens

00:21:38   is either pie-in-the-sky stuff that will never come out

00:21:42   or USB port news.

00:21:45   It's nothing.

00:21:46   - Well, there was some CES news.

00:21:47   People keep sending me the stories about the OLED TVs

00:21:51   that are going to be shown or announced at CES,

00:21:54   and maybe they have been by today,

00:21:55   but I haven't caught up on the stories.

00:21:57   I basically just wait for CES to be over

00:21:59   and then find the summary stories

00:22:00   pick out the three things that were actually good or interesting at CES and then just read

00:22:04   that.

00:22:05   That's really all.

00:22:06   But CES is good for people who are interested in TVs.

00:22:08   You either find out that it's not an interesting year where nothing good has happened, or you

00:22:13   find out, oh, everyone is still obsessed with 3D, or everyone is still obsessed with curved

00:22:17   screens or some other gimmick that you don't like.

00:22:19   This year, the gimmick seems to be high dynamic range, which I am interested in and I hope

00:22:24   is an emerging standard and will be...

00:22:26   Because it's a legitimate picture quality improvement, not something that's gimmicky

00:22:32   like 3D and not something that's ridiculous like The Curve.

00:22:36   So I'm glad for that to be the new thing this year, but if it's the new thing this year,

00:22:42   that means all the televisions that have any kind of support for this this year are going

00:22:45   to be like the very first generation that tries to support it, and maybe there are competing

00:22:49   standards and that's all got to work itself out, so it's still not time to buy a TV.

00:22:54   But I would like to read about that, but I haven't yet.

00:22:56   So I don't think CES is a total loss.

00:22:58   It's just like a 98% loss.

00:23:01   - Wow.

00:23:02   - What a low bar that we've set.

00:23:04   Oh God.

00:23:07   So John, your summary of the TV news coming out of a CES is--

00:23:12   - I haven't read it yet.

00:23:12   That's my, I will give, next week I will know more.

00:23:15   But yeah, my summary is it seems like

00:23:17   dynamic range is the thing this year.

00:23:20   And I don't know whether everyone

00:23:22   is over the curve screen thing yet.

00:23:23   - Breaking.

00:23:25   We should actually send, I would love to send you

00:23:28   to Las Vegas for this week, just to capture

00:23:31   the misery of that trip.

00:23:33   That, like I would go for that if it was just

00:23:36   to film you being there.

00:23:38   - Nobody wants to go to CES, nobody does.

00:23:40   That's the thing that I think people don't understand.

00:23:42   Like, for those of us who know a lot of people

00:23:45   who cover CES as part of their job, nobody likes it.

00:23:49   Like, people like going to, back in the day,

00:23:51   people liked going to Macworld to cover it.

00:23:53   If you're interested in Apple stuff,

00:23:55   People like going to WWDC.

00:23:56   People like going to Google IO

00:23:57   if you're interested in Google stuff.

00:23:59   Nobody likes going to CES, nobody.

00:24:01   I think a lot about who is this for

00:24:03   and I guess it's, is it for like retailers or advertisers?

00:24:08   - Jon, it's the consumer electronics show, come on.

00:24:11   - Oh no, no.

00:24:13   - I mean it seems like there's a lot of legitimate reasons

00:24:15   for some people to be there.

00:24:16   Seems like there's a lot of like meeting with the reps

00:24:19   that happens in private meetings

00:24:20   that can be very useful to people.

00:24:22   But to actually be on the show floor,

00:24:24   I don't really know who that's for necessarily,

00:24:27   besides people who are tasked with covering it

00:24:29   and who, as you said, usually hate this job

00:24:32   because it is grueling and pretty intense.

00:24:35   - But even the people who are meeting

00:24:36   with the reps behind closed doors,

00:24:38   I think they like the meetings,

00:24:39   but they wish they could meet basically anywhere

00:24:41   in the world other than CES.

00:24:43   (laughing)

00:24:44   Like, I'll come to your city.

00:24:45   Where is your company located?

00:24:47   I will fly to your city and do,

00:24:48   I mean, I guess maybe it's,

00:24:49   I just never heard anyone say,

00:24:52   I can't wait to go to CES.

00:24:54   Nobody, not vendors, not people who are gonna meet

00:24:57   with vendors, like maybe the only circles I'm traveling

00:25:00   are like people who were like a buyer

00:25:02   for a big store chain, like the Best Buy person or something

00:25:05   who wants to go to see what they're gonna buy for that.

00:25:07   Maybe they look forward to it.

00:25:08   It just seems, it's like the worst of it.

00:25:11   Think of everything that's bad about conferences

00:25:13   and concentrated and then like multiply it by five.

00:25:16   It's kinda like E3 used to be, but at least E3 was exciting

00:25:19   for people who weren't there.

00:25:21   Like even when E3 was at its worst,

00:25:22   I've never been to E3 but I know a lot of people have,

00:25:24   even when E3 was at its worst,

00:25:25   it was just completely overblown

00:25:27   and nobody really, you know, it was exhausting

00:25:30   and nobody wanted to cover it.

00:25:31   It was exciting for people who weren't there

00:25:33   because you would say,

00:25:34   "I can't wait to see what's announced at E3."

00:25:36   So, you know, if you wanted to read the coverage,

00:25:39   you'd get excited.

00:25:39   But my impression of CES is that people who are there

00:25:42   don't wanna be there and people who aren't there

00:25:44   don't wanna read about it.

00:25:45   It's mysterious.

00:25:47   - Our second sponsor this week is Igloo.

00:25:49   go to igloosoftware.com/atp for an intranet you will actually like. Anyone who has worked

00:25:55   in a corporate environment knows how painful intranets can be. The content is stale, the

00:26:00   interface is ugly, and you can't access it on your phone or any kind of modern device

00:26:03   made after the year 2010. Now igloo is an intranet you will actually like because it

00:26:08   is designed with modern technology and modern sensibilities for real usability. Igloo gives

00:26:14   you the flexibility to get your work done, how you want, where you want, and on whatever

00:26:18   device you want. They are truly building a product meant for 2016 and beyond, not the

00:26:23   90s.

00:26:25   With Igloo intranets, you can share news, organize your files, coordinate calendars

00:26:29   and manage projects all in one place. Everything can be optionally social, with comments, like

00:26:35   buttons, revisions, messages, and anyone can add content based on their permissions with

00:26:41   drag and drop widgets and a what you see is what you get editor.

00:26:44   And Igloo makes use of responsive web design.

00:26:47   So it looks fantastic on all of your devices,

00:26:50   whether they exist today or whether they're gonna

00:26:52   come out tomorrow, it'll already look good

00:26:53   because it is fully responsive, modern web design

00:26:56   with modern social and collaborative features

00:26:59   so that you won't have your employees going out

00:27:01   to use things like Dropbox and Twitter

00:27:04   and all this stuff that is public

00:27:06   that you want to keep this stuff inside your company,

00:27:08   inside your internet.

00:27:09   Igloo is very corporate friendly, they're very secure,

00:27:13   all these granular permissions, all the stuff that you need to sell it to your company.

00:27:17   It's even free to use forever for up to 10 people.

00:27:20   So check it out today, igloosoftware.com/atp, free to use up to 10 people and very reasonably

00:27:25   priced after that, and at any size you get a free trial.

00:27:29   So check it out today, igloosoftware.com/atp for that free trial.

00:27:33   Get started now.

00:27:34   Thanks a lot to igloo, the internet you will actually like.

00:27:38   - So a few weeks ago we started talking about Swift

00:27:41   being open sourced and then we got sidetracked by,

00:27:45   I'm not even sure what, but here we are again

00:27:47   scraping at the bottom of the barrel.

00:27:49   So why don't we talk a little more about Swift open source

00:27:52   and actually talk about something that's cool

00:27:53   which is the Swift Code of Conduct.

00:27:55   - Or if you want me to talk about the Mac Pro some more.

00:27:57   - So about the Swift Code of Conduct.

00:27:59   - Yeah, we'll get to the equivalent of,

00:28:01   well we'll get to some pro-rowing topic after this,

00:28:02   but the Code of Conduct is a thing that has been happening

00:28:06   over the past, I'd say year or so, has become more popular.

00:28:09   Every sort of open source project

00:28:11   or volunteer based community thing or conferences,

00:28:15   sort of any sort of ad hoc collection of people,

00:28:19   especially in the tech world,

00:28:21   has been starting to have an actual written down

00:28:23   code of conduct that is exactly what it sounds like.

00:28:26   It's sort of a set of rules or expectations of behavior.

00:28:31   Like just to give examples,

00:28:33   you could have a code of conduct for, I don't know,

00:28:36   a website where people join and want to talk about knitting.

00:28:39   And the code of conduct could say,

00:28:41   if you want to participate in our knitting forums

00:28:43   and talk about knitting,

00:28:45   we don't want you to use curse words or whatever.

00:28:48   And then you can decide,

00:28:49   hey, I don't want to be part of a community

00:28:50   where I can't curse.

00:28:51   So you won't join that knitting community, right?

00:28:53   But it sets clear expectations.

00:28:55   Like here is how we expect people to behave.

00:28:57   And it gives you something like, if someone misbehaves,

00:28:59   you can point to the code of conduct and say,

00:29:00   hey, we have a code of conduct here.

00:29:02   This is how it's going to be.

00:29:03   These are the rules.

00:29:04   If you don't like it, you should go someplace

00:29:05   a different set of rules. And it's like that for open source projects or conferences where like,

00:29:12   "Hey, I'm going to show up to this conference. It's going to be a conference for my favorite

00:29:14   programming language. And there's going to be talks and everything. What are the expectations?

00:29:19   What kind of behavior is and isn't allowed? How are the people in this community expected to

00:29:25   behave?" There's been minimal pushback to the idea of a code of conduct because a lot of nerds are

00:29:30   very literal minded and don't really see the nuances and things. They say, "Oh, a code of

00:29:34   of conduct doesn't actually make people behave in a certain way, you're right it doesn't.

00:29:38   But by writing it down, you're setting expectations. Like you do for kids or whatever. It's more

00:29:45   comfortable to know what is expected. Because that lets everybody decide if they want to

00:29:50   be a part of a community with this set of rules and guidelines. If you think not being

00:29:58   allowed to curse is stupid, you know right away this is not the knitting community for

00:30:02   me. I should go someplace else where people are knitting and also like to curse, right?

00:30:06   And on the other stuff in terms of like making jokes at other people's expense or like any sort

00:30:14   of aggressive behavior and even just writing down stuff like no violence, no hitting other people's,

00:30:21   again it's mostly like you do for little kids. You set the expectations of you know here's how you're

00:30:24   expected to behave in preschool, no biting your friends, we expect you to share, when the teacher

00:30:29   is talking, we expect you to listen, you know, everybody eats at this time and naps at this

00:30:34   time or whatever, it doesn't mean that's all going to happen, but you just want to write

00:30:37   it down. And like I said, the pushback is mostly of people thinking that, are you saying

00:30:46   if we don't have a code of conduct, we allow those things, or this stuff should go without

00:30:49   saying, or writing it down makes it seem like we are telling people that are coming here

00:30:55   that are going to behave badly, why do we need to write down stuff like don't murder

00:30:58   like they should know that already or are you trying to make it sound like we're a bunch of murderers here or

00:31:02   Really what's under the covers a lot of it is

00:31:05   say

00:31:06   You know just coming up with the code of conduct can be like

00:31:09   Especially like programming projects or whatever like if there are debates about technical issues, which we'll get to in a second

00:31:16   Debate the issue don't debate the person don't know ad hominem attacks when you're discussing some feature some programming language or open source project

00:31:25   Don't call the other person a jerk or an idiot. Do not attack the person or that person's personal history

00:31:31   Keep your debate to the topic at hand. And again, this may sound like yeah, these all sound like reasonable rules, whatever

00:31:38   It's like little things to do for kids

00:31:39   But at a certain point people push back against it. An example is the Linux kernel mailing list where

00:31:45   Linus Torvalds or Linus or whatever you want to say it

00:31:48   the creator of Linux very often is

00:31:52   that uses very salty language,

00:31:54   so again, like the knitting forum,

00:31:56   Linux kernel mailing list,

00:31:57   totally allowed to use curse words.

00:31:58   That's in the, you know, if they had a code conduct,

00:32:00   which I'm not sure if they do, but if they did,

00:32:02   it would be in there because that's sort of what they expect

00:32:05   and has been known to say pretty mean things about people,

00:32:08   not just about their thing, you know,

00:32:10   like it's, there is a fine line.

00:32:13   Am I calling, when I say this is the stupidest idea

00:32:16   I've ever heard, I'm kind of criticizing the idea,

00:32:19   but I'm also kind of being mean about it or whatever.

00:32:21   Anyway, that community has pushed back against the idea of trying to be more civil to each other,

00:32:26   or more civil to each other's ideas or anything like that.

00:32:28   So that's, you know, that's the kind of community they want.

00:32:30   If you were to come in there and they were to try to come up with a code of conduct,

00:32:33   and they make a set of rules that past behavior doesn't fit into,

00:32:36   the people with that past behavior feel like they're now being excluded from the community that they're an important part of.

00:32:40   Anyway, all this is a big, rambly way to say that Swift is doing what I think is the right thing,

00:32:46   which is, from the very beginning, having a code of conduct,

00:32:49   and I looked at the code of conduct and it seems pretty sane and pretty tame and I think

00:32:54   it is a good thing for anybody, whether it's in a preschool or a knitting club or an open

00:33:01   source project or a website or a web forum or anything, to write down their code of conduct

00:33:06   as early as possible and revisit it as needed and amend it and clarify and so on and so

00:33:13   forth just to have a starting point and a guideline instead of just assuming everybody

00:33:17   will behave and all agree about what proper behavior is.

00:33:20   It's pretty sad that it's come to this point, but I think that the one universal internet

00:33:26   truth is that even if you don't act like a petulant child up front, anyone on the internet

00:33:33   is but the smallest push away from being a petulant child. And I agree with you that

00:33:38   this is a good thing to have. This reminds me of the post by—was it Randy Harper? Is

00:33:42   that right?

00:33:43   Because that shows what happens if you don't have a code of conduct and if you don't think

00:33:47   about these issues.

00:33:48   Right.

00:33:49   So she had posted—this is FreeBSD—or, well, the woman who used to be known as FreeBSDGirl—she

00:33:56   posted recently a really, really good and not terribly long post about how she was treated

00:34:00   in the BSD community, and it's really pretty deplorable.

00:34:04   And you could argue, just like Marco just said, that that is in no small part because

00:34:09   they didn't really have an established code of conduct.

00:34:11   And then even when they did, if you believe what she says, which I do, they didn't act

00:34:16   fairly once there were issues escalated,

00:34:20   which is really too bad.

00:34:22   But we'll put a link to that in the show notes.

00:34:24   And if you work in any sort of community,

00:34:27   I highly recommend reading her post

00:34:31   because it was fascinating.

00:34:34   - And a code of conduct, as many people will point out,

00:34:36   does not guarantee good behavior

00:34:37   because there's issues of enforcement

00:34:39   and there's debates about how should things be enforced,

00:34:41   is it enforceable at all?

00:34:43   Like another reason people shy away from code of conduct

00:34:45   they think it opens up this big can of warrants and they all have to debate. But these are

00:34:49   important things to talk about. And it's better to talk about them before anything has happened,

00:34:53   like sort it out amongst yourselves, not in light of some actual event, because it's so much harder

00:34:59   to figure it out. It's very difficult to come up with a good set of rules and to figure out

00:35:05   how you're going to enforce them and to follow through on it. But it's so much better to engage

00:35:10   in that process than to bury your head in the sand. Because engaging that process will, first

00:35:14   First of all, for people making the policies, it will force you to think about things.

00:35:17   Like hopefully you'll go and say, "Let me look at other people's code of conduct.

00:35:20   Let me look at what they wrote down."

00:35:21   And I think collectively all the codes of conduct of various communities and open source

00:35:26   projects are getting better by looking at each other in the open source kind of way

00:35:29   and say, "What have they written down?

00:35:30   How have they phrased this?

00:35:31   What kind of—oh, I didn't even think of that.

00:35:32   We should put that in too because I believe in that, but it wouldn't have even occurred

00:35:35   to me to write it because I'm not in that group of marginalized people and didn't realize

00:35:39   that was a thing we had to write down, but I totally agree with it now that I see it."

00:35:42   you know, get it all down ahead of time. And then you're going to have, you know, incidents,

00:35:49   and then you have to figure out how to deal with them. And then you look at how other

00:35:51   people dealt with events and read, you know, read Randy's thing and say, here's how this

00:35:56   community tried to deal with this event. And here's how it went badly. How can we avoid

00:36:00   that? What kind of policies can we have in place to help with it? No one's gonna be perfect.

00:36:04   It's not a guarantee of anything. It just shows that you are engaged in the process

00:36:08   that you are committed to the idea that you can manage your community to be what you want

00:36:15   it to be, to be a more welcoming community, to be a successful community for the kind

00:36:19   of people that you want.

00:36:20   You can make a code of conduct that sets totally different kinds of rules, but it's so much

00:36:24   better to just think about like, "Who do I want?

00:36:27   Who do I want here?

00:36:28   Do I want people who are really technically skilled but also really, really angry and

00:36:32   mean all the time?"

00:36:34   If you want that, write into your code of conduct.

00:36:37   There's an expectation that you'll be berated and curse that.

00:36:41   And we will only accept people who have the highest of skills.

00:36:46   Build the community you want for yourself, whatever it is that you want.

00:36:49   But it's much better to take on that task as an actual thing rather than falling ass

00:36:56   backwards into it.

00:36:58   You just end up with this community and you're not quite sure how you got there.

00:37:02   So that's what I think the important part is.

00:37:04   And Swift is very sensible, and they're coming relatively late in the game because Swift

00:37:07   wasn't an open source project until recently.

00:37:10   And I think they're benefiting from all the other code of conducts that have come before

00:37:15   them.

00:37:18   And at this point, it's kind of the type of thing where if you are a community or an open

00:37:22   source project without a code of conduct, people are going to ask, "Why?

00:37:28   Why don't you have one maybe you should think about?"

00:37:31   Not that they're saying you're bad or anything, but they're saying you may not have thought

00:37:34   too much about this, but history has shown that this is a good thing to have, and the

00:37:38   act of thinking about it will lead you to be a better community.

00:37:42   Agreed.

00:37:43   All right, what else is going on with Swift?

00:37:46   This is a programery topic.

00:37:48   I don't know if Marco talks about all these on Under the Radar, but I saved one for here.

00:37:51   I don't think he got to this one, because it's kind of esoteric, but I continue to follow

00:37:55   the Swift evolution mailing list, or try to follow anyway.

00:37:58   It's still pretty high volume.

00:37:59   talk about the future of Swift and make proposals and debate them and go through all sorts of

00:38:06   other things.

00:38:07   This big process of evolving Swift is becoming more formalized with different phases of whatever.

00:38:13   Anyway, this one particular proposal that I thought started to get at the heart of what

00:38:18   seems to be one of the big internal struggles between Swift and the community formerly known

00:38:24   as the Objective-C development community.

00:38:26   I guess there's still not as that.

00:38:27   But anyway, all the people who are writing all the code in Objective-C and Apple is saying

00:38:32   you guys should think about moving to Swift at some point, because we are.

00:38:36   And this is a debate around things that are allowed and disallowed, static and dynamic,

00:38:43   you know, free or clamped down.

00:38:46   And this particular one is about whether classes should be final by default in Swift.

00:38:51   As in, if you don't say anything one way or the other and you define a class in Swift,

00:38:58   should that class be subclassable and amendable and be able to be extended and have things

00:39:04   overridden?

00:39:05   Or by default, should it be all closed up and you can't screw with it?

00:39:08   And it's not really a question about capability, because no one is saying all classes should

00:39:14   be all closed up in final or all classes should be open.

00:39:17   It's just a question of what the defaults are.

00:39:19   And the defaults have two effects.

00:39:21   One is, obviously it affects the actual code because a lot of people will just take the

00:39:26   default, right?

00:39:29   And so if no one does anything and they just declare a class and they don't know about

00:39:32   this particular keyword or they don't think about it, what do they get by default?

00:39:36   And the second thing is, by choosing the default, if people think about it for a little bit,

00:39:41   they'll see it's like a signal from the design of the language.

00:39:43   We think most of your classes should be like this.

00:39:47   It's the default.

00:39:48   But if you have special needs, make your class like this.

00:39:54   And like, I think in Java, you know, the default is not final.

00:39:58   I don't know anything about Java, I think that's the case.

00:40:00   And so what they're saying is, by default, in Java, if you declare a class, you can subclass

00:40:04   it.

00:40:05   But that's -- we think that's the common case.

00:40:07   But if you have special needs, like, say, for performance reasons, or you really don't

00:40:11   want people extending your class, you can declare it to be final by adding this other

00:40:15   keyword.

00:40:16   So that means that most people who just like Java class blah blah blah blah blah

00:40:20   They're all getting classes that can be subclass and extend and all that other stuff because that's the default and also

00:40:25   philosophically speaking

00:40:26   It's so clear that Java really expects people to subclass your stuff and that the exception to the rule is oh you want to make

00:40:32   You think final and be all closed off or whatever. Sorry if I'm getting this job. I'm gonna say

00:40:35   This job a default thing backwards. I haven't touched job in a really long time

00:40:41   Somebody named Java nut 13 in the chat says it is not final by default

00:40:45   And I think they would probably know because their name is Java nut. Well. Yeah, there's no way they could have changed their username

00:40:51   No

00:40:53   Anyway, yeah, I think my recollection anyway, so the proposal for Swift is to default to final and this would make Swift

00:41:00   one of those languages is saying

00:41:02   Most of the time when you make classes we expect them to be like done

00:41:06   But sometimes you might want someone to be able to extend your class and in that case

00:41:11   We want you to have to put a special keyword or whatever in there to say

00:41:15   Oh other people like I'm writing a base class and other people are supposed to subclass me and override these three methods to do this

00:41:22   other thing and

00:41:23   This is really again. It's not really like a technical debate because both things would still be possible

00:41:28   This is really a sort of battle for the heart and soul of what Swift is and what objective C has been

00:41:34   I pulled a little quote out here from Jordan Rose, who I think is someone at Apple, although

00:41:39   it's very difficult to tell on the Swiss Evolution list when people are speaking for themselves

00:41:44   as users of Swift or as contributors to the open source product, and when they were speaking

00:41:48   as Apple employees.

00:41:49   Kind of implicitly, no one is ever speaking for Apple because no one speaks for Apple

00:41:53   except for Tim Cook, I guess.

00:41:55   But when there's an @apple.com in their email address, like, just, I don't know, does their

00:42:00   opinion carry more weight?

00:42:01   I still haven't quite sorted out the sort of uneasy dance between at Apple.com people

00:42:08   like Apple employees working on Swift and the unwashed masses of the Swift community

00:42:13   and how that power balance works.

00:42:16   And for the most part, the back and forth has been very polite and mostly useful.

00:42:22   I think that mostly people realize, look, Apple's doing most of the work here.

00:42:25   Apple made the language.

00:42:26   Apple is going to do most of the work here.

00:42:28   So while we can have some input, the bottom line isn't, are you going to develop Swift

00:42:31   on your own?

00:42:32   Are you seven people are going to take Swift and run with it?

00:42:35   No, probably not.

00:42:36   So all you can really do is give your opinion.

00:42:38   But anyway, a lot of what this default final thing comes down to is the expectation by

00:42:45   Objective C programmers that any sort of framework, anything in the framework that's like not

00:42:50   behaving correctly or that you're making a subclass of that you can just override methods

00:42:55   that you want to behave in a slightly different way.

00:42:58   Like you can do a lot of interesting things with UIKit and AppKit by overriding things

00:43:04   in subclasses, even things that, you know, overriding them in ways maybe that, you know,

00:43:10   to turn something into a no-op or to make something have an aside effect when it didn't

00:43:13   have before, or even to do things like the Objective-C runtime, reach in and do what

00:43:18   I think they called method swizzling where you just reach in there and you screw with

00:43:22   with the implementation of a base class,

00:43:24   not even in a subclass, but you say,

00:43:25   you know, you've got a blah method.

00:43:27   I would like your, I'll save a reference

00:43:28   to what the original blah method was,

00:43:30   but instead point your entry for the blah method

00:43:32   to my code that will do some other crap

00:43:34   and then call your code

00:43:35   and that will modify everybody who uses this class,

00:43:37   not my subclass, but the base class everywhere.

00:43:39   And those are the types of things you can do

00:43:42   when classes are not entirely closed off,

00:43:44   when you have access to their guts

00:43:45   and you can screw with them.

00:43:46   And then, you know, subclassing above and beyond that.

00:43:48   So again, getting back to what Jordan Rose said here,

00:43:51   He says, "Supporting arbitrary code injection

00:43:53   to someone else's framework is a non-goal for Swift,

00:43:56   perhaps even an anti-goal.

00:43:57   If you replace a method on someone else's class,

00:43:59   you don't actually know what semantics they're relying on.

00:44:02   Of course, Apple code will have bugs in it.

00:44:03   Trying to patch over those bugs in your own code

00:44:05   is one, obviously not an answer Apple would support,

00:44:08   but also two, fraught with peril,

00:44:09   and three, likely to break in the next OS release."

00:44:11   This is referring specifically

00:44:13   to third-party developers saying,

00:44:16   "When things are open and able to be screwed with,

00:44:19   sometimes that's the only way we can ship our damn app,

00:44:20   because you've got a bug somewhere deep in your framework.

00:44:23   And sometimes a subclass isn't enough for us to fix it.

00:44:26   Sometimes you have to reach into the guts

00:44:27   and mess with the method just to make our app not crash.

00:44:31   We can't wait for you to fix the bug, Apple,

00:44:33   in a point one release,

00:44:33   'cause that could be two months from now.

00:44:34   And we need to ship now,

00:44:36   and our application doesn't run on the new OS

00:44:39   that you're about to release.

00:44:40   So we'd love to be able to go into some framework thing

00:44:43   and nuke one of your methods

00:44:45   or mess with it in a certain way

00:44:47   to work around some strange bug.

00:44:49   or even if it's just as simple as like an animation bug

00:44:51   or something that crashes your app but nobody else's app.

00:44:54   Third-party developers are used to be having the freedom

00:44:57   of the Objective-C runtime to mess with these things,

00:44:59   but Swift really doesn't want that type of thing to happen.

00:45:03   Swift would like it if in the future

00:45:05   that it's not something they want to support.

00:45:10   They don't want you to be able to reach

00:45:11   into anyone's framework, Apple's or anybody else's,

00:45:13   and say, "Oh, you have a bug in there.

00:45:15   "I'm gonna fix your bug for you."

00:45:17   Or I want, your thing almost does what I want,

00:45:19   but there's this one behavior it doesn't have.

00:45:21   I would like it that if you did this one thing,

00:45:23   it actually didn't trigger this other action.

00:45:24   So I'm just gonna reach into your guts and screw with it.

00:45:27   And programmers will get used to that freedom.

00:45:30   It's kind of like a, it's a last resort,

00:45:32   but it's nice that it's there.

00:45:34   But if you are a developer of frameworks,

00:45:36   you don't want anyone reaching into the guts

00:45:37   of your crap and messing with it.

00:45:38   Because you don't know what the semantics

00:45:41   of my framework are.

00:45:42   You don't know what invariants you're violating

00:45:46   by messing with that value.

00:45:47   I don't want you touching this member variable

00:45:50   you're not even supposed to know exists

00:45:51   that might disappear in the next OS version.

00:45:54   I don't want you messing with anything inside my code

00:45:56   because you don't have the source code.

00:45:57   You don't understand it.

00:45:58   Even if you did, it's my framework.

00:45:59   It's supposed to be like a black box to you.

00:46:00   Just use the public API.

00:46:02   Don't mess with my implementation.

00:46:04   I thought this battle, which is,

00:46:07   we'll link to the MJ size blog post

00:46:10   that links to a bunch of this discussion

00:46:13   and to the mailing list itself,

00:46:14   the Swift Evolution mailing list,

00:46:16   I thought this discussion was fascinating because it really does get at the heart of

00:46:20   the old guard versus the new guard in Swift, and I really wanted to hear both of your opinions.

00:46:27   I don't know what the C# world is like, but I do know what the Objective-C world is like.

00:46:31   So Marco, if he's ever had to reach into some Objective-C framework and screw with it to

00:46:35   get his application to ship, and Casey, what he thinks of this entire battle between the

00:46:41   world of framework authors versus the world of application developers.

00:46:44   - I mean, I've never had to swizzle to do anything.

00:46:49   That to me is over the line of like,

00:46:53   you really, really shouldn't do that.

00:46:55   Like, that is more dangerous.

00:46:57   Subclassing things that aren't intended to be subclassed,

00:47:02   especially in UI kit, I do that a lot, or not a lot,

00:47:06   but I've done that numerous times over the years.

00:47:10   I'm pretty sure Overcast does a little bit of that.

00:47:14   Re-implementing my own methods to override parent methods

00:47:17   in those subclasses that aren't intended to be overridden,

00:47:21   I've done that.

00:47:22   Almost, I totally get it from the developer perspective

00:47:24   of almost always there is something you want to do

00:47:27   in an app that is, that there's just no other way to do it

00:47:31   besides subclassing some UI kit thing and, you know,

00:47:35   re-implementing my own child version of a method

00:47:38   and just hoping I call super at the right time

00:47:40   if I have to at all and just hoping nothing bad happens,

00:47:43   testing it on the one release that I have access to

00:47:45   and then shipping it and hoping it doesn't break

00:47:47   in the future.

00:47:47   That to me, and this is all like, you know,

00:47:51   you're subclassing, when I do this,

00:47:53   I'm subclassing public methods,

00:47:55   so there is some documentation on them,

00:47:58   some public expectation of how they should behave,

00:48:00   they're fairly stable.

00:48:02   So that has never actually caused problems that I know of

00:48:05   to do that that way.

00:48:07   And there really have been a lot of these occasions

00:48:09   where there's a limitation in the public API

00:48:14   of there's just no better way to do this

00:48:17   or there is no other way to do this at all.

00:48:20   And so you have to do stuff like that.

00:48:22   This is one of those things where in theory

00:48:24   it would be nice if you never had to do this

00:48:27   and if you could then have all the technical advantages

00:48:30   of not doing this in a similar way that in theory

00:48:34   it would be nice if every Mac app was sandboxed.

00:48:37   then in practice these strict technical limitations get in the way of reality and real world use

00:48:44   and they kind of require a level of competence and perfection and expansiveness from Apple

00:48:53   and its frameworks that in reality probably won't come. And so it's one of those things

00:48:58   like in theory it's great, in theory having everything be final by default and having

00:49:04   no overrides possible, that sounds great for academic theoretical safety. But in practice,

00:49:12   I don't think modern developers with Apple's frameworks are really able to go that way.

00:49:19   The reality is just not, it doesn't support that. Apple is not that great and developers

00:49:25   aren't that flexible to be required to avoid this entire class of functionality and possible

00:49:32   bug avoidances and bug fixes that simple things like subclass overrides can provide.

00:49:38   Steven: Yeah, you know, it's really hard. Let me start by just quickly establishing

00:49:44   that C# unsurprisingly takes the same approach to this as Java does except where you say

00:49:48   final I would say sealed. So, no, seriously.

00:49:52   Steven (laughing)

00:49:53   Jared (laughing)

00:49:54   Totally different language, I swear.

00:49:55   Steven Yeah, right, exactly.

00:49:56   Jared It isn't Java clone.

00:49:57   Steven No, not at all. So, yeah, so it's sealed

00:49:59   classes to me, not final, but everything else is exactly the same, and they are not sealed

00:50:04   by default.

00:50:05   And in fact, it is striking, even within Microsoft frameworks, to see something that's sealed.

00:50:10   That's very peculiar.

00:50:12   That being said, I think the problem is that—and Jon, you alluded to this earlier—so much

00:50:20   of Objective-C seems to be about subclassing.

00:50:24   And over time, even from my perspective as someone who doesn't live in it, it seems like

00:50:30   that's starting to go away between blocks, between—shoot, I had something else on the

00:50:35   tip of my tongue.

00:50:36   Anyway, it's going away.

00:50:37   But a lot of legacy, Objective-C seems to be about subclassing.

00:50:41   And subclassing, when the author of that class hasn't deliberately decided for that to be

00:50:50   subclassed, is inherently dangerous.

00:50:53   And so much of Swift seems to be about, at least in comparison to Objective-C, about

00:50:59   preventing danger, about having stronger typing, about doing more compile time to check and

00:51:04   make sure you're not doing something stupid.

00:51:08   So much about Swift seems to be about preventing danger and about being safer.

00:51:12   And having carte blanche access, with a few exceptions, to subclass anything is inherently

00:51:19   dangerous.

00:51:21   And so it seems to me that the academic answer is unequivocally that classes should be final

00:51:31   by default.

00:51:32   That being said, one of the things I've struggled with lately, and a coworker of mine that we've

00:51:38   worked together on a couple of projects lately, it's been a really interesting experience

00:51:43   because he is extremely academic, or at least that's the way I think of him.

00:51:47   He really likes to do things by the book, and he really likes to do things the rightest

00:51:51   way possible.

00:51:53   By comparison—and of course I like to do that too—but by comparison I feel like I'm

00:51:57   considerably more pragmatic, or perhaps "loosey-goosey" is maybe how he would describe it.

00:52:02   I would say pragmatic.

00:52:04   And I come down, I think, in the same way that Marco does, that yes, academically, everything

00:52:11   should be final by default, but realistically, I don't see how that's really possible.

00:52:17   And what I think, looking at it from my point of view, what's difficult about this is, Apple

00:52:22   has a tendency to kind of assume they know better than everyone.

00:52:27   And so even if we had classes final by default, I think it's pretty clear that Apple wouldn't

00:52:36   allow classes to be extended and sub-classed very often, because they tend to assume, "We

00:52:42   know better than you.

00:52:43   You shouldn't touch this."

00:52:45   And while in principle that should be true, that Apple should know better than us, in

00:52:50   reality there's so many just minor bugs and issues and things that developers need to

00:52:56   do in order to get around small problems that I don't think that's reality.

00:53:01   And so in the end, the academic in me says, "Yes, it should be final by default," but

00:53:07   I come down with Marco that this seems to be a little too broad and a little too aggressive

00:53:13   a change to be to be right. Is there an Objective-C like @ keyword or something for doing the equivalent

00:53:19   of final or sealed? I don't think it's possible. So my take on this so far from looking at this

00:53:25   thread and thinking about it a lot is that Swift seems to be, like Casey pointed out, like the

00:53:31   whole thing with Swift is it's trying to be uh trying to be less open, less open to interpretation,

00:53:39   less open to possibilities than Objective-C in terms of, will this variable be initialized?

00:53:45   When will it be initialized? What can I guarantee about these things? At what point do I have

00:53:50   a half-initialized object floating around somewhere in my thing? Like, well, you know,

00:53:54   can I be sure that this method I'm calling is going to exist in this thing? How sure

00:53:58   can I be? How sure do I want to be? Some of that is for performance, some of that is for

00:54:03   safety, some of it is for both, but that is definitely the direction Swift is going. It's

00:54:07   trying to have its cake and eat it too. It's like, oh, we do things that are safer and we do things

00:54:11   that are faster and we can do it with, you know, with less typing and less code. Less code means

00:54:18   fewer bugs and so, you know, more power, more safety, more speed, everything's good, right?

00:54:22   But less flexibility is kind of floating around in there, rattling around. All right, more power,

00:54:26   more safety, more speed. Is it as flexible as it used to be? Well, how do you define flexibility?

00:54:31   And AppKit and the Objective-C APIs

00:54:35   really have been built around the ideas of subclassing,

00:54:38   so much so that it seems like it's the expectation, if not,

00:54:42   of the framework offers than at least of the application

00:54:46   developers that if you have some kind of problem,

00:54:50   maybe you can solve it with a subclass.

00:54:52   Maybe that class does everything you need,

00:54:54   but you need to add a little extra functionality.

00:54:56   So subclass it.

00:54:57   And categories are like, subclass too much trouble

00:55:00   because there's a million other places inside the framework

00:55:02   that use NSString?

00:55:03   Throw a category in NSString.

00:55:05   Now all your NSStrings have a route 13 method.

00:55:07   Yay.

00:55:08   Very sort of open to,

00:55:12   like this is a giant world of toys

00:55:15   and you can screw with that world of toys.

00:55:17   And Swift tries to do some of those.

00:55:18   Swift has extensions which are like categories.

00:55:20   Like, oh, you want to throw a method

00:55:22   on every string or number in your thing?

00:55:24   Go ahead.

00:55:25   You want to make a new operator that works on all integers?

00:55:27   You can do that.

00:55:28   Like, yeah, go nuts.

00:55:29   but it tries to do it in a safer way.

00:55:31   So given that safety is such a concern of the language,

00:55:35   I think it's natural.

00:55:38   It fits the Swift language to say final by default.

00:55:43   And furthermore, I think that the technique

00:55:45   of building user interface libraries

00:55:49   where everything is assumed to be subclassable by everybody

00:55:52   leads to a substantial amount of the sadness

00:55:54   that necessitates the weird subclassing

00:55:57   eventually in rare cases the swizzling to happen because not because like the

00:56:02   the application developers are bad but because the people making the framework

00:56:06   aren't giving like when they're writing you know all these classes that make up

00:56:10   the frameworks that people use they're not thinking about designing for

00:56:16   subclass ability versus not there there in whatever mindset they're in it's like

00:56:20   someone could subclass me so I should make this class subclassable but they're

00:56:24   also probably thinking, "But who's gonna subclass this one?" Or they're thinking,

00:56:29   "When I need to update this class, boy, I'm about to update this class in a new

00:56:33   major version of this OS. What about people who subclass the old one? Am I

00:56:38   breaking their crap by changing it?" And it's like, "Well, I can't know. I can't

00:56:41   really know what they did in their subclasses. Like, I had no real way of

00:56:44   expressing the things that I didn't expect to vary versus the things that I

00:56:48   did, and if they overrode this method and did some weird thing or there

00:56:51   was some, you know, timing or ordering thing having to do with this that I don't know what

00:56:56   the subclasses are doing.

00:56:57   And the thing I think that final defaults will force people to do is, especially framework

00:57:03   authors, think more about which parts of this framework should be subclassable.

00:57:10   Like what are the extension points?

00:57:12   What are the things that can vary versus the things that can't vary?

00:57:16   Maybe they'd come to the same decision.

00:57:17   This is the other thing about the final default.

00:57:19   Maybe it turns out that the people who are writing UIKit or whatever, like the next Swiftie

00:57:23   version, you know, because they're very writing core foundation Swift, as they work their

00:57:27   way up the stack, maybe those people who are writing those frameworks will come to the

00:57:30   same conclusion that all the same classes that you can override in UIKit that you'd

00:57:33   also be able to override in some Swiftie equivalent of the same type of UI framework.

00:57:39   Like they would, they would, you wouldn't lose any flexibility at all, but at least

00:57:43   they will have been forced to think about it.

00:57:45   I would imagine what they'd come up with is to reduce the surface area of things that

00:57:51   you can mess with, to make it clearer what classes you're expected to subclass and maybe

00:57:59   to document it better, like how you're expected to subclass, like how does a well-behaved

00:58:03   subclass of this thing, you know, is it possible to subclass this in a way that will break

00:58:09   with the next update of this thing?

00:58:10   Or just making some classes not subclassable at all because you're not supposed to mess

00:58:13   with that, if you really need to mess with it, you should instead extend it or use composition

00:58:18   to make your object have one of these instead of be one of these.

00:58:23   And it just seems like a more natural fit to Swift to me, because I think long-term,

00:58:29   forcing everybody involved, by changing the default, forcing everybody involved to think

00:58:33   more about subclassing instead of it just being the default, like, well, of course,

00:58:37   I can subclass everything.

00:58:38   It's like, you know, it's my right.

00:58:41   It's like the first dominion, freedom of speech and freedom of subclass.

00:58:44   Thinking more about it will cause everybody involved, both the framework authors and the

00:58:49   programmers, to try to reduce the sort of anti-pattern that we see in the existing frameworks

00:58:57   where everything's up for grabs and anytime something updates, nobody is really sure about

00:59:02   what they're breaking because they have no idea what people sub-classed and how.

00:59:07   So I understand all of that, but the problem I come down on is I don't think Apple would

00:59:14   be a good citizen of this mindset.

00:59:17   And this is what I was saying earlier, that Apple would assume, "No, all of our stuff

00:59:24   is flawless.

00:59:25   We don't want you to subclass this.

00:59:27   There's no reasonable reason for you to ever have to subclass this.

00:59:31   So we're not going to allow you to."

00:59:33   And I don't think that they would be pragmatic enough to realize, "Well, we don't see any

00:59:41   particular reason that anyone would need to subclass this class, but you never know and

00:59:48   you shouldn't hurt anything if you do, so we'll just allow you to."

00:59:53   What is the opposite of the final keyword in Swift, you know?

00:59:56   Whatever it may be.

00:59:57   So we'll mark it as "not final."

01:00:01   And I just don't think they'll be a good citizen of this environment.

01:00:03   I think other framework authors might, because they seem to be less aggressive, for lack

01:00:09   of a better word.

01:00:10   But I don't – I just don't think Apple would be a good citizen of that environment.

01:00:14   No, I mean, modern Apple is restrictive by default in many ways towards developers.

01:00:22   And in most ways, that has worked out well for them.

01:00:25   And so that pattern of being restrictive by default is something that is so ingrained

01:00:32   in them that I don't think they're going to revert course in that. I mean, Objective

01:00:38   C is only as flexible and loosey-goosey as it is because it's ancient and it came from

01:00:45   a time and a culture and a company that was very different from today's Apple and where

01:00:50   dynamism was the goal and was considered very advanced for the time. Now, modern Apple does

01:00:58   things like this, where Swift will be all locked down and rigid and strict and final

01:01:06   by default. I see them doing this mostly because it just fits in with the things they see now

01:01:15   is being correct. And in many ways these things go in waves in programming. Programming is

01:01:22   not a young practice anymore. It's been going on for decades. Things go in and out of fashion

01:01:28   and there are trends and there are fashions and there are fads and everything. Open versus

01:01:35   closed, loose typing versus strict typing, dynamic versus static, all these things go

01:01:41   in and out of fashion at different times, often just reacting to what was popular previously,

01:01:46   and they just go in cycles. And we're in a cycle now where what is in fashion today

01:01:54   is strictness and formalism and compile time checks, compile time safety. Apple is right

01:02:01   up there with everyone else with Swift in that regard. And also in just the environment

01:02:07   that apps run it with iOS being locked down,

01:02:11   sandboxed everything, Mac App Store being sandboxed only

01:02:15   if anybody still uses the Mac App Store,

01:02:16   a whole separate discussion,

01:02:18   having technical blocks in front of calling private APIs

01:02:22   and app store apps, things like that.

01:02:24   This is the direction Apple is going

01:02:27   and has been going for quite some time.

01:02:29   So I agree that this is not,

01:02:31   I wouldn't expect today's Apple to,

01:02:34   if given a choice, to redesign something from scratch

01:02:37   as they have with Swift to take the option to say, "You know what? We're going to let

01:02:42   people subclass our stuff." No, they're looking for ways to lock it down. And I think, ultimately,

01:02:48   I think what we've learned as a profession, as programmers, over the last few decades

01:02:54   of having popularized OO programming, I think what we've learned is that subclassing really

01:03:01   is messy and has tons of anti-patterns and tons of potential for weird, unforeseen bugs

01:03:08   and problems and a lot of dysfunction that becomes possible with OO programming. And

01:03:12   of course it's true of everything. But I think as a working programmer, I look around at

01:03:18   my friends and I see people who are all programmers who are kind of evaluating, like people who

01:03:24   are smart like Brent Simmons, kind of evaluating how we should be doing things moving forward.

01:03:29   subclassing in general is going out of fashion very quickly among programmers, not just among

01:03:35   Apple and Swift, but among all programmers I know, subclassing is really out. Like, it

01:03:40   is going out, it is possibly out now. So you can look at Apple and you can say, as I have,

01:03:47   that I really don't see them choosing any differently on this if given the choice. I

01:03:51   see them going final by default just because it's Apple and that's how they are these days.

01:03:56   But also, I think there's enough support

01:03:59   from programmers now for that.

01:04:01   You can't really say Apple is exclusively at fault,

01:04:04   ignoring what everyone's saying.

01:04:06   I think you can say you can make a good case

01:04:07   for there being enough support,

01:04:09   that Apple's kinda making the right call

01:04:10   for the whole community.

01:04:12   - Yeah, and that's the thing.

01:04:13   So to look at it from the flip side,

01:04:17   we don't know the sorts of things

01:04:19   that Apple has to deal with.

01:04:22   We don't know the sorts of crazy, ridiculous hacks

01:04:25   third-party developers do that aren't as skilled as the Brent Simmons of the world.

01:04:31   What makes a Brent Simmons really good at what he does is that he knows when a hack

01:04:35   is the right answer and when it's not.

01:04:39   And typically, since it's being called a hack, the answer is not often.

01:04:42   But we don't see the sorts of BS they have to put up with by the really shoddy developers

01:04:47   that aren't really thinking things through properly.

01:04:51   And so I think if I were in Apple's shoes, it's easy to get lulled into trying to lock

01:04:59   things down, because you genuinely do feel like you know better.

01:05:02   And when you're looking at all these really disgusting hacks, you do know better.

01:05:07   It's not just a feeling of knowing better, you do know better.

01:05:11   But the problem is, it's just the bazooka approach to something that really you need

01:05:17   a scalpel for.

01:05:18   And I mean, I think what makes this discussion so fascinating, what makes me enjoy engineering,

01:05:24   sorry Dr. Drang, so much is that it's these sorts of difficult decisions that make our

01:05:32   job so much fun.

01:05:33   You know, to weigh these options and figure out, well, what is the right answer?

01:05:37   - Well, and also, I think you can look at like modern day Apple as, you know, in being

01:05:42   in this position of authority, if you look at things like the App Store restrictions,

01:05:46   private API restrictions like sandboxing on both platforms,

01:05:49   but especially on the Mac.

01:05:51   I think if Apple presented with the option of,

01:05:54   do you let developers ship something that needs to ship,

01:05:58   and this is like, as you mentioned, this is,

01:06:01   you might be able to say, well, if you're smart enough,

01:06:04   you're allowed to break the rules.

01:06:05   But that isn't, first of all, that isn't usually true,

01:06:08   and you still generally shouldn't,

01:06:10   'cause A, it's still a bad idea,

01:06:12   and B, you probably aren't smart enough.

01:06:14   (laughing)

01:06:16   But, and even for the people who are smart enough,

01:06:19   they still probably shouldn't be doing that

01:06:20   because everyone is dumb at some point while programming.

01:06:24   And you know, the idiot who wrote that

01:06:28   was probably just your past self.

01:06:30   But anyway, if you look at like,

01:06:33   the problems of shipping things,

01:06:35   and the problems of like, you know, in the real world,

01:06:36   especially like so much of the business these days

01:06:39   is consulting.

01:06:40   And as you know, like from being a consultant,

01:06:43   Shipping is often of utmost priority above things like

01:06:48   doing things in exactly the best architectural way

01:06:51   or by best practices, you know.

01:06:53   You just gotta ship stuff and that's it.

01:06:55   But that isn't Apple's problem and Apple doesn't necessarily

01:06:58   play by those rules with the way it treats other developers.

01:07:02   If Apple's given the choice of letting developers

01:07:06   ship more functional stuff more quickly

01:07:09   at the expense of security or restrictions

01:07:13   or calling private APIs, Apple doesn't choose

01:07:16   to let them ship things.

01:07:17   Apple says, you know what, that's not our problem.

01:07:19   We would rather have you not ship a product at all,

01:07:23   or ship a lesser product, or ship a later product,

01:07:27   than break any of these rules.

01:07:28   And there's no better example of that

01:07:30   than everything that's ever happened in the Mac App Store.

01:07:32   Like Apple would rather lose apps to the app stores

01:07:36   and to their platforms.

01:07:37   They would rather lose apps completely,

01:07:39   or have apps be reduced functionality and lose features over time or never have certain

01:07:46   features.

01:07:47   They would rather not allow those things or have fewer apps or have later or worse apps

01:07:52   than have apps that are in a more permissive environment.

01:07:55   >> I'm not sure everything they do in the Mac App Store has that much forethought.

01:07:59   I think there's a lot of unforeseen consequences, unforeseen by Apple as well.

01:08:03   They have a goal in mind.

01:08:04   They didn't realize it would be difficult to get from there from here.

01:08:07   So I think that's off to the side a little bit.

01:08:10   Getting back to something that both of you said earlier about what will Apple do?

01:08:13   Like, you know, you can't trust Apple with this because they're going to lock everything

01:08:16   down because that's the kind of company that they are.

01:08:21   I think it's appropriate for Apple to be more conservative because they're not just a company

01:08:27   that writes a bunch of frameworks that people use.

01:08:29   They are the platform.

01:08:30   They are the foundation.

01:08:31   They are the thing upon which everybody else builds.

01:08:34   They should be more conservative than you are with your own classes and stuff.

01:08:40   That's their role.

01:08:41   Like, so, not that Swift is just made for them, but in any language, if there are tools

01:08:48   to be conservative and to try to reduce the service area, try to reduce the public API,

01:08:53   try to reduce the number of things that other developers call into, like they do with stopping

01:08:57   private APIs in their app stores, and that's all part of the same process, they should

01:09:02   do that.

01:09:03   because they are they're underneath everything else so they have a responsibility to be more

01:09:09   solid and more resilient to people doing crazy things on top of them than the people who are

01:09:15   building on top and your application code be all loosey-goosey all you want you can get away with

01:09:19   that because the people building layers below you don't get to be as loosey-goosey and for apple say

01:09:25   apple does that and they follow through on what you think is their instinct to close stuff up which

01:09:29   i'm not entirely sure that they would because again it would be the same people who are advocating

01:09:31   and UIKit doing the thing.

01:09:33   And UIKit isn't any more closed than AppKit.

01:09:35   They just changed the vectors,

01:09:38   they knew which things would be more likely to vary,

01:09:41   which is why UIKit seems like so much nicer

01:09:42   to deal with than AppKit,

01:09:43   'cause they learned, oh,

01:09:44   when people use this kind of thing,

01:09:45   mostly they want to vary X, Y, and Z.

01:09:47   And so we'll build our classes to make those things vary.

01:09:49   But anyway, if Apple was to close things off

01:09:52   in the new Swift frameworks or whatever,

01:09:55   that would basically force people,

01:09:59   like developers are like,

01:10:00   well, I can't work around this anymore,

01:10:01   'cause I can't even subclass this thing

01:10:02   and override your thing 'cause your stupid framework

01:10:04   is all closed off and I don't have your source code

01:10:05   and it's a binary framework.

01:10:07   So the only thing left for me is to file bugs.

01:10:09   And what that will mean is that many more developers

01:10:12   are forced essentially to, like they have no workaround.

01:10:16   They have to tell Apple, hey, I can't make my button,

01:10:20   you know, tint color on this button blue in this scenario

01:10:22   because there's, you know,

01:10:25   because of the way the framework works,

01:10:26   I have no access to that little knob to turn

01:10:28   and I can't subclass it and do that.

01:10:31   So please, like, you know, I'll file the bug

01:10:34   and I can't ship my app.

01:10:36   You're preventing me from shipping my app

01:10:37   'cause there's no workaround.

01:10:39   And Apple, in response to this,

01:10:41   has added pressure to consider these requests

01:10:43   because they can't say, oh yeah, no, that's a bug,

01:10:46   but for now, you can just work around it

01:10:47   by overriding this method.

01:10:49   Like there is no workaround.

01:10:50   Both parties know, geez, there's no workaround.

01:10:52   We didn't think about this way

01:10:54   that people use the frameworks,

01:10:56   that they can't get it, that they can't change this thing

01:10:58   that seems eminently reasonable to change.

01:11:00   That's going to force Apple to reconsider.

01:11:03   Maybe if we don't have a way to do this,

01:11:06   can we provide a supported way to do this?

01:11:08   And there's much more motivation

01:11:10   to provide a supported way to do this

01:11:11   if it's really a common thing

01:11:13   that tons of developers are asking about

01:11:14   and there is literally no workaround.

01:11:16   And there's no workaround because of what Apple did.

01:11:17   And the workaround isn't, oh, just open that class up.

01:11:19   The fix is, well, we don't want to just open the class up

01:11:23   because we know what kind of problems that leads to.

01:11:25   It ties everyone's hands in the future

01:11:26   and makes it so that the S-O-O-S upgrade

01:11:28   could break your app and stuff.

01:11:30   But if people really want to change this thing,

01:11:32   we should provide a supported way to change it.

01:11:35   Because there is no work around.

01:11:36   And so you would hope, like, what you're hoping,

01:11:38   like this is like all the best laws.

01:11:40   You're hoping that it motivates everyone involved

01:11:42   to behave better.

01:11:44   Like this is something pressing in on a system

01:11:46   and you're hoping what it causes to happen

01:11:48   is for the system to shape itself around this pressure

01:11:50   and this force to become a better thing.

01:11:53   Making everybody become better.

01:11:55   It's difficult for more people.

01:11:56   It'd be easier if they could just do

01:11:57   whatever the hell they want,

01:11:58   And then you just had to go to chaos, right?

01:12:01   And in general, the larger issue about this whole thing, about Swift and frameworks and

01:12:04   Apple being the foundation layer and everything is, you know, less code and increased safety

01:12:10   is what you need when you want to create large, complicated systems.

01:12:13   And our systems keep getting better and keep getting more complicated.

01:12:15   And one of the biggest tools we have to fight against that is reduce the number of things

01:12:19   that can go wrong.

01:12:20   Reduce the number of things that you can do.

01:12:22   Make more things deliberate and less things accidental.

01:12:25   Ding.

01:12:26   Yeah.

01:12:27   Yeah, and and I think that's

01:12:29   It's in the spirit of Swift and it's just in the spirit of the demands in the technology mark

01:12:33   Talk about this going in cycles and dynamic versus static or whatever

01:12:36   I think all like that some of that stuff does go in cycles, but increased safety is an arrow in one direction

01:12:42   Very very rarely. Do we see the world of writing programs?

01:12:47   For that arrow to reverse and say we had this kind of safety where it was impossible to scribble over memory

01:12:52   But we'd like to add that in in the next language to be rose

01:12:55   it always goes towards more abstraction and more safety.

01:12:57   And that safety can take different forms.

01:12:59   People will be misguided about what you need

01:13:00   to provide that safety or how, you know,

01:13:02   because small talk is pretty darn safe,

01:13:05   but it certainly looks nothing like Swift, right?

01:13:07   So the move towards higher level languages

01:13:10   and increased safety, however that may manifest,

01:13:12   that is an arrow that is essentially always going

01:13:14   in one direction.

01:13:15   And I think just the gyrations and getting there

01:13:17   and the different paths towards that goal are separate.

01:13:19   And so is the dynamic versus static,

01:13:21   'cause you can have an, again, like small talk,

01:13:23   an eminently dynamic language that is very, very safe.

01:13:27   And you can also have an eminently static language

01:13:29   that is also very, very safe.

01:13:30   So static and dynamic, I think does go in cycles,

01:13:37   not just based on fashion,

01:13:40   but based on theory and everything like that,

01:13:41   but increased safety, everybody always wants that.

01:13:43   And that's the direction I think Swift is going.

01:13:45   So I don't know if this, I forget who proposed this.

01:13:48   It might've been a third party proposal or whatever,

01:13:50   but bottom line for me is,

01:13:52   I think that since this doesn't change capabilities,

01:13:56   all it does is make everyone involved

01:13:58   think about things differently.

01:13:59   And because the default will be different than objector C,

01:14:01   I hope it will cause everyone involved

01:14:03   to think differently than they used to think about it.

01:14:07   And that Apple will nail more things down

01:14:09   and it will cause more inkemates for developers

01:14:11   and Apple will send the feedback

01:14:12   and then developers will send the feedback to Apple

01:14:14   and Apple will be forced to think about the feedback

01:14:17   and provide a way to do it

01:14:18   because they're reasonable requests

01:14:19   and there is literally no work around

01:14:21   and the end result should be for users,

01:14:23   programs that have fewer bugs,

01:14:25   third-party applications that break less frequently

01:14:26   with OS upgrades, and just generally more solid,

01:14:30   stable code for everyone going forward.

01:14:32   - Our final sponsor this week is Warby Parker.

01:14:35   Go to warbyparker.com/atp.

01:14:38   They make buying glasses online easy and risk-free.

01:14:41   Order your free home try-ons today.

01:14:43   So Warby Parker offers contemporary eyeglasses

01:14:46   that are extremely affordable and fashion-forward.

01:14:49   Glasses should be viewed as a fashion accessory,

01:14:50   not costing as much as an iPhone.

01:14:53   Warby Parker offers prescription eyeglasses

01:14:54   starting at just $95, including prescription lenses.

01:14:58   And they also have a titanium collection

01:15:00   starting at just $145, which includes

01:15:03   premium Japanese titanium and Frank's non-rocking screws.

01:15:06   They also offer prescription and non-prescription sunglasses.

01:15:09   So even if you're 20/20, there's still something

01:15:11   for you at Warby Parker.

01:15:13   All Warby Parker glasses include anti-reflective

01:15:15   and anti-glare coatings, an excellent hard case,

01:15:18   we have one of these in our house,

01:15:19   this thing is built like a tank,

01:15:20   the hard case they come with, it's awesome,

01:15:22   and a cleaning cloth, all at no additional charge.

01:15:25   Whether your eyesight is pretty good or absolutely abysmal,

01:15:28   they have you covered

01:15:29   with a wide range of prescription options,

01:15:31   from simple reading glasses

01:15:32   to advanced digital freeform progressive lenses.

01:15:36   For those of you with very strong prescriptions,

01:15:37   they offer ultra-thin, high-index lenses

01:15:40   to avoid the Coke bottle look.

01:15:42   Now, buying glasses online sounds like it would be tricky.

01:15:44   Warby Parker makes it easy and risk-free.

01:15:46   Their home try-on program

01:15:48   unless you order five pairs of glasses to evaluate for free.

01:15:51   They ship them to you for free,

01:15:53   and you can try them on in the comfort of your own home

01:15:55   and get feedback from anybody around you if you want to.

01:15:57   You can keep them for up to five days,

01:15:59   then you can send them back also for free

01:16:01   with their prepaid return label,

01:16:03   and there's no obligation to purchase anything.

01:16:05   If they aren't for you, you can just stop right there

01:16:07   and you've spent nothing, you're done.

01:16:09   If you decide they are right for you,

01:16:11   they can get started on your order right away.

01:16:13   They can get prescription glasses to you

01:16:14   within 10 business days and usually even faster.

01:16:18   They also believe in giving back to the world.

01:16:19   For every pair of glasses Warby Parker sells,

01:16:21   they distribute another pair to somebody in need.

01:16:23   So whether you could use a nice pair of eyeglasses,

01:16:25   reading glasses, or even sunglasses,

01:16:27   go to warbyparker.com/atp,

01:16:30   order your free home try-ons today

01:16:33   with free shipping both ways and no obligation to buy.

01:16:36   Once again, that's warbyparker.com/atp.

01:16:39   Thanks a lot to Warby Parker for sponsoring our show.

01:16:42   - So John, what does open source Swift mean

01:16:45   for the future of Go and Rust?

01:16:47   I don't know, I just thought it was an interesting question.

01:16:49   So there's a lot of languages out there that are very similar in spirit and visually even,

01:16:55   or the ideas behind them.

01:16:57   Make a language that is kind of like C but without the nasty pointer stuff that is fast

01:17:04   like those compiled languages but that has lots of more safety guarantees where the compiler

01:17:09   can figure out all sorts of stuff for you so you don't have to do manual memory management

01:17:13   but you get the speed of a language like C or C++.

01:17:17   So Go, Rust, and Swift all kind of fall into that family, and they're all relatively new.

01:17:23   Open Source Swift, as we saw from the project being open and the crazy activity on the Swift

01:17:28   Evolution mailing list, and just the sheer number of iOS developers who this language

01:17:32   is potentially for, and even just the general excitement at WWC when Swift was announced

01:17:38   in the first place, that Swift is pretty popular just because it belongs to Apple.

01:17:42   Like if Swift had just been a project off to the side by some random person, we wouldn't

01:17:47   be having these shows about it, but it's because it's coming from Apple that it's very popular.

01:17:52   Go is from Google, another big company, they use it internally, that is a tractor to pull

01:17:56   on Go being very popular. It was also made by some of the folks that made See, so that

01:18:00   has some, you know, celebrity cachet behind it. Rust, I think, is from the Mozilla folks

01:18:05   primarily. I don't know the full backstory on Rust, but...

01:18:09   So if you have to compare the sizes of these communities, you would think that, like, Apple

01:18:14   Apple and Swift is the most powerful, not because they're a bigger or more important

01:18:18   company than Google, but merely because Google uses all sorts of languages.

01:18:21   Google uses a lot of Java, Google uses Python, Google uses Go, so it's not as if there's

01:18:27   like this one Google language, and if there was, Go probably wouldn't be it.

01:18:30   But with Apple, Apple has been for a long time now Objective-C. It's their one language,

01:18:35   and they're moving over to Swift, so they kind of speak with one voice.

01:18:39   All the Apple wood is behind that one arrow, right?

01:18:42   Google will have to come in second with Go and like yeah, Google does have lots of different

01:18:45   languages and has always been kind of like encouraging of using lots of different language

01:18:49   and they have Dart, their own language and all sorts of things.

01:18:52   Lots of languages are mixing around in there but Google is a big company and they write

01:18:55   a lot of stuff and Go is a fairly important language and then finally Google has more

01:19:00   languages than I have Mac Pros like that's – they just – they make a new language

01:19:04   like every six months.

01:19:05   You never know where it goes.

01:19:07   So it doesn't have much behind it.

01:19:08   And then Rust, I think, is even smaller because, like, well, Mozilla, they make a web browser

01:19:13   and a bunch of other stuff, and they're important, but -- and Rust is really interesting, and

01:19:17   it's not like you have to use all these languages, general purpose languages that you could use

01:19:21   for anything, but they all have communities around them.

01:19:23   They're all fairly open, and you could, in theory, write anything you want and go.

01:19:26   Marco even wrote a thing for Overcast and Go, and Rust you could use to write any kind

01:19:30   of -- and same thing with Swift, right?

01:19:32   But Swift coming on the scene and being similar to those other two languages and having the

01:19:36   full weight of Apple behind it could potentially do one of two things. Either it could suck

01:19:41   people away from those things and they can say, "Well, I was interested in Go and Rust,

01:19:45   but Swift seems very similar and it just seems to be like more popular and has a better IDE

01:19:49   and I keep hearing about it and whatever, or I like it better or something like that

01:19:53   or just because Apple's behind it." Or it could have the opposite effect where it's

01:19:56   like, "I wasn't going to consider one of these alternate languages, but now that Swift is

01:20:00   out it seems like all bets are off on what used to seem safe, C, C++ or C# or Java. That's

01:20:05   old and busted, now it's time for me to try out all sorts of new languages. So maybe Go

01:20:09   and Rust receive a huge influx of activity and pull requests and people contributing

01:20:14   to their communities as well. I guess we'll check back in a year and see, you know, I

01:20:18   don't know how you'd measure this. Maybe you'd like go to GitHub or whatever and see like

01:20:21   what happened to the Go and Rust communities and, you know, is there any way we can measure

01:20:25   that? Was the effect of Swift to cause those communities to swell in importance and those

01:20:30   languages to mature and become more popular or was the effect to sort of pull people away

01:20:35   from those two communities and have them sort of wither more now that the giant sun that

01:20:39   is Swift is shining down from WWDC every year.

01:20:43   All right.

01:20:44   All right, thanks a lot to our three sponsors this week, Audible.com, Igloo, and Warby Parker.

01:20:51   And we will see you next week.

01:20:53   Now the show is over, they didn't even mean to begin, 'cause it was accidental.

01:21:01   Accidental.

01:21:02   Oh, it was accidental.

01:21:04   John didn't do any research, Marco and Casey wouldn't let him

01:21:09   'Cause it was accidental, it was accidental

01:21:14   And you can find the show notes at ATP.FM

01:21:19   And if you're into Twitter, you can follow them

01:21:24   @C-A-S-E-Y-L-I-S-S

01:21:29   So that's Casey List, M-A-R-C-O-A-R-M,

01:21:34   N-T-M-A-R-C-O-R-M-N-S-I-R-A-C-U-S-A-C-R-A-C-U-S-A-C-C-R-A-C-U-S-A

01:21:41   It's accidental.

01:21:43   It's accidental.

01:21:45   They didn't mean to.

01:21:47   Accidental.

01:21:48   Accidental.

01:21:50   Tech podcast so long.

01:21:55   - We're gonna name it at the top.

01:21:56   This is what Casey put in here, RIP web objects.

01:21:58   - I think I might have.

01:21:59   - RIP, you mean RIP?

01:22:01   - Yes.

01:22:01   - As in, what does this mean for WebObjects?

01:22:03   - Yeah.

01:22:04   - I don't know.

01:22:05   WebObjects is a mystery to me.

01:22:06   - It's a mystery to everyone.

01:22:08   - I mean, I don't know anything about WebObjects,

01:22:10   but I do know that it is blamed for a lot

01:22:15   of the shortcomings of Apple's web services,

01:22:18   and I would guess it's probably not all about WebObjects.

01:22:22   I'm guessing that it's much more about

01:22:25   the entire rest of the stack,

01:22:27   And that is probably a small part of the problem,

01:22:30   if it's even still part of the problem at all.

01:22:32   - It's probably connected to it,

01:22:34   but just like the consequences, what does it mean?

01:22:36   What are the consequences that spin out

01:22:38   from the fact that you're using WebObjects?

01:22:39   Well, then we have to have it on this platform.

01:22:41   And well, then we have to have it on this OS.

01:22:42   And well, the way WebObject applications work

01:22:45   is they have to be factored in this way,

01:22:46   and you can't really split this up from that,

01:22:47   and you can't, this isn't horizontally scalable,

01:22:49   and these are tightly coupled instead of loosely coupled,

01:22:52   and we can't replace this

01:22:53   with a better version of this component.

01:22:55   There's consequences that ripple outwards from WebObjects.

01:22:58   So WebObjects itself, I would think, is not a big deal.

01:23:02   But I don't know, I just wonder with a technology like that

01:23:04   that just seems to be like the only person left

01:23:05   in the world using it is Apple, which is fine,

01:23:08   but at a certain point, like every company,

01:23:11   even if you're Google, has to be like,

01:23:12   is this gonna be a thing we do?

01:23:14   If it is, we should probably make it open

01:23:15   and try to get other people to use it,

01:23:16   'cause if it's just us using it,

01:23:17   we'll kinda do a crappy job.

01:23:19   It's better to get everybody else on board,

01:23:22   like they're doing with Swift or Go or Rust.

01:23:24   than to try to say, oh, we just use this internally.

01:23:27   We can support our own weird web framework indefinitely,

01:23:30   can't we?

01:23:31   Maybe not.

01:23:32   - What else is going on?

01:23:35   - You wanna talk about the Chevy Bolt

01:23:37   that Sam the Geek suggested in the chat?

01:23:39   - The what?

01:23:40   - Is that the smaller Volt?

01:23:42   - Yeah, it's a battery only.

01:23:44   It claimed up to a 200 mile range,

01:23:47   which would be substantial.

01:23:48   - $30,000, it's not attractive.

01:23:51   It looks like the i3.

01:23:52   - Yeah, I saw an i3 in person again the other day.

01:23:56   It's one of those things, like whenever a new model of,

01:23:58   a new crazy design comes out, at first it seems

01:24:02   wacky and crazy and ugly, and then over time

01:24:04   you kinda get used to it as you see them more and more

01:24:06   and it gets less new.

01:24:08   The i3 has not followed that progression for me.

01:24:11   The i3, every time I see it, is worse

01:24:14   than the last time I saw it.

01:24:16   Oh, it's so bad.

01:24:18   - Yeah, I didn't read anything about this.

01:24:21   I've thought about it in the past.

01:24:22   I'm not in the market for a car, but...

01:24:24   - Wait, aren't you though?

01:24:25   Kind of, for Aaron?

01:24:27   - Well, for Aaron, yeah, but not for me.

01:24:29   But I've been thinking, and this would not be for Aaron,

01:24:32   it would be for me, I rarely drive more than 100 miles

01:24:36   in a week, maybe.

01:24:38   Like, my commute up until I went and did Staffog,

01:24:41   which is Marco's favorite thing,

01:24:42   my commute was like five minutes.

01:24:44   And so I would drive maybe 10 miles in a day, maybe.

01:24:49   - You could take a hoverboard to work.

01:24:51   - Yeah, pretty much.

01:24:51   Which, by the way, I just realized tonight that the hoverboards everyone are talking

01:24:54   about is like a segue without the handlebars.

01:24:57   I had no idea what everyone was talking about.

01:24:59   Basically, yeah.

01:25:00   I mean, it's a lot simpler and less sophisticated, but that's basically it.

01:25:04   Yeah, I didn't realize that was a thing.

01:25:07   But anyway, there's no reason for me not to have an electric car, because I drive very

01:25:12   little.

01:25:13   It would absolutely charge itself overnight.

01:25:16   There's no reason for me not to have one, except that every single electric car I've

01:25:20   ever seen other than the Tesla is either hideous, slow, or both. And I'm just not into that.

01:25:28   So good at Tesla. I need to work like three jobby jobs.

01:25:34   So we're sponsored this week by four more people.

01:25:37   Exactly. I need three more jobby jobs or you guys need to not take sponsorship money for

01:25:44   the next like six months and then maybe we can think about it. I don't know. But this

01:25:48   is interesting, I guess.

01:25:50   The Bolt looks like an American Prius is what it looks like.

01:25:54   Yeah, kinda.

01:25:55   Like, it's small, it's a small, bubulous car.

01:25:58   It's not like the Model S where it's trying to be like a full-sized, regular-shaped car

01:26:04   that also happens to be electric.

01:26:05   There's some—what was that other one?

01:26:07   I forget what the name of the company was, but some company basically taking Teslas and

01:26:10   putting a different body on them.

01:26:12   Oh, yeah.

01:26:13   What is it, Faraday or something?

01:26:15   Is that what that was about?

01:26:16   Yeah, it's like the Tesla, like the little thing you see in the Tesla store in the mall,

01:26:21   just like the battery and the drivetrain and the wheels, and then they build a different

01:26:24   car on top of it and sell it for presumably more money, and it seems silly.

01:26:29   And it was, it's like the FF-Zero or something like that, which made me happy because it's

01:26:34   a play on the F-Zero Super Nintendo game, which I love.

01:26:38   If it was, they would be sued.

01:26:39   Speaking of which, how about that Apple Watch clone from this Swiss mechanical watch maker

01:26:46   - Did you see the black Milanese loop?

01:26:50   - Yeah, I saw it on a rumor site.

01:26:52   That looks interesting, but I mean,

01:26:55   there's no reason why Apple couldn't do that

01:26:57   like off the top of my head, I mean,

01:26:58   unless there was some kind of manufacturing challenge,

01:26:59   but tell you what, so right now,

01:27:02   I'm still on my mechanical watch thing,

01:27:03   but the black, the space black link bracelet that I got,

01:27:08   I don't know, six months ago now for my Apple watch,

01:27:12   that black DLC coating is the real deal.

01:27:15   Like it is still flawless and any kind of stainless steel

01:27:20   band or the stainless steel watch itself

01:27:22   gets scratched to hell in like a second.

01:27:24   The black, the space black with the DLC on it

01:27:27   is just literally like it, mine has no scratches on it

01:27:32   at all, like it is crazy how good that coating is.

01:27:37   So I welcome Apple adding more options that have DLC

01:27:42   because that is, it's just awesome.

01:27:43   It is just so good.

01:27:45   This mechanical Apple Watch is not good.

01:27:48   I don't understand what they're--

01:27:49   - Yeah, I just looked at it the moment you started talking.

01:27:52   That's, wow.

01:27:53   - Why?

01:27:55   Like, Apple had to make it like that.

01:27:56   You don't.

01:27:57   (laughs)

01:27:58   - And to me, it's like, the world of mechanical watches,

01:28:01   if you look at mechanical watches and the appeal they have,

01:28:05   and you look at the complaints that mechanical watch people

01:28:08   have about the Apple Watch, one of the big complaints

01:28:11   is that the Apple Watch just isn't that attractive

01:28:13   of a watch.

01:28:15   So why would you make one that looks just like it?

01:28:19   Like it seems, first of all, Apple's gonna sue the crap

01:28:22   out of you and make this stop immediately.

01:28:24   Second of all, why?

01:28:27   Third of all, they're only selling it in gold,

01:28:30   so it's like 25 grand. (laughs)

01:28:33   I just-- - They gotta make enough money

01:28:35   to pay for lawyers.

01:28:36   - Who's gonna buy that?

01:28:37   Like who's gonna spend 25 grand on that?

01:28:41   - Yeah, I don't know, it just seems silly,

01:28:44   but I mean, it's like these watchmakers,

01:28:48   like what's going on?

01:28:49   What's exciting in the watch world?

01:28:51   This entire year, all we heard about,

01:28:52   it's a stupid Apple Watch.

01:28:53   Can we get in on that excitement somehow?

01:28:56   (laughing)

01:28:57   How about we make, like we can make a smartwatch,

01:28:59   it's like we don't know how to do that.

01:29:01   How make a regular watch,

01:29:02   make it look like the Apple Watch?

01:29:04   All right.

01:29:05   - Yeah, similar, like the Tag Heuer,

01:29:09   I don't know how that's pronounced.

01:29:10   I'm assuming it's Tag or Tog Heuer.

01:29:13   their smartwatch that they released a few months ago.

01:29:17   It's like the, it looks just like a regular,

01:29:21   like you know, round mechanical watch face,

01:29:25   but it is just a black screen, like the Apple Watch

01:29:27   most of the time it seems like, and then like you know,

01:29:29   it turns on and it has a face that looks like

01:29:31   a Tag Heuer watch, you know, but like,

01:29:34   to me again, like that kind of ruins the point.

01:29:36   If you're gonna have a watch where the screen's black

01:29:38   all the time and then eventually you look at it

01:29:39   and you glance at it and there's like a computer

01:29:41   have to manage, then I think the Apple Watch is the one to get because if you want a computer

01:29:47   watch, that seems like it's probably the best computer watch. Right? Like, I don't get it.

01:29:51   Like, now that I've seen this world just a little bit, I totally see the value of a good

01:29:56   mechanical watch, and I totally see the value of a computer watch. And I don't think those

01:30:01   things should be crossed. I think crossing them destroys the value of both, really. This

01:30:07   is going to get now email from all the watch people.

01:30:08   Oh, we've already gotten, even I have gotten a lot of stuff from the watch people.

01:30:14   You know, I've been thinking in the watch world, and speaking of smart watches and mechanical

01:30:19   watches and everything, I've been impressed so far anyway, still, by the way, another

01:30:23   year, but impressed with how Fitbit has reacted to the challenge of the Apple Watch.

01:30:29   Reacting by basically making newer and more capable series of things that are mostly featureless

01:30:36   bands with very simple screens incorporated into them in subtle ways.

01:30:41   I saw a picture of the president wearing one and a lot of people have the newer Fitbits.

01:30:45   They found kind of in the same way that the Pebble didn't, or maybe, you know Pebble had

01:30:49   some good ideas too, but like trying to find like how am I different than the Apple Watch

01:30:53   but still a valuable product?

01:30:55   Like what is the road that is still available to me to go forward?

01:30:58   And Fitbit seems to be, I mean who knows, they could be like the Flip, remember the

01:31:02   flip camera back in those years before the iPhone shot video.

01:31:06   Oh yeah, the flip camera had a really great business for like three years.

01:31:09   Yeah.

01:31:10   Right, and so it still remains to be seen if Fitbit will find a way out of the woods,

01:31:14   but so far, their reaction in the post-Apple watch time has been pretty good.

01:31:18   No, they found it.

01:31:19   It's the Fitbit Blaze.

01:31:20   Is that a real thing?

01:31:21   Yeah, look at it.

01:31:22   That's how they're getting away from the Apple Watch.

01:31:26   Oh, that's the—the one thing that looks like an Apple Watch with the corners punched

01:31:30   out?

01:31:31   - That's not the way I would say you would go towards it,

01:31:33   but I'm talking about the other Fitbit products.

01:31:36   - The Ything's Activity Steel, this I think is a more,

01:31:41   this is like a better competitor,

01:31:42   at least I haven't seen one in real life,

01:31:44   but on their website it looks really nice.

01:31:46   Like this is the kind of thing,

01:31:47   like I can see buying that and valuing that

01:31:51   rather than an Apple Watch before I could see like,

01:31:55   you know, the big Fitbit corner cut off Apple Watch.

01:31:58   I don't know.

01:32:00   - It's a smart approach, it's mostly a mechanical watch,

01:32:03   basically, or I mean it's a quartz probably,

01:32:05   but it's mostly a regular watch with some very slight

01:32:09   activity tracking and sleep alarm kind of thing.

01:32:12   So it still has all the battery advantages

01:32:14   of a regular watch, it's low cost,

01:32:16   it's only under 200 bucks, long battery.

01:32:20   - It can be more attractive.

01:32:22   - Yeah, I think from these pictures

01:32:24   it looks pretty attractive, who knows again,

01:32:25   who knows what it looks like in real life,

01:32:26   but it looks pretty decent, under 200 bucks,

01:32:30   activity tracking built-ins,

01:32:32   that seems like that's a better kind of approach

01:32:35   to try to compete with the Apple Watch,

01:32:37   rather than to be a full-featured computer platform

01:32:40   because you're not gonna do that

01:32:42   if you're WiThings or Fitbit.

01:32:44   You're not gonna be able to compete on that front.

01:32:46   - Yeah, the Blade looks more like a fitness,

01:32:49   totally focused on fitness, GPS type thing,

01:32:52   but I was thinking of the Charge and the Charge HR

01:32:54   and even the Flex,

01:32:55   evolution of the Flex into increasingly large rubbery bands with a tiny little screen that

01:33:01   appeals to people for athletics.

01:33:03   Like it's for activity and athletics just so focused on fitness.

01:33:06   Fitbit's right in the name.

01:33:07   I guess they do have a clear path, like Fitbit.

01:33:10   We're not going to be a general purpose platform for smart watching.

01:33:14   Everything we do is going to be about fitness.

01:33:16   And so you can make this whole line of products with a similar value proposition of we track

01:33:20   the stuff that you do and your heart rate and your activity and we connect to your smartphone

01:33:24   with an app and do all that stuff, but there's no real brains in our thing.

01:33:27   It's just an accelerometer and a tiny simple screen and some Magic Invisible Bluetooth

01:33:31   that just, you know, make it work.

01:33:32   And even the Blaze thing looks like, you know, like those Garmin GPS things.

01:33:37   Like a really fancier version of a thing you wear when you exercise.

01:33:40   I do not buy the one where they show like the woman in like with jewelry with her fancy

01:33:44   purse.

01:33:45   I do not buy that scenario at all for this thing because it is huge and I absolutely

01:33:52   don't buy it as anything. Oh boy, it looks bad.

01:33:54   Yeah, the one where it's like, it's a woman and a man going on a date, the man's wearing

01:33:58   a whole suit, and it's like, he's wearing a suit with this watch.

01:34:01   Yeah, I didn't know this existed. I may have to take back some of my credit to Fitbit.

01:34:06   But the other things, I see them around a lot. I see them around a lot in regular people,

01:34:10   and they so clearly have, because they're so cheap compared to the Apple Watch, and

01:34:15   they're so, like, not disposable, but they're made of plastic and they're rugged and they

01:34:22   They have such a clear purpose and they're simple and you don't have to worry about rebooting

01:34:28   them or updating the OS or getting apps for them.

01:34:32   They just, again, remember the Flip camera.

01:34:35   We'll come back to this in a year and see how this is all shaken up.

01:34:38   Yeah, I mean, I really do think there's going to be a healthy market for inexpensive, more

01:34:45   focused smartwatches that are not full-fledged app platforms.

01:34:50   Because you could argue, you're looking at the Apple Watch,

01:34:52   how the Apple Watch really isn't a great app platform either.

01:34:56   It tries to be, and maybe it will be in the future,

01:34:58   but at the moment it isn't.

01:35:00   And what people tend to like most about the Apple Watch

01:35:05   is the stuff that a $200 less capable watch

01:35:09   with a longer battery life probably could do most of.

01:35:13   - Yeah, like this withings or whithings thing.

01:35:17   Like, you know, it's the old,

01:35:18   as the price of compute drops to zero,

01:35:20   eventually smart guts go into everything just because it's so freaking cheap.

01:35:23   You're going to like it's why?

01:35:24   Why would you have this a regular quartz watch without some very basic

01:35:28   accelerometer step tracking and computer smarts and wireless connectivity?

01:35:32   Because eventually that the thing that does all that on one tiny system in the

01:35:35   chip five years from now, it's like that costs less than the little metal bar

01:35:40   that we use to connect the straps, like just put it in. It's free.

01:35:43   And so everything has some amount of smarts in it.

01:35:45   And then Apple is making the high end one where they're always pushing the envelope.

01:35:48   like what kind of crazy computing stuff can we put in here?

01:35:50   But it's like, you know, like the internet of things.

01:35:53   Eventually it's just like,

01:35:54   we're gonna put a smart chip in everything

01:35:56   and we think that will make it better.

01:35:57   And it probably won't in the beginning,

01:35:58   but it just becomes so cheap that you just do it

01:36:01   because you can and you just try to like find a use for it.

01:36:04   And eventually, hopefully we will find,

01:36:06   in the same way that electricity came around to everything.

01:36:08   And you know, like everything didn't have electricity.

01:36:10   Oh, I need electricity for a light bulb.

01:36:12   Well, what about electricity in the thing

01:36:14   that heats your house?

01:36:16   You don't need electricity for that,

01:36:17   Shovel cold and what about electricity in the thing that cooks your food? Well, you just put wood in the stove

01:36:22   What about you know toasting your bread? I just put it in the oven. Why does it need to be in everything?

01:36:27   It's just gonna make everything worse and in the beginning it did but eventually everything's got freaking electricity

01:36:31   So that's gonna be the same with

01:36:33   With CPUs not everything has CPUs now, but it is inevitable

01:36:37   They will in the same way they all got electricity because and we'll have to endure

01:36:41   These stupid years where it makes everything worse

01:36:45   You know like I'm I'm absolutely sure that the first electric stoves were hated by everybody who was used to the quote-unquote real stoves

01:36:53   that didn't have electricity, but eventually we worked it out and even even today some people still have giant gas stoves, but

01:36:58   No computers coming watch out

01:37:01   Yeah, I don't know I as I said last time and now that I've spent some time wearing a mechanical watch

01:37:09   it is really nice to have something that does not need to be charged or have software updates.

01:37:16   Like it's so nice because everything else in my life now has to be charged and require software

01:37:22   updates. And by the way, works 97% of the time, but not that last 3%. Even the crappy mechanical

01:37:32   ones, that's what I'm talking about. When the compute comes everywhere, it'll be so small that

01:37:35   you won't need to charge it all the time. Like it'll probably charge itself from the motion of

01:37:38   your wrist or something and you won't need to update it with software because it will

01:37:40   do so few things and it will be a fixed set of functionality but there will still be a

01:37:44   CPU in there.

01:37:45   Like in the same way that half of these vacuums you're testing probably have some microprocessor

01:37:49   somewhere or something, you never need to update it, you're never going to update it,

01:37:51   it just does what it's going to do, you don't even know it's there, you don't have to think

01:37:54   about charging it because you plug it in, but it's in there.

01:37:57   In the same way all of our cars have a bazillion computers in them now, for the most part we're

01:38:01   not running software, well Marco is now, but most of us are not running software updates

01:38:04   on our cars, but they're just, they're filled with CPUs.

01:38:08   So that's the progression.

01:38:11   If you're still thinking about it

01:38:12   and having to charge it and run software updates,

01:38:14   that's clearly like on the leading edge

01:38:17   of adding computers to things.

01:38:19   When we stop even knowing there's a computer in it,

01:38:22   that's the trailing edge of adding computers to things.

01:38:23   I kinda don't know if cars are on the trailing edge

01:38:26   because cars have this whole other revolution

01:38:27   of having their interiors become computerized,

01:38:29   but the engines have long since been computerized

01:38:32   and that ship has kind of sailed,

01:38:33   now we're computerizing the whole rest of the car. I'm trying to think of another example

01:38:36   of something in our house, maybe washing, maybe dishwashers or washing machines that

01:38:41   used to just be like circuit boards with a bunch of fixed circuits and stuff, and eventually

01:38:44   they just all got CPUs. And we don't think about it. And you don't update them, and you

01:38:48   don't have to charge them, and it's not a hassle, and they don't crash, because what

01:38:51   they do is so stupid and so simple, and, you know, for the most part. I don't know. Maybe

01:38:56   we'll come up with a better example.

01:38:57   - Yeah, that's fine.

01:38:59   Like the stuff that's basically like a sealed box

01:39:02   where you can't get a firmware update for your dishwasher.

01:39:06   I'm sure it's possible for service people to do it,

01:39:08   but that isn't something that consumers are expected

01:39:10   to ever do or even able to do,

01:39:13   because what they do is so simple and basic,

01:39:15   like you hope there would be no need for such a thing.

01:39:18   But where the danger of being annoying and unreliable

01:39:21   comes in is when you have something as complicated

01:39:24   as an app platform.

01:39:26   you know, like a device that has an app platform,

01:39:28   like a smartwatch, like that, that is complicated.

01:39:31   So now you're expected to have like a smartwatch,

01:39:34   a phone, maybe a tablet, certainly a computer,

01:39:37   or one of those things, you know,

01:39:39   so like you have all these devices,

01:39:40   and then your cars are getting smarter,

01:39:42   they have software that, whether it gets updated or not,

01:39:46   it probably needs to.

01:39:47   Like my car now does not have over-the-air updates

01:39:51   the way Tesla does, but it has plenty of software bugs

01:39:55   that should be fixed.

01:39:56   Like, they just don't get fixed, you know?

01:39:59   - Well, yeah, the platform thing is interesting

01:40:01   because I think we're in the process

01:40:02   of trying to figure out what things should be platforms

01:40:05   and what things shouldn't.

01:40:06   I think like, for the most part,

01:40:08   thus far we've decided that washing machines

01:40:09   should not be application platforms.

01:40:11   I think we're all pretty much in agreement there so far,

01:40:14   but people are willing to try things out.

01:40:15   Should watches be application platforms?

01:40:17   Should phones?

01:40:18   Should televisions?

01:40:21   We're finding out the answers to those things now.

01:40:22   I think we pretty much found out phones, yes,

01:40:24   They should probably be application platforms too.

01:40:26   Televisions, jury kinda maybe still out.

01:40:29   Watches, jury still out.

01:40:31   Cars, I think you're gonna figure that out for us, Marco.

01:40:35   Right?

01:40:36   I mean, maybe like that's not really, you know,

01:40:38   everything is potentially one, but they can't all be.

01:40:42   There is no future where everything is an app platform

01:40:44   in the way that we think of app platforms today,

01:40:46   but everything will have CPU.

01:40:48   Everything could be getting magic wireless software updates.

01:40:51   You know, again, as the price of computing drops to zero,

01:40:54   as the power consumption of computing drops to zero,

01:40:56   as it becomes just so damn cheap and so power, you know,

01:41:01   and like ubiquitous wireless networking everywhere

01:41:04   with low power, you just put it in everything.

01:41:07   And if you can come up with the sort of the wireless

01:41:11   internet enabled equivalent of the dumb embedded CPU

01:41:13   that's in your rice cooker that does the fuzzy logic

01:41:16   to fair it when to stop cooking your rice,

01:41:18   if that has some little minor bug,

01:41:20   or even they just want to patch something

01:41:22   because the International Date Authority decides

01:41:23   we're going to skip January 15th in the year 2027

01:41:26   for some reason or whatever,

01:41:28   that all the devices in your house

01:41:30   will wirelessly get updates to handle that date thing

01:41:33   and you won't think about it, that'll be great.

01:41:35   Like that's a potential cool future

01:41:38   and it's eminently possible,

01:41:39   but it still doesn't make you rugs, cooker and app platform

01:41:42   because that just doesn't make any sense,

01:41:44   practically speaking because what would you use it for?

01:41:47   You just want it to be reliable

01:41:48   and like you said with the BMW,

01:41:49   it may have bugs and you would like it if those bugs could be fixed but you don't want to deal

01:41:52   with that crap. Nobody wants to deal with it. You just want it to happen automagically with no

01:41:56   possibility of error. Like the rules for embedded systems are so different than the rules for things

01:42:02   that are app platforms and then when we're out there on the bleeding edge like the Apple Watch

01:42:05   and smartphones and our PCs perpetually on the bleeding edge that's where things get all

01:42:10   unreliable and crappy and it's just a whole different set of rules there. And getting back

01:42:13   to the Swift discussion, if they can try to drag those leading edge platforms towards more safety

01:42:19   at the price of more restrictions, as long as they do it in the same way and

01:42:23   understand what the consequences can be, unlike these sort of unintended

01:42:26   consequences of trying to drag the general-purpose Mac platform to be like

01:42:29   a smartphone with sandboxing, then I think things can work out eventually.

01:42:33   Probably will mostly be dead, but I plan to live for a long time so we'll see.