The Talk Show

139: ‘How Many Fingers Should This Baby Have?’ With Special Guests Craig Federighi and John Siracusa


00:00:00   I always end up seeking back to figure out what part I missed where the podcast started,

00:00:06   and then I realize it just starts.

00:00:11   That is how it goes, Craig.

00:00:12   It is.

00:00:15   So this is a great thrill for me to be speaking to you.

00:00:21   Craig Federighi, Senior Vice President of Software Engineering at—what's the company?

00:00:29   Apple.

00:00:30   Apple.

00:00:31   Apple.

00:00:32   Yes.

00:00:33   And we are talking on the occasion of the open sourcing of Swift, which went live last

00:00:42   week.

00:00:43   What day was it last week?

00:00:44   It was last Thursday, wasn't it?

00:00:47   It's been huge.

00:00:48   Yeah.

00:00:49   Yeah, but it was incredibly exciting for us.

00:00:52   Yeah, so we're speaking, as we speak, it's about a week later.

00:00:55   So how do you think this first week of Swift as an open source project has gone?

00:01:00   Yeah, really, really well.

00:01:02   I mean, the level of activity on GitHub is off the charts.

00:01:07   I mean, we've had really high aspirations for Swift from the beginning, but at every

00:01:12   step it's been pretty amazing for us how much bigger it's gone than we could have ever hoped.

00:01:18   And I think already on GitHub, we're a more active project than I think all the other

00:01:23   languages that are on GitHub, which is just incredible for first week. I think over 60,000

00:01:31   people that have taken a clone of the project. So it's pretty amazing. And the team is just

00:01:40   ecstatic over the whole thing.

00:01:42   Yeah, there's different ways for a big company, especially a big company, to do a quote unquote

00:01:46   open source project. There's sort of like, yes, technically it's open source, but it's

00:01:50   really just sort of a zip file with a open source license and there it goes,

00:01:56   you know, have at it. And then there's the actively engaging in a community

00:02:03   manner with the outer world. And so when you guys announced that WWDC Swift would

00:02:10   be open source, I think there were some skeptics who thought maybe it was going

00:02:13   to be a, well technically it's open source and there it is, but this is

00:02:17   really like full throttle, fully engaged with the the world outside Cupertino.

00:02:23   Yeah, I mean it's funny, I guess there there always will be skeptics, but anyone

00:02:28   who's been watching our team in the context of like the LLVM world, Clang,

00:02:34   LLDB, and our WebKit team would see how how much developing in the open is in

00:02:42   in the spirit of those teams.

00:02:45   And so the Swift team has been among the most engaged with our developer community of any

00:02:51   group in Apple, even prior to open sourcing in terms of from the first launch of our announcement

00:02:58   of Swift 1.0 in the app store, I mean at the WWDC, and how much they were engaging with

00:03:05   all the feedback that was coming in and modifying the language right up to 1.0 and then beyond.

00:03:12   And this is really an extension of how the only way they really have ever wanted to work.

00:03:18   And so, yeah, they are very excited to be working completely in the open.

00:03:23   And it really is a case where as all the features in Swift that we'll be announcing officially

00:03:30   to the world at our next developer conference, you can sort of see them unfold before your

00:03:36   eyes and the time leading up to that as they're working on them in the open on GitHub.

00:03:42   like everything else Apple does.

00:03:44   It's very, very similar to everything else we do.

00:03:47   That's correct.

00:03:48   The thing that to me is most telling-- and I know that GitHub

00:03:51   makes it easy to track all these changes

00:03:53   and see how many people are involved.

00:03:55   But to me, if you just want a quick look at just how much

00:03:58   this is a collaboration between the Swift team at Apple

00:04:04   and the outside world, it's the Swift evolution mailing list,

00:04:09   where you guys have been upfront about this

00:04:13   right from Swift 1.0 in 2014,

00:04:16   that this is not a finished language.

00:04:18   You didn't go and finish a language,

00:04:21   and here it is, have at it.

00:04:23   It's, we're still working on this.

00:04:26   A lot of what we're gonna be working on

00:04:27   is tell us what you need,

00:04:30   and here on the mailing list,

00:04:32   there are people actively engaging,

00:04:34   and employees from Apple, Chris Latner

00:04:36   and the people on his team,

00:04:38   are fully engaging with these ideas and proposals

00:04:42   that are coming from outside the company.

00:04:44   Already one week into it being an open source project.

00:04:47   - Oh yeah, I mean, I think our team

00:04:50   is a really seasoned team in the world

00:04:53   of developing languages.

00:04:55   And we know that a language really

00:04:58   can't be developed in a vacuum.

00:05:00   It is a product of how people use it

00:05:04   and the problems that people are trying to solve.

00:05:06   And so we knew from the outset with SWIFT 1.0

00:05:10   that we could come up with the language that,

00:05:12   a first step you have to crystallize your basic ideas

00:05:15   and have a starting point,

00:05:17   but we knew we needed feedback then

00:05:19   to work toward the language that ultimately SWIFT has

00:05:23   and has become and will become in the future,

00:05:25   but that we needed to have this kind of open dialogue

00:05:29   and open sourcing is, as you say,

00:05:32   just really accelerating and deepening the kind of feedback

00:05:36   that we're getting.

00:05:37   And so it's really energizing for us.

00:05:40   And I think it's really exciting for a lot of the developers

00:05:43   in our community as well to be a part of it.

00:05:46   - What are the other reasons to go open source

00:05:50   with a new programming language?

00:05:53   - Well, you know, when we talked about it just briefly

00:05:56   at WWDC, I think we laid out the big ones,

00:05:59   which are for us, Swift is, we think,

00:06:06   the primary programming language that developers

00:06:10   should be taught to programming in, actually.

00:06:12   I mean, if you're gonna learn computer science,

00:06:14   Swift is a fantastic learning language.

00:06:17   And if you're a developer who is going to invest

00:06:20   a huge part of your career in mastering Swift

00:06:24   and developing code in Swift,

00:06:26   you're gonna want the ability to use that code

00:06:29   in every context possible.

00:06:30   And you're gonna wanna use your skill in that language

00:06:32   in all the environments in which you have to work

00:06:34   to do your job.

00:06:35   So whether you're scripting your build system or writing web services or, of course, writing

00:06:43   your mobile applications, we want to make sure that you can invest in Swift in that

00:06:49   way and know that it's going to be available to you everywhere.

00:06:52   And so we saw open sourcing as a critical element to make Swift reach its potential

00:06:58   to be the language, the major language for the next 20 years of programming in our industry.

00:07:06   It's a really ambitious goal.

00:07:08   It is.

00:07:09   It is.

00:07:10   But I think at every point along the way, because this has been our vision from before

00:07:15   we first unleashed Swift on the world, but at every step, actually, the reaction has

00:07:24   really outdone our expectations.

00:07:26   So maybe our goal isn't so outlandish.

00:07:31   Do you think that-- I would say that for education purposes,

00:07:34   it really has to be open source, because there's really no way

00:07:37   that a language is going to take root as a teaching language

00:07:41   if it's proprietary to an Apple platform or any other vendor's

00:07:48   platform.

00:07:49   Right.

00:07:50   We had a lot of universities who would

00:07:53   teach a specialized mobile programming course

00:07:56   or an iOS programming course.

00:07:57   And in that context, of course, they teach Swift

00:08:00   and Stanford has an outstanding course

00:08:03   that's on iTunes U about programming in Swift

00:08:05   to program on iOS.

00:08:08   But when it comes to bringing it into the core curriculum

00:08:11   that every student in the university has to take

00:08:13   to let's say, learn computer science,

00:08:16   making it open source, having it available to every student

00:08:18   on whatever platform they're gonna use to do their work

00:08:21   is we think ultimately a huge enabler.

00:08:26   And so many of the people we talked to,

00:08:29   the professors wanted to use the language in these ways,

00:08:34   but they needed it to be open source for this to happen.

00:08:38   And so we're really excited

00:08:40   to follow through with them on this.

00:08:42   - Why not open source it?

00:08:45   What were the downsides that were debated

00:08:48   before you decide, you know, made the decision

00:08:51   to go open source with it.

00:08:52   - You know, there really weren't,

00:08:55   you know, we of course talked it over at length.

00:09:01   We had a tough time coming up

00:09:03   with a significant reason not to do it.

00:09:06   It was more a when question, you know, is it now?

00:09:10   And we knew after 1.0 that we weren't quite there,

00:09:14   that we wanted to get that first round of feedback,

00:09:17   begin to stabilize the definition of the language.

00:09:20   But as we got close to WWDC this last year,

00:09:23   we realized we were where we needed to be,

00:09:27   to take a step that we knew was gonna happen.

00:09:30   It was gonna be this year,

00:09:30   or it was gonna be the following year.

00:09:32   And we realized we were where we needed to be.

00:09:35   And so we moved ahead,

00:09:38   and the hunger out there was so great,

00:09:41   we thought, let's do it now.

00:09:45   But the downsides are really limited.

00:09:47   I mean, I think it's inevitable but positive

00:09:51   that Swift will be used in all kinds of contexts

00:09:54   outside of Apple.

00:09:55   And that's kind of the point.

00:09:56   So that's fine.

00:09:58   It's clear we're gonna get a lot of people wanting

00:10:02   to do things with the language that aren't directly related

00:10:05   to Apple's line of business.

00:10:08   And that's okay, right?

00:10:10   That's actually fine as well.

00:10:12   So there weren't a lot of downsides,

00:10:16   and we think the upsides are tremendous.

00:10:18   - One of the areas that I would,

00:10:22   I think it's definitely,

00:10:23   I see so much excitement about it already

00:10:25   is in terms of being cross-platform

00:10:27   is the use of Swift on servers.

00:10:30   And a lot of that is certainly gonna be Linux.

00:10:33   And you guys have already done the port to Linux.

00:10:35   - That's right.

00:10:37   - And that's an area where I feel like we,

00:10:41   I have no idea.

00:10:42   I feel like it's going to be used, but I just,

00:10:44   it's like, it's so early,

00:10:45   we don't know where that's going to be.

00:10:46   But do you see that happening,

00:10:48   that it's gonna be used for a lot of server-based development

00:10:50   that's really outside Apple's platforms?

00:10:54   - Oh, totally, yeah.

00:10:55   I mean, you know, from really the outset,

00:10:59   IBM, for instance, jumped all over Swift

00:11:01   for building their mobile apps,

00:11:04   and almost immediately they were coming back to us with,

00:11:08   we really wanna use this on the server.

00:11:10   How can we get this on the server?

00:11:12   And of course with an Apple,

00:11:15   there's tremendous passion for Swift

00:11:17   and our own iCloud team has been, you know,

00:11:20   completely chomping at the bit to be able to apply it

00:11:22   in many and many of the things they do.

00:11:24   So I think it's gonna be the first,

00:11:28   among the first kind of breakout uses of Swift.

00:11:31   And of course, these days, so many mobile applications

00:11:34   are part mobile app, part server code.

00:11:38   And in a lot of cases, you at the very least

00:11:40   want to share your knowledge.

00:11:41   But very often, you want to share parts of your code,

00:11:44   parts of your model layer, some of your utility libraries.

00:11:47   And having Swift enabling you to do that

00:11:50   is going to be huge for a lot of our community.

00:11:53   Yeah, I can definitely see that.

00:11:55   That, to me, is sort of the building for the future version

00:12:00   or aspects of Swift versus, say, Objective-C,

00:12:03   which has roots from 20 or even 30 years ago.

00:12:07   And the fact that the cloud, or whatever you want to call it,

00:12:12   but client software running on a device,

00:12:14   talking to servers somewhere off on the internet,

00:12:18   is part of, I would say, almost certainly

00:12:21   the overwhelming majority of apps

00:12:23   that are being written for these platforms.

00:12:25   That having a language that makes sense

00:12:27   in both ends of the communication is huge.

00:12:31   Well, exactly.

00:12:32   Exactly.

00:12:33   And if you look at where I think it

00:12:36   is for a lot of developers prior to Swift,

00:12:40   they probably were using Objective-C.

00:12:44   If they had high performance code, they had to write.

00:12:46   Part of Objective-C is C. And so they were dropping down

00:12:49   into C to do some of the more optimized work, which

00:12:52   can be almost another language.

00:12:55   There's a real continuum there within the environment.

00:12:58   They might have been using a scripting language

00:13:01   for part of what they do.

00:13:02   And then they might be using a server-side language,

00:13:04   like Java.

00:13:05   And Swift is uniquely capable of spanning

00:13:09   from really easy and natural kind of scripting,

00:13:13   expressive uses.

00:13:14   It's a great application programming language.

00:13:16   But it was also designed to be a great systems language

00:13:19   and be really fast so that you can

00:13:20   do C kind of high performance work without compromises

00:13:24   in Swift.

00:13:25   And then it's going to work in the cloud as well.

00:13:29   So I think it's going to really unify the environment

00:13:33   for a lot of developers.

00:13:35   would you describe a systems language? Because this is right from the, one of my notes here,

00:13:41   from the Swift programming language. It says Swift is intended to be "the first industrial quality

00:13:47   systems programming language that is as expressive and enjoyable as a scripting language, designed to

00:13:52   scale from hello world to an entire operating system." What is a systems programming language?

00:14:00   Well, there's some low-level bits and some matters of spirit, I think.

00:14:08   And in terms of low-level bits, Swift has a very predictable memory management model,

00:14:15   a very contained runtime.

00:14:18   If you look at traditional scripting languages or languages like Java, they run garbage collectors.

00:14:27   You really can't control memory in a significant way.

00:14:32   Swift builds on our ARC technology that first came to Objective-C to provide really high

00:14:39   performance and really predictable and manageable memory management, which means that if you

00:14:43   wanted to write everything from an operating system kernel to a high performance graphics

00:14:49   library, you could do that without inheriting a huge per process memory footprint overhead.

00:14:56   You see that when you see how Apple's OS and apps are able to run in a lower memory footprint

00:15:04   and we're able to ship devices with different memory footprints than some of our competitors

00:15:09   who use languages that don't have this characteristic.

00:15:12   But Swift is also designed so that when it can be fast, it's as fast as can be.

00:15:20   So we aren't taking the overhead of dynamic dispatch for every call, but yet we can provide

00:15:27   dynamism when needed.

00:15:31   We can optimize, if you use an array in Swift, we can be every bit as optimal and do auto

00:15:39   vectorization and parallelization in ways that you would expect from optimized C code,

00:15:47   are very hard to do if you were trying to optimize Ruby or Python or even an

00:15:53   Objective-C, you know, NSRA built on top of the foundation classes. And so you can

00:15:58   go very, very low level and get very predictable peak performance out of your

00:16:03   hardware. Yeah, so in other words, it's at least compared, let's just compare it to

00:16:08   Objective-C. That Objective-C, there's so many great things we could say about it.

00:16:12   it's served, you know, Apple so incredibly well. It still will for the foreseeable

00:16:18   future in so many ways, but there's this big but, which is that sometimes you need

00:16:22   to, let's say, drop down into C or C++, and now you're losing all of the stuff

00:16:31   that you love about Objective-C because you need to drop down temporarily for

00:16:35   performance reasons. And Swift, you don't need to do that. You can write the

00:16:39   performance code right in Swift.

00:16:42   That's right.

00:16:43   I mean, Swift, I think when we first introduced Swift, we said we were imagining a world where

00:16:48   we took what we loved about Objective-C without carrying forward the baggage of C. But what

00:16:54   that meant is Swift has to replace C in its role in Objective-C programming.

00:17:01   And it does that really well while bringing all of these higher levels of abstraction

00:17:08   higher productivity programming techniques to writing that kind of high performance systems

00:17:12   code, but also so great for app code.

00:17:18   So one thing that Swift is not, I mean, and I think we've already covered this, but it's

00:17:22   not Objective-C with prettier, better syntax.

00:17:27   And it's the syntax of Objective-C that people find off-putting at least at first.

00:17:34   And I know that that's a debate that people who love Objective-C and have used it for

00:17:39   decades, it's a never-ending argument.

00:17:42   But at least at first, even if you really, really love Objective-C, I feel like you can't

00:17:48   avoid the fact that at first it looks weird.

00:17:52   Uh-huh.

00:17:53   I'll admit, I'm an Objective-C lover.

00:17:56   And there were plenty of good debates internally about, should we have a small talk inspired

00:18:03   syntax, should we stick with something like Objective-C. But it is a, in the end, it can

00:18:15   go either way.

00:18:16   And what we were able to retain in Swift are the sort of literate nature of APIs that Objective-C

00:18:25   enabled, the readability of code with the labeled arguments.

00:18:29   And we brought all of that to Swift while at the same time having a syntax that is just

00:18:34   much more concise and, at this point with the sort of evolution of people's expectations

00:18:39   around programming languages, just much more natural for them.

00:18:43   Like, is part of the thinking there that in terms of the small talk-inspired dynamic runtime,

00:18:51   that you didn't need a new language to do that because you already have Objective-C?

00:18:58   and that you can go, you know, that for the future,

00:19:01   for the next 20 years, that that sort of model

00:19:05   of looking at frameworks and programming languages

00:19:09   isn't the best way to go from here going forward.

00:19:12   - No, I would really separate, I know it's,

00:19:15   I would separate the syntax from some of the underlying

00:19:20   aspects of the runtime and the programming model.

00:19:25   Swift, some of my favorite features from Objective-C

00:19:31   are things like protocols and categories, which in Swift

00:19:37   are called extensions, and those literate APIs,

00:19:43   as well as first class classes with class methods.

00:19:49   All of these things that are so important for us

00:19:51   to build great APIs and great extensible frameworks

00:19:56   were brought to Swift along with things

00:20:00   like labeled arguments.

00:20:03   And slowly we've also been bringing back

00:20:07   much of the dynamism.

00:20:08   Now there's some things that are possible in Objective-C.

00:20:11   Most of the dynamism that you really want

00:20:15   is the ability to figure out what class is this really,

00:20:18   to be able to cast the class dynamically

00:20:20   a particular protocol, to be able to do a kind of response to select or perform, select

00:20:26   or check.

00:20:28   All of these things are possible in Swift today.

00:20:31   And there's some other things that aren't, but that certainly we consider important to

00:20:34   ultimately bring to the language.

00:20:37   So this thing about a dynamic programming model is still very important to us.

00:20:43   Now there's some very unsafe things that people do in Objective-C, and I've been guilty of

00:20:48   of this myself where you walk the Objective-C runtime

00:20:50   and hack the method table and that's cool,

00:20:54   but it is highly unsafe and doesn't lead

00:20:56   to very maintainable, scalable, large programs,

00:20:58   some of those techniques, but the vast, vast majority

00:21:00   of what makes Objective-C great and dynamic

00:21:02   is either part of Swift now or certainly part

00:21:06   of our ongoing ambition for the language.

00:21:09   But the thing we didn't wanna bring from Objective-C

00:21:12   is that in Objective-C, you're paying the overhead

00:21:16   of that dynamism all the time.

00:21:19   You're trying to use an array or some class

00:21:23   and you've got the compiler with both hands

00:21:25   tied behind its back in terms of opportunities

00:21:27   for optimization, and then you're forcing the developer

00:21:31   to then modify the way they've written their code

00:21:34   to maybe drop down to C for something

00:21:35   where performance matters.

00:21:37   For Swift, because it's safer, has more type information,

00:21:41   it gives the compiler what it needs to optimize when it can,

00:21:45   But that alone doesn't stand in the way of all the,

00:21:49   in my opinion, all the dynamism that matters.

00:21:52   - In layman's terms, and I'm, you know,

00:21:55   probably way more on the layman's side.

00:21:57   It's been a long time since I've programmed regularly,

00:22:01   but it, you know, for people listening,

00:22:05   I think that the big difference is that with Objective-C,

00:22:10   and what you mean, and you know,

00:22:12   people might not even know what a runtime is,

00:22:13   but more or less what it means is you compile the app,

00:22:15   starts running and a lot of the stuff gets decided within the app while it's

00:22:20   running and with Swift by by doing these things at compile time and knowing more

00:22:26   of the type information forcing you to to be a little more specific about the

00:22:31   type information up front it it it enables the compiler to do more

00:22:37   efficient things before the app is even running because it's it's happening at

00:22:42   at the time that the app is compiled.

00:22:44   That's right.

00:22:45   That's right.

00:22:46   And then it permits all kinds of optimizations,

00:22:48   because maybe if the compiler can determine ahead of time

00:22:52   that absolutely this object you're about to message

00:22:58   is of a certain type, and we know

00:23:00   you've done whole module optimization,

00:23:02   and we know what the result of that method is,

00:23:06   sometimes the compiler could even inline the implementation

00:23:08   and even involve the overhead of a function call.

00:23:11   So let alone a dynamic method dispatch.

00:23:14   And so that's part of how you can

00:23:17   get these incredible hand optimized C kinds of performance

00:23:22   numbers out of what you get to write as very high level code.

00:23:30   So Swift, I think, has a really excellent balance there.

00:23:34   But the key is we still have a runtime

00:23:36   where you can look at your classes and introspect them.

00:23:41   And there's more of that coming.

00:23:44   (laughing)

00:23:48   Which partly is on an open roadmap,

00:23:51   and partly is, you know, in terms of the frameworks

00:23:54   for the operating system, obviously is the sort of thing

00:23:56   that you're not gonna be able to talk about in advance,

00:23:57   because that's not the stuff that's open source.

00:24:00   That's right.

00:24:02   I mean, some of it, honestly, you will see us

00:24:04   bringing up over the course of the coming months

00:24:09   in the context of the open source project

00:24:11   because certain things that our team will take on,

00:24:16   will bring them forward as proposals

00:24:20   to the open source community

00:24:21   and then you'll see us start to implement them.

00:24:23   So I don't wanna jump the gun and pre-announce everything

00:24:26   that the team is thinking, but as soon as they,

00:24:30   and they've already pre-announced a bunch of the things

00:24:32   And big part of the focus we wanted to make sure

00:24:35   was clear right out of the gates with Swift

00:24:38   was that the goal for Swift 3 was really to stabilize

00:24:43   the binary interface and to refine the APIs

00:24:47   and finalize our API guidelines and all of those things

00:24:50   because we want, I think it's the next important step

00:24:54   is to really stabilize the language

00:24:57   and the environment for our community.

00:25:00   And that's a big task.

00:25:01   one of the things that's been so great about Objective-C

00:25:04   is it has this great stability

00:25:09   where that have enabled us to write frameworks

00:25:12   with binary compatible interfaces,

00:25:13   release over release over release,

00:25:15   something that languages like C++ really couldn't get right.

00:25:20   And we absolutely need to bring that to Swift.

00:25:24   So we've brought forward some of those goals,

00:25:28   but there are other things, of course,

00:25:29   that will be added to the 3.0 ambitions

00:25:34   as time goes on over the coming months?

00:25:36   - One of the complaints I've seen,

00:25:39   and part of this is just it's impossible to avoid,

00:25:42   I think, with how early in its evolution

00:25:45   Swift was unveiled to the world.

00:25:47   But what I've seen from developer friends

00:25:51   and just commentary on the internet

00:25:53   is that it's hard right now

00:25:55   to write a large-scale application in Swift.

00:25:59   Apple has more people working on Cocoa apps than any other company in the world for obvious

00:26:07   reasons.

00:26:09   How has the feedback from the internal developers, the people who work for you, the engineers

00:26:16   who work for you with extensive experience shipping user-facing apps shaped the direction

00:26:21   of Swift from 1.0 to what's on the roadmap for 3.0?

00:26:27   Of course, there are elements.

00:26:29   We have all types here within Apple, right?

00:26:31   Just like there are people that are liking the external community.

00:26:40   They start out with the, "I love Objective-C. I don't want to change," to, "Okay, hold on.

00:26:45   Maybe there's something to this Swift thing," to, "Let me give it a try," to, "Oh my God,

00:26:49   I love it."

00:26:51   We've gone through all the phases internally.

00:26:55   We've had some really great adoption by teams like the team that does the dock and window

00:27:02   management on OS X, who've implemented all their new features for El Capitan in Swift

00:27:09   and started mass converting all of their code and say that they just couldn't imagine going

00:27:15   back and that they're more productive with it.

00:27:18   Part of what our internal teams need to deal with, though, is that they're working on,

00:27:25   say, the current version of Swift 2.0 while it's not done yet.

00:27:30   And so it's--

00:27:32   I mean, while it's not even WWDC level done yet, right?

00:27:37   And they're working on the interfaces

00:27:41   in terms of our internal frameworks

00:27:42   that haven't been modernized for Swift.

00:27:45   And so it can be--

00:27:47   they get it rough.

00:27:48   They've got to really love it to make that leap,

00:27:51   because they're working on a very, very bleeding edge

00:27:54   environment when we use it internally. Thankfully with Swift 2.0 now well out the door,

00:28:01   that's stabilized things a good bit and they're really open to it. But there's been just a lot of

00:28:09   feedback and a lot of it has helped with the impedance, making sure the impedance between

00:28:16   Objective-C and Swift is absolutely minimized because of course we have and will continue to

00:28:21   to have and continue to continue writing more Objective-C code.

00:28:26   And so the ability of Swift and Objective-C code

00:28:31   to work together completely naturally is a huge focus.

00:28:35   And a bunch of things like generic collections,

00:28:39   support for lightweight generics in Objective-C

00:28:43   were a big pain point internally and something

00:28:46   that we fixed in the language and is now

00:28:48   great for all of our app developers externally.

00:28:52   So it's been a not dissimilar road for us internally

00:28:58   to what you see outside, but in terms of Swift

00:29:02   and writing big apps, it's certainly the case

00:29:05   that when Swift 1.0 came out, heck,

00:29:07   we didn't support incremental compilation

00:29:09   in the very first update, and so that was gonna be

00:29:12   a limiting factor for productivity

00:29:14   for people that had big apps.

00:29:17   a lot of that stuff has changed.

00:29:18   And then in 2.0, having a good error handling model,

00:29:22   having availability checks so you could span API versions,

00:29:26   these sorts of things,

00:29:28   I think have really addressed the vast majority

00:29:31   of the pain points that we were experiencing

00:29:34   that I think the community was experiencing

00:29:36   about writing larger apps.

00:29:37   And so much about Swift is actually inherently better

00:29:41   for building big apps because it makes it,

00:29:45   handles modules and namespaces

00:29:49   in a way more naturally than Objective-C. It makes the API contracts a little

00:29:54   more clear, the code more maintainable, so

00:29:57   we're very comfortable.

00:30:00   Objective-C's namespace management was more or less, "Let's just all agree

00:30:04   to put unique initials." Right?

00:30:07   Yeah, it's amazing it's taken us this far, but yes, yes, that has basically been the

00:30:12   answer.

00:30:12   So, yes, exactly. It is, you know, I don't think...

00:30:16   Maybe the bar wasn't that high, but we have vaulted over it.

00:30:21   How do you manage, as the chief mofo in charge of all this, how do you manage the enthusiasm that you clearly have for Swift?

00:30:30   And what to me seems like a sincere belief that Swift is the way forward with the necessary conservativeness that you need, you know,

00:30:39   you know, so that there still has to be a lot of objectives he written.

00:30:44   Like, how aggressive can you be about putting teams on,

00:30:47   "Sure, go ahead and do that in Swift."

00:30:49   You know, it's really, I mean, people here are idealistic yet really pragmatic,

00:30:55   and I think you see that as an Apple characteristic

00:30:59   in many, many elements of what we do.

00:31:03   And so, teams know with the nature of what we're trying to get done

00:31:08   in their area any given year, the nature of their code base, whether Swift is the right answer for

00:31:16   them or where it's the right answer. Even teams where, for one reason or the other, they can't

00:31:23   jump right on Objective-C, or rather, Objective-C conversion to Swift now, they then use Swift

00:31:30   heavily for writing all their unit tests, which is great because then, at least as they're introducing

00:31:36   new APIs, they're experiencing their own APIs in Swift and living on, you know, sort of eating

00:31:44   their own dog food in that regard. We do have some constraints internally which we're addressing,

00:31:49   but because we, I mean, it's a, maybe there's something in our closet a little bit, but we

00:31:56   still support running 32-bit apps on the Mac. And the 32-bit runtime doesn't actually support Swift

00:32:03   right now. And so what that means is if we've implemented a framework that's

00:32:09   available to 32-bit code, we actually can't write it in Swift. And if that code,

00:32:18   if that framework is used across iOS and OS X, as many of our frameworks are, that

00:32:23   introduces a little stumbling block as well. So you know, teams recognize what's

00:32:28   practical and what's not practical and find ways to use Swift wherever they can.

00:32:32   There's no shortage of enthusiasm.

00:32:35   I... this has been so geeky and so fun.

00:32:41   Sorry about that.

00:32:42   No! In the best possible way.

00:32:45   I really enjoyed... I loved... I saw you did a whole round of interviews last week and I read them all and I thought it was great.

00:32:51   And I didn't want to cover the same ground and I don't think we did.

00:32:54   I think this was... this is truly, truly eye-opening to me and I really...

00:32:57   I certainly appreciate your time,

00:32:59   but I really appreciate the openness that you've had here.

00:33:03   Is there anything else you wanna say

00:33:05   before we wrap up the segment?

00:33:06   Anything else you wanted to talk about with Swift?

00:33:08   - I just wanna say how, you know, to the world,

00:33:13   or at least the subset of the world

00:33:15   that listens to your podcast, which must be most of them,

00:33:17   that how proud I am of the team that's made Swift possible.

00:33:22   You know, I mean, of course there's Chris Latner,

00:33:24   but he's part of an incredible team

00:33:25   with folks like Ted Kremenek and Doug Gregor.

00:33:29   And even, you know, people, Swift is,

00:33:32   while we have our incredible compiler team,

00:33:35   we've also got people who have been writing deep frameworks

00:33:39   and apps within Apple for, in some cases,

00:33:44   since the beginning of Next Step.

00:33:46   I mean, people like Ali Ozer,

00:33:47   who you may know from his talks at WWDC,

00:33:51   has been so vital in shaping the language

00:33:54   and how the language fits our frameworks

00:33:56   and fits the needs of our developers.

00:33:57   And I'm just so thrilled with the work that all of them do

00:34:01   and the passion that they put into making Swift a success.

00:34:04   And I just wanna get that out there for everyone

00:34:06   'cause we're, and there are hundreds more behind them.

00:34:11   It's been an incredible effort by our team.

00:34:13   - Would you agree with this?

00:34:17   I think that Apple is in a unique position to,

00:34:20   if Swift achieves what you guys have set out to do,

00:34:24   which is to make it like the default language

00:34:26   that people might learn to program on

00:34:28   for the next few decades,

00:34:30   Apple's in a unique position to make that happen

00:34:32   because you have these platforms, especially iOS,

00:34:36   but the Mac, the watch,

00:34:38   anything else that might be coming in the future,

00:34:40   or TV OS. - TV, let's not forget

00:34:41   about the TV.

00:34:42   - That are so popular and are such a draw

00:34:49   that they've made Objective-C,

00:34:52   like the second or third most popular programming language

00:34:55   on some of these, the lists of what books people buy,

00:34:58   which I think to someone like you,

00:34:59   who's been, started in the next days,

00:35:02   if you would have found out that in the year 2015,

00:35:05   Objective-C is the second most popular language,

00:35:07   you'd be like, what?

00:35:08   - I wouldn't have believed it.

00:35:09   - Right. - I would not have believed it.

00:35:11   - A language that there's some initial reluctance of people

00:35:13   to get on board with.

00:35:15   Now there's this language that is so approachable

00:35:19   and really almost has like at a syntax level,

00:35:22   you know, and when you're talking about

00:35:24   like hello world type stuff,

00:35:25   really almost looks like pure pseudo code.

00:35:28   - Yeah.

00:35:29   - That Apple is in a unique position

00:35:30   where the draw is there with the platforms

00:35:34   to really, really make this explode in popularity.

00:35:37   - Yeah, I mean, I couldn't say it any better.

00:35:42   I think we, when we created Swift,

00:35:46   we, while we wanted it, of course, to be a great language,

00:35:50   we also, from the outset, wanted it to be a great language

00:35:53   for our platforms and the fact that it,

00:35:57   and embody the lessons that we learned from creating

00:36:02   so many deep frameworks and great apps over so many years.

00:36:06   And what that's meant is on day one,

00:36:09   Swift was, it wasn't a restart for the community.

00:36:13   It wasn't a, hey, well, let me learn

00:36:15   whole new set of frameworks, let me wait for Apple to create a whole new set of frameworks.

00:36:19   Swift has been this automatic transition for people who wanted to, maybe who were new to

00:36:24   our platform and wanted to get started.

00:36:26   The whole world was open to them on our platform there, and I think that's been so huge to

00:36:30   driving the energy around it.

00:36:33   And then others have been drawn in just by the greatness of Swift as it is.

00:36:36   I mean, it's amazing, these Swift language conferences where people talking about different

00:36:41   functional programming paradigms and Swift and all these different things you can do

00:36:44   with the language just based on what an amazing new language it is. So you bring those two

00:36:48   communities together and it's magic right now.

00:36:54   Thank you so much, Craig. I really appreciate the time.

00:36:58   Yeah, thank you, Jon. It's an honor to speak with you. So thank you so much.

00:37:03   Where's Craig? Did I miss him?

00:37:09   You know what, since that ran as the first segment,

00:37:12   I might as well just jump right into a sponsor read,

00:37:15   which I was definitely not going to do in the middle of talking

00:37:19   to Craig Federighi.

00:37:21   He totally should have.

00:37:22   He would have just sat there patiently.

00:37:25   I feel like I could have done anything.

00:37:27   He was incredibly gracious.

00:37:29   He was absolutely-- I mean, I expected him to be nice,

00:37:31   but he's very nice.

00:37:36   Let me tell you about our good friends at Casper.

00:37:39   You guys know Casper.

00:37:40   They're the company whose URL I frequently get wrong and I won't today.

00:37:45   These guys make obsessively engineered mattresses

00:37:49   and they sell them at incredibly fair prices.

00:37:51   Just the right sink, just the right bounce.

00:37:54   You don't have to sit there and go through their website

00:37:55   and pick three different types of mattresses.

00:37:59   Do you want springs? Do you want memory foam?

00:38:01   Do you want latex foam?

00:38:03   Now, these guys are mattress experts.

00:38:05   They're like the apple of mattresses where they figured it out themselves and they sell one type of mattress. It's their own custom

00:38:11   Blend of latex foam and memory foam that has just the right sink just the right bounce

00:38:15   So you don't door about that all you do is pick what size

00:38:19   What size you want you want do you want to do what you want?

00:38:22   You want a queen size you want king size you want a twin size?

00:38:25   Whatever you need as you do you go to the website you order it

00:38:28   comes to your house in a little box put it in a room where you want it you open it up and it makes a

00:38:33   noise and it just soaks up the air and there it is. Now you say I don't want to

00:38:37   buy a mattress without trying it. It's risk-free. You get a hundred days to try

00:38:42   sleeping on this on your actual bed in your actual house. A hundred days and if

00:38:46   you don't like it it's painless return. You just go to their website tell them

00:38:50   you want to send it back. They'll take care of it. They'll send somebody

00:38:53   to your house and get this mattress out of your house. It couldn't be easier.

00:38:57   There's no hard sell if you decide to send it back. Could not be easier.

00:39:01   Mattresses, they're made in America and the prices are unbelievable. 500 bucks for a twin size

00:39:06   mattress up to $950 for a king size mattress. If you've shopped for a premium king size mattress

00:39:11   in the last few years, you know how great a price point that is. I think it's fair to say that that's

00:39:16   about half the price that you would pay for a premium mattress at like a retail mattress store.

00:39:22   So really, really great. Could not be easier. You don't have to go to the store. You don't have to

00:39:26   get this mattress home. You don't have to wait. It couldn't be easier. Where do you go to find out

00:39:31   more and let me get this right. Casper.com/talkshow. Casper.com/talkshow.

00:39:38   If you want to get a mattress and talk about great holiday gift ideas, boy, buying

00:39:42   somebody a mattress is about as good as it gets. Put one under the Christmas tree.

00:39:46   Use that URL and you will save 50 bucks off any of those prices I just told you about.

00:39:51   So go get your kids new mattresses for Christmas at Casper.com.

00:39:58   So here's the deal.

00:39:59   So people are probably wondering,

00:40:00   how did Craig Federighi end up on the talk show?

00:40:04   And what happened was Apple got in touch with me

00:40:07   when they started doing the--

00:40:08   I guess it was a couple of days, actually,

00:40:12   before Swift, the open source thing, was actually announced.

00:40:15   And when they started reaching out to the press,

00:40:18   they asked whether I'd be interested in having

00:40:20   him on the podcast.

00:40:21   And I was like, yeah.

00:40:24   You should have said, let me check.

00:40:25   Let me check my schedule.

00:40:27   "No, Moltz might be on that weekend. I can't bump him."

00:40:30   I was like, "Hell yeah." No real ground rules. It was very similar to when Phil Schuler

00:40:39   was on the live show back at WWDC. It wasn't like they wanted questions in advance or anything

00:40:44   like that. Their only request was that it be limited to somewhere around 20 minutes.

00:40:50   So I think the fact that we went about 30 or 35 minutes was probably pretty good for

00:40:54   me.

00:40:55   multiplier is acceptable in their time limits.

00:40:59   Well, I was absolutely watching the clock while we talked, and it felt like when we were rolling up around 20,

00:41:04   it really felt like he was having a good time. He was very comfortable. And I think that was definitely, you know,

00:41:09   Apple PR's concern would be, you know, they want to limit his exposure in case it was not comfortable,

00:41:15   which I think is reasonable.

00:41:19   Yeah, I wonder if they would have cut you off. Like, not that you want to run that experiment, but they actually said,

00:41:24   "Do you know we gotta wrap this up?" or "No more questions."

00:41:28   Probably, because Bill Evans from Apple PR was listening in.

00:41:33   He was there. So I would suspect that if I went nuts and just kept him hanging,

00:41:38   he probably would have texted me or something like that.

00:41:40   It was like, "Hey, come on." It would have been friendly.

00:41:44   Yeah, we're just talking about open sourcing Swift. I don't know how bad it could get, right?

00:41:48   You're just talking about programming, right? A couple of nerds having a conversation.

00:41:52   Yeah. Well, I'll tell you, I would love to hear your thoughts on the interview,

00:41:56   because, and this is really, you know, I'm telling you right now, you were my,

00:42:00   is this the right term? You were my spirit animal going into the interview.

00:42:03   I thought, okay, I've only got 20 or 30 minutes. In my mind, if I,

00:42:08   if I can make Syracuse a half happy with this interview,

00:42:11   then I'll consider my job well done.

00:42:13   That type of interview was tough, I think, because,

00:42:17   so you've got Craig making the rounds to the tech press to talk about open

00:42:20   sourcing Swift, you know, essentially what his job is

00:42:24   doing that press tour to it's to tell everyone how great it is that

00:42:29   Apple is doing this thing, right?

00:42:31   Well, twofold. I would say twofold.

00:42:33   First, it's to tell everybody how great Swift is.

00:42:35   And then second is how great it is that they're making it open source.

00:42:39   Right. But like his job on that press store is not to do what I think

00:42:44   a lot of people might want out of an interview,

00:42:47   whether it be podcast or text, which is especially programmers,

00:42:51   and especially the direction that you took your interview with Greg,

00:42:54   getting more technical and everything, is people want to have,

00:42:57   not in a mean way, but in a sort of Usenet, old-style way,

00:43:01   an argument about programming with a guy who is in charge

00:43:05   of a really big platform that a lot of people program for.

00:43:08   Like, it's not like a mean one, but you want to debate whether...

00:43:12   I don't know what you want to... You just want to talk to the guy who's in charge.

00:43:15   now finally I get to sort of, you know, complain about square brackets or tabs versus spaces

00:43:21   or my pet peeve in Swift or the App Store or whatever, you know what I mean? Like, and

00:43:27   I think that's more pronounced with Apple people because Apple has in the past tended

00:43:31   not to make the important decision makers, especially the important technical people,

00:43:37   available to the public in any way. So there was no other venue for you to, you know, air

00:43:44   your grievances, it's like you got to talk to the people who were the most polished and

00:43:47   the highest level and if your concern was about some minor feature of some framework

00:43:53   or ADPI and you couldn't corner someone in a hallway, WWDC, there was no venue for that,

00:43:58   so I think, I mean that's changing now as you discussed in the interview, but a lot

00:44:03   of people might go into this thinking that they're going to hear, like they want it to

00:44:07   be more adversarial, but like it's, A, I think it's impossible to be adversarial with Craig

00:44:11   because he's the nicest person in the universe, and if he ever yells at people in meetings,

00:44:15   you would never know it from seeing anything he does in public. He seems just like a super

00:44:20   nice guy, enthusiastic and upbeat and positive all the time, so you're not going to have

00:44:24   that with him. And B, that's not the purpose of the press tour, so it's a waste of time

00:44:27   for you to do that. You should use that time much more valuably to engage in interesting

00:44:33   conversation that's still on topic, and I think you did that.

00:44:36   Yeah, it's the same way I approached the interview with Schiller, where it's... there were definitely

00:44:39   questions that in theory I would like to ask, like if I could get them on the stand under

00:44:44   oath and make them answer questions, there are very interesting questions that I would like to ask

00:44:49   that if I did ask and they weren't under oath that I don't think they would answer and I don't want

00:44:54   to waste time on questions that they're not going to answer. So for example, I'm not going to try to

00:44:59   pick Federighi's mind about, you know, whether they need a new kernel to have like a real-time

00:45:06   operating system for the car. Because it's not going to be a

00:45:10   fruitful afternoon of conversation. Exactly. And in

00:45:14   addition to the fact that he obviously isn't going to answer

00:45:17   that, and he can't talk about it. And even if I wanted to get

00:45:21   cute and say, you know, theoretically, of course, you

00:45:24   know, but you know, that there's these real time considerations

00:45:27   for something like a car that you don't have with these

00:45:29   consumer devices like phones and blah, blah, blah, he's not going

00:45:32   to get into it. And the second thing in addition to wasting

00:45:34   precious time is I feel like asking questions like that would immediately raise their shields.

00:45:39   Like, wow, he just asked a stupid question that I can't answer. Now I've got to be careful that I

00:45:43   that he's not going to, you know, I want them to feel like, hey, this is going well. And it's

00:45:48   they're not necessarily softball questions, but that they're questions that are the sort of thing

00:45:53   I was hoping to talk about. Yeah. And the thing is in this in this particular realm, specifically

00:45:57   in the open source effort, we've seen through their actions that they are being much more open

00:46:02   with Swift and the open source effort than they have ever been before in terms of

00:46:06   telling you what they're going to do in the future and having public roadmaps and doing development

00:46:10   in the open. You kind of brought this up in the interview with like how Swift's development is

00:46:15   out in the open and Craig said how LLVM was and everything, but the contrast that you could have,

00:46:20   you know, maybe this would have put them on the defensive, is the contrast is something like

00:46:23   the Darwin open source releases. Darwin has been open source from the beginning, but it just hasn't

00:46:28   been developed in the same way and maybe it can't be for a variety of reasons because there's just

00:46:31   too much proprietary stuff revealing their plans for, you know, whatever devices and

00:46:36   stuff they're going to make in the future. But they're so much more open, and he was

00:46:42   more open here saying, "Oh yeah, we're going to add these features, and this is what we're

00:46:45   going to, you know, we're going to have more things like this by the time WWDC rolls around."

00:46:49   When has any Apple -- they wouldn't even tell you if they're going to have a new battery

00:46:54   charger in time. You know, they could tell you anything about the future. Not that he

00:46:58   he was promising specific things, which sort of,

00:47:00   in the vague sort of, this is kind of what we're thinking,

00:47:03   kind of what we're planning,

00:47:04   because I think it's understood,

00:47:05   especially within the realm of this open source thing.

00:47:07   It's like, you can see it happening.

00:47:08   Like if it's not available at WWDC, it won't be a mystery.

00:47:11   Why?

00:47:12   You'll see every single check-in,

00:47:13   every single debate on the mailing list.

00:47:14   And when WWDC comes around, it'll either be readier, it won't.

00:47:17   And when everyone can see that,

00:47:19   no one's gonna be like, you promised this thing by WWDC

00:47:22   and we still can't do it.

00:47:23   Why are you, you know, it's like,

00:47:24   we'll just look at the mailing list,

00:47:25   look at the source code.

00:47:27   it didn't get done or there was debate about how it should be done or whatever.

00:47:31   So having that stuff in the open just makes it so much easier to have those

00:47:35   conversations that there are no gotchas. It's like just you can watch it happening.

00:47:39   It's not magic. Right. It's not like, OK, it's

00:47:43   early December, as promised before the end of the year, we've made this thing open

00:47:47   source. Here's the zip file with all the source.

00:47:50   And there's an Apache or whatever.

00:47:52   I've whatever license. What are they licensed to be using?

00:47:54   I think Apache 2.0.

00:47:56   They're using it, you know, it's got an open source license to have at it.

00:48:00   And here's where we plan to, here's our roadmap for the first Swift 3.0.

00:48:03   And then they go into radio silence.

00:48:05   And then early June at WWDC, we find out whether that matched or not.

00:48:10   Like you said, from the point from here to there every single day,

00:48:13   there are going to be these debates.

00:48:14   I mean, to me, I mentioned it in the interview that the Swift evolution

00:48:18   mailing list is remarkable because you really have to like,

00:48:22   look at the email addresses to see who's from Apple and who's not,

00:48:25   because there's really serious and very thoughtful proposals coming from outside Apple.

00:48:31   And it's very clear that people inside Apple are giving them their full consideration.

00:48:36   It is truly a collaborative relationship, right?

00:48:40   You know, eight days into it.

00:48:42   Yeah, definitely.

00:48:43   I'm assuming it will calm down a little bit.

00:48:46   The volume has been tremendous.

00:48:47   I had to switch to the digest form of that mailing list because it was just filling my,

00:48:51   you know, email in by even though I'm filtering into a folder, it was just too many emails

00:48:54   in a day.

00:48:55   tried taking the digest version of it.

00:48:57   But I'm assuming the traffic will die down a little bit.

00:48:59   But you're right.

00:49:00   It used to-- the old model with the open source,

00:49:03   Darwin was the big one where they gave you a big dump.

00:49:05   And then I don't know how many people even contributed

00:49:08   or even could contribute.

00:49:10   And then you wouldn't see anything from them

00:49:12   until the next major version.

00:49:14   I think just the other day, they finally

00:49:15   put out the El Capitan version of the Darwin open source

00:49:19   stuff.

00:49:19   And so if they'd come out with this big source dump,

00:49:21   even if they had been accepting feedback,

00:49:24   If you didn't see anything from Apple until WWDC, it would just be like

00:49:28   like a typical write-only sort of black hole for information.

00:49:32   Like they'd have discussions with you and you could say things, but you never knew what Apple's going to do.

00:49:35   You just have to sit around and wait and wait and wait.

00:49:37   And then at June, there'd be a bunch of slides and people would applaud or not.

00:49:40   Here, it all happens in real time in front of you.

00:49:43   I guess the open question is still how often do the people at Apple

00:49:48   push their changes back up to the repository? How much development?

00:49:51   But that's true of any open source thing.

00:49:52   you can have your local clone of repository

00:49:55   and do a bunch of changes to it

00:49:56   and not push them back up to the main repository

00:49:59   for a while.

00:50:00   To some degree, there has to be development going on

00:50:04   in Apple that doesn't immediately get pushed out

00:50:08   to the public.

00:50:09   I mean, I don't know if there's a vetting process involved

00:50:11   in that or just the internal coordination of deciding

00:50:15   in their particular, what they're going to do

00:50:17   versus what the community is doing.

00:50:20   I'm sure they'll navigate it just fine,

00:50:21   but it's just like any other open source thing.

00:50:24   If there does come a point where the community

00:50:26   wants to pull Swift heavily in one direction

00:50:28   and Apple wants to pull it at another,

00:50:29   you could end up with a fork,

00:50:30   but we're so far from that now.

00:50:31   Now everyone is kumbaya

00:50:33   and everyone's excited to be working on Swift

00:50:35   and Swift is this one thing

00:50:36   and Apple is clearly in the driver's seat

00:50:38   having invented it and having the platform

00:50:39   where it's most useful.

00:50:40   So I think things will be smooth sailing,

00:50:43   as smooth as they can be in open source

00:50:45   for the foreseeable future.

00:50:46   - Yeah, and I think it must help

00:50:51   in a certain degree that just about every programming language I know of,

00:50:56   and certainly all the ones people are passionate about,

00:50:58   have somebody who was the dictator in charge,

00:51:03   who invented it and infused it with their personal,

00:51:08   "Here's what I think this programming language should be like."

00:51:11   All the great programming languages to me,

00:51:13   I think have this opinionated root or origin.

00:51:18   And Chris Latner is obviously that individual with Swift.

00:51:22   And I think it's very clear, both publicly and from what

00:51:26   I've heard privately, that what has happened

00:51:29   was always his intention, that it would go open source.

00:51:31   And it's not like it took this long because there

00:51:34   was a debate internally.

00:51:35   It really was what Craig said in the interview, which

00:51:38   was, didn't make sense to go open source right out

00:51:40   of the bat.

00:51:42   It's still too liquid.

00:51:43   Wait till it solidifies a little bit.

00:51:45   And then at that point, it was just not a matter of if,

00:51:47   but when I think was his exact words.

00:51:49   And I think it really helps that Latner was on board

00:51:52   with that from the beginning in terms of wanting

00:51:55   to have this sort of, it's not like somebody else

00:51:58   at Apple is forcing him and his team to participate in this.

00:52:02   - Well, the unspoken part of that is like,

00:52:05   all right, so it didn't make sense to go

00:52:07   because 2.0 was too new.

00:52:09   Why would it be bad?

00:52:11   Obviously pre-1.0 is like, you have a secret

00:52:14   and in the typical Apple, I'm keeping a secret

00:52:16   and so I can come to W3C and say,

00:52:17   we have a new programming language. So pre 1.0, you can, or you know, pre-announcement,

00:52:21   you can say that's the reason it's not open source, because it was a secret, and we didn't

00:52:24   even know if we could do it, and we had to decide internally, and so that makes sense.

00:52:28   Once everybody knows Swift is a thing, why is it not open source at that point? And it's

00:52:32   like, oh, it's too new, we're not ready, we really need to work it out. Why do you need

00:52:35   to work it out? Why can't you work it out when it's in the open? Why does it have to

00:52:39   be closed source while you're working these things out? And I would say that Swift right

00:52:42   now is still, by the standards of most other mature programming languages, still heavily

00:52:46   in flux. I mean, for crying out loud, they're ripping out plus plus and minus minus at this

00:52:50   point and thinking about what they're going to do with like, you know, people are proposing

00:52:54   new keywords like this is incredibly liquid. So why? Why was it closed source between the

00:53:00   announcement and now? And the answers that are pretty obvious, like they don't think

00:53:04   they need to say them because people basically know supporting an open source project has

00:53:08   overhead, right? Like you can work, you can go much faster when you don't have to worry

00:53:11   about other people's input. That sounds bad. And it's like, oh, you're being like, there

00:53:15   is a lot of overhead, especially for a company like Apple, in terms of intellectual property

00:53:21   and making sure this is dividing the line between what's open and what's not.

00:53:25   It's a lot of work to do all the things that are required to be a good maintainer of an

00:53:30   open source project.

00:53:31   And they just, you know, it would have made them go slower, right?

00:53:35   So now they're at the point where the trade-off is worth it, that they're okay with going

00:53:41   a little bit slower.

00:53:42   Of course, the input is a little bit more valuable because in that beginning part, so

00:53:46   much basic stuff didn't work.

00:53:48   Craig mentioned that you have incremental compilation.

00:53:50   It was like you just want it to hold together.

00:53:54   Is this feasible at all?

00:53:56   Can we ship something?

00:53:57   Can we get it working enough in Xcode so the playgrounds don't crash all the time?

00:54:03   That's basically, I would assume, the answer that wasn't given there is that it's not like

00:54:07   they...

00:54:08   And of course, the internal debate, which is not going to tell you about the details

00:54:10   of the internal debate. But yeah, you can go much faster when you don't have to worry about

00:54:16   the outside world's opinions or input and you don't have to support them and you don't have to

00:54:19   maintain a source repository with clean source code and a mailing list and all the other things

00:54:25   that go with that. Yeah, I think it is sort of a one, two, like a two-step process. Like,

00:54:35   first step was Swift 1.0. This is good enough to show you guys and let you guys start playing

00:54:40   with even though, let's face it, you can't start working with it yet.

00:54:43   We'll get it into a shape where it's, you know, you can start using it.

00:54:48   And I've been asking around and I do, there are, you know, it's not just in Apple, there

00:54:51   are, you know, real developers at real, you know, apps that, you know, people out there,

00:54:56   you know, top apps, to borrow a phrase from Raiders of the Lost Ark.

00:55:01   There are top apps that have new parts of it, you know, maybe not entirely written in

00:55:05   Swift.

00:55:06   That's probably still very rare.

00:55:07   New features are being written in Swift in real apps

00:55:10   that you're using today.

00:55:12   But I think stage two is this is where, I think,

00:55:15   Latner and his team think.

00:55:16   We had this vision for what we would start with,

00:55:20   and we're not there yet.

00:55:21   And this is the point where the fundamental aspects

00:55:25   of the language, we're settled on now.

00:55:27   And now we're willing to start listening to how we can make

00:55:29   it better to suit your needs.

00:55:32   Yeah.

00:55:34   Like I said, I think the language is just so young

00:55:37   in the grand scheme of things.

00:55:40   If you want to do a human analogy,

00:55:44   maybe it can sit up now.

00:55:47   It doesn't need to be held in one of those big tube things.

00:55:49   It can sit up.

00:55:50   Occasionally, it toddles over.

00:55:51   It falls over a little bit.

00:55:52   It can sit up.

00:55:53   But this is the best and the worst part,

00:55:58   because it's kind of like there's so much potential.

00:56:02   But Craig talked about Swift 3.0 and how they're really working on getting the ABI nailed down and everything.

00:56:08   And that's just got to be terrifying because you know the standards of binary compatibility that Apple aspires to.

00:56:14   Like with Objective-C, I think Marco has brought this up in ATP View Times, like you could have built an iPhone app for the original iPhone.

00:56:21   And in theory, if you stayed to, you know, still well supported APIs, that binary would still run.

00:56:28   They don't... Apple is not in the habit of breaking backward compatibility for binary libraries and everything that frequently,

00:56:36   which is surprising for a company that is so gung-ho about

00:56:39   moving on from the past in hardware design and software design. They're really good about that.

00:56:43   So nailing that stuff down like that, like 3.0 is not that far away, and it's like,

00:56:47   boy, you really only get one shot at doing this right, because there's not gonna be another

00:56:52   64 to 30... 32 to 64-bit transition for them to use to paper over like they did with like, you know,

00:56:57   the Objective-C stuff where they're like, "Well, when we're going 32-64, it's going to break

00:57:01   anything anyway, so now is our chance to do something a little bit differently." There's

00:57:04   not going to be a 64-128 transition in the foreseeable future, so they really have to

00:57:09   get their ABI something that doesn't have some terrible mistake that ties their hands in the

00:57:14   future, and that is supportable for literally decades. Right, or maybe now if it's not a

00:57:19   mistake, it's like not like missing some sort of thing that everybody thinks is okay today, but

00:57:26   five, six, seven years ago from now, everybody thinks, oh, man, that's it would be so great

00:57:30   if we didn't have that, if we weren't stuck with that decision.

00:57:33   Or there's going to be some language feature that is much more difficult to support with the

00:57:37   ABI as it's designed. Or, you know, I'm even just going to say, oh, well, it doesn't, you know,

00:57:40   the way quantum computers work in 50 years is different than that. But even just like

00:57:44   you decide there's a particular language feature that they're like, we don't have time for it.

00:57:48   Concurrency is a great example in the Swift 3.0, like Swift evolution mailing list and roadmap or

00:57:53   or whatever, they're like language level concurrency,

00:57:57   it's not planned for 3.0, we don't have time for it,

00:57:59   it's too big a feature,

00:58:00   if we're gonna save that as post 3.0.

00:58:01   But they're gonna have the ABI nailed down.

00:58:03   So I really hope there's nothing about,

00:58:06   you know, language level concurrency features

00:58:09   that would be easier to do with a different API.

00:58:11   Not that it's gonna preclude them doing this,

00:58:13   and I'm assuming like based on past experience

00:58:16   that they're looking for an ABI

00:58:18   that were really, really solid,

00:58:19   but thus far everything until now has been communication

00:58:23   from Apple about Swift to Zoom, we're going to break your crap all the time.

00:58:26   We are not maintaining source compatibility.

00:58:28   We're adding keywords, we're removing things, we're changing how operators work.

00:58:33   And their solution to this has been like, we're going to use Xcode

00:58:36   to translate your old code to your new code for you,

00:58:38   but we're not going to support your old code.

00:58:40   Like, just forget it, because they don't want to be held back by the past.

00:58:44   It's kind of the nightmare of, you know, come out with a language

00:58:48   and then let literally thousands of developers start writing real applications

00:58:52   with it and shipping them to customers, and then be like, "Oh my god, we can never

00:58:56   change this part of the language because so many people have all this code out there.

00:59:00   We set it out to loosen the world.

00:59:03   Now we can never take away plus plus and minus minus.

00:59:04   It'll break everyone's apps."

00:59:05   And Apple's like, "No, we reserve the right to change how this language looks on the page

00:59:11   to make your source code that you think is perfectly good syntactically invalid so it

00:59:15   won't even compile.

00:59:16   And the way we're going to manage that is by giving you tools to translate your source

00:59:19   code."

00:59:20   That's one of my favorite changes in the,

00:59:23   I guess it's the, it just came out in the Swift evolution

00:59:26   or maybe the new version of Swift that they released

00:59:28   as they open sourced it, where they got rid of these

00:59:30   plus plus and minus minus operators.

00:59:32   And again, just to take a big step back,

00:59:36   and I read the interviews that Federighi did

00:59:37   with like Mashable and a few other outlets last week.

00:59:41   I was half happy and half worried,

00:59:43   'cause I was happy because his interviews

00:59:45   with like Ars Technica and Mashable covered the basics

00:59:50   know, and it was like a foundation of what Apple's official stance was towards this open sourcing of

00:59:54   Swift. And I thought that means I don't have to waste time talking about those things with him,

00:59:58   and we can go deeper. But then I thought, what if that's all he wants to talk about is this,

01:00:02   he doesn't want to get nerdy at all. And I was like, because I kind of want some of this stuff

01:00:05   to be a little technical. But then the way the interview went, absolutely no problem getting

01:00:11   them to go technical. I just worry now that maybe it's a little bit over, over people's heads for

01:00:16   everybody who listens to the show. And so just here's one example I don't want to over explain,

01:00:21   but the plus plus minus minus operators are one that's very easy for even a non-programmer to

01:00:25   understand. And in every language, geez, I know since C you've been able to take a variable. Let's

01:00:32   say the variable is x and if x is an integer and it's currently equal to four, if you write in your

01:00:38   source code x++, that turns the variable to 5. It just adds 1 to the

01:00:45   variable. And I've never really given a lot of thought to it, but like it seems

01:00:50   like every language, just about every C-style syntax language since has taken

01:00:56   that and kept it. And Swift had it, and then in the where we're going it was

01:01:01   like we're gonna get rid of it, and here's why. And I thought the explanation

01:01:05   for Y was terrifically cogent.

01:01:07   You know, it was like, yeah, that's sort of like unreadable.

01:01:11   And it'd be a lot easier if you just set X plus equals one,

01:01:16   so that you know it's adding one to it.

01:01:18   - So there's the nuance of post decrement and pre decrement

01:01:22   where you can have plus plus X versus X plus plus,

01:01:25   which means different things

01:01:25   in a lot of different languages, including C.

01:01:27   Python, by the way, doesn't have plus plus or minus minus.

01:01:30   And this is a great example of a language feature

01:01:34   that they're changing based on a proposal for essentially cultural reasons, cultural and like human factors reasons.

01:01:42   Not technical, not like performance or interoperability with Objective-C, or the ability to do something that you previously couldn't do.

01:01:51   This is purely, it's user interface for programming languages essentially.

01:01:55   Does this construct cause more problems than it solves?

01:02:01   How much longer is plus equals one versus plus plus?

01:02:04   Pre and post, it's really easy to get rid of that because that is very confusing.

01:02:08   But, you're like, well, plus plus and minus minus are just, you know, so common, as you noted,

01:02:14   in so many other languages, wouldn't we keep that just because it's an idiom that people are familiar with?

01:02:18   And then the debate, if you can look through this in the manual, it's just like, well,

01:02:21   in what context do you find yourself wanting to do that?

01:02:24   Well, when I do a for loop and I say, you know, i equals zero, i less than whatever, i plus plus,

01:02:28   And then the Swift answer is, well, we don't want people doing those kind of loops.

01:02:32   We want to have a way to iterate over collections more naturally.

01:02:35   So if we say you don't have to do a classic style for loop,

01:02:38   when do you think you're going to use the plus plus?

01:02:42   You know, and so that's how this debate goes.

01:02:44   And this is the level they're talking about.

01:02:46   That's why I say this is the little baby that can barely sit up at this point,

01:02:49   because they're still considering fundamental things

01:02:51   like how many fingers should this baby have, right?

01:02:54   And, you know, is it going to be a biped, right?

01:02:56   Or should it have fur or not?

01:02:57   Like, that's the level they're debating at this point,

01:03:01   and I think it's wonderful because the worst thing in the world

01:03:04   that can happen is for the very early decisions made

01:03:07   by a very small group of people not exposed to the wider world

01:03:10   to become cemented and become unchangeable and to say,

01:03:14   "This is it, and we can't change this because it's too late

01:03:16   because too many people are programming it."

01:03:18   Unless you get everything perfect on your first try,

01:03:20   which you never ever will,

01:03:22   all you're doing is like baking in the warts, you know?

01:03:24   It's nice for the language to have time to grow and change and make mistakes and learn from them and become a different language

01:03:31   Eventually than it was this year or last year. Yeah

01:03:34   um

01:03:36   to take another step back just just in a little uh,

01:03:39   Glossary as we go for non-programmers the abi the binary

01:03:44   Um apple, what is it? What does abi even stand for application binary binary?

01:03:48   right

01:03:50   that is effectively so

01:03:54   Source code is in a text file. You write your Swift in a text file. It goes into the compiler, and the compiler turns it into the binary output.

01:04:02   So the .app, the little actual executable inside the .app bundle, that's the binary.

01:04:08   Or if it's a framework or a library, it's the compiled code that the machine reads natively.

01:04:13   And what they're promising is that Swift 3.0, which is scheduled for, I think they say late 2016, which I sort of interpret, I read between the lines, Mac OS 10.12.

01:04:24   probably, and iOS 10.

01:04:29   From that point forward, that binary interface is going to be compatible with future versions,

01:04:37   with Swift 4, Swift 5, Swift 6 going forward.

01:04:40   And like you said, there's high stakes to commit to that.

01:04:44   Yeah, and it's most important for someone like Apple who makes a bunch of libraries that they ship with their machines,

01:04:50   and your binary needs to know how to call into those libraries.

01:04:53   How to find the functions and how to call them,

01:04:56   how to present the arguments of those functions,

01:04:59   expect where to get the return value from,

01:05:01   all those little details that right now have been in flux.

01:05:06   And they have to nail them down so that you'll ship your binary,

01:05:10   they'll ship their libraries,

01:05:11   and then they'll come up with a new version of the OS.

01:05:13   And if you don't revise your application, you want it to still work.

01:05:16   You don't have to recompile it every time that, you know.

01:05:18   If they change the ABI,

01:05:19   it would mean that people would have to recompile

01:05:21   their stuff.

01:05:22   And like I said, historically speaking,

01:05:23   Apple has not done that on iOS

01:05:24   and has rarely done it on iOS 10.

01:05:26   And 32 to 64 bit transitions are a great time

01:05:29   to require that because you're like,

01:05:30   well, your 32 bit application will keep working,

01:05:32   but eventually we're not even gonna support,

01:05:34   you know, 32 bit max anymore.

01:05:36   So we're just gonna be 64 bit from now on

01:05:38   and your application will just age out of the ecosystem

01:05:41   if you don't update it.

01:05:42   And if you do update it, hey, guess what?

01:05:43   You gotta recompile anyway, so no big deal.

01:05:45   - What was the gist of what Craig was talking about there

01:05:47   with the, it was something about when I was asking

01:05:50   where they're using Swift internally,

01:05:52   and one of the things that they,

01:05:54   where it's holding them up,

01:05:55   and they can't just switch to Swift,

01:05:57   is that they need to,

01:05:58   they still need to support 32-bit on Mac OS X.

01:06:02   - Yeah, I couldn't tell whether that was just

01:06:06   a sly allusion to the fact that 32-bit support

01:06:09   is going away everywhere, that it hasn't, you know,

01:06:12   any remaining holdouts to 32-bit support

01:06:14   will be disappearing,

01:06:15   and they've been doing that over the years,

01:06:16   just going 64-bit everywhere they possibly can.

01:06:19   It's just where they can stop supporting entirely.

01:06:21   The other option is there's no reason

01:06:23   they can't make Swift work with the 32-bit things.

01:06:25   - Right, right now Swift is 64-bit only though.

01:06:27   Is that correct? - Yeah, I mean,

01:06:29   as far as I know, yeah.

01:06:30   And there's no reason they couldn't make it work

01:06:32   with 32-bit, like, you know, sure they could,

01:06:35   but is it worth it?

01:06:35   So it's just a question of are they just shutting that door

01:06:39   and when is it safe for them to shut that door?

01:06:42   And in terms of backward compatibility even,

01:06:44   like all, you know, the iOS device is going 64-bit,

01:06:47   you can still run 32-bit apps on that,

01:06:48   but you don't wanna have both 32-bit and 64-bit apps

01:06:51   running on your device at the same time,

01:06:52   because then you've gotta load two versions

01:06:54   of all the libraries into memory and everything.

01:06:55   So there are lots of good reasons to just forget about 32,

01:06:58   and like I said, just let it age out of the ecosystem.

01:07:00   That's what I would imagine Apple would do,

01:07:03   but he's talking about the past

01:07:05   in terms of what was holding people back.

01:07:07   - Here's where it would really help if we had a chat room,

01:07:10   but I, 'cause the question has just popped into my head now,

01:07:13   and I therefore did not do any research before the show,

01:07:16   is, and I'm guessing this is true,

01:07:18   I'm guessing watchOS is 64-bit only,

01:07:20   and tvOS almost certainly is 64-bit only.

01:07:23   There's absolutely no reason why tvOS

01:07:26   would have 32-bit support,

01:07:28   since the first device that tvOS runs on

01:07:30   is a 64-bit device.

01:07:32   So on tvOS, and I'm guessing watchOS,

01:07:35   it's probably possible to go Swift,

01:07:38   you know, use Swift for the frameworks and libraries

01:07:41   in the operating system.

01:07:42   I don't even know. So you're right. It would be good to have a chair. I don't even know what other that the Apple

01:07:48   No, Tuesday a 8 and the first 64-bit was a 7. Yeah

01:07:53   Yeah, like I like I said

01:07:57   I would imagine the way forward is to travel not to waste its time on 32-bit

01:08:02   But who knows like it depends on which?

01:08:04   roadmap

01:08:04   like if you graph those things out and say when can we finally drop 32-bit support both practically speaking and like politically speaking not

01:08:11   annoying our partners or whatever

01:08:13   Who made like 32-bit games for iOS and don't want to like rebuild them for 64? When can we do that?

01:08:18   When is it safe?

01:08:18   And then the other question is when do we want to really start ramping up on Swift?

01:08:22   Now Swift needs to ramp up before 32-bit goes away

01:08:25   Maybe you have to put in the work to do a 32-bit support

01:08:29   But it totally seems like the Apple move to just be like Swift is going to hasten the demise of anything

01:08:34   supporting 64-bit

01:08:36   Yeah, it just seems to me that anything new from when like at least from when the a7 what was that the 5s shipped

01:08:43   Yeah from that point forward. It just seems like anything that doesn't have legacy support is 64-bit only

01:08:48   So, you know from both from new platform perspective like watch and TV to Swift itself that you know

01:08:56   If it's a new language that came out in

01:08:58   2014 why in the world would it have 32-bit support? It's you know

01:09:05   Anchored to the past. Yeah, and the same thing for new frameworks of their writing new frameworks using Swift Swift only frameworks Swift native frameworks

01:09:12   How they're rewriting foundation in Swift, you know, like but for new stuff where there is no there is no non Swift version of this library

01:09:19   It's just it's been Swift from day one. It's a brand new library. Maybe it's a big new library

01:09:22   That's gonna be a tentpole feature of a future WOEDC and they're gonna tell people how to use it

01:09:27   If it's Swift only and Swift doesn't do 32 for 32-bit

01:09:32   No 32-bit app can use this thing unless they're again unless they're gonna

01:09:35   Bend over backwards to do some crazy way for the you know, the libraries to bridge from 32 to 64

01:09:41   But yeah

01:09:42   I just think it's all 64

01:09:44   Going forward and and what he was giving you a glimpse in his things that Apple had already gone through

01:09:48   Right, like why aren't it why isn't everybody using so well Swift is really young Swift doesn't support 32-bit

01:09:53   These are all reasons that teams that inside Apple that may be interested in Swift

01:09:57   Couldn't use it because it just wasn't practically doesn't wasn't practical at that point

01:10:01   but it becomes more practical every day.

01:10:03   - I really, I thought one of the most astute things he said

01:10:07   was, here I'm looking at my transcript here.

01:10:09   I mean, people here are idealistic yet really pragmatic.

01:10:13   And I think you see that as an Apple characteristic

01:10:15   in many, many elements of what we do.

01:10:17   And I really do think that.

01:10:19   I think that it's almost idealistic yet really pragmatic,

01:10:24   gets to the heart of what I like best about Apple,

01:10:30   you know, in the long run and overall.

01:10:32   And I feel like that really exemplifies it in terms of,

01:10:36   sure, we're really excited about Swift

01:10:37   and it'd be fun to be writing more,

01:10:38   but we've got to write an awful lot of new stuff

01:10:41   still in Objective-C for these very, very pragmatic reasons.

01:10:44   - Yeah, and this is the overarching, like,

01:10:47   you may be excited about Swift,

01:10:48   but there's sort of a company cultural imperative

01:10:53   to, for example, not break binary compatibility

01:10:56   without a good reason, because it's bad for the platform,

01:10:59   and if there's any possible way you can avoid it, like it's bad for the ecosystem, it makes developers angry

01:11:06   and you only get a certain number of those, and you don't want to like cash them in just on a whim, right?

01:11:14   so even though a lot of people may be very excited about using this new technology

01:11:18   if there's an overriding concern, you know, larger than your little project, larger than your little feature or your application

01:11:24   or whatever it is you're doing inside Apple and the Dictate is

01:11:27   you can't use it because you need to support 32-bit, and you need to support 32-bit because we're committed to not breaking binary compatibility

01:11:34   until a big company-wide decision happens at a level way above your pay grade, and only then will it be okay.

01:11:41   So like, the idealistic and pragmatic, as an organization, yes, but like, within the organization I imagine is distributed, where

01:11:47   the lower you go down the org chart, the more people are inclined to be idealistic and want to do something crazy and new,

01:11:52   and the higher you go in the org chart, the more people have to be pragmatic and say "there's a bigger picture here",

01:11:56   And even though you may be excited to use it

01:11:57   on your little project, we decided at the top

01:12:01   when it's time to do these big moves

01:12:02   that are gonna impact, again, literally thousands

01:12:05   of developers and thousands, is it millions of apps?

01:12:07   I don't even wanna think about it.

01:12:09   - It might be, I don't even know.

01:12:11   It's kinda bizarre to think about a million apps,

01:12:13   but it's possible.

01:12:14   One of the areas I wanted to get to,

01:12:16   and when I found out, it was nice,

01:12:18   one of the things that was nice about this interview

01:12:20   was that I knew about it at least a week in advance.

01:12:24   It was actually a little bit more than a week in advance

01:12:25   by the time we found a date that worked for both of us.

01:12:29   And so I felt like I had plenty of time to prepare,

01:12:33   which was great.

01:12:34   And so one of the ways that I prepared

01:12:36   it was I went to people who know a lot more

01:12:38   about programming than I do.

01:12:40   And it's specifically a lot more about programming

01:12:41   for Apple platforms than I do.

01:12:43   And tried to get some questions from them.

01:12:47   And one of the things that I asked about,

01:12:49   but it's, and I knew this,

01:12:51   but I was interested in hearing it from developer friends

01:12:53   is this whole angle that Swift is not just Objective-C with a modern friendly syntax.

01:13:00   It is a very different language with very different primary priorities.

01:13:07   And there are certainly some things, it certainly looks better, and it certainly is a much more

01:13:13   approachable syntax. And I feel like at a fundamental level, that's basically why there's

01:13:17   there's so much excitement around Swift.

01:13:18   Is there's a lot of people who just took one look at

01:13:23   or take one look at Objective-C

01:13:24   and they're like, I don't get it.

01:13:26   And then they take a look at Swift and they're like, wow,

01:13:28   that looks like the language I already know,

01:13:30   whether it's JavaScript or C or I don't know,

01:13:35   even Java to some degree, maybe.

01:13:38   It's a lot more similar to those style languages

01:13:40   than it is to Objective-C.

01:13:41   But there are things about Objective-C

01:13:44   and the way that the next now Coco and Coco Touch frameworks,

01:13:49   all these things that have derived from the next origins,

01:13:54   the way that these frameworks take advantage

01:13:56   of the dynamic aspects of Objective-C

01:13:58   that people who are really good at it,

01:13:59   people who've been writing for these frameworks

01:14:02   for a long time love, and Swift sort of

01:14:05   isn't really what they were looking for

01:14:07   in a next generation language.

01:14:09   And I thought his answer to that surprised me, I thought.

01:14:13   I mean, it was on message in terms of like,

01:14:17   the dynamic things that people wanted to do

01:14:20   with Objective-C will eventually be possible with Swift

01:14:22   if they're not now and that this is an ongoing thing

01:14:24   and they're working on it and yada yada

01:14:25   and essentially all the dynamism,

01:14:28   which is a word that you like to use,

01:14:29   all the dynamism that Apple thinks is important

01:14:32   will be available in Swift without the downsides

01:14:34   that he also went over extensively,

01:14:36   that you've got to pay for that all the time.

01:14:38   - Yeah, I thought that was interesting.

01:14:39   And I thought it was, I'm not sure,

01:14:43   I guess I kind of was worried that he would dodge that question and instead it seemed like he'd dove right into it and it's

01:14:48   Obvious so obvious from his answer that they have

01:14:51   discussed this internally

01:14:53   extensively

01:14:54   well, this is an interesting time for Swift because a lot of things that have been true of Swift from the beginning are now starting to

01:15:02   become come more into the public consciousness

01:15:04   Mostly because more people are using it more people are aware that it even exists as excited as we all were whatever was two years

01:15:09   to go to see Swift at

01:15:11   CWDC

01:15:13   It's not really a thing for people

01:15:15   Broadly speaking until you know a certain point like can actually use this to make iOS and Mac apps

01:15:21   Okay, then it becomes one level of thing and then the open source is the next level is like hey

01:15:24   this is maybe of interest to the entire world of programmers right and so now a lot of people are looking at Swift and

01:15:31   They're going to I think start realizing things that have been true about Swift from the very beginning you mentioned the syntax thing which is

01:15:38   kind of a sideshow because

01:15:40   The syntax is, you know, even though it's a thing that people notice when you look at it, and there is a certain, I don't know, like a,

01:15:48   like a flavor, like you can tell, does this feel like a modern thing or does this feel old and weird?

01:15:54   Does it look like, you mentioned, like does it look like JavaScript? Does it look like whatever language the kids are learning these days, right?

01:15:59   But that is mostly not important. I mean, there's some aspect where you have to sort of keep up with the Joneses and not look like you're really old.

01:16:07   But then the other aspect of it in terms of the language itself is how many things do I have to worry about?

01:16:12   And Objective-C asks developers to worry about things, used to before Arc, asked them to worry about memory management,

01:16:19   where they had to call "retain and release".

01:16:21   And to a modern young programmer, that just seems barbaric, because like I said, it'd be coming from, you know...

01:16:27   I guess JavaScript is a great example, because a lot of people know web stuff and JavaScript is everywhere,

01:16:33   but even things like C# or Java on the server,

01:16:36   it just seems barbaric to have to deal with that,

01:16:38   or to have direct access to memory with pointers.

01:16:40   And then Arc made that a little bit better,

01:16:42   but still, what are all these asterisks all over the place?

01:16:44   That doesn't really make any sense.

01:16:46   If you don't know C,

01:16:47   I think a surprising number of developers now

01:16:51   find that if you're a GUI application developer,

01:16:55   the reason is for you to know C

01:16:57   to figure out how to make a sheet come up

01:16:59   when someone pushes the button.

01:17:01   There's not a lot of those,

01:17:02   and it just seems like why do I have to worry about all this crap?

01:17:04   So, from the developer's perspective,

01:17:06   Swift is exciting because it's like, I want to make an iOS app

01:17:10   because iOS apps are cool and I like iPhones and all this other stuff,

01:17:14   but it's kind of annoying that I got to worry about all this stuff.

01:17:16   And Swift says, now you don't have to worry about that stuff anymore.

01:17:19   And the syntax looks nicer too.

01:17:21   And so that is the public face of Swift and the excitement

01:17:24   over finally a more modern language,

01:17:27   both in terms of appearance and aesthetics,

01:17:29   but also in terms of how many things do I have to be concerned with when writing a program

01:17:34   that seemed to me to be beneath the concern of me as like a programmer of a GUI app or

01:17:41   whatever.

01:17:42   Yeah, and I think a lot of that is historical in terms of when languages, C is the primary

01:17:47   example because so much has, you know, if you draw the family tree of programming languages,

01:17:52   there's an awful lot of languages that derive from C. And in that era, you know, I guess

01:17:58   what late sixties or early seventies when C was invented?

01:18:01   I, I, I pretty sure the first edition of the KNR was like 1971.

01:18:08   So late sixties, early seventies.

01:18:10   The computers were so incredibly slow. I mean, just,

01:18:15   just mind bogglingly slow by our standards today. You know, it's, you know,

01:18:20   like the, the whole, you know,

01:18:22   the entire Apollo mission was done with less computing power than your Apple

01:18:25   watch has. I mean, it's just ridiculous. And so you needed to squeeze every single cycle

01:18:30   out of the CPU that you could. And that meant being, as a programmer, writing at an incredibly

01:18:35   low level where you're managing all the memory by hand. Because if it works, then it's incredibly

01:18:41   efficient. And then if it doesn't work, you just have to fix it. You have to fix the bugs.

01:18:46   But the retain release stuff is a perfect example of that. And I know when I first started

01:18:53   trying to go away from it. And it was funny because it's an interesting example of Apple,

01:18:58   you know, going down an alley and then deciding against it, which was at some point in the last

01:19:03   decade, they introduced garbage collection to cocoa. Pretty sure it was like in the early years

01:19:10   of Bertrand. It was definitely after Avi Tevainian had left. And I know there was a lot of reluctance

01:19:19   from people who got it and people who didn't have, who at least didn't think they had problems dealing

01:19:24   with the manual retain release memory management, didn't like garbage collection at all. And it

01:19:29   turns out Apple didn't like it either. And they eventually got rid of it.

01:19:32   **Matt Stauffer:** Yeah. All the, all the people who thought,

01:19:34   oh, I'd retain release is fine. I don't need this garbage collection. Like one of the big reasons

01:19:39   to even consider garbage collection is just, like I said, you know, objectivity started to look old

01:19:45   and crappy. Why do I have to worry so much about memory when programming for this platform? It makes

01:19:49   the platform feel older and more primitive and less capable. I can program for Android

01:19:54   or for Windows or for whatever and I don't have to worry about this and like really I

01:19:58   just want to make my app right? I want to decide I want to write the code that's going

01:20:02   to make my app do the things my app does. I don't care about memory like can't you just

01:20:05   take care of that for me? And so the only reason they would go down the garbage collection

01:20:10   path is like well here's one way we can make people not have to worry about retain release

01:20:13   and it was like well you put in the retains and releases but they won't do anything or

01:20:17   or whatever, and garbage collection for a variety of reasons was difficult to go with

01:20:22   Objective-C in particular because it is a superset of C, and because it's very difficult

01:20:27   for a garbage collector to know enough information about the C-ish parts of your program, which

01:20:31   may be right in the Objective-C or may be in data that's coming out of C libraries,

01:20:36   to know enough to do the right thing with that stuff, and so it was kind of not technically

01:20:41   infeasible but like never a completely closed solution where you could be like, "I feel

01:20:45   like 100% of the time we will do the right thing here.

01:20:48   And, you know, and eventually, like, they launched it, it was out there,

01:20:53   you could use it, they dogfooded it on some teams,

01:20:55   and then eventually pulled it back, right?

01:20:57   And this is what I was getting at before with, like,

01:20:59   things that have been true about Swift in the beginning

01:21:00   that are just now going to be coming into the public eye.

01:21:03   The other aspect of Swift, setting aside both the syntax

01:21:06   and the modernization in terms of,

01:21:08   look at this language that does more modern things

01:21:10   that lets the developers not worry about the things

01:21:12   they're not worried about,

01:21:13   and express themselves in a more compact, elegant form,

01:21:16   just solving the problem they want to solve,

01:21:19   you mentioned it looked more like pseudocode,

01:21:20   that's because you're not, like in pseudocode,

01:21:22   you're not concerned with the little details,

01:21:24   you're just like, here's the algorithm, here's roughly the steps,

01:21:27   I don't want to be concerned about the details, right?

01:21:28   It does all that, but the other thing that's big about Swift,

01:21:32   and this is an interesting contrast to what you just mentioned about, like,

01:21:34   C being made in the day when computers were slow,

01:21:36   and it was discussed by Craig as well when he was talking about

01:21:40   the just-in-time compilers, the JIT and everything,

01:21:42   It is essentially a bet against virtual machines with cycle counting garbage collectors.

01:21:50   It is a bet against the things that Java does and C# and Android, which is Dalvik, the virtual machine,

01:21:57   or all the JavaScript engines that run all our web browsers.

01:22:01   JavaScript is in a tough spot because it's like they're stuck finding a way to make JavaScript fast,

01:22:07   because it's everywhere in web browsers and no one really controls that platform.

01:22:10   And so that's why we've had to put all this brainpower

01:22:12   into making JavaScript fast.

01:22:14   But garbage collectors was going more in that direction.

01:22:18   But as you mentioned in the description of Swift,

01:22:21   it's supposed to span from an operating system up

01:22:23   to a scripting system.

01:22:25   And once you get down to low level,

01:22:27   you can't have a garbage collector doing

01:22:30   unpredictable things at unpredictable times.

01:22:33   And even if it's predictable, you can't have the garbage

01:22:35   collector take these pauses to walk your trees of things

01:22:38   to find out what needs to be collected.

01:22:40   Even, you know, there's a lot of great technology

01:22:42   in the Java world of making garbage collectors

01:22:44   that don't induce pauses or are more predictable,

01:22:47   but nothing is as predictable as something

01:22:50   that is entirely deterministic like Arc,

01:22:52   something that is determined at compile time

01:22:55   where they'll put in, essentially put in

01:22:57   the retains and releases for you.

01:22:59   And there's debate as to whether theoretically,

01:23:02   can garbage collection approach the reliability

01:23:06   and performance characteristics needed

01:23:07   for the kernel of an operating system, I think Microsoft just had various projects to try to make

01:23:11   a sort of memory managed operating system or whatever,

01:23:13   but Swift is a bet heavily in the other direction, and

01:23:16   this bet was made when Arc came out for Objective-C,

01:23:19   not so much it was Swift, but doubling down with Swift is that

01:23:23   to make a language that fulfills the goal set out for Swift,

01:23:26   we have to not have this virtual machine

01:23:30   and garbage collection that does all the stuff, we have to basically

01:23:34   nail things down more, figure things out at compile time, make everything about it deterministic,

01:23:40   only then will it become possible to match both the performance and the sort of the predictability

01:23:47   of C code so you can write your operating system kernel, your audio subsystem, or I don't know,

01:23:52   your real-time operating system for your car, we'll see about that, but you can write that type of

01:23:56   code without wondering when, you know, when the garbage collector is going to pause you for a

01:24:02   for a second to walk some tree or when something's going to get collected or how much memory

01:24:06   is going to be available at any given time based on when the collector ran, based on

01:24:09   what code ran before you called into this code.

01:24:11   All right, even when you're running on a modern computer that is very fast and maybe that

01:24:15   pause isn't even a full second, maybe it's just, you know, 200 milliseconds, but a fraction

01:24:22   of a second. In certain contexts, that pause just kills the user experience. I mean, and

01:24:30   That's not to badmouth Android, but it's--

01:24:32   I mean, I've heard from a lot of people

01:24:34   that dealing with a garbage collected system

01:24:36   is one of the reasons why Android spent years trying

01:24:39   to get to what iOS users thought was a smooth user interface

01:24:43   right from the get-go.

01:24:44   Because the garbage collector would run while you're

01:24:46   scrolling a list or something like that,

01:24:47   and you'd get these little stutters or pauses.

01:24:49   And they were fractions of a second,

01:24:51   not like a whole second long pause,

01:24:53   but just a little fraction of a second.

01:24:56   And in a real-time situation, if it's

01:24:58   kind of camera-based thing running on a car or something like that you really don't want to have

01:25:02   an unpredictable even fifth of a second pause and they have pause-free collectors but the whole

01:25:08   point is if you give up pausing essentially what you're either doing is having in the degenerate

01:25:12   case having something like reference counting happening in a small case like the you know

01:25:16   generational collectors and and the long-lived versus short-lived objects like you can you can

01:25:20   avoid pausing but if you avoid pausing you basically build up garbage uh and it this is

01:25:25   This was also mentioned by Craig, the idea that they can run...

01:25:27   I don't know if it's kind of an excuse of why they put a little RAM in their iOS devices,

01:25:31   but that they can fit their stack,

01:25:35   they can fit their operating system and their framework and their libraries

01:25:37   in a smaller memory footprint, what did they say?

01:25:40   Probably, reading from his thing here,

01:25:43   "with different memory footprints than some of our competitors

01:25:47   whose languages don't have this characteristic."

01:25:49   Basically, what he's saying is, Android, they have to ship more RAM in their devices

01:25:52   because they build up too much garbage,

01:25:53   and that's basically the choice you have.

01:25:55   Either something has to decide

01:25:57   which memory is available for use,

01:26:00   which memory are we done with

01:26:01   and we can use again for something else,

01:26:02   or which memory is still in use.

01:26:04   And Arc does that by,

01:26:06   Arc, which underlies Objective-C and Swift,

01:26:09   does that by, as it runs, it says,

01:26:11   I'm using this, now it's available,

01:26:12   now I'm using this, now it's available,

01:26:13   now I'm using, like, in the code path,

01:26:15   along with the executing code.

01:26:17   And garbage collection is, I just plow bravely forward,

01:26:19   and something else, the garbage collector,

01:26:21   occasionally figures out what is available for everybody else and what isn't.

01:26:24   Hopefully you can do that without disturbing the other guy

01:26:26   who's plowing bravely forward, but sometimes you have to stop him from going,

01:26:29   and if you want to have a pause-free one that doesn't stop the ongoing code

01:26:33   to figure out what's available, it has to necessarily leave some stuff on the floor

01:26:37   and say, "I'm not sure if this isn't used yet.

01:26:40   I can't find out without stopping the guy that's running over there,

01:26:43   so I'm just going to leave it off the side."

01:26:45   What it boils down to is you never know based on, you know,

01:26:49   you've got these two things, the collector and the program.

01:26:52   You never know at any given point,

01:26:53   when I'm at this point in the code,

01:26:55   how much memory is gonna be available in this process?

01:26:58   Like, well, if the collector ran here,

01:26:59   then maybe it'll be here, but if the collector is behind,

01:27:01   'cause it's running on a different core,

01:27:02   then maybe this much will be available, whatever.

01:27:04   And you just end up with a little bit of extra garbage,

01:27:06   and the overhead of the virtual machine itself,

01:27:08   and all that stuff.

01:27:08   This is even before you get into like executing byte code,

01:27:11   like Java does versus native and all that other stuff.

01:27:14   Swift and Arc and Objective-C are a bet heavily against

01:27:17   the virtual machines, like Java virtual machines,

01:27:19   C# Virtual Machine, and certainly anything like the JIT craziness that we've had to do

01:27:23   for JavaScript to make that fast.

01:27:24   Yeah, garbage collection, the analogy works, and so I can see why that stuck as the terminology.

01:27:32   But you know, like any analogy, it breaks down at a certain level. And in the real world,

01:27:37   the garbage that you keep, like here in Philadelphia, we get garbage collected once a week. The

01:27:45   you know, the fact that by Tuesday we've got six days of garbage in the house isn't a problem

01:27:50   because we don't generate that much garbage and it just sits tied up in bags in our garage.

01:27:54   Whereas on a computing device, uncollected garbage is taking memory, and memory is a precious

01:28:03   resource. It's almost like you're in a studio apartment, you know, and you have uncollected garbage.

01:28:07   Yeah, and the thing is, again, good garbage collectors take advantage of this to try to

01:28:13   to be smart about like what if I'm in a tight loop and inside this loop I do something with

01:28:17   some amount of memory but on the next iteration of the loop I'm totally done with it. I don't

01:28:21   need a new set of memory I can just keep reusing that same region of memory over and over again

01:28:25   in this tight loop. I don't need to allocate and get rid of it like I just need to know

01:28:29   say I'm using it okay now I'm done I'm using it I'm done I'm using it and I'm done rather

01:28:34   like say you're just creating a new object in loop every time a very naive old style

01:28:37   garbage collector like oh you're making a new object you need some memory for that object

01:28:41   I mean, we've got the memory for that object.

01:28:42   Okay, here you go, I gave you the memory for your object.

01:28:43   You make it, and you go to the next iteration of loop,

01:28:45   and the garbage collector hasn't run yet,

01:28:46   and it's like, oh, you're making a new object.

01:28:48   You need some memory for that object,

01:28:49   and a programmer manually managing memory

01:28:52   would never allocate new memory.

01:28:53   It's like, I've got the memory from the old object.

01:28:55   I'm done with it.

01:28:56   I'm not using it anymore.

01:28:56   Just take this, right?

01:28:58   And so--

01:28:58   - A good programmer might not.

01:29:00   (laughing)

01:29:01   I think we've all run into code

01:29:02   that was written like that, though.

01:29:04   - But this is the problem

01:29:04   with the really primitive garbage collectors

01:29:06   back in the day, and the garbage collectors became smarter.

01:29:08   It's like, oh, well, for a smarter garbage collector,

01:29:11   we can divide the world up into objects that are short-lived

01:29:13   and objects that hang around for a long time.

01:29:15   And let's make these different pools

01:29:16   about these short-lived objects

01:29:18   and the ones that hang around.

01:29:19   And let's try to, you know,

01:29:20   what you're trying to do is get to the point

01:29:22   where if you gave this to, you know,

01:29:25   if you gave this to an assembly language programming,

01:29:26   you showed the assembly language,

01:29:28   they wouldn't look at it and go,

01:29:29   this is the stupidest code I've ever seen in my life.

01:29:31   Like, it's just incredibly wasteful of resources.

01:29:33   You know, you want them to look at it and go,

01:29:35   oh, oh yeah, no, that's pretty much as efficiently

01:29:37   you could have written it. Like you're not allocating tons of memory and then leaving it

01:29:43   allocated and not reusing it because you don't know that you can look at it and say well here

01:29:47   I am I'm looking at the assembly code I can tell this memory is never accessed again why are you

01:29:51   keeping it around? Well the garbage collector doesn't know that yet or whatever. So this is

01:29:55   this is a kind of a philosophical debate can garbage collection ever be as efficient and as

01:30:01   as predictable as manual memory management.

01:30:04   And Arc and what underlies Swift and Objective-C with Arc

01:30:09   is trying to say we're going to try to automate the part

01:30:12   where we say retain this, do stuff with it, release it,

01:30:15   retain this, do stuff with it, release it,

01:30:17   so that the developer doesn't have to write it,

01:30:19   but so that the compiler writes it,

01:30:20   so that if we were to look at the assembly code,

01:30:22   we can see a predictable pattern.

01:30:24   Because there is some overhead to doing all of those,

01:30:27   you know, bumping up the retain counts and releasing,

01:30:30   Like that's in your running code.

01:30:32   It's the code that the garbage collector code

01:30:33   doesn't need to do.

01:30:34   It doesn't need to increment retain counts

01:30:35   and decrement retain counts.

01:30:36   It can just run

01:30:37   because it knows the garbage collector

01:30:38   is gonna take care of that.

01:30:39   And so the bet with Arc and Swift is

01:30:42   it is more efficient and predictable to do that work in line

01:30:46   because then we know exactly when that work will be done

01:30:48   and we can be smarter about it.

01:30:50   Like we can, in the binary that we generate,

01:30:54   look at it and say, are we being smart

01:30:55   or are we being stupid here?

01:30:56   Versus if you're running the garbage collector,

01:30:58   you're like, well, now there's two things in play here.

01:31:00   there's the program and then there's the garbage collector

01:31:02   and the program looks okay

01:31:03   in terms of what it's doing semantically,

01:31:05   but how will the garbage collector interact with this?

01:31:08   How would it deal with the memory

01:31:10   and know when to make it available for reuse or whatever?

01:31:13   - I don't know if I'll be able to find it.

01:31:15   I did, I remember reading on, what's that website, Quora.

01:31:20   I remember reading a Quora page where somebody asked

01:31:23   why do Android devices tend to ship

01:31:25   with so much more RAM than iOS devices?

01:31:27   And like the top voted answer was, I don't know who wrote it,

01:31:31   but it was more or less, you know,

01:31:32   that because Android is garbage collected,

01:31:35   it's effectively Java.

01:31:36   It's Java running in Google's handmade rip off of Java.

01:31:41   There's no way you can convince everybody of this.

01:31:51   And I do think there is a factor in this

01:31:53   where Apple just wants to use less RAM because it's cheaper

01:31:56   and they save money and this is one of the ways

01:31:58   that they get to 38, 39% profit margins.

01:32:03   But there really is a factor there

01:32:06   that from an effective standpoint,

01:32:08   like an Android device that ships with three gigs of RAM

01:32:12   has about as much effective RAM for you as the user

01:32:15   using the device as an iOS device with one gigabyte of RAM.

01:32:18   - Yeah, and this is, like I said,

01:32:19   this is before we even considered the idea of bytecode,

01:32:22   although Apple's going that direction

01:32:23   with its bitcode thing, but not quite.

01:32:24   But anyway, the idea in the Java virtual machine, or any kind of virtual machine that you produce is

01:32:31   binary code for the virtual machine.

01:32:34   And the virtual machine is this hypothetical thing that is not your actual CPU, and then

01:32:39   the virtual machine itself will execute that code natively on the CPU.

01:32:44   Like, so the whole idea with Java is like, "Oh, you can make this one Java bytecode application

01:32:48   and send it to an x86 device, and a PowerPC device, and an alpha device,

01:32:52   and this same quote-unquote binary because it's bytecode will run on all of them because they all have Java virtual machines

01:32:57   and those Java vulture machines will execute natively on the individual platforms

01:33:01   but you just have one binary that was the write once run anywhere type of thing

01:33:05   for I'm not sure what the Dalvik design is but I think they have I think they still have bytecode

01:33:12   but either way like the idea of a virtual machine is you have a

01:33:15   you don't have a real target architecture you have a virtual machine and that's what you're you're coded to

01:33:20   and then you have to eventually get to native code.

01:33:22   So it's just more stuff between you

01:33:24   and seeing how this is gonna actually execute

01:33:26   on your actual hardware.

01:33:27   - Yeah, and I do think, I think that's a keen observation

01:33:30   that this whole segment of the show,

01:33:31   that Swift is a bet that there is something better,

01:33:36   there's a better way to,

01:33:38   better way to get all the advantages

01:33:39   of those garbage collected virtual machines

01:33:42   and avoid all of the overhead.

01:33:45   - Yeah, and the meta thing and that bet,

01:33:47   like again, theoretically in computer science,

01:33:49   you can have all these debates about,

01:33:50   is it theoretically possible to have a pause-free garbage

01:33:52   collector that has better performance?

01:33:53   Because like I said, there are advantages to the garbage

01:33:55   collector because it doesn't have to have that inline code

01:33:57   that messes with the memory management.

01:33:59   In the actual execution of the program,

01:34:01   it can just go forward as fast as it can.

01:34:03   And if the garbage collector could do its job and keep up

01:34:06   with it and not disturb it, that would be great.

01:34:08   But the other part of this is the idea that computing power--

01:34:16   not just CPU power or whatever, but if you

01:34:18   if you were to graph anything having to do with computing power in terms of

01:34:21   How fast can we get to memory? How much memory do we have?

01:34:24   What is the single threaded integer performance of a CPU? I think I saw a chart about like

01:34:27   Single threaded integer performance of intel CPUs over the past 10 years or whatever

01:34:32   And the curve is not a hockey stick going up anymore like in in the in our youth in the heyday of

01:34:38   CPU architectures every year there'd be a new chip and it would be like twice as fast and and you know

01:34:42   Your code would just get magically fast. You didn't have to recompile it

01:34:45   You didn't have to use any new technology like that the clock speed would double and the you know the the number of

01:34:51   Execution units would double and just everything was was roses every year. I

01:34:55   Remember and this is as late as the 90s

01:34:58   I had an internship at a Windows software development place and I was writing you know

01:35:04   Dawson Windows code and everybody had a 486 and

01:35:08   The Pentiums were just coming out. So I don't know what year this would have been probably around 95

01:35:14   Maybe 94 somewhere around there and the one guy got one first one of the engineers got one first and it was so ridiculously

01:35:22   Faster than everybody else and it gave us good kit

01:35:24   I mean, you know usually programmers get good good devices because they really you know

01:35:29   You even if you're like a penny-pinching manager

01:35:31   If it takes a long time for the code to compile getting your engineers machines that compile code faster is worth it

01:35:37   This guy's machine was so much faster that we would people would wait

01:35:41   until he was like away from his desk and then use his computer to compile stuff because it was took less time than waiting for

01:35:47   It to compile at your own desk. Yeah, I remember just like seeing doom running from like

01:35:51   First time I saw doom run on the pendium. This is before the edge of video cards. This is all in the CPU

01:35:56   It was just magic how much faster it was you just and it was the same program

01:36:00   Like it was the same program and just for free your everything you did got faster, right?

01:36:04   So when we were in that part of the hockey stick curve

01:36:06   like the graph I saw looked like it had that part of the hockey stick curve where it's like going up up up and

01:36:11   Then it starts to level off and it becomes kind of like a mound. You know, we're going the slope is decreasing over time

01:36:16   and

01:36:17   If we were still on that hockey stick

01:36:19   I think it's inevitable that VMS and any sort of higher abstraction thing would have won because it's like yeah

01:36:26   it's a little bit slower and

01:36:28   Yeah, you can get behind and we may be using more memory than they're supposed to but just everything is on this big hockey stick

01:36:33   and it doesn't matter, your concerns are pointless, they will be dwarfed by the inexorability of progress.

01:36:40   And progress has slowed for two reasons.

01:36:42   One, the move to mobile has pushed everybody back down that chart a little bit,

01:36:48   and we kind of think we're back in the hockey stick era where it's like,

01:36:51   "Oh, Apple's doubling their CPU speeds every day,"

01:36:53   but all they did was they just got shoved back down the hockey stick,

01:36:56   because these things are these tiny little CPUs with small batteries and thermal envelopes

01:37:03   that don't allow for fans or anything like that.

01:37:05   So we're kind of back in the olden days,

01:37:08   but that means we're also back in performance.

01:37:10   So on the iPhone CPUs, they used to be like dishwasher CPUs.

01:37:15   Like, they were terrible.

01:37:16   And they've been slowly catching up to,

01:37:19   now like with the iPad Pro, it's like, this is a modern MacBook CPU,

01:37:22   but not surpassing the desktop.

01:37:25   - No. - Right?

01:37:26   So everything is slower,

01:37:29   and that's been a huge advantage for Apple,

01:37:32   having a native platform like back in the day where everything was Objective-C, which is a C-based language,

01:37:37   to be able to just get the iPhone 1 out the door and working.

01:37:40   Like, that's why the BlackBerry people thought it was a fake demo, because it seemed impossible.

01:37:44   Yeah, and then we see things like the watch where we're pushed back to, "Wow, this is really slow again."

01:37:51   Yeah, and then the other aspect of this is Moore's Law.

01:37:54   Moore's Law can't continue forever.

01:37:57   the density of transistors on a CPU doubling every 18 months, well eventually you get down

01:38:04   to like quarks and gluons. Like you can't, you know, having the size of things, the math starts

01:38:09   to get really funky really fast and as far as we are aware you can't keep subdividing matter

01:38:14   forever. Eventually you get down to fundamental particles and way before you get down to fundamental

01:38:18   particles everything becomes screwy in terms of the laws of physics and quantum mechanics.

01:38:22   So lithography sizes, like we continue to march forward,

01:38:26   but there is an end in sight where you're gonna have

01:38:30   to come up with a new technology, like quantum computing,

01:38:32   or you know, like just, it's not as if this hockey stick

01:38:37   can't go on forever.

01:38:38   And so the bet with Swift is the era of time

01:38:41   that we're in now where progress on computing power

01:38:45   and performance has for both like practical reasons,

01:38:48   you know, in terms of how much harder is it for Intel

01:38:51   to make their top end CPUs faster every year,

01:38:53   and how long does it take to get to the next process node

01:38:55   for making feature sizes smaller in CPUs,

01:38:58   and because of the move to mobile and wearable

01:39:00   and who knows what else,

01:39:02   that this is a good time to say,

01:39:05   I don't think the hardware is gonna make it

01:39:08   so that those virtual machines are better suited

01:39:12   to Apple's needs than the solution

01:39:14   that represented by Swift and Arc with Objective-C.

01:39:17   And so let's say, you know,

01:39:20   Swift is the language from the next 20 years, and in the next 20 years we feel like this is the best technical solution.

01:39:24   Until quantum computers or whatever, this is what we're going with.

01:39:27   And Apple is essentially begging the company on that.

01:39:30   And it's been a good bet so far, because like I said, I think it gave them a huge advantage during the iPhone era, essentially, the iOS device era,

01:39:39   where it was very difficult for the competitors to catch up with them until the CPUs did start climbing up that hockey stick and said,

01:39:44   Now we can support a Java virtual machine

01:39:47   and have a responsive GUI,

01:39:49   just put a little more RAM in there.

01:39:52   - It occurs to me,

01:39:54   and I don't want to spend a lot of time

01:39:55   speculating about a car on this episode at least,

01:39:58   but one of the things that makes me laugh

01:39:59   about the car idea is that it's like the one team at Apple

01:40:04   that's writing software that the computing part

01:40:07   of the device doesn't have to really worry

01:40:12   about battery life.

01:40:13   I mean, the car itself obviously is going to have to worry about battery life tremendously,

01:40:17   but the amount of the battery that goes towards propelling a multi-ton device is everything.

01:40:26   And the little computer that lights up the dashboard and maybe does whatever else with

01:40:30   the sensors and stuff is kind of insignificant.

01:40:33   But it's really the exception to where things are going.

01:40:35   The watch, to me, is the better example of where things are going, where the computing

01:40:42   devices getting smaller and smaller. I mean, and you know, I don't know what the idea would

01:40:46   be, but surely they're going to be making devices that make the watch look big, you

01:40:50   know, in the years to come. And so they're never going to get out of the need, I don't

01:40:54   think in the foreseeable future to have really efficient code that runs on really what everybody

01:41:04   would consider to be a painfully slow processor because we keep the desire to keep making

01:41:09   things smaller and smaller and have little fingernail sized things that that do clever stuff is

01:41:13   inevitable

01:41:16   Yeah, and really you have to view it kind of as like as epochs in history

01:41:19   Like there was there was the part where you're growing up which was awesome where computers would get faster more powerful

01:41:24   Just like everything about them would get better just year after year and it was amazing, right?

01:41:28   And if you get starry-eyed and extrapolate from that you'd be like by the time we're adults computers will be infinitely fast and have more

01:41:34   Memory you the size of a planet, right?

01:41:36   But no, that's not how it works. We start reaching the limits of you know

01:41:39   silicon wafer lithography and all the other and instruction level parallelism and all the other sort of

01:41:44   very difficult problems that make it harder to make you know, or even just like heat dissipation with the the megahertz wars like

01:41:52   You know, what are we using now? The three four gigahertz CPUs. They had three four six gigahertz CPUs a long time ago, too

01:41:58   Why are we not using 700 gigahertz CPUs? Like we're bringing to the limits of the current way. We do computation

01:42:03   and so

01:42:06   We're kind of in it's not a dead period like we're making progress and we're doing interesting things

01:42:09   And we're going the other direction saying well

01:42:11   We're not making a lot of progress on the top end, but we can shrink these suckers down really small now

01:42:15   Isn't that pretty awesome?

01:42:16   You can have a smartphone or a smartwatch

01:42:17   But there will have that

01:42:19   Inevitably come a time where we come out of this slower period and go up into another hockey stick and again whether it's quantum computing

01:42:24   Or whatever whether we're all dead or not like there will be further progress

01:42:27   It's not the end of progress

01:42:28   but if you're Apple and you're trying to figure out how to make

01:42:33   the development platform for right now and for the next 20 years you have to sort of bet like what is the best fit for

01:42:39   this and it's you know Apple have the benefit of

01:42:41   everyone else going first and going with virtual machines whether it be Java or C# or the common language runtime at Microsoft and

01:42:48   seeing how JavaScript has worked out in the browser and they've essentially said

01:42:52   Because of both mobile and the slowdown in the top-end performance increase

01:42:56   We believe this is the best bet for the next 20 years or so because they saw everyone else go before them

01:43:02   And so that that's where we are with this

01:43:04   I don't think you know Swift is not if so if it's a language for the next hundred years it could be

01:43:08   But again the beauty of these details not being in Swift itself is there's nothing in the language itself that dictates that it couldn't be

01:43:15   Run on top of a virtual machine. It's just that's not the correct solution for Apple right now

01:43:19   And that's not what they're doing. Yeah, all right

01:43:21   Let me tell you about our next friend of the show and it's our good friends at wealth front

01:43:25   These guys have been sponsoring a show the last few episodes. They are here's what they give you a low-cost automated

01:43:31   investment service.

01:43:32   It makes it super easy to invest your money the right way.

01:43:36   You just put money into Wealthfront account,

01:43:38   and then they manage the portfolio.

01:43:41   They ask you a couple of questions about how risk

01:43:44   averse you are, how aggressive you want to be.

01:43:48   Because you can obviously invest in money

01:43:49   that goes into the stock market.

01:43:51   It could go down.

01:43:51   It's not a bank account.

01:43:54   So they ask you a couple of questions

01:43:56   to see how comfortable you are with risk,

01:43:57   and then they just take it from there, and that's it.

01:44:00   They literally say whether you're just starting out,

01:44:03   you can, I think you can open an account with just 500 bucks.

01:44:06   If you wanna put millions of dollars in there,

01:44:08   you can do it too.

01:44:09   That seems crazy to me, but you know,

01:44:13   really it scales all the way from, you know,

01:44:14   you being $500 put in a market to millions of dollars,

01:44:18   you can do it.

01:44:19   Why would you use them

01:44:20   instead of a traditional money manager?

01:44:22   Basically what Wealthfront is,

01:44:23   is an automated service that replaces a human money manager.

01:44:27   The big reason to do it is that, number one,

01:44:30   they're just putting money into index funds anyway,

01:44:32   which is really a smart long-term strategy.

01:44:35   If you read anything about the ways

01:44:37   that people can actually invest for success in the long term,

01:44:41   putting the money into index funds is the way to go.

01:44:43   That's pretty much what Wealthfront does,

01:44:44   but they balance it between different index funds

01:44:47   based on monitoring systems all the time,

01:44:50   monitoring the market all the time,

01:44:52   and moving money around between different index funds

01:44:54   to keep your risk at the right level.

01:44:57   And the big thing is is that Wealthfront charges way lower fees than traditional money managers

01:45:04   1.0 1% is about the average but some of the some of the money managers out there charge up to 3% and

01:45:10   That's of what you have under management

01:45:12   So if you have you know ten thousand dollars under management

01:45:16   They they take a fee of 3% of your money not like your profits, but your money that's in there

01:45:21   Wealthfront's

01:45:23   fee is just 0.25 percent and

01:45:27   They only start charging that

01:45:30   above

01:45:31   $10,000 so if you

01:45:33   Only, you know, once you get $10,000 in your account, that's when they start charging their

01:45:38   0.25

01:45:40   Fee and if you use the code that I have here for you, they actually bump that up to

01:45:45   15,000 and so if you have 15,000 and then one put one more dollar in there

01:45:51   They charge the fee on that one dollar that's over fifteen thousand keep going from there

01:45:56   Go to here's where you go to find out more wealth front comm slash the talk show

01:46:02   and again

01:46:03   You can start with just 500 bucks and they even say right here that that's really how most of the people who sign up for

01:46:09   Worldfront do it put a little money in there see how it works

01:46:11   And then when you see how it works and you like the results, that's when you put your quote unquote real money in

01:46:17   So go to wealthfront.com slash the talk show

01:46:20   You'll actually save money because you get that you get bumped up to fifteen thousand dollars before they even start charging you a nickel

01:46:26   So go check them out. And here's the part where I have to try to stay out of prison for compliance purposes

01:46:32   I have to tell you that wealthfront incorporated is an SEC registered investment advisor

01:46:37   Brokerage services are offered through wealthfront brokerage corporation

01:46:42   Member fin ra and si PC. This is not a solicitation to buy or sell securities investing in securities involves risks

01:46:51   And there is the possibility of losing money past performance is no guarantee of future results

01:46:56   Please visit wealthfront comm to read their full disclosure

01:47:00   So far so good. Nobody from the SEC has gotten on me about this

01:47:04   It's only a matter of time till they find you

01:47:10   Anything else on Swift and and the Federighi interview?

01:47:14   I hope they do more of those things and I think we're are we working our way down the ladder?

01:47:20   I guess we kind of are like Schiller

01:47:22   come to talk show and now

01:47:24   Federighi and like we keep going down to like Chris Latner is on like open source

01:47:30   Podcast talking about programming languages with nerds then eventually you get like individual

01:47:34   Developers on like the UI kit team

01:47:37   Doing interviews. Well, maybe they won't go that far but I don't know

01:47:39   I like the idea because as you go down the chain people

01:47:42   You would think would be both in the position and enthusiastic about talking about more small technical details, right?

01:47:49   The old Apple the idea was there's only we speak with one voice from the top

01:47:54   And and that one voice doesn't say too much and now now we're kind of moving down the ladder

01:48:00   well

01:48:00   We speak with multiple voices from the top tiers and so they can talk about a little bit different things like, you know

01:48:07   Phil Schiller is not going to talk to you about, you know, runtime casting things into protocols,

01:48:12   right? But Craig Freddie really will. So as you keep going down, the conversations get

01:48:17   more interesting to narrower audiences, as opposed to always just being like the big picture,

01:48:22   what is Apple doing type of stuff. So I enjoy that.

01:48:24   >> The thing I've detected, what I would define the new Apple, the difference between old Apple

01:48:29   and new Apple, is that they remain committed to secrecy on future products for the exact same

01:48:36   reasons they always have been, that they don't want competitors to know and that from a marketing

01:48:40   perspective they feel that being able to unveil these things as a surprise is an advantage and

01:48:45   that gets them a lot of publicity around their events and announcements that they wouldn't have

01:48:49   if they were blabbing about everything in advance. And I think also just the good old-fashioned

01:48:54   under-promise over-deliver, that if you keep talking about stuff in the future all the time,

01:49:00   inevitably some of these things are going to ship late and then you've disappointed people in terms

01:49:05   and you know but for stuff that's already shipped and talking about decisions they've already made

01:49:11   and the stuff that's out there i think that's where the difference is and i feel like old

01:49:14   apple was if we're misunderstood screw them i don't we don't care you know you either get it

01:49:19   or you don't and i feel like new apple at an executive level really is it's it's the openness

01:49:28   is coming from the frustration i think of being misunderstood and feeling like if we could just

01:49:33   explain ourselves we'd be less misunderstood and I wish that we could do that.

01:49:37   If only like we all of our commentary on our blogs and podcasts and everything only had a username

01:49:42   but they had no way to contact us like the App Store. Would that be frustrating Apple? Like if

01:49:48   people were misunderstanding you but there was just no way you could find who this John Gruber

01:49:51   guy was to talk to him about it. I mean that's a good contrast in terms of the organizations like

01:49:56   they'll talk a lot about the roadmap for Swift and Swift 3 and engage with the community about what

01:50:02   what would be best about this programming language that now is going to be much bigger than Apple itself and as a community project,

01:50:07   but no one will talk to you about the App Store, even if you have an app, you know, it's just

01:50:10   such a contrast in terms of, if I could just talk to a person who would be reasonable with me, like surely we could

01:50:17   work this out. You hear all the crazy stories about like an app that's in review, whoever, or they think you're violating someone's copyright,

01:50:24   when it's like, no, you don't understand,

01:50:25   it's the opposite there, and violating mine, and just

01:50:28   Things that you feel like can be worked out between two reason people who just talked to each other on the phone that nevertheless take

01:50:33   Months, I just want to an unsatisfying conclusion that what was there was a an apps

01:50:38   Oh, I know it was when what was the app that that quit the App Store?

01:50:42   Which one sketch? Well, no the one that was recent so sketch

01:50:47   announced that they were leaving the App Store and

01:50:50   Again, I don't know. I don't want to call it the straw that broke the camel's back

01:50:54   I don't know that it's gonna mean that anything is gonna happen

01:50:57   But to me it was just emblematic of the problems and especially in the Mac App Store

01:51:01   Because sketch was to my mind the prototypical modern

01:51:06   Mac

01:51:09   Productivity app it's it's beloved. It's so popular. I mean an Apple obviously knows it's popular

01:51:15   They ship with like the the watch OS

01:51:17   SDKs they ship

01:51:20   Photoshop templates for watch UI design and sketch templates for watch UI design

01:51:25   So, and I think those are the only two, you know, obviously anybody who uses a different graphics program could open up the PSDs and convert them or something like that.

01:51:32   But the two that Apple ships, you know, that you can just download from apple.com are for sketch and Photoshop.

01:51:38   So to put it on the same pedestal as Photoshop is, you know, it's pretty good.

01:51:43   And they've won Apple Design Awards and they've been heavily promoted in the App Store.

01:51:48   And for them to leave the App Store to me is just, wow, if they're not happy in the App Store, who is?

01:51:54   That's when Apple's narrative doesn't fit anymore because if you're an Apple and you want to have a narrative to make yourself feel better about

01:52:00   App Store complaints you'd be like well

01:52:02   These are just kind of like the same way you talk about the complaints about you know

01:52:05   I don't need Arc, retain release is fine. Like well, these are just the old people like we love them

01:52:09   They're loyal to our platform. They've been there a long time

01:52:11   Your Adobe's your Microsoft's or whatever, but really the future of the platform is about new blood. It's about new developers developers

01:52:19   We haven't heard of like say someone makes a new graphics application. That's not Adobe

01:52:24   That's from a smaller team that grows up on our platform that we were the first and only

01:52:28   Platform that they targeted that that is native to us that you know, like that's what Apple wants like oh these this

01:52:35   Fresh young faces like new talent essentially that because that's the future of the platform

01:52:40   The future of the platform is not old crusty people who've been shipping on the Apple platforms for 30 years, right?

01:52:45   It's new people and so a new company you've never heard of comes along and makes this great graphics application

01:52:51   that is, you know, taking the world by storm and Apple saying putting it up alongside Photoshop and they say

01:52:56   Yeah, you know we're out. We can't take this app store stuff anymore

01:53:00   Then you can't just say well really the app store is great for everybody's just you old crusty people who are used to the old

01:53:04   Ways, you know it breaks the narrative

01:53:06   Yeah

01:53:06   One of the ways that sketch again is like to me a poster child of what Apple wants

01:53:10   Third-party apps to be is like exactly what you said

01:53:13   It's Mac only and it's not Mac only because they you know

01:53:16   It's because they've how does a small team build an app that in some ways can

01:53:21   Compete toto Photoshop. It's because they're leveraging all of this great graphic stuff built into Mac OS X

01:53:29   Same thing with pixel mater same thing with acorn

01:53:32   From our pal Gus, you know that these apps written these graphics apps written by really small teams

01:53:39   I mean Gus is the only developer at flying meat. I mean, it's a one-person team there

01:53:44   He can make an app that credibly stands as a professional image editor because he's leveraging

01:53:50   it wouldn't even make any sense to go cross-platform because it's it's all built on this system stuff and

01:53:56   That's what Apple wants for multiple reasons one

01:53:59   that's why they give you these API's and they

01:54:02   are happy to see them used and then they know that when they add new features to the operating system like

01:54:09   What's the thing on the new retina 5k max where there's more colors on the monitor the deep p3?

01:54:15   Go or color gamut or whatever. It's called right so then these apps. I think sketch one of these apps

01:54:20   I know I just saw in the release notes on the App Store one of them

01:54:23   Just released an update that has support for it already

01:54:25   Whereas in the old days when you're you know like and not to badmouth Adobe

01:54:30   But like with Adobe stuff where they're cross-platform

01:54:32   They couldn't adopt like a new great new Mac technology like this deep color on the 5k

01:54:38   I'm ax because they have this graphics engine that is a level of abstraction and it's based on what's available on Mac and Windows

01:54:46   And if Windows doesn't have it

01:54:48   Maybe there's you know

01:54:49   It's gonna take them longer to be able to adopt it because then you've got these files that have you know

01:54:54   Deep color that don't show up on Windows or something like that

01:54:57   It's just a perfect example of doing it the right way and then here they are getting out

01:55:04   anyway

01:55:04   The one thing that stuck out to me on this and you like your example of wouldn't it be great if you could just talk

01:55:09   To somebody and work this out was in the hubbub over sketch leaving the app store. I was reading Michael sigh

01:55:15   Had a great blog post like a roundup blog post with like, you know

01:55:20   eight nine ten different reactions from around the web and he just noted at the end of the

01:55:24   Noted without any further comment that he has an update to a Mac app that's been pending review

01:55:30   It's just a bug fix update to one of his apps that was pending review for 59 days

01:55:35   What does that what kind of sense does that make here's a bug fix for my users and 59 days later

01:55:42   It's still waiting to go into review

01:55:44   Yeah, and even that you could say it's like prioritization or whatever and you might feel bad about it

01:55:48   But the ones that just really drive me nuts is where like it's a misunderstanding like it's a romantic comedy level

01:55:53   misunderstanding and and and it's just like

01:55:57   Listen to me, you know, like it's like in a romantic comedies stories

01:56:01   But like I think it just if these two people just got together and explain this one thing

01:56:04   Like the whole rest of the movie would be pointless, right?

01:56:06   And this is like this in the App Store

01:56:07   But there's no one for you to talk to like you you send your little message in a bottle and then you wait and then

01:56:11   You wait and then you wait and this inscrutable reply comes back. It's like no you didn't understand me

01:56:15   You did you even read what I wrote like it's is this an automated system. Is there a human there?

01:56:20   Can I talk to somebody somebody who is both empowered and able to understand like there's like there's a language barrier like they don't you know

01:56:26   I think the one about copyright was that like where some a bunch of scammers are putting up applications that appeared to come from a

01:56:32   Different developer and then Apple would flag the legitimate developer to say they were violating the copyright

01:56:36   It was like what whatever was that?

01:56:38   stuff like that is very frustrating like and that essentially what that comes down to is like like in a romantic comedy just merely a

01:56:44   lack of communication and how can Apple be doing so well and

01:56:47   improving so much in its communication like

01:56:50   Keeping the advantages like you said of like keeping your product secret and not and not showing everything you're even thinking of making because my people

01:56:57   are disappointed but also

01:56:59   Being open to feedback and having a community where human beings talk to other human beings doesn't mean they're always gonna agree and doesn't mean

01:57:05   People outside Apple are telling Apple what to do

01:57:08   But just to make sure everyone's all on the same page and obviously it's a much more advantageous for a programming language

01:57:14   Which is less of a competitive advantage for Apple then like its individual features or whatever but the App Store

01:57:20   Like it's just it's it's so clearly a different philosophy

01:57:24   dictating the the public face of that part of the organization than the other and I know it's all one big place and

01:57:30   Apple tries to speak with one voice, but I

01:57:33   You know, it just it's becoming

01:57:35   increasingly clear where the lines are in terms of like the new Apple that you were describing and

01:57:44   The old Apple that's it's still inside there and and you know who knows like who's to say that that is or isn't appropriate for

01:57:50   The individual things is just a difference in like what department am I talking to what is the subject that?

01:57:56   We're that we're even talking about

01:57:58   And how then does Apple talk about it?

01:58:00   59 days in review what the hell

01:58:13   I guess I could take another break here.

01:58:15   And do you want to talk anything else about Swift?

01:58:18   I guess the other thing,

01:58:19   one other thing I thought about was Swift.

01:58:21   I know Apple's, they've said this for a while,

01:58:23   but you know, Federighi's had this

01:58:24   in his talking points all week long,

01:58:26   which is that they really, really think

01:58:28   that Swift could be the default go-to programming language,

01:58:33   not just for their platforms

01:58:35   and writing apps for their platforms,

01:58:37   but just like, you know,

01:58:38   high school kids who are learning to program,

01:58:40   middle school kids.

01:58:41   I mean, I don't even know why I wait till high school,

01:58:42   but kids learning to program computer science courses

01:58:46   in college, you know, why not, you know,

01:58:49   that they see Swift as the language

01:58:51   that could take that role, which to me is it,

01:58:53   I believe it, I really think that they mean it,

01:58:57   but that's such an incredibly ambitious goal

01:59:01   for a programming language.

01:59:02   - Yeah, I think it sounds more reasonable

01:59:04   when you think about, well,

01:59:05   what are those people learning with now?

01:59:08   Because I can tell you it's not C,

01:59:09   Like, I think most of the time it's Java or JavaScript,

01:59:14   which I guess is JavaScript probably isn't terrible

01:59:17   because it's a pretty simple language.

01:59:18   - Really, do you think CompSci is JavaScript

01:59:21   or do you think just--

01:59:21   - I think Java, Java I think is the most common

01:59:24   teaching language at this point.

01:59:26   Some schools like, you know, I think MIT still has something

01:59:29   with Scheme and Lisp and all that business.

01:59:31   But the days of them teaching C

01:59:34   is your first programming language,

01:59:35   I think are long gone and C++ same type,

01:59:38   Like, what is a better teaching language is what it gets to.

01:59:40   Like, if not Swift, then what?

01:59:42   And if Java is the answer, I think Swift has fewer,

01:59:47   well, it's difficult.

01:59:48   When they say that, like, Swift is gonna be a language,

01:59:50   then which Swift do you want them to teach?

01:59:52   Do they want us to teach Swift one?

01:59:53   Oh, no, no, no, Swift two?

01:59:54   Oh, no, like, again, it's barely sitting up at this point.

01:59:57   So this is obviously a long-term plan.

01:59:58   But once Swift settles down, being a more modern language,

02:00:02   it's either gonna be Swift or something like Python

02:00:06   or JavaScript that's an even higher level language.

02:00:08   because learning languages don't need to care about performance and stuff like that.

02:00:11   So you can get away with using, not I'm gonna say a toy language,

02:00:15   but a much much higher level language that you just want them to deal with the concepts.

02:00:19   And I think the only thing that will hold Swift back is,

02:00:22   Swift is a complicated language, Swift has a lot of features, right?

02:00:27   And a lot of the features in Swift I think make more sense in the context of understanding simpler languages first.

02:00:34   Swift is not a simple language, there is a lot to it.

02:00:37   It's very powerful.

02:00:38   There's a lot of concepts and things in there.

02:00:40   Not details that you don't care about,

02:00:41   like memory management and crap.

02:00:43   Well, there's a little tiny bit of that

02:00:44   if you really want to get into it, but.

02:00:46   - All right, what do they have?

02:00:46   Like an unsafe pointer type?

02:00:48   - Yeah, like they've got the go ahead,

02:00:50   screw yourself abilities in there,

02:00:53   but you wouldn't teach that.

02:00:54   But even just the concepts of the way it handles,

02:00:58   all the different prototypes and class extensions

02:01:01   and inheritance and when do I use a class

02:01:03   and when do I use a struct

02:01:04   and value types versus reference types.

02:01:06   And there's a lot of things in there that aren't in much simpler languages,

02:01:09   like back in the old days, TCL, you know, or like a logo with a little turtle,

02:01:15   or even something like Python.

02:01:17   I mean, I guess every language has its grotty corners,

02:01:19   but Swift is already a pretty full-featured language,

02:01:22   and it's going to get even fuller featured with time.

02:01:25   So that may hold it back from being a teaching language,

02:01:28   because in some respects, a teaching language,

02:01:30   you don't even need it to be a real language.

02:01:31   I mean, I guess you need it to execute for your exercises and stuff,

02:01:33   but you're not teaching them,

02:01:35   here's the programming language you're gonna use when you enter the industry, like it's not a vocational school.

02:01:38   You're teaching them concepts, which is why MIT can teach Lisp and Scheme and everything and ML or whatever,

02:01:43   and it's like, I don't care if you can use this, we're just trying to teach you conceptually how this works,

02:01:48   and why Python, again, Python is another language that many people have said looks like pseudocode,

02:01:51   especially since there's no curly braces and the indentation is mandatory.

02:01:54   You can go to your algorithms book and see the algorithms for red black trees and you can write it in Python

02:01:58   and it looks a lot like it did in your algorithms book that didn't have, you know, the algorithms book just has English words,

02:02:03   It's not a programming book at all right so I think the road to Swift being a teaching language may be difficult

02:02:10   but if I had to pick

02:02:12   Do you want to teach this course in Java or in Swift?

02:02:14   I think Swift would be better if only because jobs get even more weirdness in terms of like primitives versus you know

02:02:20   Auto-boxing and object types and all sorts of weird crap like that so I've never written Java, so I'm speaking from a position of

02:02:29   admitted some level of ignorance, but I've you know everything I've ever seen of Java is

02:02:34   It's just it's so verbose. Oh

02:02:38   It it really I find it very off-putting

02:02:42   Yeah

02:02:43   and there's a lot of like there's a lot of weirdness in Java that has to do with like

02:02:47   Yeah

02:02:47   I think it was a funny part of speaking of things that would sound weird in the future a funny part of Craig video reason

02:02:52   You're here when you were saying

02:02:55   Or server-side languages like Java. Java was not made as a server-side language. It was a language for set-top boxes, right?

02:03:01   Well, and in fact, it's what everybody programs on to write Android apps, right? Oh, you know, well, it's well, that's yeah

02:03:07   But like its origins were for set-top boxes and then eventually its second life was oh, these are gonna be applets

02:03:14   They're gonna run in your browser. Like it was the opposite of server-side

02:03:17   It was gonna be code that we send from a server to your client and runs in people's web browsers

02:03:21   And then it had its third life as you know what we're just gonna have this as a memory managed language on a server because

02:03:26   It's faster than all those scripting languages, and it doesn't require a manual memory management like C++

02:03:31   It always struck me and I know that it came from Sun and that Sun was a you know typical laid-back

02:03:37   Valley you know corporation

02:03:40   Isn't it funny that you have to talk about Sun in the past tense and it even feels like the past tense now kids don't

02:03:45   Even know what Sun is

02:03:48   You know, I know that's where it started, but the syntax of it looked so corporate to me

02:03:52   It looked like the type of programming language that was written by like IBM programmers who still wore like a shirt and tie to work

02:03:58   and and like the type of people who like

02:04:00   They your email is configured and you can't even change it so that you have like a 12 line

02:04:05   Legal disclaimer in your signature, you know that you know, if you've gotten this email by mistake

02:04:10   You're legally obligated to delete it and notify us immediately, you know

02:04:14   It just looks like that type of programming language

02:04:16   where just to have a simple class, you've got like 12 lines of bullshit boilerplate for everything.

02:04:21   Yeah, I never like trying to do Hello World and having to make like a class that I mean,

02:04:26   there's a certain symmetry to it like that it is kind of like if you compare it to C++ or something

02:04:33   like that, it was trying to make a more rationalized world and I think as one of the

02:04:38   first languages to really break out and be successful in doing that, I definitely feel

02:04:42   I feel like it has a, I have respect for it as making a substantial leap over what came

02:04:46   before it.

02:04:47   I have respect for it, but it's, I didn't like it.

02:04:49   I, when I went to Drexel in the 90s and majored in computer science, we learned Pascal at

02:04:54   first, like the first year courses were Pascal.

02:04:59   And people used to complain, some people, not largely, but people, there were complaints

02:05:03   like on the mailing list, like students complained into the faculty that, you know, why are we

02:05:08   learning Pascal?

02:05:09   No, there's no jobs in Pascal.

02:05:11   wants C programmers and the professors, if they would respond.

02:05:15   Or I guess it wasn't mailing lists, it was the news groups we had for the computer science

02:05:20   department.

02:05:21   And they would just be like, "We're not running a vocational school here.

02:05:23   If you learn how to program, you'll be able to program in any language."

02:05:26   Which is true.

02:05:27   I mean, it's not like you learn how to program in C and then you don't know how to program

02:05:33   in another language.

02:05:34   You just have to learn the syntax.

02:05:35   But like when I took object-oriented programming, it was C++.

02:05:40   And I thought, wow, object-oriented programming

02:05:42   sucks.

02:05:44   That's what I took away from object-oriented programming

02:05:47   in college.

02:05:47   I was like, wow, this is bullshit.

02:05:51   Yeah.

02:05:52   And that's the thing about teaching languages,

02:05:55   is you're trying to teach concepts.

02:05:59   And they may be concepts that are pretty new.

02:06:02   But you have to have an embodiment of those concepts

02:06:04   to teach them, because you do want people

02:06:05   to write code that executes.

02:06:06   And every embodiment comes with its own BS.

02:06:09   whatever that BS may be, whether it may be,

02:06:12   oh, it started out as a series of macros on top of C.

02:06:15   And so it's got some C grottiness in there.

02:06:18   Or this language is obsessed with performance.

02:06:21   So there's a lot of crap that you don't quite understand

02:06:23   that complicates things, but it's needed for performance.

02:06:26   Or Java-like, this was originally made for set-top boxes,

02:06:30   and later was used for web applets,

02:06:31   and there's this whole bytecode thing that's going on.

02:06:34   And they tried to make a new portable framework

02:06:36   that works everywhere.

02:06:37   So why the hell does FileIO look all crazy?

02:06:40   Well, it has to work everywhere and can't rely on any--

02:06:43   it's like there's a virtual machine,

02:06:45   and it's not using the native libraries in the platform,

02:06:48   and everything is all verbose.

02:06:51   And that baggage is not part of what

02:06:53   they're trying to teach you.

02:06:54   But you have to end up learning it as part of the course.

02:06:56   And if things go awry, the course

02:06:58   can end up being more about that baggage,

02:07:01   or get distracted and think that baggage is part

02:07:03   of the essential concept, like you said,

02:07:04   thinking that C++ is object-oriented programming.

02:07:07   two very separate different things and if that's it and it was mine too, it's the first object

02:07:11   oriented language I learned with C++, it really warps your world view and you can't help if you're

02:07:17   teaching that course to be influenced by the language you're choosing, so I'm glad that

02:07:22   people upgraded from C and C++ to Java because it was a significant step up in terms of the BS that

02:07:27   you have to learn and deal with, but Java has its own BS and Swift has its own BS too, especially now

02:07:32   that it's changing every year, that if you teach the course one year your previous assignments won't

02:07:36   won't even compile the next year.

02:07:38   Like maybe it's not time to jump on the Swift bandwagon yet.

02:07:41   But over time, yeah, you need to upgrade

02:07:44   the language you're using to teach.

02:07:45   And hopefully they get better over time and have less BS.

02:07:49   - Here's the thing, I guess I think I had it in my notes

02:07:52   for the interview with Craig Federighi.

02:07:55   And I don't think I got to it.

02:07:56   And I think it was because it just seemed like a dead end

02:08:00   to try to get it out of him.

02:08:01   But that, I don't know how I would have asked it,

02:08:06   But the basic idea being that a lot of times

02:08:08   a programming language is, it starts to fuel

02:08:12   the creator of the language's personal itch.

02:08:14   Perl is a perfect example of that.

02:08:16   Say what you want about Perl.

02:08:17   Me and you, I know you still write Perl as your job, right?

02:08:21   - Still do.

02:08:23   - And everything I've ever done of any consequence

02:08:26   programming-wise is written in Perl.

02:08:28   My reference markdown implementation is Perl.

02:08:31   I wouldn't, I still, I like it.

02:08:36   And I think for me personally, because most of what I want to do is string manipulation,

02:08:41   that's why Perl is great.

02:08:42   But the fact that it's so great at string manipulation was the fact that Larry Wald

02:08:46   wanted to do things like that.

02:08:47   And if you read back to when he created it, he was writing these little glue scripts for

02:08:52   -- what was it, like the NSA or something like that?

02:08:55   It was some kind of government --

02:08:56   >> I think it was NASA.

02:08:58   I think you're off by one letter in that acronym.

02:09:02   But he was like, you know, had these automated things that need to run and FTP the results

02:09:06   up to a certain server and that it was automating them with scripts and he was like, wow, this

02:09:09   is terrible.

02:09:10   It used to be a lot easier if I just made my own little scripting language that made

02:09:13   this easier to do and then it grew from there.

02:09:15   And all sorts of other languages have origins like that.

02:09:18   And I just wonder whether is it a problem that Swift is being steered by someone who's

02:09:24   a systems designer who writes, you know, the LLVM and CLang and writes these compilers?

02:09:31   Is there a problem having a language written by the compiler guy?

02:09:34   Because you're making things, you're trying to make things easier for the compiler

02:09:37   and optimize things from the compiler as opposed to making a language that makes it

02:09:41   more possible to be expressive as a GUI app designer.

02:09:46   Well, that foundational bet on, you know, Arc essentially versus a virtual machine

02:09:52   is at the core, I feel like, of the design at Swift because it's baked in entirely.

02:09:57   And that is definitely from a compiler writer's perspective.

02:09:59   and Craig touched on this as well.

02:10:01   If you are writing a compiler, dealing with a language

02:10:06   that makes it so you can't add certain obvious optimizations

02:10:10   because according to the semantics of the language,

02:10:12   you can't be sure that this thing,

02:10:14   I can't be sure what method is gonna get called here.

02:10:16   I'm not gonna know until runtime.

02:10:18   At compile time, I have no idea.

02:10:20   So like Craig said, the compiler has hands tied

02:10:23   behind its back, both hands sometimes,

02:10:25   and it's just like, well, nothing I can do about it.

02:10:26   I just gotta put in this code to execute this at runtime.

02:10:30   I'll look up the method and we'll execute it

02:10:31   and you can try to do some optimizations.

02:10:33   And the whole fact that there's a runtime

02:10:34   that all your code gets turned into calls

02:10:36   to the C library for Objective-C message send

02:10:38   and we can optimize the hell out of that

02:10:40   with assembly code or whatever.

02:10:41   But the bottom line is we can't inline it

02:10:43   'cause we don't even know what the hell

02:10:45   method's gonna be like.

02:10:46   That there's dynamism in the language

02:10:48   that the compiler can't handle.

02:10:50   So if you're a compiler guy, you're like,

02:10:52   boy, this is really frustrating.

02:10:53   I know I can make this go faster.

02:10:55   I know I can make this safer.

02:10:57   I know I can make it so I can guarantee

02:10:59   that this is always gonna be initialized.

02:11:01   Nothing a programmer can do

02:11:02   to end up with this half initialized object

02:11:04   that's gonna cause a segfault

02:11:05   because they didn't realize through this chain of code

02:11:07   that they're halfway through the initializers

02:11:08   and they call a method

02:11:09   and it tries to read some object attribute

02:11:11   that has garbage data in it because it wasn't initialized.

02:11:13   I can fix that in the language.

02:11:14   And I can say, this language guarantees

02:11:16   that by the time this object is constructed,

02:11:18   all this stuff has been initialized.

02:11:20   It's guaranteed by the language.

02:11:21   It's guaranteed by the compiler.

02:11:22   That bug is gone from everybody's code.

02:11:24   or calling a method on a thing that doesn't exist, that bug is gone for me, I can guarantee that, right?

02:11:29   And so it's not just that he's like, I just want to make it good for the compiler,

02:11:32   the compiler guy also sees all the places where, you know, where bugs happen, where programs fall down,

02:11:38   and he can solve that, and I think what you're getting at is like, okay, but if you mostly write compilers and you don't write GUI apps,

02:11:42   maybe you're making a language that makes it more difficult to write UIKit, or AppKit, or some, like, one of these great GUI libraries that helps

02:11:51   application developers make the applications that they make for the Mac and for iOS.

02:11:55   And I think, I mean, there's two things giving people that impression. One is,

02:12:01   there is a match between the language and the libraries in terms of, and culturally as well as

02:12:08   technically. And early in Swift's life, one of the main requirements of Swift is you have to be able

02:12:13   to call into Objective-C and all that, you have to be able to interact, you have to be able to write

02:12:17   an application partially in Swift and partially in Objective-C, or it's a non-starter.

02:12:20   And it can't be, it may not be optimal, but it can't be terrible to drop into an object,

02:12:25   you know, to call into an object of C library.

02:12:28   And like Craig said, you can't wait around to be like, well, we've got a new language

02:12:31   and then a whole new set of libraries and a whole new set of, like, you can't just start

02:12:33   from scratch.

02:12:34   There's too much value and investment in what, in all the existing frameworks and libraries.

02:12:39   And then you'd still be in a case where you have dual libraries, like a whole separate

02:12:43   stack for Swift and, you know, it's not, so you have to do, have to have that interaction

02:12:47   with it.

02:12:48   is going to be a little bit weird.

02:12:49   Like all the crazy annotations they have

02:12:51   in Objective-C libraries to get better interfaces

02:12:53   with Swift and you have to think really hard about like--

02:12:55   - Carbon and Cocoa?

02:12:57   - Yeah, well, I mean, they eventually settled that, right?

02:13:00   But you know, during the transition,

02:13:01   you gotta do what you gotta do in a transition.

02:13:03   I think that transition makes Swift look bad

02:13:05   because if it was a top to bottom Swift stack,

02:13:08   it would be clear, hey, how do I use Swift

02:13:10   to make a GUI app?

02:13:11   Right now it's, hey, how do I use Swift

02:13:13   to use Objective-C libraries to make a GUI app?

02:13:16   And there's this drive by people writing code, like,

02:13:19   I just want to be pure Swift.

02:13:21   But you can't really be pure Swift at this point.

02:13:23   Like, they feel like it's a defeat to say,

02:13:25   well, I'm using Swift, but I'm basing everything

02:13:27   on NSObject because I just want those type of semantics.

02:13:30   Like, it feels dirty, it doesn't feel pure Swift.

02:13:32   And it's not going to be pure Swift top to bottom

02:13:34   for a long time, just because of the reality

02:13:36   of the situation they're in.

02:13:38   And the second thing I think that is helping,

02:13:40   that you have to take into mind is that,

02:13:42   yes, Swift is a language written by a compiler guy

02:13:46   that does a lot of things that make it easier to write a compiler

02:13:50   and then make it easier to make code that's guaranteed to be safe.

02:13:54   But that guy had to pitch his language to an organization filled with people

02:13:58   who make GUI applications.

02:14:00   He had to convince, like, Alioser that, you know,

02:14:03   this new language that I came up with in my basement or whatever,

02:14:06   I think should be the language for the next 20 years of Apple,

02:14:09   and it's an awesome way to write iOS and Mac apps.

02:14:12   He had to make that case.

02:14:14   It's not like he's not the dictator of Apple, right?

02:14:17   He didn't say, "I came up with Swift

02:14:19   and we're gonna use it."

02:14:20   And I feel like the people he had to make that case to

02:14:23   know what the heck they're doing

02:14:25   and it had to have been a good case.

02:14:26   - Yeah, have no problem standing up for their,

02:14:29   you know, for their own thoughts and-

02:14:31   - And yeah, he's not their boss.

02:14:32   - Right.

02:14:33   - So I've, you know, it's very uncomfortable

02:14:37   in the phase we are now where it's so clear

02:14:40   that there are barriers to making this work

02:14:42   and Swift isn't done yet

02:14:43   and all these other things that are true,

02:14:45   but I'm not really ready to bang the gavel on anything

02:14:47   having to do with like, well,

02:14:49   Swift is not as well suited

02:14:51   for making GUI apps as Objective-C was.

02:14:53   You could say that the current version of Swift

02:14:55   is not as well suited as Objective-C

02:14:58   for using Objective-C libraries to write GUI apps.

02:15:01   But I feel like as the culture and capabilities

02:15:04   and actual code as in Swift top to bottom,

02:15:07   like let's start with foundation

02:15:08   and all the other libraries start getting built up,

02:15:12   I feel like those same teams that made,

02:15:14   like, you know when they made UIKit,

02:15:14   they kind of like repented for the sins of AppKit

02:15:17   and did it better?

02:15:19   There's one more chance to do that right now.

02:15:20   All those same, the great minds behind UIKit and AppKit,

02:15:24   some of those same minds are going to be the great minds

02:15:27   behind the Swift native frameworks

02:15:29   for writing GUI applications in the future.

02:15:31   And I think that'll be a good thing.

02:15:33   - Yeah, I agree.

02:15:33   And I think that the other thing too

02:15:35   about being the compiler guy is that it put Latner

02:15:40   and his team and the people he works with,

02:15:42   in a position where they're really intimately familiar

02:15:45   with the things that cause problems

02:15:49   in shipping applications.

02:15:51   And maybe some of those problems are things

02:15:54   that a true expert in Objective-C would never do.

02:15:57   And therefore they feel a little frustrated

02:15:59   like that the language,

02:16:00   not that it's being catered to dummies,

02:16:02   but that by making certain things that were possible,

02:16:05   no longer possible,

02:16:07   you prevent a whole class of possible bugs,

02:16:10   but at the same time you also prevent certain clever

02:16:14   but dangerous techniques that people had taken advantage

02:16:18   of significantly.

02:16:19   And that Apple is making the decision

02:16:20   that that trade-off is worth it

02:16:22   because they're in a position where they literally know

02:16:25   from like crash reports and code

02:16:28   that's actually been shipping that being able

02:16:30   to not do this anymore is actually going to cut off

02:16:34   this sort of problem won't even be possible anymore.

02:16:37   - Or just making it harder.

02:16:38   Like, I mean, the idea of a half initialized object,

02:16:40   like, you know, making that impossible in the language, you can do that fine.

02:16:45   The idea of calling a method that doesn't exist on an object, like, at runtime,

02:16:49   you thought you had an object of this type, but really you casted it to the wrong thing.

02:16:53   Like, in Swift you can forcibly cast things to the wrong thing and try to send them,

02:16:58   you know, the wrong method call, right?

02:17:00   Like the whole idea of like looking up a class name by a string,

02:17:03   like all these capabilities, this dynamism that Craig talked about that they're adding,

02:17:07   they're adding it so it'll be possible to do these things,

02:17:10   But it's not like the right or preferred way to do things.

02:17:13   And it certainly isn't the default. And if you do it,

02:17:15   it's going to stand out in your code

02:17:17   because you're going to have to make--

02:17:18   it doesn't stand out in Objective-C code

02:17:20   when you're iterating over this heterogeneous collection

02:17:21   and just sending every object the message blindly.

02:17:24   And if they're nil, it'll just be a no op.

02:17:25   And if they're the wrong class, it'll blow up at runtime

02:17:28   because it'll be like, object blah doesn't

02:17:30   respond to the message blah.

02:17:31   You'll find that out at runtime.

02:17:33   But if you look at the loop, it's

02:17:34   like, oh, this is just looping over the contents of an NSRA

02:17:36   and sending a message to every single item.

02:17:38   Looks good to me.

02:17:39   If you try to do something that potentially dangerous in Swift,

02:17:42   I think it would look scarier.

02:17:44   I think it would look like I am going to now call a method

02:17:47   that the compiler cannot absolutely 100% guarantee

02:17:50   is going to work.

02:17:52   And because that's not the default,

02:17:53   and because it will require more code and look scarier,

02:17:56   it is sort of culturally saying that in the Swift world,

02:17:59   we don't do stuff like that.

02:18:00   We don't be like, oh, the program will take care of it.

02:18:02   I'm sure every object in this collection

02:18:03   will respond to this message.

02:18:04   I'm sure it will be fine.

02:18:05   Or they'll just do response to selector,

02:18:07   and then they'll call it or whatever.

02:18:09   In Swift, the default wants to be,

02:18:11   if you just see straightforward Swift code,

02:18:13   it's gonna work and not fall victim

02:18:15   to this whole classes of errors

02:18:17   that could potentially happen in Objective-C

02:18:20   because too much was determined at runtime.

02:18:22   - Let me take a moment here and thank our next sponsor.

02:18:26   It's our good friends,

02:18:27   longtime friends of the show, Squarespace.

02:18:29   You guys know Squarespace.

02:18:30   It's a build it, you're all in one,

02:18:33   build your own website platform.

02:18:37   What type of websites can you make with Squarespace?

02:18:39   Well, better question would be what types can't you?

02:18:41   You just go there and sign up and immediately

02:18:44   you can just get right started and say,

02:18:46   what are you trying to build?

02:18:48   You wanna build a store?

02:18:50   And you go to store and then they'll show you

02:18:52   a bunch of templates, for example,

02:18:53   stores that you start with and then you say,

02:18:55   yes, this is exactly the sort of template,

02:18:58   this is the type of store I wanna make.

02:18:59   Then you open that up and you just start editing

02:19:02   what you see that replace the images with your image,

02:19:04   replace the text with your text.

02:19:06   You wanna build a blog though,

02:19:08   if that's what you're looking to build or host a podcast,

02:19:11   you just write down when you sign up,

02:19:13   it's just like, I'm gonna create a blog,

02:19:14   I'm gonna host a podcast, here's some templates.

02:19:16   I like this template, use this one,

02:19:18   but I wanna change this to this and this to this,

02:19:20   and you start changing things right there in the browser.

02:19:24   Total WYSIWYG really could not be more obvious,

02:19:29   it's so visual.

02:19:31   They have all sorts of hooks there,

02:19:33   if you want to insert your own code,

02:19:35   you wanna get in there at the code level

02:19:36   and change it at that level, you can do that too.

02:19:39   But fundamentally, it's a GUI,

02:19:41   it's a graphical user interface way to design websites,

02:19:45   and they have templates for so many different types of sites

02:19:48   it's ridiculous.

02:19:50   It doesn't just spit, at the end,

02:19:54   it doesn't just spit out a bunch of HTML files

02:19:56   that you then put in a folder

02:19:58   and upload to a web host or whatever.

02:19:59   They're the hosting platform too.

02:20:01   It's all in one.

02:20:02   You build it, you make it.

02:20:04   You can even get your own domain name on it

02:20:06   and you can get the domain name for free

02:20:08   if you pay for a year in advance.

02:20:10   Just could not be easier.

02:20:12   Online commerce, the sales stuff,

02:20:14   they handle all the tricky stuff,

02:20:16   all the encryption and the credit cards and stuff like that.

02:20:19   Really, really impressive.

02:20:20   Plans start at a ridiculous eight bucks a month.

02:20:24   And like I said, you get a free domain name registration

02:20:26   for your site if you sign up for a year in advance.

02:20:30   And the demo is no credit card required.

02:20:32   You just go there and just start like typing and playing.

02:20:35   You just go to squarespace.com and just start.

02:20:38   And it, you know, you're actually there making a website.

02:20:43   Could not be easier.

02:20:44   Use the offer code Gruber, my last name, G-R-U-B-E-R,

02:20:48   and you will get 10% off your first purchase

02:20:50   with Squarespace.

02:20:51   If you're listening to this show,

02:20:52   'cause John is on it, you can use their code.

02:20:54   It's ATP and you'll get the same 10% off.

02:20:56   So Squarespace, build it beautiful.

02:20:58   If you need to build a website,

02:20:59   just go check out Squarespace.

02:21:01   Spend an hour there.

02:21:02   you'll probably end up saving yourself days of work.

02:21:04   - That's very nice of you to give our code.

02:21:08   - Oh, it's, we're all in it together.

02:21:09   - It's so short and easy to remember.

02:21:11   I hope that's our actual code.

02:21:12   - No, I know it is.

02:21:12   I was listening to your show today and I took note of it.

02:21:15   - There you go.

02:21:16   You're doing homework.

02:21:17   - I wanted to see what you guys said

02:21:19   about the smart battery case.

02:21:21   I feel like I have my last couple of shows,

02:21:24   like I had Joanna Stern on last week,

02:21:27   and we've just been like a couple of days away.

02:21:30   like we could have, you know, a couple of days later

02:21:32   and we could have, Joanna and I could have gone long

02:21:35   on the battery case.

02:21:36   I kind of had a feeling that that's what they were gonna make

02:21:41   'cause I didn't know, I didn't tell me,

02:21:43   but after the show when we were still on the air,

02:21:46   Joanna said, "Hey, has Apple been in touch with you

02:21:48   about anything?"

02:21:49   I was like, "No, not yet."

02:21:50   And she goes, "They are with me."

02:21:51   And all they wanted to know was what color iPhone I have

02:21:54   and that they're gonna send me something, you know,

02:21:57   to review at the end of the week.

02:21:59   And I remember that somebody at Apple,

02:22:04   when I went and got my iPad Pro review unit,

02:22:08   it was at a briefing in New York,

02:22:09   and I was asked which size iPhone do I use,

02:22:13   the iPhone 6s or the 6s Plus, and I said 6s,

02:22:16   and they were like, good, we might have something

02:22:18   for you later, you know, a couple of weeks.

02:22:21   And I filed that away at that point,

02:22:23   and I thought, what in the world would they make

02:22:25   that would apply to the 6s and not apply to the 6s Plus?

02:22:28   And the only thing I could think of is a battery pack.

02:22:31   That's the only, either a battery pack or,

02:22:34   I guess it would have to be a case.

02:22:35   Cause if it was a battery pack,

02:22:36   it would apply to anything with a lightning port.

02:22:38   So I figured it had to be a battery case.

02:22:40   - Well, it could have been any kind of case,

02:22:42   but I suppose, you know.

02:22:44   - Yeah, but why would they make it?

02:22:46   To me, a battery case was specifically the sort of thing

02:22:48   that they would make only for the 6S and not the 6S,

02:22:51   not the plus for the obvious reason

02:22:53   that the plus already gets plenty of battery.

02:22:55   - They need to make the same battery case for the plus.

02:22:58   Just like, just a huge lump on the back of it

02:23:01   that have been last two days.

02:23:02   - It would be, you could actually sit there

02:23:05   and do like arm curls with it, I think.

02:23:07   It was actually like build your biceps.

02:23:09   - So how was your, one of the things I saw

02:23:11   is our friend Cable Sasser,

02:23:13   his case was like cracking along the top,

02:23:15   maybe he just got the defective one,

02:23:17   I'm assuming yours is fine.

02:23:18   - What color did he get?

02:23:19   - He got the black one or the charcoal, whatever.

02:23:21   - So they sent me the white one,

02:23:22   and that's the only one I have experience with.

02:23:25   So mine didn't crack.

02:23:26   And what I did is I got mine Tuesday morning.

02:23:31   So it was the day that they announced it.

02:23:34   They had already sent one to me by FedEx.

02:23:36   So it was like FedEx guy showed up at like 10 AM

02:23:38   and I had it.

02:23:39   And I pretty much left it on my phone

02:23:42   until I got my review out.

02:23:45   Which it was obviously, it was a couple of days late.

02:23:48   I let you read it before you guys did ATP.

02:23:50   I was like, it'll be up by the time

02:23:52   your show is on the air.

02:23:54   - You're truly the Douglas Adams.

02:23:55   Well, I can't say that Doug is Adam's tech running because he wrote for Mac for all their Mac user back in the day, too

02:24:00   But yeah, those deadlines are great as they wish best your own self-imposed self-declared deadlines

02:24:04   No one was pressuring you to say that you're like, oh no problem. Yeah, I had a Wednesday night school thing

02:24:09   it was

02:24:10   some kind of

02:24:12   You know showing it the I don't know some kind of projects the kids made at 530 at Jonas's school and I thought oh, that's great

02:24:19   I'll just make sure I'm finished by then and I'll have a little self-imposed deadline and I didn't get it up till Friday

02:24:23   Yeah, the idea was that the deadline that you were sure you were gonna make it because you had to because you had a school

02:24:29   thing right

02:24:30   And it turns out when you're self-employed you don't have to do anything

02:24:32   You know what? It was the the more I thought about it

02:24:36   You know as often happens that writing to me writing is thinking and the more I wrote about it

02:24:41   The more I realized that it was it there are interesting things to pursue and think about and talk about it

02:24:47   You know, sometimes you start writing

02:24:49   I didn't think it was going to be nearly as long as it was, and I didn't think it was.

02:24:52   That's like the longest thing you've written in a long time, was about a battery case.

02:24:55   Well, that's why it's so... but to me, there's so many little interesting things about it.

02:25:00   But one of the things I did to motivate myself to finish, I didn't really like

02:25:04   having it on my iPhone, but I kept it on my iPhone until I got the review out.

02:25:08   So I actually did use it non-stop, pretty much, other than like to play with, you know,

02:25:14   the insertion and removal and some, you know, certain things you want to do testing it.

02:25:19   I would but for the most part I had my phone in it from Tuesday till Friday

02:25:23   So I didn't see any kind of cracking or anything like that

02:25:25   Yeah, maybe taking it in and out causes the cracking

02:25:28   I could I mean you would think it was some sort of widespread defect

02:25:31   We would have heard about it by now, but it happens when you get the first ones of anything like who knows?

02:25:35   Well, yeah, I think I think it's I think the first ones of anything

02:25:38   It's it's likely that it was probably just so maybe some kind of

02:25:42   You know, maybe there was a batch that got a bad batch of the whatever the substance the silicone

02:25:48   What do they call it? Whatever the substance is on the outside?

02:25:50   Yeah, or maybe there was a coating that was supposed to be put on that wasn't put on right anyway

02:25:54   I wouldn't I wouldn't if you're thinking of getting one

02:25:55   I wouldn't let this stop you because if there's something like that happens, it is bringing back to the Apple still

02:25:59   They could be a new one. They'll work it out

02:26:00   I will say this I'm from ATP you guys were saying and I know somebody else

02:26:04   I think it was Joanna actually in a review

02:26:07   She I think she got a white one and said don't buy the white one because it's already stained

02:26:10   And you guys said don't buy the white one

02:26:12   I have the white one and I used it non-stop for four days and

02:26:17   It still looks mint condition didn't pick up pick up any stains. So I don't very you're very clean, right?

02:26:22   I guess it's tissue boxes on your feet and you lick yourself clean like a cat and so there's no

02:26:26   residue what I heard actually after that show is the opposite of people who got the the black one and said it picks up pocket

02:26:32   Lint like if you have lint and stuff in your pocket and you put the thing in you take it out to cover with white

02:26:35   Stuff so it's like white and black cars like choose your poison. Both of them are gonna have something in the environment

02:26:41   It's gonna stand out more on them. I couldn't tell it is obviously very very

02:26:46   similar to their non battery silicone cases in terms of the substance that

02:26:51   it's made out of but it's maybe not quite the same it actually felt a little

02:26:56   grippier to me the the battery case to me felt grippier than the non battery

02:27:01   case but on the other hand the one that I had handy which was one that Apple

02:27:05   gave me with my review unit a couple months ago for the iPhone 6s was blue

02:27:11   and this was only white and black and maybe there's some I know with the watch

02:27:15   Straps there's definitely a little difference in how they feel, you know the sport bands

02:27:20   There's the different colors have different levels of like flexibility different weights, too. Yeah different weights even

02:27:27   and

02:27:30   I may know that might therefore be true with these two. Maybe the white is somehow grippy

02:27:34   Or maybe the white non battery case is grippy or two. I thought it was a little a little too grippy

02:27:38   I thought you know and in terms of it actually being thicker therefore was a little harder to get in and out of jean pockets

02:27:44   thickness aside, the grippiness made it a little, you know, a little bit too much friction,

02:27:49   in my opinion. Yeah, that's always the balance, because one of the complaints about other third

02:27:54   party battery cases is they make it slipperier, because a lot of them are hard plastic or hard

02:27:58   shiny plastic, and then so you end up dropping it also because it's a bigger, more awkward shape

02:28:02   sometimes. But if you make it too grippy, it's hard to slide in and out of a pants pocket,

02:28:06   so you just want to find that medium. And yeah, I totally believe that the black and white ones

02:28:10   could feel different. And they look in the pictures, I've never actually touched one of

02:28:14   these things but they look in the pictures like it could also be potentially that whatever material

02:28:18   they're making it out of is thicker you know in the parts that don't have battery in them it's

02:28:22   just thicker so it could be squishier it is a little thicker it's definitely like so if you

02:28:26   stack it side by side with the the you know so it's resting on like the volume buttons or the

02:28:33   power on off switch stack it on the side and compare it side by side with the silicone case

02:28:38   it's definitely a little thicker it stands up a little bit more the sides are thicker on this than

02:28:43   on the silicone case. And if you think about it, it makes sense because it's actually a lot more

02:28:46   rigid. It's, you know, you can kind of put the phone, I think there's a recommended way like the

02:28:51   with the silicone cases, they recommend to put it in like certain angle first, but it doesn't really

02:28:55   matter. You can just put any side in first and then just sort of squish the other side over the

02:29:02   edge of the iPhone. With this, you have to slide it in like it's in between the two sides is like

02:29:07   like a rail, it slides in like that.

02:29:10   And the sides are definitely thicker.

02:29:12   I don't know what, I think it's because

02:29:14   it's meant to be more rugged.

02:29:16   I think it is sort of a, you know,

02:29:18   they're only advertising it as a battery case,

02:29:20   but I think it's also Apple's answer to

02:29:22   what if you want a more protective case

02:29:24   for drops and stuff like that.

02:29:27   - Yeah, I mean, once you're gonna have

02:29:28   that giant thing on there anyway,

02:29:29   there's no sense trying to skimp around the edges

02:29:31   to try to make it look spelt, 'cause it's not gonna.

02:29:33   - Right.

02:29:34   I thought on the ATP, I thought you were the only one

02:29:36   it was really reasonable. Marco and Casey made me a little angry with their take on

02:29:41   it. I thought Marco was way too dismissive about it. What did he call it? He said it

02:29:45   looks like an engineering prototype.

02:29:47   Yeah.

02:29:48   Like, I do. And this is the thing that gets me is I thought I did a pretty good job of

02:29:51   my article. And then on Twitter, there's a handful of people, "Oh, of course, John

02:29:54   Gruber likes it." I was like, "I didn't... It wasn't really an overly positive review."

02:29:59   And I ended it with saying that I don't want to use it. And I called it weird and funny

02:30:03   looking and ungainly. It wasn't like I was entirely complimentary. It was like, I just

02:30:09   want to understand why they made it.

02:30:11   Yeah, or just like, especially in things like this, where it's like a visceral reaction

02:30:16   based on appearances, there's usually, and I would use lots of car analogies on ATP,

02:30:22   coming from the car world, like, stuff like that can be polarized on, like the physical

02:30:26   shape of an object whose purpose is mostly not dictated by its shape. People have strong

02:30:32   opinions about, you know, a Porsche 911 versus a Corvette versus a Mustang, like, these are

02:30:37   very different looking things, and in the grand scheme of things, there are engines

02:30:40   and wheels, and aerodynamics aside, there are lots of features of cars that look the

02:30:45   way they look for just aesthetic design reasons, so anything like that, where you look at a

02:30:51   picture of something, as so many people did on the internet, look at a picture of this

02:30:54   thing, and just have this negative gut reaction to it, and these articles come flying, like

02:30:59   what's happening to Apple design or whatever, you really want to understand like, what is

02:31:05   a reasonable rationale for this?

02:31:07   And you could come to the conclusion that there is no rationale, that this is just like,

02:31:11   it's the simplest thing that they could possibly do, and, you know, they were just lazy, or

02:31:17   didn't have time, or like, or whatever, but with Apple, knowing everything we know about

02:31:22   Apple, like, that just doesn't seem plausible, because no one was demanding that they release

02:31:26   a battery case.

02:31:28   It's like and who really cares in the grand scheme of things, right?

02:31:31   But this is what they came out with so you want to think about it like and so that's why I was going into the philosophy

02:31:36   Like is is there an explanation because this is an area where Apple won't talk to the press for the most part

02:31:40   It's like oh, let's have someone from Apple's design studio

02:31:43   You're not Johnny I've because he's busy but someone lower level make the rounds to the tech press. No, not really

02:31:48   That's not gonna happen right and nor should they because like aesthetics

02:31:51   It's like look this is the product we have and we'll see what the reaction to it is

02:31:54   But we think it's it makes sense in some way and how could they think this makes sense?

02:31:58   So I was going back through what have they said in the past publicly about past designs that could conceivably apply to this design

02:32:05   Well, they're true or not. Who knows we're just speculating but the bottom line is

02:32:08   If you think it's ugly you think it's ugly

02:32:11   Don't buy it buy one that you think is not ugly, right?

02:32:15   I mean and the other thing I feel like maybe in my article I didn't cover this enough. It's afterwards is it?

02:32:22   If you're wondering why it doesn't look just like a mophie

02:32:26   Whatever juice pack air whatever their thinnest one is which is of course the one that Apple if Apple is gonna go that direction

02:32:32   They'd make the thin it. They're not gonna make one of these you know the cases that have three thousand

02:32:36   What's the unit milliamp hours milliamp hours

02:32:41   It's so much easier to write MAH

02:32:44   Why doesn't it look like those which is really like sort of the standard for all of them well of course

02:32:51   they're not gonna make one like that because if they thought that was the right way to do it,

02:32:54   they don't have to do anything. They're already there. The Apple store, you know,

02:32:58   are filled with these battery cases that look like that. The only reason for them to make one

02:33:01   is if they had an idea that was different. Well, and also, like, I think this is a factor. Like,

02:33:06   they know a lot of people buy battery cases. Why shouldn't they have one? And not because,

02:33:12   like, they just they need to get that money or whatever. But it's, it's like, as a, it's the

02:33:17   same thing with diversifying the phone line. Why don't they make a big phone? Why shouldn't they

02:33:20   make a smaller phone, why don't they make something in colors? It's like if it's something

02:33:23   that people want and they're buying it anyway, why shouldn't Apple make a really good one?

02:33:28   Why rely on third parties to fill that role? And so battery cases have apparently passed

02:33:32   into the realm of things that are important enough and that while they purchase enough

02:33:35   that Apple feels like it should have a first party solution. And so they do. I mean, I

02:33:39   still have questions about the case in terms of how they came up with this compromise because

02:33:43   it's like if you're going to be this bulky, like you said the same thing, like why not

02:33:46   extend the battery up to the top and bottom, why not go edge to edge with it?

02:33:52   Like why not match the capacity of similar thickness battery cases?

02:33:56   And you know Apple has its explanations, which may or may not be rationalizations, but in

02:34:01   the end a lot of it really does come down to design, because you have to pick a size

02:34:06   and a shape and that dictates how much battery life you have, and let's say someone was really

02:34:10   wedded to this design and they thought aesthetically it was beautiful and perfect and pure and

02:34:15   what they wanted, then the aesthetic design could dictate the size of the battery as opposed

02:34:19   to the other way around. It's hard to know without actually talking to the people behind

02:34:23   the design. All we can do out here is speculate, and really on ATP, I wasn't going to dismiss

02:34:28   anyone else's theories about like that there was time crunch or that, you know, like they

02:34:34   didn't put in the effort they normally would. For all I know, maybe this was rushed and

02:34:37   I don't know what's going on inside Apple, right? But is there a plausible explanation

02:34:42   that, uh, that they say this was actually designed with the same care as every other Apple thing is

02:34:46   designed with, or we're led to believe every other Apple thing is designed with, is that even

02:34:50   plausible? And I can come up with causal explanations for it. So in the absence of any

02:34:54   other information, you just have to kind of like say which one of those do you think is more likely?

02:34:58   I think it's so, the hump is so striking that I think it really had to be the result. I think it

02:35:05   would be so, I think the, I really doubt that it was the first idea they came up with. It's so

02:35:10   unusual and it is at first glance I think almost it's almost impossible to

02:35:15   say that it's not a little repulsive at first it just looks swollen in a way you

02:35:22   know like you know like when you get stung by a bee and and you know like you

02:35:29   get stung on your thumb and your thumb swells up to the base of your thumb

02:35:33   swells up to the size of a golf ball like it looks painful when you see

02:35:36   somebody with an injury that's swollen, it's like, ooh, you feel it.

02:35:40   That's what it looks.

02:35:41   It looks swollen, which is not a good look, at least at first.

02:35:45   But I found myself after a few days, I kind of got used to it.

02:35:48   It's just I stopped thinking of it as being supposed to look like a regular case

02:35:53   and that it just looks like it has a battery on the back.

02:35:56   Yeah, and like I would another possibility again, having not actually ever

02:35:59   touched one of these, I can't say.

02:36:00   Although maybe you can tell me what you think about this.

02:36:02   like a lot of Oxo Good Grips, like, kitchen things look kind of weird-looking and ugly too,

02:36:10   but they're good to hold. And so if you prioritize how good is this thing to hold,

02:36:15   not saying this is what they did, because I think the back of it is not shaped like any part of the

02:36:18   human hand. Human hand doesn't have like rounded rectangle divots in it or anything, but maybe

02:36:23   some ask, like you said, holding your pinky under the lump instead of under the bottom of the thing,

02:36:28   Like that could be a factor in it. Like it doesn't mean that they're right

02:36:32   So you're just trying to delve like what motivated this why because as you said it's so it's so striking that it it seems clear

02:36:39   that

02:36:40   This was an intentional thing

02:36:42   You don't accidentally make this battery case if you if you wanted to do something lazy would just look like every other battery case and I

02:36:46   Think Apple would make something look more like they make hell they make silicone cases look pretty much like every other silicone case

02:36:52   It's just why does that Bob one because they want to make a nice one and why shouldn't you buy the Apple one if you're?

02:36:56   In the Apple store like it makes perfect sense

02:36:58   In addition to putting your pinky underneath,

02:37:02   the putting your index finger on top of it

02:37:04   is pretty good too.

02:37:05   And it does sort of, in a weird way,

02:37:08   it makes it feel as though you're holding a smaller device.

02:37:11   Like you know that it's thicker,

02:37:13   but it's like you have these,

02:37:14   like from going back to like the old iPhone days

02:37:16   with the first few generations

02:37:18   when they were physically smaller

02:37:19   and it was a lot easier to kinda get your index fingers

02:37:22   on top while you still had some kind of reasonable,

02:37:24   you know, and it felt like you could hold it more securely

02:37:27   your fingers wrapped around it. Your fingers can wrap around the hump in a way that gives you a

02:37:32   secure hold. If I were going to, and I knew in advance that I could pack it, if I knew that I

02:37:37   were going to be using my iPhone camera to record, I don't know, like while I'm riding on a roller

02:37:42   coaster or something like that, I would put it in this case. Like battery, even if the battery was

02:37:47   completely depleted and I wasn't going to get one percent of charge from it, I would put my iPhone

02:37:52   in that case to hold it while I'm going down a rollercoaster because I feel like I can

02:37:58   get like a way more secure grip on that because of the material that it's made of and because

02:38:02   of the hump the hump actually gives you like a good place to put fingers.

02:38:06   How many trips to Disney do you have to take before you realize it is incredibly dangerous

02:38:10   to take movies with your iPhone on a rollercoaster?

02:38:11   I have a million signs like do not try to take movies.

02:38:14   I wouldn't I wouldn't do it and it's not even because I wouldn't do it just because I it

02:38:20   It would just ruin, it would, like imagining me dropping my iPhone on a rollercoaster at

02:38:26   Disney would, just the thought of it puts me in such a bad state.

02:38:29   It's not that, it's getting hit in the face at 90 miles an hour with someone else's phone.

02:38:34   Because like you do it at the top of the loop or whatever, it's Six Flags there.

02:38:37   So I guess Disney, I don't know how they manage it at Disney, but at Six Flags they had you

02:38:41   going through like metal detectors, so like nothing in your pockets, like literally, it

02:38:45   It was like going through the TSA.

02:38:46   Like, you know, no car keys, no phones of any kind,

02:38:51   just like nothing because--

02:38:53   - Well, and it has six flags,

02:38:54   the roller coasters go way faster too.

02:38:56   - Yeah, I was just saying,

02:38:57   like the roller coaster's going 60, 70, 80 miles an hour,

02:39:00   and your phone is essentially stationary

02:39:02   'cause it's like falling from above,

02:39:04   and your face meets that essentially stationary phone,

02:39:07   that's not a good experience for anybody.

02:39:09   You can kill somebody with one of those things,

02:39:10   so kids, no taking movies on roller coasters.

02:39:13   - I'm not saying it as though I would do it.

02:39:14   I'm just saying that if I were in a precarious situation

02:39:19   and needed to have a grip on my phone.

02:39:20   - You should do something else that people can relate to.

02:39:22   How about going yachting?

02:39:23   If you're going yachting, if you were doing Duran Duran,

02:39:26   now it's too old, they don't get that.

02:39:27   If you're in the video for "Rio"

02:39:28   and you're on the front of the yacht

02:39:30   and you want to take a movie of it,

02:39:31   'cause it's really cool looking,

02:39:33   bring the iPhone battery case.

02:39:35   - I thought you had a good point on the ATP

02:39:38   about it looking like a sci-fi,

02:39:40   like if you just paved a hallway with them.

02:39:42   Like use them as the tiles,

02:39:44   the subway, you know, like the way that the subway, a hallway in the subway station has tiles.

02:39:48   Tile it with these, it would look like a great, you know, like you're in a set of like a one of

02:39:54   Ridley Scott's, you know, classic sci-fi. Yeah, or like 60-70 sci-fi, you know, do like, you know,

02:40:00   I mean, even 2001 era, but an alien or just, you know, anything like Buck Rogers, like they,

02:40:05   I guess that's the way that, you know, the future was going to be like white and clean and smooth

02:40:09   shapes everywhere. Yeah, but like, you know, some kind of inexplicable ridges and textures,

02:40:16   though, you know. Yeah, like on a stormtrooper, like the stormtrooper's got the little thermos

02:40:21   on his back, you know, what the hell's that for? I'm sure someone with a technical readout

02:40:24   book knows, but like, it was always smooth and white, but there was these lumps, and

02:40:28   they seemed purposeful, and it looked like futurey. I actually, and it might just be

02:40:31   because I've got Star Wars on the mind this week, but I actually thought, or as soon as

02:40:35   I saw it. I thought, boy, this is a real stormtrooper-y looking thing, because it even has a little

02:40:41   bit of black around the cutout for the camera. In a way that it's not white, but sort of

02:40:48   like an off-white, and yeah, the ridges, the extra ridges, some of them seem, which seem

02:40:52   maybe a little inexplicable. There's a certain stormtrooper-y-ness to it.

02:40:57   It was a wait for the next version to look like the surface of the Star Destroyer, with

02:41:01   little greeblies or whatever they are all over, like little pipes and everything all

02:41:04   I'm thinking of other ways this case could have existed like

02:41:07   You never see the back of a Nexus 7 like the old Nexus 7s

02:41:11   I don't think so, which is like it was like rubber and it had like cross hatching. Oh, yeah

02:41:16   I know what you mean little divots come this could have like little lumps on it

02:41:20   Like well think of a golf ball world has little you know

02:41:23   Concave things or it could be the opposite. It could have convex things like a bunch of like bumps on it

02:41:30   I mean, they could have been textured in so many different ways again

02:41:33   It's just a completely aesthetically speaking because it's not or maybe there would be some functional grip there

02:41:37   But this one is there's one lump, but the surface treatment is essentially smooth. These all seem like

02:41:43   Intentional aesthetic choices that that weren't necessarily for gone conclusions that there is some kind of philosophy behind this design

02:41:52   Yeah, I texture is gonna come back at some point

02:41:57   I feel like we're in an era when texture has sort of fallen out of favor

02:42:01   Perhaps largely driven by Apple, but it'll it'll come back eventually

02:42:05   You remember the what was it?

02:42:07   I figure which case it was the ones with the holes cut out on it the colored ones with the holes cut out from Apple

02:42:12   Colored what cases? Oh, yeah. Yeah. Yeah the ones for the

02:42:16   5c

02:42:19   Right, and yeah, so it would show the words through it and we were complaining about how it didn't like Center on the words correctly

02:42:24   But that was essentially textured because you had these holes in the case that would feel like you'd feel them with your fingers. Yeah

02:42:29   I was gonna be yeah, it would be good for another show

02:42:35   I was gonna say cuz you know everything they make that was made out of this

02:42:38   I don't even know if they call it bead blasted anymore

02:42:40   But it's this aluminum that has the same feel the phones have this aluminum

02:42:44   The Mac books have this feel the even my iMac has the same is made out of the same stuff

02:42:49   But eventually they're gonna switch to a new material from aluminum

02:42:53   Yeah, we talked about that in ATP a few times especially with respective phones the aluminum and glass thing is going to seem as

02:43:00   barbaric as CRT

02:43:02   Video displays due to us now

02:43:05   Like you mean it was this big heavy glass thing with like lead on it and electron gun

02:43:09   Like how thick was the glass and like that just seems barbaric, right?

02:43:12   Aluminum glass phones like the idea that you know for our grandkids the idea that if you dropped your phone on the sidewalk that it

02:43:18   it would break, it's gonna sound idiotic.

02:43:20   It's gonna sound like we were using

02:43:21   the glass shampoo bottles from Prell again.

02:43:23   Like, why would you bring glass into the shower?

02:43:25   That's so stupid, why didn't you use plastic, right?

02:43:27   But right now--

02:43:29   - Or like when eyeglasses were made out of glass.

02:43:32   - Yeah, shatter and just go into your eyeball.

02:43:35   It's like you're doing the best with the materials you have.

02:43:38   And aluminum and glass,

02:43:39   like it took them a while to get to that.

02:43:40   And lots of plastic,

02:43:42   and plastic is pretty good material too,

02:43:43   especially for radio reception and titanium.

02:43:46   But like they went with aluminum and glass

02:43:47   'cause I feel like it's just a higher quality experience.

02:43:50   Like it feels nicer and more expensive.

02:43:51   Glass obviously on the screen is better than plastic

02:43:53   as we learned from the iPod Nano,

02:43:54   like the plastic is gonna scratch.

02:43:56   So you want something that's scratch resistant

02:43:58   for the screen and then aluminum for the back.

02:44:00   It's just, I mean, 3GS was plastic,

02:44:02   but the, you know, and they use glass for the 4 and 4S

02:44:07   and like, but aluminum and glass

02:44:08   is a pretty solid combo right now.

02:44:10   And to get better than it,

02:44:11   you basically need something that's not gonna shatter.

02:44:15   So it has to be more flexible for the display.

02:44:17   And for the back part, I guess you'd

02:44:19   probably have to go with something that's

02:44:21   equal strength but lighter.

02:44:22   So graphite composite plus really hard, flexible screens.

02:44:27   Or as I've always said, get the thing down to the size

02:44:29   and weight of a credit card.

02:44:30   And it really doesn't much matter

02:44:32   what material you make it out of because you drop your credit

02:44:34   card on the pavement and you pick it back up.

02:44:36   Nothing's going to happen to it.

02:44:37   It weighs too little that air resistance becomes a factor

02:44:41   that doesn't even fall that fast.

02:44:42   And if it does, it's flexible enough

02:44:44   that it's not gonna shatter or break.

02:44:46   - Yeah, I thought of an idea,

02:44:47   I was thinking about drops today.

02:44:48   I was watching Jonas play Destiny

02:44:50   and he jumped off a giant cliff

02:44:52   and it seemed like he should have taken damage and didn't.

02:44:55   I was like, how come you don't take damage?

02:44:56   And he goes, oh, you just,

02:44:57   you have like some kind of jets on your feet or something.

02:44:59   You know, like a jet, you play the game, so you know.

02:45:01   - You need to give me his PSN name, I'll help him out.

02:45:04   Or he'll help me out, we'll see.

02:45:06   - Yeah, I'll hook you up.

02:45:07   And I thought, oh, that's clever.

02:45:08   And then I watched it, you know,

02:45:09   so it's more or less like your Boba Fett.

02:45:11   You jump off a thing and at the very end,

02:45:12   you just put on your jet pack a little bit to slow down.

02:45:14   I thought, you know, that would be a clever thing

02:45:16   for an iPhone to have.

02:45:17   If you dropped it, if it had like a little--

02:45:20   - That is the Jetsons era solution to this problem.

02:45:23   You know what we could do if everything had jets.

02:45:26   - Just to slow down just enough--

02:45:26   - Just a puff of air at the last moment would keep it from--

02:45:29   - And to gently land.

02:45:31   But you're right, you know, something like that.

02:45:33   But something's got to, I think the other thing

02:45:34   that's gonna seem barbaric is the way that

02:45:36   with everything made out of aluminum, that they're,

02:45:40   Like, can you even imagine how much raw aluminum Apple is sending to China every single day

02:45:47   that's just being cut into these shapes by the CNC machines?

02:45:53   Well, I mean, the great thing about aluminum is all the shavings and scraps and crap that come off of the machine,

02:45:57   like all the material that is removed, that can just go back into the whole recycling thing,

02:46:00   because, you know, it just, it's not waste in the sense that you can just recycle that,

02:46:04   melt it back down, and put it into another ingot and it comes back to you.

02:46:08   But it's a tremendous amount of stuff that they're just cutting which is an incredibly difficult process

02:46:13   Yeah, yeah

02:46:15   I mean like but it's it's what they settled on and we saw we all we all saw the development of like how can you?

02:46:20   Make a sturdy laptop that's also thin with it doesn't creak or crack or break or feel cheap

02:46:24   and they try lots and lots of different things and

02:46:27   Boy, this one with the original MacBook Air that the machined out piece of aluminum just seems great

02:46:32   I mean eventually they'll get to the point where they're kind of getting to that now with the MacBook one where it's like

02:46:36   Strength of materials at this thickness? Do I feel like I can take this MacBook?

02:46:41   I'm sorry. The MacBook one is ATB parlance for the MacBook that only has one port on the side of it

02:46:45   Just it's just called the MacBook. Anyway

02:46:47   Can I bend this over my knee? Because it looks like I might be able to bend this over my knee and I'm just not a

02:46:52   comfortable feeling like eventually aluminum becomes no good because

02:46:56   It's certain thin, you know thickness if it gets very thin you can bend it and it stays bent and that's not really a good thing

02:47:04   That's why you think about things like carbon fiber where they bend but spring back and they're also very light and very strong

02:47:10   It's awesome. Well, they switched this year to a new aluminum for the phones

02:47:14   So though they look the same the 6s and 6s plus are made from this new

02:47:19   7000 series whatever they want to call it, but it's Apple's new fancy-pants

02:47:23   version of aluminum

02:47:26   And who knows maybe they have you know, maybe maybe this it'll be a take a lot longer than I think

02:47:30   It may be a couple years from now. They're gonna have 8000 series of aluminum

02:47:33   I don't know, but I kind of feel like by upgrading the aluminum they've used that they're sort of approaching

02:47:39   This is as good as it's going to get and well

02:47:42   Yeah, but it's like they're they're holding back the tide in that one because it's kind of like samurai swords where you can pick like

02:47:47   flexibility or hardness and you want you know hardness on the on the edge the sharp edge because you wanted to

02:47:53   Be sharp and be able to cut through things

02:47:55   But if it's that hardness through the whole blade the blade will shatter when you hit something so you need a core that's flexible

02:47:59   Right so going with it with the aluminum like it's not they're making up these new things so you can make aluminum

02:48:04   You can decide do I want it to be very strong and hard or do I want it to be?

02:48:09   Like malleable and flexible and not not that it's gonna shatter or anything

02:48:13   But like with the aluminum what they're doing now is well

02:48:16   We still want to make the phones really thin we want to make them harder to bend and so can we make it so this?

02:48:21   Is stronger aluminum hopefully maintain the weight, but at a certain point like it you know like aluminum foil certain point

02:48:28   It's gonna bend and what you need is a material that springs back and aluminum is not going to spring back

02:48:33   So you will reach a limit in thickness where aluminum is just a non-starter because if you just keep saying

02:48:41   We'll just make it so strong that you can't bend it that will you won't be able to do that at a certain point

02:48:45   It'll just be too darn thin

02:48:46   So the material revolution will come eventually and I'm sure Apple has been for many years now researching

02:48:51   What will replace aluminum if anything in our things is it time to try to do a carbon fiber foam because it would be great

02:48:57   for radio reception and it would spring back better than aluminum does and we wouldn't

02:49:02   have to worry about bendgate as much but you know can we manufacture it in the design so

02:49:07   we want to we can't you can't machine carbon fiber you have to mold it and it's really

02:49:10   complicated and super expensive and so I think I'll be waiting a while.

02:49:13   From the land of fantasy rumors based on like patent fillets and stuff there's the liquid

02:49:17   metal stuff that people have been fantasizing about for years so who knows maybe there's

02:49:21   something like that too.

02:49:23   or in the Jetson puffer jet thing, you can have that material where you can bend it,

02:49:28   but if you subject it to some sort of like, if you put it back in heat or you're like

02:49:31   apply electricity to it, it goes back into the original shape. Remember that?

02:49:34   Yeah, I do remember that.

02:49:36   Yeah, the circuit boards inside don't really like bending too much either, by the way.

02:49:40   All right, let me take one last break here and then we can talk about Star Wars. I want

02:49:45   to tell you about our last sponsor. It's our good friends at Harry's. Now the holiday season

02:49:49   is here. This show will be airing tomorrow, December 14. I think it's up till December

02:49:55   18. Free shipping is over. But if you order up to the 18th,

02:50:00   holiday shipping, economy shipping for the holidays ends on the 18th. So you got a couple

02:50:05   of days. You're probably listening to it if you're a fan of the show, because I feel like

02:50:09   there's going to be big news that Craig Federighi was on the show. You've got till December 18.

02:50:14   You can order it. You can pay for economy shipping. It'll get there before Christmas.

02:50:19   What a great gift if there's any kind of men, fathers, brothers, husbands in your life.

02:50:24   You can just buy them the holiday kit.

02:50:26   They've got these holiday kits with razor blade, with the handle, with some shaving cream and stuff.

02:50:34   They sent me one that had this facial stuff.

02:50:37   You know, you clean your face with it.

02:50:40   I like it. It's good. My skin looks good with it.

02:50:43   Really cool stuff. Awesome packaging.

02:50:47   This is one of those things you give him a gift if you want to give somebody a gift with razor and stuff like that

02:50:50   Give them these Harry's things and they open it up. It looks great makes you look like you have good taste

02:50:55   go there check out these holiday kits and

02:50:59   Really great prices to

02:51:02   High quality blade high quality shaving creams and lotions and gels whatever you want in the thing

02:51:09   So go there save yourself the hassle. I hate Christmas shopping good. God almighty. This is like the most right

02:51:16   I it's the worst so I'm just you just buy people stuff from sponsors of the show and then you're done with it

02:51:21   Get them a mattress and get them a shaving kit from from Harry's

02:51:24   Where do you go to find out more?

02:51:27   go to

02:51:29   Harry's calm and then use this code talk show know the and their code either use that code and

02:51:35   You'll save five bucks off your order and remember you got to the 18th December 18th 2015 and you can still get it

02:51:43   Express shipping for the holidays

02:51:46   You're worried about that?

02:51:49   I'm worried to death about that.

02:51:51   I've had two things on my mind the last week, Jon.

02:51:53   I've found out I was stressing over this interview with Craig Federighi.

02:51:57   I wanted to do a good job with that, and I don't want to have any Star Wars spoilers.

02:52:03   Now I've got this interview out of the way.

02:52:05   We've got a nice little post-interview discussion with me and you about it.

02:52:09   I feel a great sense of relief.

02:52:11   Right now, as I speak to you on Sunday, December 13th, I'm now breaking out into a sweat,

02:52:17   worrying about spoilers for The Force Awakens.

02:52:19   At least you can just hide in your house.

02:52:21   I've got to go to an office, though, with people who may be watching the trailers and

02:52:24   reading every single thing they can find out about these things.

02:52:27   And as you approach a date, you're right, it's like when you get close to an Apple event.

02:52:30   Like the day before, that's when the real leaks start coming, like, "Oh, you know,

02:52:35   here's what's actually going to come out," and you find out after the fact that actually

02:52:37   that you know seven hour before thing was 100% true.

02:52:41   (laughing)

02:52:42   - My friend Moises Cholou, he's down in Austin,

02:52:45   he's a big film fan.

02:52:48   He's trying to get in, he's trying to angle his way

02:52:50   into the press screening down there,

02:52:51   which is Tuesday morning.

02:52:53   But I think the big one is in Los Angeles tomorrow,

02:52:57   I think it's on Monday.

02:52:58   So I feel like, and the critics I think usually know

02:53:02   to keep their spoilers to themselves,

02:53:04   but that it's not just like a,

02:53:05   it's not a critics only screening,

02:53:07   Like all sorts of, anybody who's anybody in Hollywood

02:53:10   can go to the screening on Monday night

02:53:12   and blab about whatever the secrets are.

02:53:15   So now I don't know what to do.

02:53:16   - And you just gotta like,

02:53:18   just think about like the stupid think pieces

02:53:20   that are gonna be like,

02:53:21   I can't believe they did this thing in Star Wars

02:53:23   and people gotta have a big think piece

02:53:25   about what it means for the franchise.

02:53:26   Like no one's even seen the movie.

02:53:27   You don't have to think pieces on it.

02:53:29   And that's gonna make people go.

02:53:31   Like that's gonna make people wanna read the story

02:53:35   and I don't wanna know.

02:53:36   And I can't hide from the world like I can I can ignore the internet

02:53:39   But if there's people of the office who have read the think pieces and are discussing how amazing it is the Jar Jar Binks comes back

02:53:44   And destroys everybody like I don't want to hear about it

02:53:46   Right and I'm so worried that it will it'll pop up in one of those

02:53:52   You know like you get to the bottom of an article on most

02:53:55   News sites today, and they have these all other things around the web you might want to know

02:54:01   I

02:54:03   I'm so worried that the head, you know, and like you said, that they're just gonna put the spoiler right in the goddamn headline

02:54:08   and it'll be right there in front of the house.

02:54:10   Of course it'll be because it'll be a think piece that assumes everybody already knows the spoiler and it's like,

02:54:14   "Now I want to discuss this spoiler," right?

02:54:16   I have, I don't know, it's almost like worse that I've been successful at keeping myself almost entirely spoiler-free.

02:54:24   And I also have a good ability, you know, maybe it's a bad ability in the long run,

02:54:32   but in certain aspects, but at least for this movie, I can willfully forget some things.

02:54:37   >> I don't have that ability.

02:54:39   >> [LAUGH] So I can't even think, there's been at least two minor spoilers that I've

02:54:47   encountered in the last few weeks. And as I speak to you right now, I can't bring them to mind.

02:54:53   And I think I could if I tried, but there's a weird ability in my mind to compartmentalize,

02:54:59   where I've kept them away. And when I see them in the movie, I'll be like, "Oh yeah, I knew that,

02:55:03   but I'd forgotten it. But I remember that I knew it. I can do that."

02:55:06   I'm trying to just not think about the things I already know, the few tidbits. Because if I

02:55:12   think about them, I'll figure crap out. So I just avoid that part of my mind. Don't even think

02:55:17   about that. I don't know if that's going to work. But it's the same type of thing. Once I see it in

02:55:21   the movie, I'd be like, "Yeah, I could have derived that from the information I had at hand, but

02:55:25   I didn't want to.

02:55:26   So here's what I've done.

02:55:27   I just to be clear, I did watch the first trailer.

02:55:31   And then I as soon as it was over, I was excited.

02:55:35   And then I hit play again and watched it again.

02:55:38   And then I thought, shit, why did I watch that?

02:55:40   I shouldn't have watched that.

02:55:41   I feel like I've already had things spoiled.

02:55:43   And I know that J.J.

02:55:45   Abrams is sort of an anti spoiler director.

02:55:48   And largely, it seems so far they've kept a lot of stuff under wraps.

02:55:52   It really seems like I could be wrong.

02:55:54   Maybe there's other websites where like the whole thing is spoiled. I haven't seen it. I

02:55:59   Trusted him to make a trailer that didn't really have spoilers. I wouldn't say that it did

02:56:04   I think it was a good trailer, but I still regretted it. I still regretted it

02:56:08   I regret that I've seen the stupid lightsaber with the the

02:56:11   Side blades. Yeah, I mean so I watched the first trailer too

02:56:16   Just because I was so desperate to know like what is this gonna be like?

02:56:19   Like what is what is it even gonna look like?

02:56:21   like because it was all bets were off like who knows where they were gonna go with this franchise it could have

02:56:26   Was it gonna look like the trailer for Prometheus and be like dark and gritty was it gonna look like?

02:56:31   Tomorrow and be happy and like like Howard what is there?

02:56:36   What was their take on Star Wars gonna be so I felt like I had to watch the first trailer

02:56:39   But after that, I've been often like so far

02:56:42   my barriers held up pretty well through a series of filters and people who are nice to me and everything but

02:56:47   the one the one place has been tearing down a little bit television shows I almost almost anyone to tell you this but

02:56:53   I

02:56:55   discovered by 30 seconds skipping through ads on my TiVo as

02:56:58   The 30 seconds skip went by occasionally a frame

02:57:01   That my mind would register as Star Wars would come by and it was enough for me to know that oh my god

02:57:08   They're running. They're running Star Wars TV ads. I don't know if you knew this but on television there are ads for this movie

02:57:13   I did and it's my my weakness for sports

02:57:16   got me. I was watching, I watched the Dallas Cowboys Redskins on Monday Night

02:57:21   Football and apparently it seemed to me as though that Disney had

02:57:28   purchased a commercial in every, at least one commercial, in every single

02:57:32   commercial break. Like a true carpet-barbing marketing campaign and

02:57:37   it's there, you know, there's, I took to like skipping through the commercials

02:57:43   like with my this is like you couldn't do it but I just skipped through the commercials

02:57:49   with my good eye closed and so I was only using my you're listening with your good ear my damaged

02:57:58   left eye which I could still see certain things and had like a sense of some things that were

02:58:03   going on and like oh that's a red lightsaber but it's like at least the details were blurred out

02:58:08   yeah when I saw that the single frames I got nothing from it and I was I was satisfied with

02:58:13   that because every like because most of the time I would see zero frames and like once every five

02:58:18   shows I would see one frame depending on where it landed but the other day the very first commercial

02:58:23   like the very first commercial in the commercial break was a Star Wars one and I got like half a

02:58:27   sentence out I'm like oh damn it like because you know you're not you gotta find the remote you gotta

02:58:31   pick it up you gotta you know what I mean like I was I was too slow on the draw I was like in the

02:58:35   old west I got I got shot I really don't know how this week is gonna go especially once people start

02:58:41   I got my tickets. My first screening is Thursday night, which seems like cheating to me.

02:58:46   If it premieres on Friday, I don't know how I'm going to a 10 o'clock Thursday screening.

02:58:51   I mentioned that too when someone was saying it was because of that--

02:58:54   I don't know if that's true. After that Aurora shooting in Colorado,

02:58:57   the midnight showing stopped being a midnight.

02:58:59   I feel like that was happening before that, but who knows?

02:59:02   So it's like--

02:59:04   So my 10 o'clock Thursday night screening is a midnight screening,

02:59:08   there's like an asterisk, which is we know it's not really a midnight.

02:59:11   Right. And like they do 7 p.m. screens like the midnight show is now at 7 p.m.

02:59:15   It's like it's like, you know, Christmas creep or anything.

02:59:17   I assume the midnight showing will be like the Wednesday before.

02:59:19   Yeah. Or it's like the Saturday night, seven o'clock mass.

02:59:22   If you're Catholic, it's like, well, we're calling it Sunday.

02:59:25   It's Sunday somewhere.

02:59:27   Yeah. So my showing is on Thursday as well.

02:59:29   Yeah. So, you know, then Friday, I'm going to spoil it.

02:59:33   I'm going to spoil everything for everybody else.

02:59:35   I'll just feel so much better if I make it into that.

02:59:38   And like I said the the most dangerous time I said this in the account for the most dangerous time is when you're waiting in

02:59:42   Line to go theater and people are coming out of the theater

02:59:45   Especially if it's a theater that doesn't exit them out the back

02:59:47   Like if the people who are done seeing the movie walk piece past the people who are still waiting to see the movie super dangerous

02:59:53   Yeah, yeah famous everybody has famous. Maybe it's even

02:59:57   Apocryphal stories of waiting in line for the Empire Strikes Back and then some

03:00:03   Dipshit runs by and purposefully screams at the top of his lung Darth is Luke's father

03:00:09   Yeah, and in the age of internet trolling

03:00:11   I remember seeing this terrible YouTube video of someone driving a car past that people lined up waiting for like whatever was the

03:00:17   Fifth book or some Harry Potter book where something dramatic happens

03:00:21   other people didn't expect and so people are waiting a line at the bookstore and get like an opening night to buy the copy of

03:00:26   The book and someone like films it for YouTube and drives past and yells a phrase that I'm not gonna yell because it will spoil

03:00:31   Harry Potter for a bunch of little kids listening to this but yells it to the entire line and

03:00:35   The worst part is like they don't know if it's true

03:00:38   He could the person could be making stuff up

03:00:40   But in your heart of hearts like as you're reading the book as they approached you're like that guy was right and he wrote it

03:00:47   For me, don't be that person. That's that's the worst thing ever

03:00:50   What's the only Star Wars movie that doesn't take have some part of it take place on tattooing?

03:00:55   Is it one of the fake ones?

03:00:59   No, it's not one of the Empire I guess right now all the fake ones have scenes on tattooing. Yeah, you're right

03:01:04   In special edition to the editing tattooing parts the Empire don't remember just so that they had a Khorasan to Jedi

03:01:13   Who knows what the hell they're adding?

03:01:14   That would have been the worst if they just like it in between a cutaway as big as circular white from Dagobah

03:01:20   they instead of going to the asteroid field they they cut to the

03:01:22   Some droids toodling around in the sand. Yeah or like

03:01:27   Like when they first start hunting for the Millennium Falcon like there's a phone call from Darth Vader to

03:01:32   The Boba Fett and job is palace like come here. I need you

03:01:36   Yeah, so what Lucas is really concerned about is like how did those bounty hunters all get on to the Death Star?

03:01:41   I want to see them remember. He did that change for Jedi

03:01:43   It's like that

03:01:44   He showed like a Vader's shuttle taking him from point A to point B

03:01:46   So we weren't confused about how he arrived like it closed it here or whatever. It's like right get it

03:01:50   They flew there in their spaceships. We don't need to see it. I

03:01:55   I think he had, I don't even want to get into what he added.

03:01:59   Some of the additions though, like there's the, when you get into the list of like what was taken out of the

03:02:04   "despecialized" or whatever you want to call it, the ones that were taken out of the "despecialized"

03:02:08   you know, "Shammysdat Prince" or the, you know, what was added to the "specialized"

03:02:12   everybody thinks of Han shooting first and all of these gratuitous things and the ridiculous

03:02:17   CGI backgrounds they put behind the windows of Bespin and all these things that really, really stand out

03:02:22   or the god-awful CGI stuff they added to Mos Eisley in A New Hope.

03:02:27   It's the little things though, like your anger, your boiling anger is over these big ugly changes

03:02:34   that really stand out and just don't add anything and take away some of the magic. But then when you

03:02:40   read some of the little things that Lucas had added, you're like, "What? This man went insane."

03:02:46   Like it's the little things that make you realize that he somehow lost his marbles.

03:02:50   The one I had forgotten about until I was reminded, I think, in some Slack channel somewhere,

03:02:54   I think they were talking to you about it, was the

03:02:56   Dagobah when R2 gets spit out of the big swamp creature,

03:03:01   and the actual line in the movie is "You're lucky you don't taste very good."

03:03:04   That's what Luke says to him, which is a good laugh line, you know, whatever, for a silly situation,

03:03:08   and he changed it to a less funny line.

03:03:10   Like, it's not like, he was like, "You're lucky you got out of there."

03:03:13   Like, no, no, the first one was better.

03:03:16   It was adding a little bit of levity, it was sarcastic, it was...

03:03:19   and Luke is kind of like sarcastic and a little bit cranky in that scene, so it's perfect.

03:03:24   It's like you're lucky you don't taste very good. You're lucky you got out of there. That's your

03:03:28   improvement. It's like, you know, when you bring someone in to punch up a script, this is the

03:03:31   opposite. This is the guy who unpunches it, punches it down. It's... that's a perfect example. Maybe

03:03:37   the canonical example. Maybe that's like the best example because it sounds inconsequential,

03:03:43   but it was a little funny, and then it's not funny at all. And it also was like, establishes

03:03:49   the characters. It is like, hey, Luke and R2 have a friendship, right? It's not just

03:03:57   a device that's owned by Luke. He's, you know, there's a rapport between these two. And you

03:04:02   know, everybody who's seen the first one knows that R2D2 is clearly a sort of sarcastic wise

03:04:08   ass, right? He's a wise ass robot. You don't know what he's saying, but you can tell from

03:04:12   3PO's responses that he's a he's a wise ass.

03:04:15   And Luke is giving it back to him.

03:04:18   It actually is meaningful in some small way

03:04:21   in terms of shaping the relationship between the characters.

03:04:24   And it fits perfectly in that scene.

03:04:26   Like I think one of my favorite cuts in the Dagobah sequences

03:04:29   where like Luke is just like he just crashed his ship.

03:04:33   Everything's all crappy.

03:04:34   And it's like his droid was attacked by a monster and spit out.

03:04:37   And he's covered with water and his droids covered in mud.

03:04:40   He's like, I don't even know what we're doing here.

03:04:42   And R2, like to end the scene, R2 expels mud from one of his vents. The top goes

03:04:46   and like that basically sums it up. Like it just, it's like slapstick, slapstick

03:04:52   comedy, but also commentary on the situation. We're just, you know what? This is crap. We're,

03:04:58   we're not doing well here. So to wrap it up, what, what is your expectation going? Do you

03:05:05   think there's going to be a movie that makes you happy or do you think it's going to be another

03:05:09   disappointment.

03:05:10   Do you have show notes?

03:05:12   You should put the incomparable episode where we talked about this in the show notes.

03:05:15   I will.

03:05:16   It's an entire episode of the incomparable about anticipating The Force Awakens.

03:05:20   And to sum up what I said there, I'm of two minds about it.

03:05:24   On the one hand, when I dwell on it a little bit, I start to get depressed because I'm

03:05:28   like, "There's just no way that this can be as meaningful to me as the original three

03:05:34   movies are," which is fine.

03:05:35   Like, you know, whatever.

03:05:36   Like, I start to think that there's just no way this can be as meaningful to me,

03:05:40   because things you experience in your formative years always have a certain extra amount of impact.

03:05:45   But on the other hand, I say, "Well, but isn't it possible?"

03:05:50   It's not as if as an adult it is impossible to get to me.

03:05:53   It's impossible to be affecting, and what I try to do is think of

03:05:56   what media, movies, or whatever have seen as an adult that have, like, really stuck with me and affected me.

03:06:04   Just basically to put like what what is the bar like have I just become such a jaded individual that no movie can really get

03:06:09   To me and so I should just put that out of my mind that Star Wars is not gonna be like that and what I came

03:06:13   Back to was like a lot of the Miyazaki movies

03:06:15   I saw as an adult

03:06:16   Really stick with me and are meaningful and important movies that I would put right up there with Star Wars movies

03:06:22   And then maybe they're not as big because they I didn't see them in my former years

03:06:25   But I saw them as an adult and basically what I'm doing is I'm reassuring myself that

03:06:27   That a movie can get to me and so that's the top bar and then the other thing I have to say

03:06:33   Is like so it's you've decided that you as an adult are able to be affected by a movie

03:06:38   What if you watch this movie this new Star Wars movie and it's merely a pretty good movie

03:06:43   Are you okay with that? And what I used was a Star Trek movies like the recent reboot Star Trek's I

03:06:47   Enjoyed those and when I've rewatched them I said, you know what? This was a fun movie

03:06:51   But I don't really care that much about Star Trek. So there's way less baggage there

03:06:55   But what I've been trying to think about is if I go into this movie

03:06:58   It's not the most amazing movie ever saw but it's competently made it's fun. It's exciting. I have fun watching it

03:07:04   Do I say yeah, but it was Star Wars and it's supposed to be way better than that

03:07:09   Or do I am I able to enjoy it the same way that I could enjoy the Star Trek movies that I care way way less

03:07:16   about

03:07:16   and I don't know what the answer to that is, but really what I've come down to is I think I

03:07:21   Believe it is possible for for this movie to be really important and meaningful

03:07:26   I probably I think it probably won't be and

03:07:28   I'm trying to be okay with with it merely being a good fun movie and just me being so much so excited that it wasn't

03:07:36   Like the prequels I my big fear is I feel like

03:07:40   The big problem with the prequels was well

03:07:43   There's so many and we can we've talked we've talked about them at length on this show and others

03:07:47   But to me at a fundamental level

03:07:49   It's that that the characters were flat and the dialogue was flat and there is no camaraderie

03:07:54   And and no said and and and in plot wise and story wise there was no sense of mystery in fact the whole point of the

03:08:01   prequel trilogy was to explain all the mysteries that that the original thriller trilogy lied on and

03:08:07   I've said this before like it always seemed like the original trilogy could have you know and there were rumors from when we were kids

03:08:14   That Lucas, but the next three movies wouldn't be after the return of the Jedi

03:08:19   They would be before when Ben Kenobi and Anakin Skywalker were younger

03:08:24   And it always seemed like well, of course he could do that because my god

03:08:27   There's so much stuff that they could explain what the hell the Clone Wars were how the Emperor came to be how the Emperor

03:08:32   Empire came to be all of these things could you know could be a movie but the fact that they were were

03:08:38   mysteries or were only gently or vaguely alluded to

03:08:41   It gave a weight to the original trilogy that the prequels didn't have because all they tried to do is piss away and explain everything

03:08:49   Right down to explaining how the force worked

03:08:52   I don't think that's gonna be a problem

03:08:54   I feel like JJ one thing JJ Abrams knows how to do is have

03:08:57   engaging characters and a sense of camaraderie and and a good a

03:09:03   Good ear for dialogue. My big concern is that that the modern?

03:09:07   Needs or perceived needs in Hollywood of a big-budget action movie are such that there's no way, you know

03:09:17   It's still going to be filled with 110 minutes of CGI action chases

03:09:23   Yeah, I talked about that in the incomparable to in the context of like modern movie making sensibilities

03:09:30   Because this using the Star Trek again as example you've seen those right there. Yeah

03:09:35   Star Trek rather. Yeah, especially like the first one. Yeah, and so those definitely

03:09:43   Look at Star Trek with modern movie making sensibilities and I like them like I thought they were enjoyable

03:09:49   but but you have to say like those movies are

03:09:52   Star Trek as reimagined through the loan through the lens of a modern filmmaker and for the Star Wars things. I

03:09:59   I really fervently hope that

03:10:02   JJ is a big enough Star Wars fan that what they do what he does instead is

03:10:10   You know it this certain Star Wars magic that I want to feel in this movie

03:10:14   Not that it's any worse or better than modern movie making sensibilities

03:10:18   But it's a different set of sensibilities that inform the original trilogy

03:10:21   And I feel like those those still work and are still fresh

03:10:25   So I want this movie to feel like Star Wars first and foremost

03:10:28   I don't want it to feel like Star Wars as the scene through the lens of a modern filmmaker and this thing

03:10:35   It's a continuum. I'm not saying it's like you're on one side of it on the other

03:10:37   But I desperately want this and again I use Miyazaki as my example Miyazaki movies are about all sorts of different topics across decades

03:10:45   But they all feel like Miyazaki movies

03:10:47   So I'm okay with this movie being different from the original trilogy in fundamental ways

03:10:53   but it has to feel like Star Wars it shouldn't feel like a

03:10:56   Modern movie a modern reimagining of Star Wars. I want it to feel like Star Wars at least just these three

03:11:03   After that fine then totally reimagine everything about it, but I want these three movies seven eight nine to feel like Star Wars

03:11:10   Yeah, that's a good way to put it. I agree and there's it is it's almost like a branding thing

03:11:14   You know that there was a certain way that the the original series just lacked bombastic

03:11:21   scenes, I mean, I mean like the the the space battle in Return of the Jedi sort of I think set the

03:11:29   Set the stage for modern action movies and it was so awesome at the time and I do love it

03:11:33   It's one of the and it's one of my favorite things in the whole return of the Jedi. It's fantastic

03:11:37   the way that the ships are so dynamic and the camera moves around and stuff like that, but

03:11:43   It's it's if you just use a stopwatch and measure how much of the movie is taken up by that battle

03:11:49   It's actually very little because it was so incredibly hard for them to do it

03:11:53   You know that the computer controlled where everything was actually like a an actual model

03:11:58   And in the modern filmmaking where it's once you have all this stuff set up you can just let like

03:12:03   You know like it's I got the way that transformer movies work where they're really just two hour CGI

03:12:10   Chases through us, you know where transformers are throwing themselves into skyscrapers

03:12:15   Yeah, and like you're trying to think about what is it that makes something feel like Star Wars a lot of it is

03:12:20   The limitations of motion control cameras and and the you know the 70s and 80s, right?

03:12:26   That defined the look of the space battles because what could you do with the mode control camera?

03:12:30   We can do this move that move that move in this move and we can optically composite them together and that kind of defines it

03:12:35   But also stuff that didn't have anything to do with technology like how it scored how there's like music behind everything and how it's orchestral

03:12:41   Like that's not the modern way movies are scored. That is that is an older way movies are scored

03:12:46   Like it's not that's not done and you know, John Williams doesn't put an orchestra behind

03:12:52   the Transformers movie during like every scene like Star Wars movies are practically musicals for the amount of music that's in them and the type

03:12:58   Of music is a weird old style of music so you can go a long way towards making a movie feel like Star Wars

03:13:04   without you know like yes, you can do anything in CG, but

03:13:09   Make it feel kind of like Star Wars now

03:13:11   You can you can do a twist not like in the trailer that we both saw the the camera movement around the Millennium Falcon

03:13:17   Falcon when it's doing all these strange maneuvers you couldn't really do that

03:13:20   feasibly with the motion-drill camera especially with the crazy backgrounds

03:13:23   and everything you can do it with CG but in some sense it still feels Star Wars

03:13:27   because lots of those swoopy moves where the camera was following the ship and

03:13:31   the ship was twirling around this is just like that cranked up a little bit

03:13:36   more it isn't it's a difference between that and like the like the fancy the

03:13:41   fancy way that Han piloted the Falcon into the asteroid crater in Empire

03:13:46   Strikes Back, where it was like this exuberant, like, straight up, straight down, paperclip,

03:13:52   you know, like, U-motion, you know, it's a show-off type of guy.

03:13:59   Accompanied by an ascending and descending scale in the soundtrack from John Williams

03:14:03   with like the flutes or whatever going in there, like, that's totally a Star Wars type

03:14:06   thing. And comparing it to, like, remember, did you watch the Battlestar Galactica reboot?

03:14:10   Yeah, I did.

03:14:11   Remember they used to do this thing that made it look like the Vipers or whatever were being

03:14:16   filmed by someone with a handheld camera far away so it would shake and then they would do the really dramatic zoom in

03:14:22   Yeah

03:14:22   It's like to acquire the ship and then try to get it centered in the frame

03:14:25   Like someone trying to catch like a long Hail Mary pass like a bad cameraman trying to say where the hell is the football?

03:14:31   I got it zoom in they don't do that these days

03:14:33   I saw that big Hail Mary and like they were headed the camera back the whole time

03:14:36   Don't they follow the ball anymore? Whatever the hell happened to NFL films where you get to see the thing spiraling towards you

03:14:40   Where is that tech anyway?

03:14:43   Yeah, you can you can make something

03:14:45   Feel like Star Wars and be modern without making it look like Bao Stark or like to be like all of a sudden

03:14:51   Everything is handheld shaky cam and there was shaky cam in the trailer

03:14:54   So I'm like, I'm not saying you can't use shaky cam. You totally can't I just I just overall

03:14:58   I want the movie to feel like Star Wars, right?

03:15:01   And part of that to me is that it has to you have to let certain scenes

03:15:05   Just just let them breathe and don't worry about whether there's a lot going on. Like give us something that's a mystery

03:15:11   Give us something that's new and then just let us figure it out

03:15:14   Like some of my favorite scenes in the original trilogy are just like r2d2 by himself

03:15:18   Just off in the desert on Tatooine and you just slowly watch the r2d2 roll across the desert

03:15:24   But there's it it's engaging because you're like well, where the hell is this robot going?

03:15:29   Yeah, like Empire my favorite one like this. There's so many scenes that end like with with the mud being spit out

03:15:37   That's the end of that scene before they cut to a different one

03:15:39   It's like, but wait, how does that conclude?

03:15:41   It doesn't have to conclude with a line or an event or a call to action

03:15:45   that can end with the feeling or just showing like,

03:15:48   some, you know, Yoda walking off into the misty swamp

03:15:51   and Luke just saying stay at the camp, like

03:15:53   something else is going to happen, but you're left with the feeling.

03:15:56   How are the characters feeling this morning?

03:15:58   Are they dejected? Are they hopeful? Are they cautious? Are they afraid?

03:16:01   That's so much more important than ending every scene with a call to action

03:16:06   that leads to the next scene.

03:16:07   We have to do the whatever and then go show the whatever.

03:16:09   And you know, it's just as I get excited about this movie Amy keeps reminding me of

03:16:14   the movie AI and

03:16:17   You know, which was written by Stanley Kubrick. I think he even got a producer credit, but it came out after he had died

03:16:24   But the you know

03:16:27   the basic story is that it was a movie he had been to Kubrick had been developing for a long time many years and

03:16:33   decided that he didn't want to direct it that Spielberg should direct it because it needed a warmth a

03:16:39   Human empathy that he knew that his movies lacked that it coldness would be the wrong way to approach it

03:16:44   And so he called up Steven Spielberg and said, you know, what do you think about that? I got this movie

03:16:49   Would you want to work with me and Spielberg is a huge Kubrick fan and they'd been friends over the phone for years

03:16:53   I was like, okay, and then the poor guy died, but Spielberg made it anyway, and we're going to see it opening night

03:17:00   Of course

03:17:00   I could not wait and I'm going to see it opening night and I just paused and we had another friend with it

03:17:04   Was me Amy and my friend Don and I just said I just want to tell you guys

03:17:07   I just want to make a prediction right here

03:17:08   I think there's a very strong chance that we're about to see the greatest movie that's ever

03:17:13   Had you not seen any other Spielberg movies like yeah, he's got human worth, but he's also a little sappy

03:17:19   That's what I said going into CA

03:17:22   Seriously, I said in all seriousness. I wanted it. Like I wanted the the being right points

03:17:29   Before we did I think we might be going to I believe there's a good chance that we might be going to see the greatest movie

03:17:35   That's ever been made. I mean not that AI was

03:17:38   Incredibly terrible, but it was not it it missed the mark. I think most people agree

03:17:43   I don't think it makes it's not a bad movie, but it is certainly bad given the pedigree of the

03:17:48   Filmmaker so that's why that's what a B keeps reminding me of with the force awakens

03:17:54   Well, but you're not making strong predictions about no

03:17:56   We're cautiously optimistic, but like this has everything going for it like the thing

03:18:00   I think about in this movie that the things that have faded it to exist is I mean obviously the reason exists at all is

03:18:06   Lucas sells gets him out of the picture so we don't to worry about his picadillos messing with things. You know what I mean

03:18:11   Yeah

03:18:11   And who do they get to direct it the guy who's basically admitted so many times before this like that

03:18:17   He's a super big Star Wars fan

03:18:19   Like when he when he directed Star Trek

03:18:22   I'm like that's kind of a shame because he's always said what a big Star Wars fan he is and I'm sure he likes Star

03:18:26   I'm sure he'll do a good job, but boy wouldn't it be great if he could do Star Wars

03:18:30   But now that he's done Star Trek

03:18:31   There's no way he's gonna do Star Wars cuz the same guy's not gonna get the same guy to do Star Trek and Star Wars

03:18:34   Well, he got to like essentially warm up on the lesser franchise Star Trek, right?

03:18:39   and finally and hone his craft over a

03:18:42   Series of movies and television shows over the years and then you could say like he's at the top of his game now

03:18:48   Fulfilling his childhood fantasy as any one child, you know child at a similar age to direct a new Star Wars movie

03:18:54   and he's the guy doing it, right? Now, I've heard there's been creative tensions between him and

03:18:59   the people who are running the franchise, and that kind of makes me worry about the future of this or whatever,

03:19:04   but, like, boy, the star is really aligned for both us and J.J. Abrams to have. I like J.J. Abrams,

03:19:09   I like his other movies,

03:19:10   I like that he got to practice on Star Trek, and I really hope that he, like,

03:19:14   uses all his skills and all his powers and the Godfather parlance to just, like, put everything he has into this, this,

03:19:21   It's his childhood dreams as well as ours tied up into this movie, and I really hope it comes together.

03:19:27   So I'm optimistic. We'll see how it goes.

03:19:31   Anyway, John Siracusa, thank you for your time. This has been extremely generous of you. We've gone on a long time.

03:19:38   Craig didn't take all my time. This would have been, you know...

03:19:42   No, I told you you weren't going to get cheated out of time.

03:19:45   John was worried when I asked him to do the show that he'd get shortchanged on time because of the Craig Federighi segment.

03:19:50   segment, not to worry. Yeah, well, just make it a three hour show, whatever.

03:19:54   Yeah, big, long, big, long, healthy. It's like a holiday meal, big, long, healthy meal.

03:19:59   I should thank all of our sponsors. We've got Harry's. Go to them, buy their shaving

03:20:02   stuff. Wealthfront, you can invest your money. Squarespace, you can build your own website.

03:20:07   And Casper, you can buy a mattress, which I again, I'm telling you what a holiday gift

03:20:11   idea that would be. John Siracuzzi, you can find him on his weekly podcast with the other

03:20:17   guy's ATP that's accidental tech podcast at ATP FM and he's just at Syracuse on

03:20:26   Twitter anything else no I think you covered it there we go thank you John

03:20:30   thank you