Podcast Search

The Talk Show

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

Select a time to play from there. The line being spoken is highlighted as the audio plays.

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

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

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

0:00:12It is.

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

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

0:00:29Apple.

0:00:30Apple.

0:00:31Apple.

0:00:32Yes.

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

0:00:42week.

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

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

0:00:47It's been huge.

0:00:48Yeah.

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

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

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

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

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

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

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

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

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

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

0:01:40ecstatic over the whole thing.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:03:42like everything else Apple does.

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

0:03:47That's correct.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:04:32there are people actively engaging,

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

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

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

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

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

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

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

0:04:53of developing languages.

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

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

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

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

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

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

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

0:05:15and have a starting point,

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

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

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

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

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

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

0:05:36that we're getting.

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

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

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

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

0:05:50with a new programming language?

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

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

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

0:06:06the primary programming language that developers

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

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

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

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

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

0:06:24and developing code in Swift,

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

0:06:29in every context possible.

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

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

0:06:34to do your job.

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

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

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

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

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

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

0:07:08It is.

0:07:09It is.

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

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

0:07:24really outdone our expectations.

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

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

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

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

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

0:07:48platform.

0:07:49Right.

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

0:07:53teach a specialized mobile programming course

0:07:56or an iOS programming course.

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

0:08:00and Stanford has an outstanding course

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

0:08:05to program on iOS.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:09:35And so we moved ahead,

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

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

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

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

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

0:09:54outside of Apple.

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

0:09:56So that's fine.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:10:35- That's right.

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

0:10:41I have no idea.

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

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

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

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

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

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

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

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

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

0:11:01for building their mobile apps,

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

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

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

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

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

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

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

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

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

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

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

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

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

0:11:40want to share your knowledge.

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

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

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

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

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

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

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

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

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

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

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

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

0:12:21the overwhelming majority of apps

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

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

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

0:12:31Well, exactly.

0:12:32Exactly.

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

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

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

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

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

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

0:12:52can be almost another language.

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

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

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

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

0:13:04like Java.

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

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

0:13:13expressive uses.

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

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

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

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

0:13:24in Swift.

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

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

0:13:33for a lot of developers.

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

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

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

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

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

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

0:14:15a very contained runtime.

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

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

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

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

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

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

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

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

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

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

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

0:15:27dynamism when needed.

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

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

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

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

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

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

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

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

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

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

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

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

0:16:39performance code right in Swift.

0:16:42That's right.

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

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

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

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

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

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

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

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

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

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

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

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

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

0:17:52Uh-huh.

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

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

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

0:18:15go either way.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:20:00like labeled arguments.

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

0:20:07much of the dynamism.

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

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

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

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

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

0:20:26or check.

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

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

0:20:34ultimately bring to the language.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:21:35where performance matters.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:22:44That's right.

0:22:45That's right.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:23:44(laughing)

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

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

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

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

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

0:24:00That's right.

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

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

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

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

0:24:16will bring them forward as proposals

0:24:20to the open source community

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

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

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

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

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

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

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

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

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

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

0:24:54is to really stabilize the language

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

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

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

0:25:04is it has this great stability

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

0:25:12with binary compatible interfaces,

0:25:13release over release over release,

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

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

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

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

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

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

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

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

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

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

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

0:25:51and just commentary on the internet

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

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

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

0:26:07reasons.

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

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

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

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

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

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

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

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

0:26:49I love it."

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

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

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

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

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

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

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

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

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

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

0:27:41in terms of our internal frameworks

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

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

0:27:47they get it rough.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:29:12a limiting factor for productivity

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

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

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

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

0:29:26these sorts of things,

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

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

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

0:29:36about writing larger apps.

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

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

0:29:45handles modules and namespaces

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

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

0:29:57we're very comfortable.

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

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

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

0:30:12answer.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:32:41Sorry about that.

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

0:32:45I 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.

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

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

0:32:57I certainly appreciate your time,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:34:28for the next few decades,

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

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

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

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

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

0:34:41about the TV.

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

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

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

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

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

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

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

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

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

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

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

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

0:35:13to get on board with.

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

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

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

0:35:24like hello world type stuff,

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

0:35:28- Yeah.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:36:30driving the energy around it.

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

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

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

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

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

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

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

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

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

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

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

0:37:19to Craig Federighi.

0:37:21He totally should have.

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

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

0:37:27He was incredibly gracious.

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

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

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

0:37:39You guys know Casper.

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

0:37:45These guys make obsessively engineered mattresses

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

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

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

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

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

0:38:01Do you want latex foam?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:39:59So people are probably wondering,

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

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

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

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

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

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

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

0:40:20him on the podcast.

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

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

0:40:25Let me check my schedule.

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

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

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

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

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

0:40:54me.

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

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

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

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

0:41:15which I think is reasonable.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:47:11Why?

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

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

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

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

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

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

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

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

0:47:25look at the source code.

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

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

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

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

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

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

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

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

0:47:54I think Apache 2.0.

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

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

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

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

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

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

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

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

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

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

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

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

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

0:48:42Yeah, definitely.

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

0:48:46The volume has been tremendous.

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

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

0:48:54in a day.

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

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

0:48:59But you're right.

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

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

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

0:49:08or even could contribute.

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

0:49:12until the next major version.

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

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

0:49:19stuff.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:49:59for a while.

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

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

0:50:08to the public.

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

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

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

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

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

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

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

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

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

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

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

0:50:31Now everyone is kumbaya

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

0:50:35and Swift is this one thing

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

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

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

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

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

0:50:45for the foreseeable future.

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

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

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

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

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

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

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

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

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

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

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

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

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

0:51:34was a debate internally.

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

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

0:51:40of the bat.

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

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

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

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

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

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

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

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

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

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

0:52:07because 2.0 was too new.

0:52:09Why would it be bad?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:53:08overhead, right? Like you can work, you can go much faster when you don't have to worry

0:53:11about other people's input. That sounds bad. And it's like, oh, you're being like, there

0:53:15is a lot of overhead, especially for a company like Apple, in terms of intellectual property

0:53:21and making sure this is dividing the line between what's open and what's not.

0:53:25It's a lot of work to do all the things that are required to be a good maintainer of an

0:53:30open source project.

0:53:31And they just, you know, it would have made them go slower, right?

0:53:35So now they're at the point where the trade-off is worth it, that they're okay with going

0:53:41a little bit slower.

0:53:42Of course, the input is a little bit more valuable because in that beginning part, so

0:53:46much basic stuff didn't work.

0:53:48Craig mentioned that you have incremental compilation.

0:53:50It was like you just want it to hold together.

0:53:54Is this feasible at all?

0:53:56Can we ship something?

0:53:57Can we get it working enough in Xcode so the playgrounds don't crash all the time?

0:54:03That's basically, I would assume, the answer that wasn't given there is that it's not like

0:54:07they...

0:54:08And of course, the internal debate, which is not going to tell you about the details

0:54:10of the internal debate. But yeah, you can go much faster when you don't have to worry about

0:54:16the outside world's opinions or input and you don't have to support them and you don't have to

0:54:19maintain a source repository with clean source code and a mailing list and all the other things

0:54:25that go with that. Yeah, I think it is sort of a one, two, like a two-step process. Like,

0:54:35first step was Swift 1.0. This is good enough to show you guys and let you guys start playing

0:54:40with even though, let's face it, you can't start working with it yet.

0:54:43We'll get it into a shape where it's, you know, you can start using it.

0:54:48And I've been asking around and I do, there are, you know, it's not just in Apple, there

0:54:51are, you know, real developers at real, you know, apps that, you know, people out there,

0:54:56you know, top apps, to borrow a phrase from Raiders of the Lost Ark.

0:55:01There are top apps that have new parts of it, you know, maybe not entirely written in

0:55:05Swift.

0:55:06That's probably still very rare.

0:55:07New features are being written in Swift in real apps

0:55:10that you're using today.

0:55:12But I think stage two is this is where, I think,

0:55:15Latner and his team think.

0:55:16We had this vision for what we would start with,

0:55:20and we're not there yet.

0:55:21And this is the point where the fundamental aspects

0:55:25of the language, we're settled on now.

0:55:27And now we're willing to start listening to how we can make

0:55:29it better to suit your needs.

0:55:32Yeah.

0:55:34Like I said, I think the language is just so young

0:55:37in the grand scheme of things.

0:55:40If you want to do a human analogy,

0:55:44maybe it can sit up now.

0:55:47It doesn't need to be held in one of those big tube things.

0:55:49It can sit up.

0:55:50Occasionally, it toddles over.

0:55:51It falls over a little bit.

0:55:52It can sit up.

0:55:53But this is the best and the worst part,

0:55:58because it's kind of like there's so much potential.

0:56:02But Craig talked about Swift 3.0 and how they're really working on getting the ABI nailed down and everything.

0:56:08And that's just got to be terrifying because you know the standards of binary compatibility that Apple aspires to.

0:56:14Like 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.

0:56:21And in theory, if you stayed to, you know, still well supported APIs, that binary would still run.

0:56:28They don't... Apple is not in the habit of breaking backward compatibility for binary libraries and everything that frequently,

0:56:36which is surprising for a company that is so gung-ho about

0:56:39moving on from the past in hardware design and software design. They're really good about that.

0:56:43So nailing that stuff down like that, like 3.0 is not that far away, and it's like,

0:56:47boy, you really only get one shot at doing this right, because there's not gonna be another

0:56:5264 to 30... 32 to 64-bit transition for them to use to paper over like they did with like, you know,

0:56:57the Objective-C stuff where they're like, "Well, when we're going 32-64, it's going to break

0:57:01anything anyway, so now is our chance to do something a little bit differently." There's

0:57:04not going to be a 64-128 transition in the foreseeable future, so they really have to

0:57:09get their ABI something that doesn't have some terrible mistake that ties their hands in the

0:57:14future, and that is supportable for literally decades. Right, or maybe now if it's not a

0:57:19mistake, it's like not like missing some sort of thing that everybody thinks is okay today, but

0:57:26five, six, seven years ago from now, everybody thinks, oh, man, that's it would be so great

0:57:30if we didn't have that, if we weren't stuck with that decision.

0:57:33Or there's going to be some language feature that is much more difficult to support with the

0:57:37ABI as it's designed. Or, you know, I'm even just going to say, oh, well, it doesn't, you know,

0:57:40the way quantum computers work in 50 years is different than that. But even just like

0:57:44you decide there's a particular language feature that they're like, we don't have time for it.

0:57:48Concurrency is a great example in the Swift 3.0, like Swift evolution mailing list and roadmap or

0:57:53or whatever, they're like language level concurrency,

0:57:57it's not planned for 3.0, we don't have time for it,

0:57:59it's too big a feature,

0:58:00if we're gonna save that as post 3.0.

0:58:01But they're gonna have the ABI nailed down.

0:58:03So I really hope there's nothing about,

0:58:06you know, language level concurrency features

0:58:09that would be easier to do with a different API.

0:58:11Not that it's gonna preclude them doing this,

0:58:13and I'm assuming like based on past experience

0:58:16that they're looking for an ABI

0:58:18that were really, really solid,

0:58:19but thus far everything until now has been communication

0:58:23from Apple about Swift to Zoom, we're going to break your crap all the time.

0:58:26We are not maintaining source compatibility.

0:58:28We're adding keywords, we're removing things, we're changing how operators work.

0:58:33And their solution to this has been like, we're going to use Xcode

0:58:36to translate your old code to your new code for you,

0:58:38but we're not going to support your old code.

0:58:40Like, just forget it, because they don't want to be held back by the past.

0:58:44It's kind of the nightmare of, you know, come out with a language

0:58:48and then let literally thousands of developers start writing real applications

0:58:52with it and shipping them to customers, and then be like, "Oh my god, we can never

0:58:56change this part of the language because so many people have all this code out there.

0:59:00We set it out to loosen the world.

0:59:03Now we can never take away plus plus and minus minus.

0:59:04It'll break everyone's apps."

0:59:05And Apple's like, "No, we reserve the right to change how this language looks on the page

0:59:11to make your source code that you think is perfectly good syntactically invalid so it

0:59:15won't even compile.

0:59:16And the way we're going to manage that is by giving you tools to translate your source

0:59:19code."

0:59:20That's one of my favorite changes in the,

0:59:23I guess it's the, it just came out in the Swift evolution

0:59:26or maybe the new version of Swift that they released

0:59:28as they open sourced it, where they got rid of these

0:59:30plus plus and minus minus operators.

0:59:32And again, just to take a big step back,

0:59:36and I read the interviews that Federighi did

0:59:37with like Mashable and a few other outlets last week.

0:59:41I was half happy and half worried,

0:59:43'cause I was happy because his interviews

0:59:45with like Ars Technica and Mashable covered the basics

0:59:50know, and it was like a foundation of what Apple's official stance was towards this open sourcing of

0:59:54Swift. And I thought that means I don't have to waste time talking about those things with him,

0:59:58and we can go deeper. But then I thought, what if that's all he wants to talk about is this,

1:00:02he doesn't want to get nerdy at all. And I was like, because I kind of want some of this stuff

1:00:05to be a little technical. But then the way the interview went, absolutely no problem getting

1:00:11them to go technical. I just worry now that maybe it's a little bit over, over people's heads for

1:00:16everybody who listens to the show. And so just here's one example I don't want to over explain,

1:00:21but the plus plus minus minus operators are one that's very easy for even a non-programmer to

1:00:25understand. And in every language, geez, I know since C you've been able to take a variable. Let's

1:00:32say the variable is x and if x is an integer and it's currently equal to four, if you write in your

1:00:38source code x++, that turns the variable to 5. It just adds 1 to the

1:00:45variable. And I've never really given a lot of thought to it, but like it seems

1:00:50like every language, just about every C-style syntax language since has taken

1:00:56that and kept it. And Swift had it, and then in the where we're going it was

1:01:01like we're gonna get rid of it, and here's why. And I thought the explanation

1:01:05for Y was terrifically cogent.

1:01:07You know, it was like, yeah, that's sort of like unreadable.

1:01:11And it'd be a lot easier if you just set X plus equals one,

1:01:16so that you know it's adding one to it.

1:01:18- So there's the nuance of post decrement and pre decrement

1:01:22where you can have plus plus X versus X plus plus,

1:01:25which means different things

1:01:25in a lot of different languages, including C.

1:01:27Python, by the way, doesn't have plus plus or minus minus.

1:01:30And this is a great example of a language feature

1:01:34that they're changing based on a proposal for essentially cultural reasons, cultural and like human factors reasons.

1:01:42Not technical, not like performance or interoperability with Objective-C, or the ability to do something that you previously couldn't do.

1:01:51This is purely, it's user interface for programming languages essentially.

1:01:55Does this construct cause more problems than it solves?

1:02:01How much longer is plus equals one versus plus plus?

1:02:04Pre and post, it's really easy to get rid of that because that is very confusing.

1:02:08But, you're like, well, plus plus and minus minus are just, you know, so common, as you noted,

1:02:14in so many other languages, wouldn't we keep that just because it's an idiom that people are familiar with?

1:02:18And then the debate, if you can look through this in the manual, it's just like, well,

1:02:21in what context do you find yourself wanting to do that?

1:02:24Well, when I do a for loop and I say, you know, i equals zero, i less than whatever, i plus plus,

1:02:28And then the Swift answer is, well, we don't want people doing those kind of loops.

1:02:32We want to have a way to iterate over collections more naturally.

1:02:35So if we say you don't have to do a classic style for loop,

1:02:38when do you think you're going to use the plus plus?

1:02:42You know, and so that's how this debate goes.

1:02:44And this is the level they're talking about.

1:02:46That's why I say this is the little baby that can barely sit up at this point,

1:02:49because they're still considering fundamental things

1:02:51like how many fingers should this baby have, right?

1:02:54And, you know, is it going to be a biped, right?

1:02:56Or should it have fur or not?

1:02:57Like, that's the level they're debating at this point,

1:03:01and I think it's wonderful because the worst thing in the world

1:03:04that can happen is for the very early decisions made

1:03:07by a very small group of people not exposed to the wider world

1:03:10to become cemented and become unchangeable and to say,

1:03:14"This is it, and we can't change this because it's too late

1:03:16because too many people are programming it."

1:03:18Unless you get everything perfect on your first try,

1:03:20which you never ever will,

1:03:22all you're doing is like baking in the warts, you know?

1:03:24It's nice for the language to have time to grow and change and make mistakes and learn from them and become a different language

1:03:31Eventually than it was this year or last year. Yeah

1:03:34um

1:03:36to take another step back just just in a little uh,

1:03:39Glossary as we go for non-programmers the abi the binary

1:03:44Um apple, what is it? What does abi even stand for application binary binary?

1:03:48right

1:03:50that is effectively so

1:03:54Source 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.

1:04:02So the .app, the little actual executable inside the .app bundle, that's the binary.

1:04:08Or if it's a framework or a library, it's the compiled code that the machine reads natively.

1:04:13And 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.

1:04:24probably, and iOS 10.

1:04:29From that point forward, that binary interface is going to be compatible with future versions,

1:04:37with Swift 4, Swift 5, Swift 6 going forward.

1:04:40And like you said, there's high stakes to commit to that.

1:04:44Yeah, and it's most important for someone like Apple who makes a bunch of libraries that they ship with their machines,

1:04:50and your binary needs to know how to call into those libraries.

1:04:53How to find the functions and how to call them,

1:04:56how to present the arguments of those functions,

1:04:59expect where to get the return value from,

1:05:01all those little details that right now have been in flux.

1:05:06And they have to nail them down so that you'll ship your binary,

1:05:10they'll ship their libraries,

1:05:11and then they'll come up with a new version of the OS.

1:05:13And if you don't revise your application, you want it to still work.

1:05:16You don't have to recompile it every time that, you know.

1:05:18If they change the ABI,

1:05:19it would mean that people would have to recompile

1:05:21their stuff.

1:05:22And like I said, historically speaking,

1:05:23Apple has not done that on iOS

1:05:24and has rarely done it on iOS 10.

1:05:26And 32 to 64 bit transitions are a great time

1:05:29to require that because you're like,

1:05:30well, your 32 bit application will keep working,

1:05:32but eventually we're not even gonna support,

1:05:34you know, 32 bit max anymore.

1:05:36So we're just gonna be 64 bit from now on

1:05:38and your application will just age out of the ecosystem

1:05:41if you don't update it.

1:05:42And if you do update it, hey, guess what?

1:05:43You gotta recompile anyway, so no big deal.

1:05:45- What was the gist of what Craig was talking about there

1:05:47with the, it was something about when I was asking

1:05:50where they're using Swift internally,

1:05:52and one of the things that they,

1:05:54where it's holding them up,

1:05:55and they can't just switch to Swift,

1:05:57is that they need to,

1:05:58they still need to support 32-bit on Mac OS X.

1:06:02- Yeah, I couldn't tell whether that was just

1:06:06a sly allusion to the fact that 32-bit support

1:06:09is going away everywhere, that it hasn't, you know,

1:06:12any remaining holdouts to 32-bit support

1:06:14will be disappearing,

1:06:15and they've been doing that over the years,

1:06:16just going 64-bit everywhere they possibly can.

1:06:19It's just where they can stop supporting entirely.

1:06:21The other option is there's no reason

1:06:23they can't make Swift work with the 32-bit things.

1:06:25- Right, right now Swift is 64-bit only though.

1:06:27Is that correct? - Yeah, I mean,

1:06:29as far as I know, yeah.

1:06:30And there's no reason they couldn't make it work

1:06:32with 32-bit, like, you know, sure they could,

1:06:35but is it worth it?

1:06:35So it's just a question of are they just shutting that door

1:06:39and when is it safe for them to shut that door?

1:06:42And in terms of backward compatibility even,

1:06:44like all, you know, the iOS device is going 64-bit,

1:06:47you can still run 32-bit apps on that,

1:06:48but you don't wanna have both 32-bit and 64-bit apps

1:06:51running on your device at the same time,

1:06:52because then you've gotta load two versions

1:06:54of all the libraries into memory and everything.

1:06:55So there are lots of good reasons to just forget about 32,

1:06:58and like I said, just let it age out of the ecosystem.

1:07:00That's what I would imagine Apple would do,

1:07:03but he's talking about the past

1:07:05in terms of what was holding people back.

1:07:07- Here's where it would really help if we had a chat room,

1:07:10but I, 'cause the question has just popped into my head now,

1:07:13and I therefore did not do any research before the show,

1:07:16is, and I'm guessing this is true,

1:07:18I'm guessing watchOS is 64-bit only,

1:07:20and tvOS almost certainly is 64-bit only.

1:07:23There's absolutely no reason why tvOS

1:07:26would have 32-bit support,

1:07:28since the first device that tvOS runs on

1:07:30is a 64-bit device.

1:07:32So on tvOS, and I'm guessing watchOS,

1:07:35it's probably possible to go Swift,

1:07:38you know, use Swift for the frameworks and libraries

1:07:41in the operating system.

1:07:42I 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

1:07:48No, Tuesday a 8 and the first 64-bit was a 7. Yeah

1:07:53Yeah, like I like I said

1:07:57I would imagine the way forward is to travel not to waste its time on 32-bit

1:08:02But who knows like it depends on which?

1:08:04roadmap

1:08:04like if you graph those things out and say when can we finally drop 32-bit support both practically speaking and like politically speaking not

1:08:11annoying our partners or whatever

1:08:13Who made like 32-bit games for iOS and don't want to like rebuild them for 64? When can we do that?

1:08:18When is it safe?

1:08:18And then the other question is when do we want to really start ramping up on Swift?

1:08:22Now Swift needs to ramp up before 32-bit goes away

1:08:25Maybe you have to put in the work to do a 32-bit support

1:08:29But it totally seems like the Apple move to just be like Swift is going to hasten the demise of anything

1:08:34supporting 64-bit

1:08:36Yeah, it just seems to me that anything new from when like at least from when the a7 what was that the 5s shipped

1:08:43Yeah from that point forward. It just seems like anything that doesn't have legacy support is 64-bit only

1:08:48So, you know from both from new platform perspective like watch and TV to Swift itself that you know

1:08:56If it's a new language that came out in

1:08:582014 why in the world would it have 32-bit support? It's you know

1:09:05Anchored to the past. Yeah, and the same thing for new frameworks of their writing new frameworks using Swift Swift only frameworks Swift native frameworks

1:09:12How 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

1:09:19It's just it's been Swift from day one. It's a brand new library. Maybe it's a big new library

1:09:22That's gonna be a tentpole feature of a future WOEDC and they're gonna tell people how to use it

1:09:27If it's Swift only and Swift doesn't do 32 for 32-bit

1:09:32No 32-bit app can use this thing unless they're again unless they're gonna

1:09:35Bend over backwards to do some crazy way for the you know, the libraries to bridge from 32 to 64

1:09:41But yeah

1:09:42I just think it's all 64

1:09:44Going forward and and what he was giving you a glimpse in his things that Apple had already gone through

1:09:48Right, like why aren't it why isn't everybody using so well Swift is really young Swift doesn't support 32-bit

1:09:53These are all reasons that teams that inside Apple that may be interested in Swift

1:09:57Couldn't use it because it just wasn't practically doesn't wasn't practical at that point

1:10:01but it becomes more practical every day.

1:10:03- I really, I thought one of the most astute things he said

1:10:07was, here I'm looking at my transcript here.

1:10:09I mean, people here are idealistic yet really pragmatic.

1:10:13And I think you see that as an Apple characteristic

1:10:15in many, many elements of what we do.

1:10:17And I really do think that.

1:10:19I think that it's almost idealistic yet really pragmatic,

1:10:24gets to the heart of what I like best about Apple,

1:10:30you know, in the long run and overall.

1:10:32And I feel like that really exemplifies it in terms of,

1:10:36sure, we're really excited about Swift

1:10:37and it'd be fun to be writing more,

1:10:38but we've got to write an awful lot of new stuff

1:10:41still in Objective-C for these very, very pragmatic reasons.

1:10:44- Yeah, and this is the overarching, like,

1:10:47you may be excited about Swift,

1:10:48but there's sort of a company cultural imperative

1:10:53to, for example, not break binary compatibility

1:10:56without a good reason, because it's bad for the platform,

1:10:59and if there's any possible way you can avoid it, like it's bad for the ecosystem, it makes developers angry

1:11:06and you only get a certain number of those, and you don't want to like cash them in just on a whim, right?

1:11:14so even though a lot of people may be very excited about using this new technology

1:11:18if there's an overriding concern, you know, larger than your little project, larger than your little feature or your application

1:11:24or whatever it is you're doing inside Apple and the Dictate is

1:11:27you 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

1:11:34until a big company-wide decision happens at a level way above your pay grade, and only then will it be okay.

1:11:41So like, the idealistic and pragmatic, as an organization, yes, but like, within the organization I imagine is distributed, where

1:11:47the lower you go down the org chart, the more people are inclined to be idealistic and want to do something crazy and new,

1:11:52and the higher you go in the org chart, the more people have to be pragmatic and say "there's a bigger picture here",

1:11:56And even though you may be excited to use it

1:11:57on your little project, we decided at the top

1:12:01when it's time to do these big moves

1:12:02that are gonna impact, again, literally thousands

1:12:05of developers and thousands, is it millions of apps?

1:12:07I don't even wanna think about it.

1:12:09- It might be, I don't even know.

1:12:11It's kinda bizarre to think about a million apps,

1:12:13but it's possible.

1:12:14One of the areas I wanted to get to,

1:12:16and when I found out, it was nice,

1:12:18one of the things that was nice about this interview

1:12:20was that I knew about it at least a week in advance.

1:12:24It was actually a little bit more than a week in advance

1:12:25by the time we found a date that worked for both of us.

1:12:29And so I felt like I had plenty of time to prepare,

1:12:33which was great.

1:12:34And so one of the ways that I prepared

1:12:36it was I went to people who know a lot more

1:12:38about programming than I do.

1:12:40And it's specifically a lot more about programming

1:12:41for Apple platforms than I do.

1:12:43And tried to get some questions from them.

1:12:47And one of the things that I asked about,

1:12:49but it's, and I knew this,

1:12:51but I was interested in hearing it from developer friends

1:12:53is this whole angle that Swift is not just Objective-C with a modern friendly syntax.

1:13:00It is a very different language with very different primary priorities.

1:13:07And there are certainly some things, it certainly looks better, and it certainly is a much more

1:13:13approachable syntax. And I feel like at a fundamental level, that's basically why there's

1:13:17there's so much excitement around Swift.

1:13:18Is there's a lot of people who just took one look at

1:13:23or take one look at Objective-C

1:13:24and they're like, I don't get it.

1:13:26And then they take a look at Swift and they're like, wow,

1:13:28that looks like the language I already know,

1:13:30whether it's JavaScript or C or I don't know,

1:13:35even Java to some degree, maybe.

1:13:38It's a lot more similar to those style languages

1:13:40than it is to Objective-C.

1:13:41But there are things about Objective-C

1:13:44and the way that the next now Coco and Coco Touch frameworks,

1:13:49all these things that have derived from the next origins,

1:13:54the way that these frameworks take advantage

1:13:56of the dynamic aspects of Objective-C

1:13:58that people who are really good at it,

1:13:59people who've been writing for these frameworks

1:14:02for a long time love, and Swift sort of

1:14:05isn't really what they were looking for

1:14:07in a next generation language.

1:14:09And I thought his answer to that surprised me, I thought.

1:14:13I mean, it was on message in terms of like,

1:14:17the dynamic things that people wanted to do

1:14:20with Objective-C will eventually be possible with Swift

1:14:22if they're not now and that this is an ongoing thing

1:14:24and they're working on it and yada yada

1:14:25and essentially all the dynamism,

1:14:28which is a word that you like to use,

1:14:29all the dynamism that Apple thinks is important

1:14:32will be available in Swift without the downsides

1:14:34that he also went over extensively,

1:14:36that you've got to pay for that all the time.

1:14:38- Yeah, I thought that was interesting.

1:14:39And I thought it was, I'm not sure,

1:14:43I 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

1:14:48Obvious so obvious from his answer that they have

1:14:51discussed this internally

1:14:53extensively

1:14:54well, 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

1:15:02become come more into the public consciousness

1:15:04Mostly because more people are using it more people are aware that it even exists as excited as we all were whatever was two years

1:15:09to go to see Swift at

1:15:11CWDC

1:15:13It's not really a thing for people

1:15:15Broadly speaking until you know a certain point like can actually use this to make iOS and Mac apps

1:15:21Okay, then it becomes one level of thing and then the open source is the next level is like hey

1:15:24this is maybe of interest to the entire world of programmers right and so now a lot of people are looking at Swift and

1:15:31They'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

1:15:38kind of a sideshow because

1:15:40The 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,

1:15:48like a flavor, like you can tell, does this feel like a modern thing or does this feel old and weird?

1:15:54Does it look like, you mentioned, like does it look like JavaScript? Does it look like whatever language the kids are learning these days, right?

1:15:59But 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.

1:16:07But then the other aspect of it in terms of the language itself is how many things do I have to worry about?

1:16:12And Objective-C asks developers to worry about things, used to before Arc, asked them to worry about memory management,

1:16:19where they had to call "retain and release".

1:16:21And to a modern young programmer, that just seems barbaric, because like I said, it'd be coming from, you know...

1:16:27I guess JavaScript is a great example, because a lot of people know web stuff and JavaScript is everywhere,

1:16:33but even things like C# or Java on the server,

1:16:36it just seems barbaric to have to deal with that,

1:16:38or to have direct access to memory with pointers.

1:16:40And then Arc made that a little bit better,

1:16:42but still, what are all these asterisks all over the place?

1:16:44That doesn't really make any sense.

1:16:46If you don't know C,

1:16:47I think a surprising number of developers now

1:16:51find that if you're a GUI application developer,

1:16:55the reason is for you to know C

1:16:57to figure out how to make a sheet come up

1:16:59when someone pushes the button.

1:17:01There's not a lot of those,

1:17:02and it just seems like why do I have to worry about all this crap?

1:17:04So, from the developer's perspective,

1:17:06Swift is exciting because it's like, I want to make an iOS app

1:17:10because iOS apps are cool and I like iPhones and all this other stuff,

1:17:14but it's kind of annoying that I got to worry about all this stuff.

1:17:16And Swift says, now you don't have to worry about that stuff anymore.

1:17:19And the syntax looks nicer too.

1:17:21And so that is the public face of Swift and the excitement

1:17:24over finally a more modern language,

1:17:27both in terms of appearance and aesthetics,

1:17:29but also in terms of how many things do I have to be concerned with when writing a program

1:17:34that seemed to me to be beneath the concern of me as like a programmer of a GUI app or

1:17:41whatever.

1:17:42Yeah, and I think a lot of that is historical in terms of when languages, C is the primary

1:17:47example because so much has, you know, if you draw the family tree of programming languages,

1:17:52there's an awful lot of languages that derive from C. And in that era, you know, I guess

1:17:58what late sixties or early seventies when C was invented?

1:18:01I, I, I pretty sure the first edition of the KNR was like 1971.

1:18:08So late sixties, early seventies.

1:18:10The computers were so incredibly slow. I mean, just,

1:18:15just mind bogglingly slow by our standards today. You know, it's, you know,

1:18:20like the, the whole, you know,

1:18:22the entire Apollo mission was done with less computing power than your Apple

1:18:25watch has. I mean, it's just ridiculous. And so you needed to squeeze every single cycle

1:18:30out of the CPU that you could. And that meant being, as a programmer, writing at an incredibly

1:18:35low level where you're managing all the memory by hand. Because if it works, then it's incredibly

1:18:41efficient. And then if it doesn't work, you just have to fix it. You have to fix the bugs.

1:18:46But the retain release stuff is a perfect example of that. And I know when I first started

1:18:53trying to go away from it. And it was funny because it's an interesting example of Apple,

1:18:58you know, going down an alley and then deciding against it, which was at some point in the last

1:19:03decade, they introduced garbage collection to cocoa. Pretty sure it was like in the early years

1:19:10of Bertrand. It was definitely after Avi Tevainian had left. And I know there was a lot of reluctance

1:19:19from people who got it and people who didn't have, who at least didn't think they had problems dealing

1:19:24with the manual retain release memory management, didn't like garbage collection at all. And it

1:19:29turns out Apple didn't like it either. And they eventually got rid of it.

1:19:32**Matt Stauffer:** Yeah. All the, all the people who thought,

1:19:34oh, I'd retain release is fine. I don't need this garbage collection. Like one of the big reasons

1:19:39to even consider garbage collection is just, like I said, you know, objectivity started to look old

1:19:45and crappy. Why do I have to worry so much about memory when programming for this platform? It makes

1:19:49the platform feel older and more primitive and less capable. I can program for Android

1:19:54or for Windows or for whatever and I don't have to worry about this and like really I

1:19:58just want to make my app right? I want to decide I want to write the code that's going

1:20:02to make my app do the things my app does. I don't care about memory like can't you just

1:20:05take care of that for me? And so the only reason they would go down the garbage collection

1:20:10path is like well here's one way we can make people not have to worry about retain release

1:20:13and it was like well you put in the retains and releases but they won't do anything or

1:20:17or whatever, and garbage collection for a variety of reasons was difficult to go with

1:20:22Objective-C in particular because it is a superset of C, and because it's very difficult

1:20:27for a garbage collector to know enough information about the C-ish parts of your program, which

1:20:31may be right in the Objective-C or may be in data that's coming out of C libraries,

1:20:36to know enough to do the right thing with that stuff, and so it was kind of not technically

1:20:41infeasible but like never a completely closed solution where you could be like, "I feel

1:20:45like 100% of the time we will do the right thing here.

1:20:48And, you know, and eventually, like, they launched it, it was out there,

1:20:53you could use it, they dogfooded it on some teams,

1:20:55and then eventually pulled it back, right?

1:20:57And this is what I was getting at before with, like,

1:20:59things that have been true about Swift in the beginning

1:21:00that are just now going to be coming into the public eye.

1:21:03The other aspect of Swift, setting aside both the syntax

1:21:06and the modernization in terms of,

1:21:08look at this language that does more modern things

1:21:10that lets the developers not worry about the things

1:21:12they're not worried about,

1:21:13and express themselves in a more compact, elegant form,

1:21:16just solving the problem they want to solve,

1:21:19you mentioned it looked more like pseudocode,

1:21:20that's because you're not, like in pseudocode,

1:21:22you're not concerned with the little details,

1:21:24you're just like, here's the algorithm, here's roughly the steps,

1:21:27I don't want to be concerned about the details, right?

1:21:28It does all that, but the other thing that's big about Swift,

1:21:32and this is an interesting contrast to what you just mentioned about, like,

1:21:34C being made in the day when computers were slow,

1:21:36and it was discussed by Craig as well when he was talking about

1:21:40the just-in-time compilers, the JIT and everything,

1:21:42It is essentially a bet against virtual machines with cycle counting garbage collectors.

1:21:50It is a bet against the things that Java does and C# and Android, which is Dalvik, the virtual machine,

1:21:57or all the JavaScript engines that run all our web browsers.

1:22:01JavaScript is in a tough spot because it's like they're stuck finding a way to make JavaScript fast,

1:22:07because it's everywhere in web browsers and no one really controls that platform.

1:22:10And so that's why we've had to put all this brainpower

1:22:12into making JavaScript fast.

1:22:14But garbage collectors was going more in that direction.

1:22:18But as you mentioned in the description of Swift,

1:22:21it's supposed to span from an operating system up

1:22:23to a scripting system.

1:22:25And once you get down to low level,

1:22:27you can't have a garbage collector doing

1:22:30unpredictable things at unpredictable times.

1:22:33And even if it's predictable, you can't have the garbage

1:22:35collector take these pauses to walk your trees of things

1:22:38to find out what needs to be collected.

1:22:40Even, you know, there's a lot of great technology

1:22:42in the Java world of making garbage collectors

1:22:44that don't induce pauses or are more predictable,

1:22:47but nothing is as predictable as something

1:22:50that is entirely deterministic like Arc,

1:22:52something that is determined at compile time

1:22:55where they'll put in, essentially put in

1:22:57the retains and releases for you.

1:22:59And there's debate as to whether theoretically,

1:23:02can garbage collection approach the reliability

1:23:06and performance characteristics needed

1:23:07for the kernel of an operating system, I think Microsoft just had various projects to try to make

1:23:11a sort of memory managed operating system or whatever,

1:23:13but Swift is a bet heavily in the other direction, and

1:23:16this bet was made when Arc came out for Objective-C,

1:23:19not so much it was Swift, but doubling down with Swift is that

1:23:23to make a language that fulfills the goal set out for Swift,

1:23:26we have to not have this virtual machine

1:23:30and garbage collection that does all the stuff, we have to basically

1:23:34nail things down more, figure things out at compile time, make everything about it deterministic,

1:23:40only then will it become possible to match both the performance and the sort of the predictability

1:23:47of C code so you can write your operating system kernel, your audio subsystem, or I don't know,

1:23:52your real-time operating system for your car, we'll see about that, but you can write that type of

1:23:56code without wondering when, you know, when the garbage collector is going to pause you for a

1:24:02for a second to walk some tree or when something's going to get collected or how much memory

1:24:06is going to be available at any given time based on when the collector ran, based on

1:24:09what code ran before you called into this code.

1:24:11All right, even when you're running on a modern computer that is very fast and maybe that

1:24:15pause isn't even a full second, maybe it's just, you know, 200 milliseconds, but a fraction

1:24:22of a second. In certain contexts, that pause just kills the user experience. I mean, and

1:24:30That's not to badmouth Android, but it's--

1:24:32I mean, I've heard from a lot of people

1:24:34that dealing with a garbage collected system

1:24:36is one of the reasons why Android spent years trying

1:24:39to get to what iOS users thought was a smooth user interface

1:24:43right from the get-go.

1:24:44Because the garbage collector would run while you're

1:24:46scrolling a list or something like that,

1:24:47and you'd get these little stutters or pauses.

1:24:49And they were fractions of a second,

1:24:51not like a whole second long pause,

1:24:53but just a little fraction of a second.

1:24:56And in a real-time situation, if it's

1:24:58kind of camera-based thing running on a car or something like that you really don't want to have

1:25:02an unpredictable even fifth of a second pause and they have pause-free collectors but the whole

1:25:08point is if you give up pausing essentially what you're either doing is having in the degenerate

1:25:12case having something like reference counting happening in a small case like the you know

1:25:16generational collectors and and the long-lived versus short-lived objects like you can you can

1:25:20avoid pausing but if you avoid pausing you basically build up garbage uh and it this is

1:25:25This was also mentioned by Craig, the idea that they can run...

1:25:27I don't know if it's kind of an excuse of why they put a little RAM in their iOS devices,

1:25:31but that they can fit their stack,

1:25:35they can fit their operating system and their framework and their libraries

1:25:37in a smaller memory footprint, what did they say?

1:25:40Probably, reading from his thing here,

1:25:43"with different memory footprints than some of our competitors

1:25:47whose languages don't have this characteristic."

1:25:49Basically, what he's saying is, Android, they have to ship more RAM in their devices

1:25:52because they build up too much garbage,

1:25:53and that's basically the choice you have.

1:25:55Either something has to decide

1:25:57which memory is available for use,

1:26:00which memory are we done with

1:26:01and we can use again for something else,

1:26:02or which memory is still in use.

1:26:04And Arc does that by,

1:26:06Arc, which underlies Objective-C and Swift,

1:26:09does that by, as it runs, it says,

1:26:11I'm using this, now it's available,

1:26:12now I'm using this, now it's available,

1:26:13now I'm using, like, in the code path,

1:26:15along with the executing code.

1:26:17And garbage collection is, I just plow bravely forward,

1:26:19and something else, the garbage collector,

1:26:21occasionally figures out what is available for everybody else and what isn't.

1:26:24Hopefully you can do that without disturbing the other guy

1:26:26who's plowing bravely forward, but sometimes you have to stop him from going,

1:26:29and if you want to have a pause-free one that doesn't stop the ongoing code

1:26:33to figure out what's available, it has to necessarily leave some stuff on the floor

1:26:37and say, "I'm not sure if this isn't used yet.

1:26:40I can't find out without stopping the guy that's running over there,

1:26:43so I'm just going to leave it off the side."

1:26:45What it boils down to is you never know based on, you know,

1:26:49you've got these two things, the collector and the program.

1:26:52You never know at any given point,

1:26:53when I'm at this point in the code,

1:26:55how much memory is gonna be available in this process?

1:26:58Like, well, if the collector ran here,

1:26:59then maybe it'll be here, but if the collector is behind,

1:27:01'cause it's running on a different core,

1:27:02then maybe this much will be available, whatever.

1:27:04And you just end up with a little bit of extra garbage,

1:27:06and the overhead of the virtual machine itself,

1:27:08and all that stuff.

1:27:08This is even before you get into like executing byte code,

1:27:11like Java does versus native and all that other stuff.

1:27:14Swift and Arc and Objective-C are a bet heavily against

1:27:17the virtual machines, like Java virtual machines,

1:27:19C# Virtual Machine, and certainly anything like the JIT craziness that we've had to do

1:27:23for JavaScript to make that fast.

1:27:24Yeah, garbage collection, the analogy works, and so I can see why that stuck as the terminology.

1:27:32But you know, like any analogy, it breaks down at a certain level. And in the real world,

1:27:37the garbage that you keep, like here in Philadelphia, we get garbage collected once a week. The

1:27:45you know, the fact that by Tuesday we've got six days of garbage in the house isn't a problem

1:27:50because we don't generate that much garbage and it just sits tied up in bags in our garage.

1:27:54Whereas on a computing device, uncollected garbage is taking memory, and memory is a precious

1:28:03resource. It's almost like you're in a studio apartment, you know, and you have uncollected garbage.

1:28:07Yeah, and the thing is, again, good garbage collectors take advantage of this to try to

1:28:13to be smart about like what if I'm in a tight loop and inside this loop I do something with

1:28:17some amount of memory but on the next iteration of the loop I'm totally done with it. I don't

1:28:21need a new set of memory I can just keep reusing that same region of memory over and over again

1:28:25in this tight loop. I don't need to allocate and get rid of it like I just need to know

1:28:29say 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

1:28:34like say you're just creating a new object in loop every time a very naive old style

1:28:37garbage collector like oh you're making a new object you need some memory for that object

1:28:41I mean, we've got the memory for that object.

1:28:42Okay, here you go, I gave you the memory for your object.

1:28:43You make it, and you go to the next iteration of loop,

1:28:45and the garbage collector hasn't run yet,

1:28:46and it's like, oh, you're making a new object.

1:28:48You need some memory for that object,

1:28:49and a programmer manually managing memory

1:28:52would never allocate new memory.

1:28:53It's like, I've got the memory from the old object.

1:28:55I'm done with it.

1:28:56I'm not using it anymore.

1:28:56Just take this, right?

1:28:58And so--

1:28:58- A good programmer might not.

1:29:00(laughing)

1:29:01I think we've all run into code

1:29:02that was written like that, though.

1:29:04- But this is the problem

1:29:04with the really primitive garbage collectors

1:29:06back in the day, and the garbage collectors became smarter.

1:29:08It's like, oh, well, for a smarter garbage collector,

1:29:11we can divide the world up into objects that are short-lived

1:29:13and objects that hang around for a long time.

1:29:15And let's make these different pools

1:29:16about these short-lived objects

1:29:18and the ones that hang around.

1:29:19And let's try to, you know,

1:29:20what you're trying to do is get to the point

1:29:22where if you gave this to, you know,

1:29:25if you gave this to an assembly language programming,

1:29:26you showed the assembly language,

1:29:28they wouldn't look at it and go,

1:29:29this is the stupidest code I've ever seen in my life.

1:29:31Like, it's just incredibly wasteful of resources.

1:29:33You know, you want them to look at it and go,

1:29:35oh, oh yeah, no, that's pretty much as efficiently

1:29:37you could have written it. Like you're not allocating tons of memory and then leaving it

1:29:43allocated and not reusing it because you don't know that you can look at it and say well here

1:29:47I am I'm looking at the assembly code I can tell this memory is never accessed again why are you

1:29:51keeping it around? Well the garbage collector doesn't know that yet or whatever. So this is

1:29:55this is a kind of a philosophical debate can garbage collection ever be as efficient and as

1:30:01as predictable as manual memory management.

1:30:04And Arc and what underlies Swift and Objective-C with Arc

1:30:09is trying to say we're going to try to automate the part

1:30:12where we say retain this, do stuff with it, release it,

1:30:15retain this, do stuff with it, release it,

1:30:17so that the developer doesn't have to write it,

1:30:19but so that the compiler writes it,

1:30:20so that if we were to look at the assembly code,

1:30:22we can see a predictable pattern.

1:30:24Because there is some overhead to doing all of those,

1:30:27you know, bumping up the retain counts and releasing,

1:30:30Like that's in your running code.

1:30:32It's the code that the garbage collector code

1:30:33doesn't need to do.

1:30:34It doesn't need to increment retain counts

1:30:35and decrement retain counts.

1:30:36It can just run

1:30:37because it knows the garbage collector

1:30:38is gonna take care of that.

1:30:39And so the bet with Arc and Swift is

1:30:42it is more efficient and predictable to do that work in line

1:30:46because then we know exactly when that work will be done

1:30:48and we can be smarter about it.

1:30:50Like we can, in the binary that we generate,

1:30:54look at it and say, are we being smart

1:30:55or are we being stupid here?

1:30:56Versus if you're running the garbage collector,

1:30:58you're like, well, now there's two things in play here.

1:31:00there's the program and then there's the garbage collector

1:31:02and the program looks okay

1:31:03in terms of what it's doing semantically,

1:31:05but how will the garbage collector interact with this?

1:31:08How would it deal with the memory

1:31:10and know when to make it available for reuse or whatever?

1:31:13- I don't know if I'll be able to find it.

1:31:15I did, I remember reading on, what's that website, Quora.

1:31:20I remember reading a Quora page where somebody asked

1:31:23why do Android devices tend to ship

1:31:25with so much more RAM than iOS devices?

1:31:27And like the top voted answer was, I don't know who wrote it,

1:31:31but it was more or less, you know,

1:31:32that because Android is garbage collected,

1:31:35it's effectively Java.

1:31:36It's Java running in Google's handmade rip off of Java.

1:31:41There's no way you can convince everybody of this.

1:31:51And I do think there is a factor in this

1:31:53where Apple just wants to use less RAM because it's cheaper

1:31:56and they save money and this is one of the ways

1:31:58that they get to 38, 39% profit margins.

1:32:03But there really is a factor there

1:32:06that from an effective standpoint,

1:32:08like an Android device that ships with three gigs of RAM

1:32:12has about as much effective RAM for you as the user

1:32:15using the device as an iOS device with one gigabyte of RAM.

1:32:18- Yeah, and this is, like I said,

1:32:19this is before we even considered the idea of bytecode,

1:32:22although Apple's going that direction

1:32:23with its bitcode thing, but not quite.

1:32:24But anyway, the idea in the Java virtual machine, or any kind of virtual machine that you produce is

1:32:31binary code for the virtual machine.

1:32:34And the virtual machine is this hypothetical thing that is not your actual CPU, and then

1:32:39the virtual machine itself will execute that code natively on the CPU.

1:32:44Like, so the whole idea with Java is like, "Oh, you can make this one Java bytecode application

1:32:48and send it to an x86 device, and a PowerPC device, and an alpha device,

1:32:52and this same quote-unquote binary because it's bytecode will run on all of them because they all have Java virtual machines

1:32:57and those Java vulture machines will execute natively on the individual platforms

1:33:01but you just have one binary that was the write once run anywhere type of thing

1:33:05for I'm not sure what the Dalvik design is but I think they have I think they still have bytecode

1:33:12but either way like the idea of a virtual machine is you have a

1:33:15you don't have a real target architecture you have a virtual machine and that's what you're you're coded to

1:33:20and then you have to eventually get to native code.

1:33:22So it's just more stuff between you

1:33:24and seeing how this is gonna actually execute

1:33:26on your actual hardware.

1:33:27- Yeah, and I do think, I think that's a keen observation

1:33:30that this whole segment of the show,

1:33:31that Swift is a bet that there is something better,

1:33:36there's a better way to,

1:33:38better way to get all the advantages

1:33:39of those garbage collected virtual machines

1:33:42and avoid all of the overhead.

1:33:45- Yeah, and the meta thing and that bet,

1:33:47like again, theoretically in computer science,

1:33:49you can have all these debates about,

1:33:50is it theoretically possible to have a pause-free garbage

1:33:52collector that has better performance?

1:33:53Because like I said, there are advantages to the garbage

1:33:55collector because it doesn't have to have that inline code

1:33:57that messes with the memory management.

1:33:59In the actual execution of the program,

1:34:01it can just go forward as fast as it can.

1:34:03And if the garbage collector could do its job and keep up

1:34:06with it and not disturb it, that would be great.

1:34:08But the other part of this is the idea that computing power--

1:34:16not just CPU power or whatever, but if you

1:34:18if you were to graph anything having to do with computing power in terms of

1:34:21How fast can we get to memory? How much memory do we have?

1:34:24What is the single threaded integer performance of a CPU? I think I saw a chart about like

1:34:27Single threaded integer performance of intel CPUs over the past 10 years or whatever

1:34:32And the curve is not a hockey stick going up anymore like in in the in our youth in the heyday of

1:34:38CPU architectures every year there'd be a new chip and it would be like twice as fast and and you know

1:34:42Your code would just get magically fast. You didn't have to recompile it

1:34:45You didn't have to use any new technology like that the clock speed would double and the you know the the number of

1:34:51Execution units would double and just everything was was roses every year. I

1:34:55Remember and this is as late as the 90s

1:34:58I had an internship at a Windows software development place and I was writing you know

1:35:04Dawson Windows code and everybody had a 486 and

1:35:08The Pentiums were just coming out. So I don't know what year this would have been probably around 95

1:35:14Maybe 94 somewhere around there and the one guy got one first one of the engineers got one first and it was so ridiculously

1:35:22Faster than everybody else and it gave us good kit

1:35:24I mean, you know usually programmers get good good devices because they really you know

1:35:29You even if you're like a penny-pinching manager

1:35:31If it takes a long time for the code to compile getting your engineers machines that compile code faster is worth it

1:35:37This guy's machine was so much faster that we would people would wait

1:35:41until he was like away from his desk and then use his computer to compile stuff because it was took less time than waiting for

1:35:47It to compile at your own desk. Yeah, I remember just like seeing doom running from like

1:35:51First time I saw doom run on the pendium. This is before the edge of video cards. This is all in the CPU

1:35:56It was just magic how much faster it was you just and it was the same program

1:36:00Like it was the same program and just for free your everything you did got faster, right?

1:36:04So when we were in that part of the hockey stick curve

1:36:06like the graph I saw looked like it had that part of the hockey stick curve where it's like going up up up and

1:36:11Then it starts to level off and it becomes kind of like a mound. You know, we're going the slope is decreasing over time

1:36:16and

1:36:17If we were still on that hockey stick

1:36:19I think it's inevitable that VMS and any sort of higher abstraction thing would have won because it's like yeah

1:36:26it's a little bit slower and

1:36:28Yeah, 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

1:36:33and it doesn't matter, your concerns are pointless, they will be dwarfed by the inexorability of progress.

1:36:40And progress has slowed for two reasons.

1:36:42One, the move to mobile has pushed everybody back down that chart a little bit,

1:36:48and we kind of think we're back in the hockey stick era where it's like,

1:36:51"Oh, Apple's doubling their CPU speeds every day,"

1:36:53but all they did was they just got shoved back down the hockey stick,

1:36:56because these things are these tiny little CPUs with small batteries and thermal envelopes

1:37:03that don't allow for fans or anything like that.

1:37:05So we're kind of back in the olden days,

1:37:08but that means we're also back in performance.

1:37:10So on the iPhone CPUs, they used to be like dishwasher CPUs.

1:37:15Like, they were terrible.

1:37:16And they've been slowly catching up to,

1:37:19now like with the iPad Pro, it's like, this is a modern MacBook CPU,

1:37:22but not surpassing the desktop.

1:37:25- No. - Right?

1:37:26So everything is slower,

1:37:29and that's been a huge advantage for Apple,

1:37:32having a native platform like back in the day where everything was Objective-C, which is a C-based language,

1:37:37to be able to just get the iPhone 1 out the door and working.

1:37:40Like, that's why the BlackBerry people thought it was a fake demo, because it seemed impossible.

1:37:44Yeah, and then we see things like the watch where we're pushed back to, "Wow, this is really slow again."

1:37:51Yeah, and then the other aspect of this is Moore's Law.

1:37:54Moore's Law can't continue forever.

1:37:57the density of transistors on a CPU doubling every 18 months, well eventually you get down

1:38:04to like quarks and gluons. Like you can't, you know, having the size of things, the math starts

1:38:09to get really funky really fast and as far as we are aware you can't keep subdividing matter

1:38:14forever. Eventually you get down to fundamental particles and way before you get down to fundamental

1:38:18particles everything becomes screwy in terms of the laws of physics and quantum mechanics.

1:38:22So lithography sizes, like we continue to march forward,

1:38:26but there is an end in sight where you're gonna have

1:38:30to come up with a new technology, like quantum computing,

1:38:32or you know, like just, it's not as if this hockey stick

1:38:37can't go on forever.

1:38:38And so the bet with Swift is the era of time

1:38:41that we're in now where progress on computing power

1:38:45and performance has for both like practical reasons,

1:38:48you know, in terms of how much harder is it for Intel

1:38:51to make their top end CPUs faster every year,

1:38:53and how long does it take to get to the next process node

1:38:55for making feature sizes smaller in CPUs,

1:38:58and because of the move to mobile and wearable

1:39:00and who knows what else,

1:39:02that this is a good time to say,

1:39:05I don't think the hardware is gonna make it

1:39:08so that those virtual machines are better suited

1:39:12to Apple's needs than the solution

1:39:14that represented by Swift and Arc with Objective-C.

1:39:17And so let's say, you know,

1:39:20Swift is the language from the next 20 years, and in the next 20 years we feel like this is the best technical solution.

1:39:24Until quantum computers or whatever, this is what we're going with.

1:39:27And Apple is essentially begging the company on that.

1:39:30And 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,

1:39:39where it was very difficult for the competitors to catch up with them until the CPUs did start climbing up that hockey stick and said,

1:39:44Now we can support a Java virtual machine

1:39:47and have a responsive GUI,

1:39:49just put a little more RAM in there.

1:39:52- It occurs to me,

1:39:54and I don't want to spend a lot of time

1:39:55speculating about a car on this episode at least,

1:39:58but one of the things that makes me laugh

1:39:59about the car idea is that it's like the one team at Apple

1:40:04that's writing software that the computing part

1:40:07of the device doesn't have to really worry

1:40:12about battery life.

1:40:13I mean, the car itself obviously is going to have to worry about battery life tremendously,

1:40:17but the amount of the battery that goes towards propelling a multi-ton device is everything.

1:40:26And the little computer that lights up the dashboard and maybe does whatever else with

1:40:30the sensors and stuff is kind of insignificant.

1:40:33But it's really the exception to where things are going.

1:40:35The watch, to me, is the better example of where things are going, where the computing

1:40:42devices getting smaller and smaller. I mean, and you know, I don't know what the idea would

1:40:46be, but surely they're going to be making devices that make the watch look big, you

1:40:50know, in the years to come. And so they're never going to get out of the need, I don't

1:40:54think in the foreseeable future to have really efficient code that runs on really what everybody

1:41:04would consider to be a painfully slow processor because we keep the desire to keep making

1:41:09things smaller and smaller and have little fingernail sized things that that do clever stuff is

1:41:13inevitable

1:41:16Yeah, and really you have to view it kind of as like as epochs in history

1:41:19Like there was there was the part where you're growing up which was awesome where computers would get faster more powerful

1:41:24Just like everything about them would get better just year after year and it was amazing, right?

1:41:28And 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

1:41:34Memory you the size of a planet, right?

1:41:36But no, that's not how it works. We start reaching the limits of you know

1:41:39silicon wafer lithography and all the other and instruction level parallelism and all the other sort of

1:41:44very difficult problems that make it harder to make you know, or even just like heat dissipation with the the megahertz wars like

1:41:52You know, what are we using now? The three four gigahertz CPUs. They had three four six gigahertz CPUs a long time ago, too

1:41:58Why are we not using 700 gigahertz CPUs? Like we're bringing to the limits of the current way. We do computation

1:42:03and so

1:42:06We're kind of in it's not a dead period like we're making progress and we're doing interesting things

1:42:09And we're going the other direction saying well

1:42:11We're not making a lot of progress on the top end, but we can shrink these suckers down really small now

1:42:15Isn't that pretty awesome?

1:42:16You can have a smartphone or a smartwatch

1:42:17But there will have that

1:42:19Inevitably 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

1:42:24Or whatever whether we're all dead or not like there will be further progress

1:42:27It's not the end of progress

1:42:28but if you're Apple and you're trying to figure out how to make

1:42:33the development platform for right now and for the next 20 years you have to sort of bet like what is the best fit for

1:42:39this and it's you know Apple have the benefit of

1:42:41everyone else going first and going with virtual machines whether it be Java or C# or the common language runtime at Microsoft and

1:42:48seeing how JavaScript has worked out in the browser and they've essentially said

1:42:52Because of both mobile and the slowdown in the top-end performance increase

1:42:56We believe this is the best bet for the next 20 years or so because they saw everyone else go before them

1:43:02And so that that's where we are with this

1:43:04I don't think you know Swift is not if so if it's a language for the next hundred years it could be

1:43:08But 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

1:43:15Run on top of a virtual machine. It's just that's not the correct solution for Apple right now

1:43:19And that's not what they're doing. Yeah, all right

1:43:21Let me tell you about our next friend of the show and it's our good friends at wealth front

1:43:25These guys have been sponsoring a show the last few episodes. They are here's what they give you a low-cost automated

1:43:31investment service.

1:43:32It makes it super easy to invest your money the right way.

1:43:36You just put money into Wealthfront account,

1:43:38and then they manage the portfolio.

1:43:41They ask you a couple of questions about how risk

1:43:44averse you are, how aggressive you want to be.

1:43:48Because you can obviously invest in money

1:43:49that goes into the stock market.

1:43:51It could go down.

1:43:51It's not a bank account.

1:43:54So they ask you a couple of questions

1:43:56to see how comfortable you are with risk,

1:43:57and then they just take it from there, and that's it.

1:44:00They literally say whether you're just starting out,

1:44:03you can, I think you can open an account with just 500 bucks.

1:44:06If you wanna put millions of dollars in there,

1:44:08you can do it too.

1:44:09That seems crazy to me, but you know,

1:44:13really it scales all the way from, you know,

1:44:14you being $500 put in a market to millions of dollars,

1:44:18you can do it.

1:44:19Why would you use them

1:44:20instead of a traditional money manager?

1:44:22Basically what Wealthfront is,

1:44:23is an automated service that replaces a human money manager.

1:44:27The big reason to do it is that, number one,

1:44:30they're just putting money into index funds anyway,

1:44:32which is really a smart long-term strategy.

1:44:35If you read anything about the ways

1:44:37that people can actually invest for success in the long term,

1:44:41putting the money into index funds is the way to go.

1:44:43That's pretty much what Wealthfront does,

1:44:44but they balance it between different index funds

1:44:47based on monitoring systems all the time,

1:44:50monitoring the market all the time,

1:44:52and moving money around between different index funds

1:44:54to keep your risk at the right level.

1:44:57And the big thing is is that Wealthfront charges way lower fees than traditional money managers

1:45:041.0 1% is about the average but some of the some of the money managers out there charge up to 3% and

1:45:10That's of what you have under management

1:45:12So if you have you know ten thousand dollars under management

1:45:16They they take a fee of 3% of your money not like your profits, but your money that's in there

1:45:21Wealthfront's

1:45:23fee is just 0.25 percent and

1:45:27They only start charging that

1:45:30above

1:45:31$10,000 so if you

1:45:33Only, you know, once you get $10,000 in your account, that's when they start charging their

1:45:380.25

1:45:40Fee and if you use the code that I have here for you, they actually bump that up to

1:45:4515,000 and so if you have 15,000 and then one put one more dollar in there

1:45:51They charge the fee on that one dollar that's over fifteen thousand keep going from there

1:45:56Go to here's where you go to find out more wealth front comm slash the talk show

1:46:02and again

1:46:03You 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

1:46:09Worldfront do it put a little money in there see how it works

1:46:11And then when you see how it works and you like the results, that's when you put your quote unquote real money in

1:46:17So go to wealthfront.com slash the talk show

1:46:20You'll actually save money because you get that you get bumped up to fifteen thousand dollars before they even start charging you a nickel

1:46:26So go check them out. And here's the part where I have to try to stay out of prison for compliance purposes

1:46:32I have to tell you that wealthfront incorporated is an SEC registered investment advisor

1:46:37Brokerage services are offered through wealthfront brokerage corporation

1:46:42Member fin ra and si PC. This is not a solicitation to buy or sell securities investing in securities involves risks

1:46:51And there is the possibility of losing money past performance is no guarantee of future results

1:46:56Please visit wealthfront comm to read their full disclosure

1:47:00So far so good. Nobody from the SEC has gotten on me about this

1:47:04It's only a matter of time till they find you

1:47:10Anything else on Swift and and the Federighi interview?

1:47:14I hope they do more of those things and I think we're are we working our way down the ladder?

1:47:20I guess we kind of are like Schiller

1:47:22come to talk show and now

1:47:24Federighi and like we keep going down to like Chris Latner is on like open source

1:47:30Podcast talking about programming languages with nerds then eventually you get like individual

1:47:34Developers on like the UI kit team

1:47:37Doing interviews. Well, maybe they won't go that far but I don't know

1:47:39I like the idea because as you go down the chain people

1:47:42You would think would be both in the position and enthusiastic about talking about more small technical details, right?

1:47:49The old Apple the idea was there's only we speak with one voice from the top

1:47:54And and that one voice doesn't say too much and now now we're kind of moving down the ladder

1:48:00well

1:48:00We speak with multiple voices from the top tiers and so they can talk about a little bit different things like, you know

1:48:07Phil Schiller is not going to talk to you about, you know, runtime casting things into protocols,

1:48:12right? But Craig Freddie really will. So as you keep going down, the conversations get

1:48:17more interesting to narrower audiences, as opposed to always just being like the big picture,

1:48:22what is Apple doing type of stuff. So I enjoy that.

1:48:24>> The thing I've detected, what I would define the new Apple, the difference between old Apple

1:48:29and new Apple, is that they remain committed to secrecy on future products for the exact same

1:48:36reasons they always have been, that they don't want competitors to know and that from a marketing

1:48:40perspective they feel that being able to unveil these things as a surprise is an advantage and

1:48:45that gets them a lot of publicity around their events and announcements that they wouldn't have

1:48:49if they were blabbing about everything in advance. And I think also just the good old-fashioned

1:48:54under-promise over-deliver, that if you keep talking about stuff in the future all the time,

1:49:00inevitably some of these things are going to ship late and then you've disappointed people in terms

1:49:05and you know but for stuff that's already shipped and talking about decisions they've already made

1:49:11and the stuff that's out there i think that's where the difference is and i feel like old

1:49:14apple was if we're misunderstood screw them i don't we don't care you know you either get it

1:49:19or you don't and i feel like new apple at an executive level really is it's it's the openness

1:49:28is coming from the frustration i think of being misunderstood and feeling like if we could just

1:49:33explain ourselves we'd be less misunderstood and I wish that we could do that.

1:49:37If only like we all of our commentary on our blogs and podcasts and everything only had a username

1:49:42but they had no way to contact us like the App Store. Would that be frustrating Apple? Like if

1:49:48people were misunderstanding you but there was just no way you could find who this John Gruber

1:49:51guy was to talk to him about it. I mean that's a good contrast in terms of the organizations like

1:49:56they'll talk a lot about the roadmap for Swift and Swift 3 and engage with the community about what

1:50:02what would be best about this programming language that now is going to be much bigger than Apple itself and as a community project,

1:50:07but no one will talk to you about the App Store, even if you have an app, you know, it's just

1:50:10such a contrast in terms of, if I could just talk to a person who would be reasonable with me, like surely we could

1:50:17work 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,

1:50:24when it's like, no, you don't understand,

1:50:25it's the opposite there, and violating mine, and just

1:50:28Things that you feel like can be worked out between two reason people who just talked to each other on the phone that nevertheless take

1:50:33Months, I just want to an unsatisfying conclusion that what was there was a an apps

1:50:38Oh, I know it was when what was the app that that quit the App Store?

1:50:42Which one sketch? Well, no the one that was recent so sketch

1:50:47announced that they were leaving the App Store and

1:50:50Again, I don't know. I don't want to call it the straw that broke the camel's back

1:50:54I don't know that it's gonna mean that anything is gonna happen

1:50:57But to me it was just emblematic of the problems and especially in the Mac App Store

1:51:01Because sketch was to my mind the prototypical modern

1:51:06Mac

1:51:09Productivity app it's it's beloved. It's so popular. I mean an Apple obviously knows it's popular

1:51:15They ship with like the the watch OS

1:51:17SDKs they ship

1:51:20Photoshop templates for watch UI design and sketch templates for watch UI design

1:51:25So, 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.

1:51:32But the two that Apple ships, you know, that you can just download from apple.com are for sketch and Photoshop.

1:51:38So to put it on the same pedestal as Photoshop is, you know, it's pretty good.

1:51:43And they've won Apple Design Awards and they've been heavily promoted in the App Store.

1:51:48And for them to leave the App Store to me is just, wow, if they're not happy in the App Store, who is?

1:51:54That'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

1:52:00App Store complaints you'd be like well

1:52:02These are just kind of like the same way you talk about the complaints about you know

1:52:05I don't need Arc, retain release is fine. Like well, these are just the old people like we love them

1:52:09They're loyal to our platform. They've been there a long time

1:52:11Your Adobe's your Microsoft's or whatever, but really the future of the platform is about new blood. It's about new developers developers

1:52:19We haven't heard of like say someone makes a new graphics application. That's not Adobe

1:52:24That's from a smaller team that grows up on our platform that we were the first and only

1:52:28Platform that they targeted that that is native to us that you know, like that's what Apple wants like oh these this

1:52:35Fresh young faces like new talent essentially that because that's the future of the platform

1:52:40The future of the platform is not old crusty people who've been shipping on the Apple platforms for 30 years, right?

1:52:45It's new people and so a new company you've never heard of comes along and makes this great graphics application

1:52:51that is, you know, taking the world by storm and Apple saying putting it up alongside Photoshop and they say

1:52:56Yeah, you know we're out. We can't take this app store stuff anymore

1:53:00Then 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

1:53:04Ways, you know it breaks the narrative

1:53:06Yeah

1:53:06One of the ways that sketch again is like to me a poster child of what Apple wants

1:53:10Third-party apps to be is like exactly what you said

1:53:13It's Mac only and it's not Mac only because they you know

1:53:16It's because they've how does a small team build an app that in some ways can

1:53:21Compete toto Photoshop. It's because they're leveraging all of this great graphic stuff built into Mac OS X

1:53:29Same thing with pixel mater same thing with acorn

1:53:32From our pal Gus, you know that these apps written these graphics apps written by really small teams

1:53:39I mean Gus is the only developer at flying meat. I mean, it's a one-person team there

1:53:44He can make an app that credibly stands as a professional image editor because he's leveraging

1:53:50it wouldn't even make any sense to go cross-platform because it's it's all built on this system stuff and

1:53:56That's what Apple wants for multiple reasons one

1:53:59that's why they give you these API's and they

1:54:02are happy to see them used and then they know that when they add new features to the operating system like

1:54:09What's the thing on the new retina 5k max where there's more colors on the monitor the deep p3?

1:54:15Go or color gamut or whatever. It's called right so then these apps. I think sketch one of these apps

1:54:20I know I just saw in the release notes on the App Store one of them

1:54:23Just released an update that has support for it already

1:54:25Whereas in the old days when you're you know like and not to badmouth Adobe

1:54:30But like with Adobe stuff where they're cross-platform

1:54:32They couldn't adopt like a new great new Mac technology like this deep color on the 5k

1:54:38I'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

1:54:46And if Windows doesn't have it

1:54:48Maybe there's you know

1:54:49It's gonna take them longer to be able to adopt it because then you've got these files that have you know

1:54:54Deep color that don't show up on Windows or something like that

1:54:57It's just a perfect example of doing it the right way and then here they are getting out

1:55:04anyway

1:55:04The 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

1:55:09To somebody and work this out was in the hubbub over sketch leaving the app store. I was reading Michael sigh

1:55:15Had a great blog post like a roundup blog post with like, you know

1:55:20eight nine ten different reactions from around the web and he just noted at the end of the

1:55:24Noted without any further comment that he has an update to a Mac app that's been pending review

1:55:30It's just a bug fix update to one of his apps that was pending review for 59 days

1:55:35What does that what kind of sense does that make here's a bug fix for my users and 59 days later

1:55:42It's still waiting to go into review

1:55:44Yeah, and even that you could say it's like prioritization or whatever and you might feel bad about it

1:55:48But the ones that just really drive me nuts is where like it's a misunderstanding like it's a romantic comedy level

1:55:53misunderstanding and and and it's just like

1:55:57Listen to me, you know, like it's like in a romantic comedies stories

1:56:01But like I think it just if these two people just got together and explain this one thing

1:56:04Like the whole rest of the movie would be pointless, right?

1:56:06And this is like this in the App Store

1:56:07But 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

1:56:11You wait and then you wait and this inscrutable reply comes back. It's like no you didn't understand me

1:56:15You did you even read what I wrote like it's is this an automated system. Is there a human there?

1:56:20Can 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

1:56:26I think the one about copyright was that like where some a bunch of scammers are putting up applications that appeared to come from a

1:56:32Different developer and then Apple would flag the legitimate developer to say they were violating the copyright

1:56:36It was like what whatever was that?

1:56:38stuff like that is very frustrating like and that essentially what that comes down to is like like in a romantic comedy just merely a

1:56:44lack of communication and how can Apple be doing so well and

1:56:47improving so much in its communication like

1:56:50Keeping 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

1:56:57are disappointed but also

1:56:59Being 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

1:57:05People outside Apple are telling Apple what to do

1:57:08But just to make sure everyone's all on the same page and obviously it's a much more advantageous for a programming language

1:57:14Which is less of a competitive advantage for Apple then like its individual features or whatever but the App Store

1:57:20Like it's just it's it's so clearly a different philosophy

1:57:24dictating the the public face of that part of the organization than the other and I know it's all one big place and

1:57:30Apple tries to speak with one voice, but I

1:57:33You know, it just it's becoming

1:57:35increasingly clear where the lines are in terms of like the new Apple that you were describing and

1:57:44The 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

1:57:50The individual things is just a difference in like what department am I talking to what is the subject that?

1:57:56We're that we're even talking about

1:57:58And how then does Apple talk about it?

1:58:0059 days in review what the hell

1:58:13I guess I could take another break here.

1:58:15And do you want to talk anything else about Swift?

1:58:18I guess the other thing,

1:58:19one other thing I thought about was Swift.

1:58:21I know Apple's, they've said this for a while,

1:58:23but you know, Federighi's had this

1:58:24in his talking points all week long,

1:58:26which is that they really, really think

1:58:28that Swift could be the default go-to programming language,

1:58:33not just for their platforms

1:58:35and writing apps for their platforms,

1:58:37but just like, you know,

1:58:38high school kids who are learning to program,

1:58:40middle school kids.

1:58:41I mean, I don't even know why I wait till high school,

1:58:42but kids learning to program computer science courses

1:58:46in college, you know, why not, you know,

1:58:49that they see Swift as the language

1:58:51that could take that role, which to me is it,

1:58:53I believe it, I really think that they mean it,

1:58:57but that's such an incredibly ambitious goal

1:59:01for a programming language.

1:59:02- Yeah, I think it sounds more reasonable

1:59:04when you think about, well,

1:59:05what are those people learning with now?

1:59:08Because I can tell you it's not C,

1:59:09Like, I think most of the time it's Java or JavaScript,

1:59:14which I guess is JavaScript probably isn't terrible

1:59:17because it's a pretty simple language.

1:59:18- Really, do you think CompSci is JavaScript

1:59:21or do you think just--

1:59:21- I think Java, Java I think is the most common

1:59:24teaching language at this point.

1:59:26Some schools like, you know, I think MIT still has something

1:59:29with Scheme and Lisp and all that business.

1:59:31But the days of them teaching C

1:59:34is your first programming language,

1:59:35I think are long gone and C++ same type,

1:59:38Like, what is a better teaching language is what it gets to.

1:59:40Like, if not Swift, then what?

1:59:42And if Java is the answer, I think Swift has fewer,

1:59:47well, it's difficult.

1:59:48When they say that, like, Swift is gonna be a language,

1:59:50then which Swift do you want them to teach?

1:59:52Do they want us to teach Swift one?

1:59:53Oh, no, no, no, Swift two?

1:59:54Oh, no, like, again, it's barely sitting up at this point.

1:59:57So this is obviously a long-term plan.

1:59:58But once Swift settles down, being a more modern language,

2:00:02it's either gonna be Swift or something like Python

2:00:06or JavaScript that's an even higher level language.

2:00:08because learning languages don't need to care about performance and stuff like that.

2:00:11So you can get away with using, not I'm gonna say a toy language,

2:00:15but a much much higher level language that you just want them to deal with the concepts.

2:00:19And I think the only thing that will hold Swift back is,

2:00:22Swift is a complicated language, Swift has a lot of features, right?

2:00:27And a lot of the features in Swift I think make more sense in the context of understanding simpler languages first.

2:00:34Swift is not a simple language, there is a lot to it.

2:00:37It's very powerful.

2:00:38There's a lot of concepts and things in there.

2:00:40Not details that you don't care about,

2:00:41like memory management and crap.

2:00:43Well, there's a little tiny bit of that

2:00:44if you really want to get into it, but.

2:00:46- All right, what do they have?

2:00:46Like an unsafe pointer type?

2:00:48- Yeah, like they've got the go ahead,

2:00:50screw yourself abilities in there,

2:00:53but you wouldn't teach that.

2:00:54But even just the concepts of the way it handles,

2:00:58all the different prototypes and class extensions

2:01:01and inheritance and when do I use a class

2:01:03and when do I use a struct

2:01:04and value types versus reference types.

2:01:06And there's a lot of things in there that aren't in much simpler languages,

2:01:09like back in the old days, TCL, you know, or like a logo with a little turtle,

2:01:15or even something like Python.

2:01:17I mean, I guess every language has its grotty corners,

2:01:19but Swift is already a pretty full-featured language,

2:01:22and it's going to get even fuller featured with time.

2:01:25So that may hold it back from being a teaching language,

2:01:28because in some respects, a teaching language,

2:01:30you don't even need it to be a real language.

2:01:31I mean, I guess you need it to execute for your exercises and stuff,

2:01:33but you're not teaching them,

2:01:35here's the programming language you're gonna use when you enter the industry, like it's not a vocational school.

2:01:38You're teaching them concepts, which is why MIT can teach Lisp and Scheme and everything and ML or whatever,

2:01:43and it's like, I don't care if you can use this, we're just trying to teach you conceptually how this works,

2:01:48and why Python, again, Python is another language that many people have said looks like pseudocode,

2:01:51especially since there's no curly braces and the indentation is mandatory.

2:01:54You can go to your algorithms book and see the algorithms for red black trees and you can write it in Python

2:01:58and it looks a lot like it did in your algorithms book that didn't have, you know, the algorithms book just has English words,

2:02:03It's not a programming book at all right so I think the road to Swift being a teaching language may be difficult

2:02:10but if I had to pick

2:02:12Do you want to teach this course in Java or in Swift?

2:02:14I think Swift would be better if only because jobs get even more weirdness in terms of like primitives versus you know

2:02:20Auto-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

2:02:29admitted some level of ignorance, but I've you know everything I've ever seen of Java is

2:02:34It's just it's so verbose. Oh

2:02:38It it really I find it very off-putting

2:02:42Yeah

2:02:43and there's a lot of like there's a lot of weirdness in Java that has to do with like

2:02:47Yeah

2:02:47I think it was a funny part of speaking of things that would sound weird in the future a funny part of Craig video reason

2:02:52You're here when you were saying

2:02:55Or server-side languages like Java. Java was not made as a server-side language. It was a language for set-top boxes, right?

2:03:01Well, and in fact, it's what everybody programs on to write Android apps, right? Oh, you know, well, it's well, that's yeah

2:03:07But like its origins were for set-top boxes and then eventually its second life was oh, these are gonna be applets

2:03:14They're gonna run in your browser. Like it was the opposite of server-side

2:03:17It was gonna be code that we send from a server to your client and runs in people's web browsers

2:03:21And 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

2:03:26It's faster than all those scripting languages, and it doesn't require a manual memory management like C++

2:03:31It always struck me and I know that it came from Sun and that Sun was a you know typical laid-back

2:03:37Valley you know corporation

2:03:40Isn'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

2:03:45Even know what Sun is

2:03:48You know, I know that's where it started, but the syntax of it looked so corporate to me

2:03:52It looked like the type of programming language that was written by like IBM programmers who still wore like a shirt and tie to work

2:03:58and and like the type of people who like

2:04:00They your email is configured and you can't even change it so that you have like a 12 line

2:04:05Legal disclaimer in your signature, you know that you know, if you've gotten this email by mistake

2:04:10You're legally obligated to delete it and notify us immediately, you know

2:04:14It just looks like that type of programming language

2:04:16where just to have a simple class, you've got like 12 lines of bullshit boilerplate for everything.

2:04:21Yeah, I never like trying to do Hello World and having to make like a class that I mean,

2:04:26there's a certain symmetry to it like that it is kind of like if you compare it to C++ or something

2:04:33like that, it was trying to make a more rationalized world and I think as one of the

2:04:38first languages to really break out and be successful in doing that, I definitely feel

2:04:42I feel like it has a, I have respect for it as making a substantial leap over what came

2:04:46before it.

2:04:47I have respect for it, but it's, I didn't like it.

2:04:49I, when I went to Drexel in the 90s and majored in computer science, we learned Pascal at

2:04:54first, like the first year courses were Pascal.

2:04:59And people used to complain, some people, not largely, but people, there were complaints

2:05:03like on the mailing list, like students complained into the faculty that, you know, why are we

2:05:08learning Pascal?

2:05:09No, there's no jobs in Pascal.

2:05:11wants C programmers and the professors, if they would respond.

2:05:15Or I guess it wasn't mailing lists, it was the news groups we had for the computer science

2:05:20department.

2:05:21And they would just be like, "We're not running a vocational school here.

2:05:23If you learn how to program, you'll be able to program in any language."

2:05:26Which is true.

2:05:27I mean, it's not like you learn how to program in C and then you don't know how to program

2:05:33in another language.

2:05:34You just have to learn the syntax.

2:05:35But like when I took object-oriented programming, it was C++.

2:05:40And I thought, wow, object-oriented programming

2:05:42sucks.

2:05:44That's what I took away from object-oriented programming

2:05:47in college.

2:05:47I was like, wow, this is bullshit.

2:05:51Yeah.

2:05:52And that's the thing about teaching languages,

2:05:55is you're trying to teach concepts.

2:05:59And they may be concepts that are pretty new.

2:06:02But you have to have an embodiment of those concepts

2:06:04to teach them, because you do want people

2:06:05to write code that executes.

2:06:06And every embodiment comes with its own BS.

2:06:09whatever that BS may be, whether it may be,

2:06:12oh, it started out as a series of macros on top of C.

2:06:15And so it's got some C grottiness in there.

2:06:18Or this language is obsessed with performance.

2:06:21So there's a lot of crap that you don't quite understand

2:06:23that complicates things, but it's needed for performance.

2:06:26Or Java-like, this was originally made for set-top boxes,

2:06:30and later was used for web applets,

2:06:31and there's this whole bytecode thing that's going on.

2:06:34And they tried to make a new portable framework

2:06:36that works everywhere.

2:06:37So why the hell does FileIO look all crazy?

2:06:40Well, it has to work everywhere and can't rely on any--

2:06:43it's like there's a virtual machine,

2:06:45and it's not using the native libraries in the platform,

2:06:48and everything is all verbose.

2:06:51And that baggage is not part of what

2:06:53they're trying to teach you.

2:06:54But you have to end up learning it as part of the course.

2:06:56And if things go awry, the course

2:06:58can end up being more about that baggage,

2:07:01or get distracted and think that baggage is part

2:07:03of the essential concept, like you said,

2:07:04thinking that C++ is object-oriented programming.

2:07:07two very separate different things and if that's it and it was mine too, it's the first object

2:07:11oriented language I learned with C++, it really warps your world view and you can't help if you're

2:07:17teaching that course to be influenced by the language you're choosing, so I'm glad that

2:07:22people upgraded from C and C++ to Java because it was a significant step up in terms of the BS that

2:07:27you have to learn and deal with, but Java has its own BS and Swift has its own BS too, especially now

2:07:32that it's changing every year, that if you teach the course one year your previous assignments won't

2:07:36won't even compile the next year.

2:07:38Like maybe it's not time to jump on the Swift bandwagon yet.

2:07:41But over time, yeah, you need to upgrade

2:07:44the language you're using to teach.

2:07:45And hopefully they get better over time and have less BS.

2:07:49- Here's the thing, I guess I think I had it in my notes

2:07:52for the interview with Craig Federighi.

2:07:55And I don't think I got to it.

2:07:56And I think it was because it just seemed like a dead end

2:08:00to try to get it out of him.

2:08:01But that, I don't know how I would have asked it,

2:08:06But the basic idea being that a lot of times

2:08:08a programming language is, it starts to fuel

2:08:12the creator of the language's personal itch.

2:08:14Perl is a perfect example of that.

2:08:16Say what you want about Perl.

2:08:17Me and you, I know you still write Perl as your job, right?

2:08:21- Still do.

2:08:23- And everything I've ever done of any consequence

2:08:26programming-wise is written in Perl.

2:08:28My reference markdown implementation is Perl.

2:08:31I wouldn't, I still, I like it.

2:08:36And I think for me personally, because most of what I want to do is string manipulation,

2:08:41that's why Perl is great.

2:08:42But the fact that it's so great at string manipulation was the fact that Larry Wald

2:08:46wanted to do things like that.

2:08:47And if you read back to when he created it, he was writing these little glue scripts for

2:08:52-- what was it, like the NSA or something like that?

2:08:55It was some kind of government --

2:08:56>> I think it was NASA.

2:08:58I think you're off by one letter in that acronym.

2:09:02But he was like, you know, had these automated things that need to run and FTP the results

2:09:06up to a certain server and that it was automating them with scripts and he was like, wow, this

2:09:09is terrible.

2:09:10It used to be a lot easier if I just made my own little scripting language that made

2:09:13this easier to do and then it grew from there.

2:09:15And all sorts of other languages have origins like that.

2:09:18And I just wonder whether is it a problem that Swift is being steered by someone who's

2:09:24a systems designer who writes, you know, the LLVM and CLang and writes these compilers?

2:09:31Is there a problem having a language written by the compiler guy?

2:09:34Because you're making things, you're trying to make things easier for the compiler

2:09:37and optimize things from the compiler as opposed to making a language that makes it

2:09:41more possible to be expressive as a GUI app designer.

2:09:46Well, that foundational bet on, you know, Arc essentially versus a virtual machine

2:09:52is at the core, I feel like, of the design at Swift because it's baked in entirely.

2:09:57And that is definitely from a compiler writer's perspective.

2:09:59and Craig touched on this as well.

2:10:01If you are writing a compiler, dealing with a language

2:10:06that makes it so you can't add certain obvious optimizations

2:10:10because according to the semantics of the language,

2:10:12you can't be sure that this thing,

2:10:14I can't be sure what method is gonna get called here.

2:10:16I'm not gonna know until runtime.

2:10:18At compile time, I have no idea.

2:10:20So like Craig said, the compiler has hands tied

2:10:23behind its back, both hands sometimes,

2:10:25and it's just like, well, nothing I can do about it.

2:10:26I just gotta put in this code to execute this at runtime.

2:10:30I'll look up the method and we'll execute it

2:10:31and you can try to do some optimizations.

2:10:33And the whole fact that there's a runtime

2:10:34that all your code gets turned into calls

2:10:36to the C library for Objective-C message send

2:10:38and we can optimize the hell out of that

2:10:40with assembly code or whatever.

2:10:41But the bottom line is we can't inline it

2:10:43'cause we don't even know what the hell

2:10:45method's gonna be like.

2:10:46That there's dynamism in the language

2:10:48that the compiler can't handle.

2:10:50So if you're a compiler guy, you're like,

2:10:52boy, this is really frustrating.

2:10:53I know I can make this go faster.

2:10:55I know I can make this safer.

2:10:57I know I can make it so I can guarantee

2:10:59that this is always gonna be initialized.

2:11:01Nothing a programmer can do

2:11:02to end up with this half initialized object

2:11:04that's gonna cause a segfault

2:11:05because they didn't realize through this chain of code

2:11:07that they're halfway through the initializers

2:11:08and they call a method

2:11:09and it tries to read some object attribute

2:11:11that has garbage data in it because it wasn't initialized.

2:11:13I can fix that in the language.

2:11:14And I can say, this language guarantees

2:11:16that by the time this object is constructed,

2:11:18all this stuff has been initialized.

2:11:20It's guaranteed by the language.

2:11:21It's guaranteed by the compiler.

2:11:22That bug is gone from everybody's code.

2:11:24or calling a method on a thing that doesn't exist, that bug is gone for me, I can guarantee that, right?

2:11:29And so it's not just that he's like, I just want to make it good for the compiler,

2:11:32the compiler guy also sees all the places where, you know, where bugs happen, where programs fall down,

2:11:38and 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,

2:11:42maybe 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

2:11:51application developers make the applications that they make for the Mac and for iOS.

2:11:55And I think, I mean, there's two things giving people that impression. One is,

2:12:01there is a match between the language and the libraries in terms of, and culturally as well as

2:12:08technically. And early in Swift's life, one of the main requirements of Swift is you have to be able

2:12:13to call into Objective-C and all that, you have to be able to interact, you have to be able to write

2:12:17an application partially in Swift and partially in Objective-C, or it's a non-starter.

2:12:20And it can't be, it may not be optimal, but it can't be terrible to drop into an object,

2:12:25you know, to call into an object of C library.

2:12:28And like Craig said, you can't wait around to be like, well, we've got a new language

2:12:31and then a whole new set of libraries and a whole new set of, like, you can't just start

2:12:33from scratch.

2:12:34There's too much value and investment in what, in all the existing frameworks and libraries.

2:12:39And then you'd still be in a case where you have dual libraries, like a whole separate

2:12:43stack for Swift and, you know, it's not, so you have to do, have to have that interaction

2:12:47with it.

2:12:48is going to be a little bit weird.

2:12:49Like all the crazy annotations they have

2:12:51in Objective-C libraries to get better interfaces

2:12:53with Swift and you have to think really hard about like--

2:12:55- Carbon and Cocoa?

2:12:57- Yeah, well, I mean, they eventually settled that, right?

2:13:00But you know, during the transition,

2:13:01you gotta do what you gotta do in a transition.

2:13:03I think that transition makes Swift look bad

2:13:05because if it was a top to bottom Swift stack,

2:13:08it would be clear, hey, how do I use Swift

2:13:10to make a GUI app?

2:13:11Right now it's, hey, how do I use Swift

2:13:13to use Objective-C libraries to make a GUI app?

2:13:16And there's this drive by people writing code, like,

2:13:19I just want to be pure Swift.

2:13:21But you can't really be pure Swift at this point.

2:13:23Like, they feel like it's a defeat to say,

2:13:25well, I'm using Swift, but I'm basing everything

2:13:27on NSObject because I just want those type of semantics.

2:13:30Like, it feels dirty, it doesn't feel pure Swift.

2:13:32And it's not going to be pure Swift top to bottom

2:13:34for a long time, just because of the reality

2:13:36of the situation they're in.

2:13:38And the second thing I think that is helping,

2:13:40that you have to take into mind is that,

2:13:42yes, Swift is a language written by a compiler guy

2:13:46that does a lot of things that make it easier to write a compiler

2:13:50and then make it easier to make code that's guaranteed to be safe.

2:13:54But that guy had to pitch his language to an organization filled with people

2:13:58who make GUI applications.

2:14:00He had to convince, like, Alioser that, you know,

2:14:03this new language that I came up with in my basement or whatever,

2:14:06I think should be the language for the next 20 years of Apple,

2:14:09and it's an awesome way to write iOS and Mac apps.

2:14:12He had to make that case.

2:14:14It's not like he's not the dictator of Apple, right?

2:14:17He didn't say, "I came up with Swift

2:14:19and we're gonna use it."

2:14:20And I feel like the people he had to make that case to

2:14:23know what the heck they're doing

2:14:25and it had to have been a good case.

2:14:26- Yeah, have no problem standing up for their,

2:14:29you know, for their own thoughts and-

2:14:31- And yeah, he's not their boss.

2:14:32- Right.

2:14:33- So I've, you know, it's very uncomfortable

2:14:37in the phase we are now where it's so clear

2:14:40that there are barriers to making this work

2:14:42and Swift isn't done yet

2:14:43and all these other things that are true,

2:14:45but I'm not really ready to bang the gavel on anything

2:14:47having to do with like, well,

2:14:49Swift is not as well suited

2:14:51for making GUI apps as Objective-C was.

2:14:53You could say that the current version of Swift

2:14:55is not as well suited as Objective-C

2:14:58for using Objective-C libraries to write GUI apps.

2:15:01But I feel like as the culture and capabilities

2:15:04and actual code as in Swift top to bottom,

2:15:07like let's start with foundation

2:15:08and all the other libraries start getting built up,

2:15:12I feel like those same teams that made,

2:15:14like, you know when they made UIKit,

2:15:14they kind of like repented for the sins of AppKit

2:15:17and did it better?

2:15:19There's one more chance to do that right now.

2:15:20All those same, the great minds behind UIKit and AppKit,

2:15:24some of those same minds are going to be the great minds

2:15:27behind the Swift native frameworks

2:15:29for writing GUI applications in the future.

2:15:31And I think that'll be a good thing.

2:15:33- Yeah, I agree.

2:15:33And I think that the other thing too

2:15:35about being the compiler guy is that it put Latner

2:15:40and his team and the people he works with,

2:15:42in a position where they're really intimately familiar

2:15:45with the things that cause problems

2:15:49in shipping applications.

2:15:51And maybe some of those problems are things

2:15:54that a true expert in Objective-C would never do.

2:15:57And therefore they feel a little frustrated

2:15:59like that the language,

2:16:00not that it's being catered to dummies,

2:16:02but that by making certain things that were possible,

2:16:05no longer possible,

2:16:07you prevent a whole class of possible bugs,

2:16:10but at the same time you also prevent certain clever

2:16:14but dangerous techniques that people had taken advantage

2:16:18of significantly.

2:16:19And that Apple is making the decision

2:16:20that that trade-off is worth it

2:16:22because they're in a position where they literally know

2:16:25from like crash reports and code

2:16:28that's actually been shipping that being able

2:16:30to not do this anymore is actually going to cut off

2:16:34this sort of problem won't even be possible anymore.

2:16:37- Or just making it harder.

2:16:38Like, I mean, the idea of a half initialized object,

2:16:40like, you know, making that impossible in the language, you can do that fine.

2:16:45The idea of calling a method that doesn't exist on an object, like, at runtime,

2:16:49you thought you had an object of this type, but really you casted it to the wrong thing.

2:16:53Like, in Swift you can forcibly cast things to the wrong thing and try to send them,

2:16:58you know, the wrong method call, right?

2:17:00Like the whole idea of like looking up a class name by a string,

2:17:03like all these capabilities, this dynamism that Craig talked about that they're adding,

2:17:07they're adding it so it'll be possible to do these things,

2:17:10But it's not like the right or preferred way to do things.

2:17:13And it certainly isn't the default. And if you do it,

2:17:15it's going to stand out in your code

2:17:17because you're going to have to make--

2:17:18it doesn't stand out in Objective-C code

2:17:20when you're iterating over this heterogeneous collection

2:17:21and just sending every object the message blindly.

2:17:24And if they're nil, it'll just be a no op.

2:17:25And if they're the wrong class, it'll blow up at runtime

2:17:28because it'll be like, object blah doesn't

2:17:30respond to the message blah.

2:17:31You'll find that out at runtime.

2:17:33But if you look at the loop, it's

2:17:34like, oh, this is just looping over the contents of an NSRA

2:17:36and sending a message to every single item.

2:17:38Looks good to me.

2:17:39If you try to do something that potentially dangerous in Swift,

2:17:42I think it would look scarier.

2:17:44I think it would look like I am going to now call a method

2:17:47that the compiler cannot absolutely 100% guarantee

2:17:50is going to work.

2:17:52And because that's not the default,

2:17:53and because it will require more code and look scarier,

2:17:56it is sort of culturally saying that in the Swift world,

2:17:59we don't do stuff like that.

2:18:00We don't be like, oh, the program will take care of it.

2:18:02I'm sure every object in this collection

2:18:03will respond to this message.

2:18:04I'm sure it will be fine.

2:18:05Or they'll just do response to selector,

2:18:07and then they'll call it or whatever.

2:18:09In Swift, the default wants to be,

2:18:11if you just see straightforward Swift code,

2:18:13it's gonna work and not fall victim

2:18:15to this whole classes of errors

2:18:17that could potentially happen in Objective-C

2:18:20because too much was determined at runtime.

2:18:22- Let me take a moment here and thank our next sponsor.

2:18:26It's our good friends,

2:18:27longtime friends of the show, Squarespace.

2:18:29You guys know Squarespace.

2:18:30It's a build it, you're all in one,

2:18:33build your own website platform.

2:18:37What type of websites can you make with Squarespace?

2:18:39Well, better question would be what types can't you?

2:18:41You just go there and sign up and immediately

2:18:44you can just get right started and say,

2:18:46what are you trying to build?

2:18:48You wanna build a store?

2:18:50And you go to store and then they'll show you

2:18:52a bunch of templates, for example,

2:18:53stores that you start with and then you say,

2:18:55yes, this is exactly the sort of template,

2:18:58this is the type of store I wanna make.

2:18:59Then you open that up and you just start editing

2:19:02what you see that replace the images with your image,

2:19:04replace the text with your text.

2:19:06You wanna build a blog though,

2:19:08if that's what you're looking to build or host a podcast,

2:19:11you just write down when you sign up,

2:19:13it's just like, I'm gonna create a blog,

2:19:14I'm gonna host a podcast, here's some templates.

2:19:16I like this template, use this one,

2:19:18but I wanna change this to this and this to this,

2:19:20and you start changing things right there in the browser.

2:19:24Total WYSIWYG really could not be more obvious,

2:19:29it's so visual.

2:19:31They have all sorts of hooks there,

2:19:33if you want to insert your own code,

2:19:35you wanna get in there at the code level

2:19:36and change it at that level, you can do that too.

2:19:39But fundamentally, it's a GUI,

2:19:41it's a graphical user interface way to design websites,

2:19:45and they have templates for so many different types of sites

2:19:48it's ridiculous.

2:19:50It doesn't just spit, at the end,

2:19:54it doesn't just spit out a bunch of HTML files

2:19:56that you then put in a folder

2:19:58and upload to a web host or whatever.

2:19:59They're the hosting platform too.

2:20:01It's all in one.

2:20:02You build it, you make it.

2:20:04You can even get your own domain name on it

2:20:06and you can get the domain name for free

2:20:08if you pay for a year in advance.

2:20:10Just could not be easier.

2:20:12Online commerce, the sales stuff,

2:20:14they handle all the tricky stuff,

2:20:16all the encryption and the credit cards and stuff like that.

2:20:19Really, really impressive.

2:20:20Plans start at a ridiculous eight bucks a month.

2:20:24And like I said, you get a free domain name registration

2:20:26for your site if you sign up for a year in advance.

2:20:30And the demo is no credit card required.

2:20:32You just go there and just start like typing and playing.

2:20:35You just go to squarespace.com and just start.

2:20:38And it, you know, you're actually there making a website.

2:20:43Could not be easier.

2:20:44Use the offer code Gruber, my last name, G-R-U-B-E-R,

2:20:48and you will get 10% off your first purchase

2:20:50with Squarespace.

2:20:51If you're listening to this show,

2:20:52'cause John is on it, you can use their code.

2:20:54It's ATP and you'll get the same 10% off.

2:20:56So Squarespace, build it beautiful.

2:20:58If you need to build a website,

2:20:59just go check out Squarespace.

2:21:01Spend an hour there.

2:21:02you'll probably end up saving yourself days of work.

2:21:04- That's very nice of you to give our code.

2:21:08- Oh, it's, we're all in it together.

2:21:09- It's so short and easy to remember.

2:21:11I hope that's our actual code.

2:21:12- No, I know it is.

2:21:12I was listening to your show today and I took note of it.

2:21:15- There you go.

2:21:16You're doing homework.

2:21:17- I wanted to see what you guys said

2:21:19about the smart battery case.

2:21:21I feel like I have my last couple of shows,

2:21:24like I had Joanna Stern on last week,

2:21:27and we've just been like a couple of days away.

2:21:30like we could have, you know, a couple of days later

2:21:32and we could have, Joanna and I could have gone long

2:21:35on the battery case.

2:21:36I kind of had a feeling that that's what they were gonna make

2:21:41'cause I didn't know, I didn't tell me,

2:21:43but after the show when we were still on the air,

2:21:46Joanna said, "Hey, has Apple been in touch with you

2:21:48about anything?"

2:21:49I was like, "No, not yet."

2:21:50And she goes, "They are with me."

2:21:51And all they wanted to know was what color iPhone I have

2:21:54and that they're gonna send me something, you know,

2:21:57to review at the end of the week.

2:21:59And I remember that somebody at Apple,

2:22:04when I went and got my iPad Pro review unit,

2:22:08it was at a briefing in New York,

2:22:09and I was asked which size iPhone do I use,

2:22:13the iPhone 6s or the 6s Plus, and I said 6s,

2:22:16and they were like, good, we might have something

2:22:18for you later, you know, a couple of weeks.

2:22:21And I filed that away at that point,

2:22:23and I thought, what in the world would they make

2:22:25that would apply to the 6s and not apply to the 6s Plus?

2:22:28And the only thing I could think of is a battery pack.

2:22:31That's the only, either a battery pack or,

2:22:34I guess it would have to be a case.

2:22:35Cause if it was a battery pack,

2:22:36it would apply to anything with a lightning port.

2:22:38So I figured it had to be a battery case.

2:22:40- Well, it could have been any kind of case,

2:22:42but I suppose, you know.

2:22:44- Yeah, but why would they make it?

2:22:46To me, a battery case was specifically the sort of thing

2:22:48that they would make only for the 6S and not the 6S,

2:22:51not the plus for the obvious reason

2:22:53that the plus already gets plenty of battery.

2:22:55- They need to make the same battery case for the plus.

2:22:58Just like, just a huge lump on the back of it

2:23:01that have been last two days.

2:23:02- It would be, you could actually sit there

2:23:05and do like arm curls with it, I think.

2:23:07It was actually like build your biceps.

2:23:09- So how was your, one of the things I saw

2:23:11is our friend Cable Sasser,

2:23:13his case was like cracking along the top,

2:23:15maybe he just got the defective one,

2:23:17I'm assuming yours is fine.

2:23:18- What color did he get?

2:23:19- He got the black one or the charcoal, whatever.

2:23:21- So they sent me the white one,

2:23:22and that's the only one I have experience with.

2:23:25So mine didn't crack.

2:23:26And what I did is I got mine Tuesday morning.

2:23:31So it was the day that they announced it.

2:23:34They had already sent one to me by FedEx.

2:23:36So it was like FedEx guy showed up at like 10 AM

2:23:38and I had it.

2:23:39And I pretty much left it on my phone

2:23:42until I got my review out.

2:23:45Which it was obviously, it was a couple of days late.

2:23:48I let you read it before you guys did ATP.

2:23:50I was like, it'll be up by the time

2:23:52your show is on the air.

2:23:54- You're truly the Douglas Adams.

2:23:55Well, 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

2:24:00But yeah, those deadlines are great as they wish best your own self-imposed self-declared deadlines

2:24:04No one was pressuring you to say that you're like, oh no problem. Yeah, I had a Wednesday night school thing

2:24:09it was

2:24:10some kind of

2:24:12You 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

2:24:19I'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

2:24:23Yeah, the idea was that the deadline that you were sure you were gonna make it because you had to because you had a school

2:24:29thing right

2:24:30And it turns out when you're self-employed you don't have to do anything

2:24:32You know what? It was the the more I thought about it

2:24:36You know as often happens that writing to me writing is thinking and the more I wrote about it

2:24:41The more I realized that it was it there are interesting things to pursue and think about and talk about it

2:24:47You know, sometimes you start writing

2:24:49I didn't think it was going to be nearly as long as it was, and I didn't think it was.

2:24:52That's like the longest thing you've written in a long time, was about a battery case.

2:24:55Well, that's why it's so... but to me, there's so many little interesting things about it.

2:25:00But one of the things I did to motivate myself to finish, I didn't really like

2:25:04having it on my iPhone, but I kept it on my iPhone until I got the review out.

2:25:08So I actually did use it non-stop, pretty much, other than like to play with, you know,

2:25:14the insertion and removal and some, you know, certain things you want to do testing it.

2:25:19I would but for the most part I had my phone in it from Tuesday till Friday

2:25:23So I didn't see any kind of cracking or anything like that

2:25:25Yeah, maybe taking it in and out causes the cracking

2:25:28I could I mean you would think it was some sort of widespread defect

2:25:31We would have heard about it by now, but it happens when you get the first ones of anything like who knows?

2:25:35Well, yeah, I think I think it's I think the first ones of anything

2:25:38It's it's likely that it was probably just so maybe some kind of

2:25:42You know, maybe there was a batch that got a bad batch of the whatever the substance the silicone

2:25:48What do they call it? Whatever the substance is on the outside?

2:25:50Yeah, or maybe there was a coating that was supposed to be put on that wasn't put on right anyway

2:25:54I wouldn't I wouldn't if you're thinking of getting one

2:25:55I wouldn't let this stop you because if there's something like that happens, it is bringing back to the Apple still

2:25:59They could be a new one. They'll work it out

2:26:00I will say this I'm from ATP you guys were saying and I know somebody else

2:26:04I think it was Joanna actually in a review

2:26:07She I think she got a white one and said don't buy the white one because it's already stained

2:26:10And you guys said don't buy the white one

2:26:12I have the white one and I used it non-stop for four days and

2:26:17It still looks mint condition didn't pick up pick up any stains. So I don't very you're very clean, right?

2:26:22I guess it's tissue boxes on your feet and you lick yourself clean like a cat and so there's no

2:26:26residue what I heard actually after that show is the opposite of people who got the the black one and said it picks up pocket

2:26:32Lint like if you have lint and stuff in your pocket and you put the thing in you take it out to cover with white

2:26:35Stuff so it's like white and black cars like choose your poison. Both of them are gonna have something in the environment

2:26:41It's gonna stand out more on them. I couldn't tell it is obviously very very

2:26:46similar to their non battery silicone cases in terms of the substance that

2:26:51it's made out of but it's maybe not quite the same it actually felt a little

2:26:56grippier to me the the battery case to me felt grippier than the non battery

2:27:01case but on the other hand the one that I had handy which was one that Apple

2:27:05gave me with my review unit a couple months ago for the iPhone 6s was blue

2:27:11and this was only white and black and maybe there's some I know with the watch

2:27:15Straps there's definitely a little difference in how they feel, you know the sport bands

2:27:20There's the different colors have different levels of like flexibility different weights, too. Yeah different weights even

2:27:27and

2:27:30I may know that might therefore be true with these two. Maybe the white is somehow grippy

2:27:34Or maybe the white non battery case is grippy or two. I thought it was a little a little too grippy

2:27:38I thought you know and in terms of it actually being thicker therefore was a little harder to get in and out of jean pockets

2:27:44thickness aside, the grippiness made it a little, you know, a little bit too much friction,

2:27:49in my opinion. Yeah, that's always the balance, because one of the complaints about other third

2:27:54party battery cases is they make it slipperier, because a lot of them are hard plastic or hard

2:27:58shiny plastic, and then so you end up dropping it also because it's a bigger, more awkward shape

2:28:02sometimes. But if you make it too grippy, it's hard to slide in and out of a pants pocket,

2:28:06so you just want to find that medium. And yeah, I totally believe that the black and white ones

2:28:10could feel different. And they look in the pictures, I've never actually touched one of

2:28:14these things but they look in the pictures like it could also be potentially that whatever material

2:28:18they're making it out of is thicker you know in the parts that don't have battery in them it's

2:28:22just thicker so it could be squishier it is a little thicker it's definitely like so if you

2:28:26stack it side by side with the the you know so it's resting on like the volume buttons or the

2:28:33power on off switch stack it on the side and compare it side by side with the silicone case

2:28:38it's definitely a little thicker it stands up a little bit more the sides are thicker on this than

2:28:43on the silicone case. And if you think about it, it makes sense because it's actually a lot more

2:28:46rigid. It's, you know, you can kind of put the phone, I think there's a recommended way like the

2:28:51with the silicone cases, they recommend to put it in like certain angle first, but it doesn't really

2:28:55matter. You can just put any side in first and then just sort of squish the other side over the

2:29:02edge of the iPhone. With this, you have to slide it in like it's in between the two sides is like

2:29:07like a rail, it slides in like that.

2:29:10And the sides are definitely thicker.

2:29:12I don't know what, I think it's because

2:29:14it's meant to be more rugged.

2:29:16I think it is sort of a, you know,

2:29:18they're only advertising it as a battery case,

2:29:20but I think it's also Apple's answer to

2:29:22what if you want a more protective case

2:29:24for drops and stuff like that.

2:29:27- Yeah, I mean, once you're gonna have

2:29:28that giant thing on there anyway,

2:29:29there's no sense trying to skimp around the edges

2:29:31to try to make it look spelt, 'cause it's not gonna.

2:29:33- Right.

2:29:34I thought on the ATP, I thought you were the only one

2:29:36it was really reasonable. Marco and Casey made me a little angry with their take on

2:29:41it. I thought Marco was way too dismissive about it. What did he call it? He said it

2:29:45looks like an engineering prototype.

2:29:47Yeah.

2:29:48Like, I do. And this is the thing that gets me is I thought I did a pretty good job of

2:29:51my article. And then on Twitter, there's a handful of people, "Oh, of course, John

2:29:54Gruber likes it." I was like, "I didn't... It wasn't really an overly positive review."

2:29:59And I ended it with saying that I don't want to use it. And I called it weird and funny

2:30:03looking and ungainly. It wasn't like I was entirely complimentary. It was like, I just

2:30:09want to understand why they made it.

2:30:11Yeah, or just like, especially in things like this, where it's like a visceral reaction

2:30:16based on appearances, there's usually, and I would use lots of car analogies on ATP,

2:30:22coming from the car world, like, stuff like that can be polarized on, like the physical

2:30:26shape of an object whose purpose is mostly not dictated by its shape. People have strong

2:30:32opinions about, you know, a Porsche 911 versus a Corvette versus a Mustang, like, these are

2:30:37very different looking things, and in the grand scheme of things, there are engines

2:30:40and wheels, and aerodynamics aside, there are lots of features of cars that look the

2:30:45way they look for just aesthetic design reasons, so anything like that, where you look at a

2:30:51picture of something, as so many people did on the internet, look at a picture of this

2:30:54thing, and just have this negative gut reaction to it, and these articles come flying, like

2:30:59what's happening to Apple design or whatever, you really want to understand like, what is

2:31:05a reasonable rationale for this?

2:31:07And you could come to the conclusion that there is no rationale, that this is just like,

2:31:11it's the simplest thing that they could possibly do, and, you know, they were just lazy, or

2:31:17didn't have time, or like, or whatever, but with Apple, knowing everything we know about

2:31:22Apple, like, that just doesn't seem plausible, because no one was demanding that they release

2:31:26a battery case.

2:31:28It's like and who really cares in the grand scheme of things, right?

2:31:31But 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

2:31:36Like is is there an explanation because this is an area where Apple won't talk to the press for the most part

2:31:40It's like oh, let's have someone from Apple's design studio

2:31:43You're not Johnny I've because he's busy but someone lower level make the rounds to the tech press. No, not really

2:31:48That's not gonna happen right and nor should they because like aesthetics

2:31:51It's like look this is the product we have and we'll see what the reaction to it is

2:31:54But we think it's it makes sense in some way and how could they think this makes sense?

2:31:58So I was going back through what have they said in the past publicly about past designs that could conceivably apply to this design

2:32:05Well, they're true or not. Who knows we're just speculating but the bottom line is

2:32:08If you think it's ugly you think it's ugly

2:32:11Don't buy it buy one that you think is not ugly, right?

2:32:15I mean and the other thing I feel like maybe in my article I didn't cover this enough. It's afterwards is it?

2:32:22If you're wondering why it doesn't look just like a mophie

2:32:26Whatever juice pack air whatever their thinnest one is which is of course the one that Apple if Apple is gonna go that direction

2:32:32They'd make the thin it. They're not gonna make one of these you know the cases that have three thousand

2:32:36What's the unit milliamp hours milliamp hours

2:32:41It's so much easier to write MAH

2:32:44Why doesn't it look like those which is really like sort of the standard for all of them well of course

2:32:51they're not gonna make one like that because if they thought that was the right way to do it,

2:32:54they don't have to do anything. They're already there. The Apple store, you know,

2:32:58are filled with these battery cases that look like that. The only reason for them to make one

2:33:01is if they had an idea that was different. Well, and also, like, I think this is a factor. Like,

2:33:06they know a lot of people buy battery cases. Why shouldn't they have one? And not because,

2:33:12like, they just they need to get that money or whatever. But it's, it's like, as a, it's the

2:33:17same thing with diversifying the phone line. Why don't they make a big phone? Why shouldn't they

2:33:20make a smaller phone, why don't they make something in colors? It's like if it's something

2:33:23that people want and they're buying it anyway, why shouldn't Apple make a really good one?

2:33:28Why rely on third parties to fill that role? And so battery cases have apparently passed

2:33:32into the realm of things that are important enough and that while they purchase enough

2:33:35that Apple feels like it should have a first party solution. And so they do. I mean, I

2:33:39still have questions about the case in terms of how they came up with this compromise because

2:33:43it's like if you're going to be this bulky, like you said the same thing, like why not

2:33:46extend the battery up to the top and bottom, why not go edge to edge with it?

2:33:52Like why not match the capacity of similar thickness battery cases?

2:33:56And you know Apple has its explanations, which may or may not be rationalizations, but in

2:34:01the end a lot of it really does come down to design, because you have to pick a size

2:34:06and a shape and that dictates how much battery life you have, and let's say someone was really

2:34:10wedded to this design and they thought aesthetically it was beautiful and perfect and pure and

2:34:15what they wanted, then the aesthetic design could dictate the size of the battery as opposed

2:34:19to the other way around. It's hard to know without actually talking to the people behind

2:34:23the design. All we can do out here is speculate, and really on ATP, I wasn't going to dismiss

2:34:28anyone else's theories about like that there was time crunch or that, you know, like they

2:34:34didn't put in the effort they normally would. For all I know, maybe this was rushed and

2:34:37I don't know what's going on inside Apple, right? But is there a plausible explanation

2:34:42that, uh, that they say this was actually designed with the same care as every other Apple thing is

2:34:46designed with, or we're led to believe every other Apple thing is designed with, is that even

2:34:50plausible? And I can come up with causal explanations for it. So in the absence of any

2:34:54other information, you just have to kind of like say which one of those do you think is more likely?

2:34:58I think it's so, the hump is so striking that I think it really had to be the result. I think it

2:35:05would be so, I think the, I really doubt that it was the first idea they came up with. It's so

2:35:10unusual and it is at first glance I think almost it's almost impossible to

2:35:15say that it's not a little repulsive at first it just looks swollen in a way you

2:35:22know like you know like when you get stung by a bee and and you know like you

2:35:29get stung on your thumb and your thumb swells up to the base of your thumb

2:35:33swells up to the size of a golf ball like it looks painful when you see

2:35:36somebody with an injury that's swollen, it's like, ooh, you feel it.

2:35:40That's what it looks.

2:35:41It looks swollen, which is not a good look, at least at first.

2:35:45But I found myself after a few days, I kind of got used to it.

2:35:48It's just I stopped thinking of it as being supposed to look like a regular case

2:35:53and that it just looks like it has a battery on the back.

2:35:56Yeah, and like I would another possibility again, having not actually ever

2:35:59touched one of these, I can't say.

2:36:00Although maybe you can tell me what you think about this.

2:36:02like a lot of Oxo Good Grips, like, kitchen things look kind of weird-looking and ugly too,

2:36:10but they're good to hold. And so if you prioritize how good is this thing to hold,

2:36:15not saying this is what they did, because I think the back of it is not shaped like any part of the

2:36:18human hand. Human hand doesn't have like rounded rectangle divots in it or anything, but maybe

2:36:23some ask, like you said, holding your pinky under the lump instead of under the bottom of the thing,

2:36:28Like that could be a factor in it. Like it doesn't mean that they're right

2:36:32So 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

2:36:39that

2:36:40This was an intentional thing

2:36:42You 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

2:36:46Think Apple would make something look more like they make hell they make silicone cases look pretty much like every other silicone case

2:36:52It'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?

2:36:56In the Apple store like it makes perfect sense

2:36:58In addition to putting your pinky underneath,

2:37:02the putting your index finger on top of it

2:37:04is pretty good too.

2:37:05And it does sort of, in a weird way,

2:37:08it makes it feel as though you're holding a smaller device.

2:37:11Like you know that it's thicker,

2:37:13but it's like you have these,

2:37:14like from going back to like the old iPhone days

2:37:16with the first few generations

2:37:18when they were physically smaller

2:37:19and it was a lot easier to kinda get your index fingers

2:37:22on top while you still had some kind of reasonable,

2:37:24you know, and it felt like you could hold it more securely

2:37:27your fingers wrapped around it. Your fingers can wrap around the hump in a way that gives you a

2:37:32secure hold. If I were going to, and I knew in advance that I could pack it, if I knew that I

2:37:37were going to be using my iPhone camera to record, I don't know, like while I'm riding on a roller

2:37:42coaster or something like that, I would put it in this case. Like battery, even if the battery was

2:37:47completely depleted and I wasn't going to get one percent of charge from it, I would put my iPhone

2:37:52in that case to hold it while I'm going down a rollercoaster because I feel like I can

2:37:58get like a way more secure grip on that because of the material that it's made of and because

2:38:02of the hump the hump actually gives you like a good place to put fingers.

2:38:06How many trips to Disney do you have to take before you realize it is incredibly dangerous

2:38:10to take movies with your iPhone on a rollercoaster?

2:38:11I have a million signs like do not try to take movies.

2:38:14I wouldn't I wouldn't do it and it's not even because I wouldn't do it just because I it

2:38:20It would just ruin, it would, like imagining me dropping my iPhone on a rollercoaster at

2:38:26Disney would, just the thought of it puts me in such a bad state.

2:38:29It's not that, it's getting hit in the face at 90 miles an hour with someone else's phone.

2:38:34Because like you do it at the top of the loop or whatever, it's Six Flags there.

2:38:37So I guess Disney, I don't know how they manage it at Disney, but at Six Flags they had you

2:38:41going through like metal detectors, so like nothing in your pockets, like literally, it

2:38:45It was like going through the TSA.

2:38:46Like, you know, no car keys, no phones of any kind,

2:38:51just like nothing because--

2:38:53- Well, and it has six flags,

2:38:54the roller coasters go way faster too.

2:38:56- Yeah, I was just saying,

2:38:57like the roller coaster's going 60, 70, 80 miles an hour,

2:39:00and your phone is essentially stationary

2:39:02'cause it's like falling from above,

2:39:04and your face meets that essentially stationary phone,

2:39:07that's not a good experience for anybody.

2:39:09You can kill somebody with one of those things,

2:39:10so kids, no taking movies on roller coasters.

2:39:13- I'm not saying it as though I would do it.

2:39:14I'm just saying that if I were in a precarious situation

2:39:19and needed to have a grip on my phone.

2:39:20- You should do something else that people can relate to.

2:39:22How about going yachting?

2:39:23If you're going yachting, if you were doing Duran Duran,

2:39:26now it's too old, they don't get that.

2:39:27If you're in the video for "Rio"

2:39:28and you're on the front of the yacht

2:39:30and you want to take a movie of it,

2:39:31'cause it's really cool looking,

2:39:33bring the iPhone battery case.

2:39:35- I thought you had a good point on the ATP

2:39:38about it looking like a sci-fi,

2:39:40like if you just paved a hallway with them.

2:39:42Like use them as the tiles,

2:39:44the subway, you know, like the way that the subway, a hallway in the subway station has tiles.

2:39:48Tile it with these, it would look like a great, you know, like you're in a set of like a one of

2:39:54Ridley Scott's, you know, classic sci-fi. Yeah, or like 60-70 sci-fi, you know, do like, you know,

2:40:00I mean, even 2001 era, but an alien or just, you know, anything like Buck Rogers, like they,

2:40:05I guess that's the way that, you know, the future was going to be like white and clean and smooth

2:40:09shapes everywhere. Yeah, but like, you know, some kind of inexplicable ridges and textures,

2:40:16though, you know. Yeah, like on a stormtrooper, like the stormtrooper's got the little thermos

2:40:21on his back, you know, what the hell's that for? I'm sure someone with a technical readout

2:40:24book knows, but like, it was always smooth and white, but there was these lumps, and

2:40:28they seemed purposeful, and it looked like futurey. I actually, and it might just be

2:40:31because I've got Star Wars on the mind this week, but I actually thought, or as soon as

2:40:35I saw it. I thought, boy, this is a real stormtrooper-y looking thing, because it even has a little

2:40:41bit of black around the cutout for the camera. In a way that it's not white, but sort of

2:40:48like an off-white, and yeah, the ridges, the extra ridges, some of them seem, which seem

2:40:52maybe a little inexplicable. There's a certain stormtrooper-y-ness to it.

2:40:57It was a wait for the next version to look like the surface of the Star Destroyer, with

2:41:01little greeblies or whatever they are all over, like little pipes and everything all

2:41:04I'm thinking of other ways this case could have existed like

2:41:07You never see the back of a Nexus 7 like the old Nexus 7s

2:41:11I don't think so, which is like it was like rubber and it had like cross hatching. Oh, yeah

2:41:16I know what you mean little divots come this could have like little lumps on it

2:41:20Like well think of a golf ball world has little you know

2:41:23Concave things or it could be the opposite. It could have convex things like a bunch of like bumps on it

2:41:30I mean, they could have been textured in so many different ways again

2:41:33It's just a completely aesthetically speaking because it's not or maybe there would be some functional grip there

2:41:37But this one is there's one lump, but the surface treatment is essentially smooth. These all seem like

2:41:43Intentional aesthetic choices that that weren't necessarily for gone conclusions that there is some kind of philosophy behind this design

2:41:52Yeah, I texture is gonna come back at some point

2:41:57I feel like we're in an era when texture has sort of fallen out of favor

2:42:01Perhaps largely driven by Apple, but it'll it'll come back eventually

2:42:05You remember the what was it?

2:42:07I figure which case it was the ones with the holes cut out on it the colored ones with the holes cut out from Apple

2:42:12Colored what cases? Oh, yeah. Yeah. Yeah the ones for the

2:42:165c

2:42:19Right, 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

2:42:24But that was essentially textured because you had these holes in the case that would feel like you'd feel them with your fingers. Yeah

2:42:29I was gonna be yeah, it would be good for another show

2:42:35I was gonna say cuz you know everything they make that was made out of this

2:42:38I don't even know if they call it bead blasted anymore

2:42:40But it's this aluminum that has the same feel the phones have this aluminum

2:42:44The Mac books have this feel the even my iMac has the same is made out of the same stuff

2:42:49But eventually they're gonna switch to a new material from aluminum

2:42:53Yeah, we talked about that in ATP a few times especially with respective phones the aluminum and glass thing is going to seem as

2:43:00barbaric as CRT

2:43:02Video displays due to us now

2:43:05Like you mean it was this big heavy glass thing with like lead on it and electron gun

2:43:09Like how thick was the glass and like that just seems barbaric, right?

2:43:12Aluminum glass phones like the idea that you know for our grandkids the idea that if you dropped your phone on the sidewalk that it

2:43:18it would break, it's gonna sound idiotic.

2:43:20It's gonna sound like we were using

2:43:21the glass shampoo bottles from Prell again.

2:43:23Like, why would you bring glass into the shower?

2:43:25That's so stupid, why didn't you use plastic, right?

2:43:27But right now--

2:43:29- Or like when eyeglasses were made out of glass.

2:43:32- Yeah, shatter and just go into your eyeball.

2:43:35It's like you're doing the best with the materials you have.

2:43:38And aluminum and glass,

2:43:39like it took them a while to get to that.

2:43:40And lots of plastic,

2:43:42and plastic is pretty good material too,

2:43:43especially for radio reception and titanium.

2:43:46But like they went with aluminum and glass

2:43:47'cause I feel like it's just a higher quality experience.

2:43:50Like it feels nicer and more expensive.

2:43:51Glass obviously on the screen is better than plastic

2:43:53as we learned from the iPod Nano,

2:43:54like the plastic is gonna scratch.

2:43:56So you want something that's scratch resistant

2:43:58for the screen and then aluminum for the back.

2:44:00It's just, I mean, 3GS was plastic,

2:44:02but the, you know, and they use glass for the 4 and 4S

2:44:07and like, but aluminum and glass

2:44:08is a pretty solid combo right now.

2:44:10And to get better than it,

2:44:11you basically need something that's not gonna shatter.

2:44:15So it has to be more flexible for the display.

2:44:17And for the back part, I guess you'd

2:44:19probably have to go with something that's

2:44:21equal strength but lighter.

2:44:22So graphite composite plus really hard, flexible screens.

2:44:27Or as I've always said, get the thing down to the size

2:44:29and weight of a credit card.

2:44:30And it really doesn't much matter

2:44:32what material you make it out of because you drop your credit

2:44:34card on the pavement and you pick it back up.

2:44:36Nothing's going to happen to it.

2:44:37It weighs too little that air resistance becomes a factor

2:44:41that doesn't even fall that fast.

2:44:42And if it does, it's flexible enough

2:44:44that it's not gonna shatter or break.

2:44:46- Yeah, I thought of an idea,

2:44:47I was thinking about drops today.

2:44:48I was watching Jonas play Destiny

2:44:50and he jumped off a giant cliff

2:44:52and it seemed like he should have taken damage and didn't.

2:44:55I was like, how come you don't take damage?

2:44:56And he goes, oh, you just,

2:44:57you have like some kind of jets on your feet or something.

2:44:59You know, like a jet, you play the game, so you know.

2:45:01- You need to give me his PSN name, I'll help him out.

2:45:04Or he'll help me out, we'll see.

2:45:06- Yeah, I'll hook you up.

2:45:07And I thought, oh, that's clever.

2:45:08And then I watched it, you know,

2:45:09so it's more or less like your Boba Fett.

2:45:11You jump off a thing and at the very end,

2:45:12you just put on your jet pack a little bit to slow down.

2:45:14I thought, you know, that would be a clever thing

2:45:16for an iPhone to have.

2:45:17If you dropped it, if it had like a little--

2:45:20- That is the Jetsons era solution to this problem.

2:45:23You know what we could do if everything had jets.

2:45:26- Just to slow down just enough--

2:45:26- Just a puff of air at the last moment would keep it from--

2:45:29- And to gently land.

2:45:31But you're right, you know, something like that.

2:45:33But something's got to, I think the other thing

2:45:34that's gonna seem barbaric is the way that

2:45:36with everything made out of aluminum, that they're,

2:45:40Like, can you even imagine how much raw aluminum Apple is sending to China every single day

2:45:47that's just being cut into these shapes by the CNC machines?

2:45:53Well, I mean, the great thing about aluminum is all the shavings and scraps and crap that come off of the machine,

2:45:57like all the material that is removed, that can just go back into the whole recycling thing,

2:46:00because, you know, it just, it's not waste in the sense that you can just recycle that,

2:46:04melt it back down, and put it into another ingot and it comes back to you.

2:46:08But it's a tremendous amount of stuff that they're just cutting which is an incredibly difficult process

2:46:13Yeah, yeah

2:46:15I 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?

2:46:20Make a sturdy laptop that's also thin with it doesn't creak or crack or break or feel cheap

2:46:24and they try lots and lots of different things and

2:46:27Boy, this one with the original MacBook Air that the machined out piece of aluminum just seems great

2:46:32I 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

2:46:36Strength of materials at this thickness? Do I feel like I can take this MacBook?

2:46:41I'm sorry. The MacBook one is ATB parlance for the MacBook that only has one port on the side of it

2:46:45Just it's just called the MacBook. Anyway

2:46:47Can 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

2:46:52comfortable feeling like eventually aluminum becomes no good because

2:46:56It'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

2:47:04That's why you think about things like carbon fiber where they bend but spring back and they're also very light and very strong

2:47:10It's awesome. Well, they switched this year to a new aluminum for the phones

2:47:14So though they look the same the 6s and 6s plus are made from this new

2:47:197000 series whatever they want to call it, but it's Apple's new fancy-pants

2:47:23version of aluminum

2:47:26And who knows maybe they have you know, maybe maybe this it'll be a take a lot longer than I think

2:47:30It may be a couple years from now. They're gonna have 8000 series of aluminum

2:47:33I don't know, but I kind of feel like by upgrading the aluminum they've used that they're sort of approaching

2:47:39This is as good as it's going to get and well

2:47:42Yeah, 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

2:47:47flexibility or hardness and you want you know hardness on the on the edge the sharp edge because you wanted to

2:47:53Be sharp and be able to cut through things

2:47:55But 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

2:47:59Right so going with it with the aluminum like it's not they're making up these new things so you can make aluminum

2:48:04You can decide do I want it to be very strong and hard or do I want it to be?

2:48:09Like malleable and flexible and not not that it's gonna shatter or anything

2:48:13But like with the aluminum what they're doing now is well

2:48:16We still want to make the phones really thin we want to make them harder to bend and so can we make it so this?

2:48:21Is stronger aluminum hopefully maintain the weight, but at a certain point like it you know like aluminum foil certain point

2:48:28It's gonna bend and what you need is a material that springs back and aluminum is not going to spring back

2:48:33So you will reach a limit in thickness where aluminum is just a non-starter because if you just keep saying

2:48:41We'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

2:48:45It'll just be too darn thin

2:48:46So the material revolution will come eventually and I'm sure Apple has been for many years now researching

2:48:51What will replace aluminum if anything in our things is it time to try to do a carbon fiber foam because it would be great

2:48:57for radio reception and it would spring back better than aluminum does and we wouldn't

2:49:02have to worry about bendgate as much but you know can we manufacture it in the design so

2:49:07we want to we can't you can't machine carbon fiber you have to mold it and it's really

2:49:10complicated and super expensive and so I think I'll be waiting a while.

2:49:13From the land of fantasy rumors based on like patent fillets and stuff there's the liquid

2:49:17metal stuff that people have been fantasizing about for years so who knows maybe there's

2:49:21something like that too.

2:49:23or in the Jetson puffer jet thing, you can have that material where you can bend it,

2:49:28but if you subject it to some sort of like, if you put it back in heat or you're like

2:49:31apply electricity to it, it goes back into the original shape. Remember that?

2:49:34Yeah, I do remember that.

2:49:36Yeah, the circuit boards inside don't really like bending too much either, by the way.

2:49:40All right, let me take one last break here and then we can talk about Star Wars. I want

2:49:45to tell you about our last sponsor. It's our good friends at Harry's. Now the holiday season

2:49:49is here. This show will be airing tomorrow, December 14. I think it's up till December

2:49:5518. Free shipping is over. But if you order up to the 18th,

2:50:00holiday shipping, economy shipping for the holidays ends on the 18th. So you got a couple

2:50:05of days. You're probably listening to it if you're a fan of the show, because I feel like

2:50:09there's going to be big news that Craig Federighi was on the show. You've got till December 18.

2:50:14You can order it. You can pay for economy shipping. It'll get there before Christmas.

2:50:19What a great gift if there's any kind of men, fathers, brothers, husbands in your life.

2:50:24You can just buy them the holiday kit.

2:50:26They've got these holiday kits with razor blade, with the handle, with some shaving cream and stuff.

2:50:34They sent me one that had this facial stuff.

2:50:37You know, you clean your face with it.

2:50:40I like it. It's good. My skin looks good with it.

2:50:43Really cool stuff. Awesome packaging.

2:50:47This is one of those things you give him a gift if you want to give somebody a gift with razor and stuff like that

2:50:50Give them these Harry's things and they open it up. It looks great makes you look like you have good taste

2:50:55go there check out these holiday kits and

2:50:59Really great prices to

2:51:02High quality blade high quality shaving creams and lotions and gels whatever you want in the thing

2:51:09So go there save yourself the hassle. I hate Christmas shopping good. God almighty. This is like the most right

2:51:16I 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

2:51:21Get them a mattress and get them a shaving kit from from Harry's

2:51:24Where do you go to find out more?

2:51:27go to

2:51:29Harry's calm and then use this code talk show know the and their code either use that code and

2:51:35You'll save five bucks off your order and remember you got to the 18th December 18th 2015 and you can still get it

2:51:43Express shipping for the holidays

2:51:46You're worried about that?

2:51:49I'm worried to death about that.

2:51:51I've had two things on my mind the last week, Jon.

2:51:53I've found out I was stressing over this interview with Craig Federighi.

2:51:57I wanted to do a good job with that, and I don't want to have any Star Wars spoilers.

2:52:03Now I've got this interview out of the way.

2:52:05We've got a nice little post-interview discussion with me and you about it.

2:52:09I feel a great sense of relief.

2:52:11Right now, as I speak to you on Sunday, December 13th, I'm now breaking out into a sweat,

2:52:17worrying about spoilers for The Force Awakens.

2:52:19At least you can just hide in your house.

2:52:21I've got to go to an office, though, with people who may be watching the trailers and

2:52:24reading every single thing they can find out about these things.

2:52:27And as you approach a date, you're right, it's like when you get close to an Apple event.

2:52:30Like the day before, that's when the real leaks start coming, like, "Oh, you know,

2:52:35here's what's actually going to come out," and you find out after the fact that actually

2:52:37that you know seven hour before thing was 100% true.

2:52:41(laughing)

2:52:42- My friend Moises Cholou, he's down in Austin,

2:52:45he's a big film fan.

2:52:48He's trying to get in, he's trying to angle his way

2:52:50into the press screening down there,

2:52:51which is Tuesday morning.

2:52:53But I think the big one is in Los Angeles tomorrow,

2:52:57I think it's on Monday.

2:52:58So I feel like, and the critics I think usually know

2:53:02to keep their spoilers to themselves,

2:53:04but that it's not just like a,

2:53:05it's not a critics only screening,

2:53:07Like all sorts of, anybody who's anybody in Hollywood

2:53:10can go to the screening on Monday night

2:53:12and blab about whatever the secrets are.

2:53:15So now I don't know what to do.

2:53:16- And you just gotta like,

2:53:18just think about like the stupid think pieces

2:53:20that are gonna be like,

2:53:21I can't believe they did this thing in Star Wars

2:53:23and people gotta have a big think piece

2:53:25about what it means for the franchise.

2:53:26Like no one's even seen the movie.

2:53:27You don't have to think pieces on it.

2:53:29And that's gonna make people go.

2:53:31Like that's gonna make people wanna read the story

2:53:35and I don't wanna know.

2:53:36And I can't hide from the world like I can I can ignore the internet

2:53:39But 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

2:53:44And destroys everybody like I don't want to hear about it

2:53:46Right and I'm so worried that it will it'll pop up in one of those

2:53:52You know like you get to the bottom of an article on most

2:53:55News sites today, and they have these all other things around the web you might want to know

2:54:01I

2:54:03I'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

2:54:08and it'll be right there in front of the house.

2:54:10Of course it'll be because it'll be a think piece that assumes everybody already knows the spoiler and it's like,

2:54:14"Now I want to discuss this spoiler," right?

2:54:16I have, I don't know, it's almost like worse that I've been successful at keeping myself almost entirely spoiler-free.

2:54:24And I also have a good ability, you know, maybe it's a bad ability in the long run,

2:54:32but in certain aspects, but at least for this movie, I can willfully forget some things.

2:54:37>> I don't have that ability.

2:54:39>> [LAUGH] So I can't even think, there's been at least two minor spoilers that I've

2:54:47encountered in the last few weeks. And as I speak to you right now, I can't bring them to mind.

2:54:53And I think I could if I tried, but there's a weird ability in my mind to compartmentalize,

2:54:59where I've kept them away. And when I see them in the movie, I'll be like, "Oh yeah, I knew that,

2:55:03but I'd forgotten it. But I remember that I knew it. I can do that."

2:55:06I'm trying to just not think about the things I already know, the few tidbits. Because if I

2:55:12think about them, I'll figure crap out. So I just avoid that part of my mind. Don't even think

2:55:17about that. I don't know if that's going to work. But it's the same type of thing. Once I see it in

2:55:21the movie, I'd be like, "Yeah, I could have derived that from the information I had at hand, but

2:55:25I didn't want to.

2:55:26So here's what I've done.

2:55:27I just to be clear, I did watch the first trailer.

2:55:31And then I as soon as it was over, I was excited.

2:55:35And then I hit play again and watched it again.

2:55:38And then I thought, shit, why did I watch that?

2:55:40I shouldn't have watched that.

2:55:41I feel like I've already had things spoiled.

2:55:43And I know that J.J.

2:55:45Abrams is sort of an anti spoiler director.

2:55:48And largely, it seems so far they've kept a lot of stuff under wraps.

2:55:52It really seems like I could be wrong.

2:55:54Maybe there's other websites where like the whole thing is spoiled. I haven't seen it. I

2:55:59Trusted him to make a trailer that didn't really have spoilers. I wouldn't say that it did

2:56:04I think it was a good trailer, but I still regretted it. I still regretted it

2:56:08I regret that I've seen the stupid lightsaber with the the

2:56:11Side blades. Yeah, I mean so I watched the first trailer too

2:56:16Just because I was so desperate to know like what is this gonna be like?

2:56:19Like what is what is it even gonna look like?

2:56:21like because it was all bets were off like who knows where they were gonna go with this franchise it could have

2:56:26Was it gonna look like the trailer for Prometheus and be like dark and gritty was it gonna look like?

2:56:31Tomorrow and be happy and like like Howard what is there?

2:56:36What was their take on Star Wars gonna be so I felt like I had to watch the first trailer

2:56:39But after that, I've been often like so far

2:56:42my barriers held up pretty well through a series of filters and people who are nice to me and everything but

2:56:47the one the one place has been tearing down a little bit television shows I almost almost anyone to tell you this but

2:56:53I

2:56:55discovered by 30 seconds skipping through ads on my TiVo as

2:56:58The 30 seconds skip went by occasionally a frame

2:57:01That my mind would register as Star Wars would come by and it was enough for me to know that oh my god

2:57:08They'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

2:57:13I did and it's my my weakness for sports

2:57:16got me. I was watching, I watched the Dallas Cowboys Redskins on Monday Night

2:57:21Football and apparently it seemed to me as though that Disney had

2:57:28purchased a commercial in every, at least one commercial, in every single

2:57:32commercial break. Like a true carpet-barbing marketing campaign and

2:57:37it's there, you know, there's, I took to like skipping through the commercials

2:57:43like with my this is like you couldn't do it but I just skipped through the commercials

2:57:49with my good eye closed and so I was only using my you're listening with your good ear my damaged

2:57:58left eye which I could still see certain things and had like a sense of some things that were

2:58:03going on and like oh that's a red lightsaber but it's like at least the details were blurred out

2:58:08yeah when I saw that the single frames I got nothing from it and I was I was satisfied with

2:58:13that because every like because most of the time I would see zero frames and like once every five

2:58:18shows I would see one frame depending on where it landed but the other day the very first commercial

2:58:23like the very first commercial in the commercial break was a Star Wars one and I got like half a

2:58:27sentence out I'm like oh damn it like because you know you're not you gotta find the remote you gotta

2:58:31pick it up you gotta you know what I mean like I was I was too slow on the draw I was like in the

2:58:35old west I got I got shot I really don't know how this week is gonna go especially once people start

2:58:41I got my tickets. My first screening is Thursday night, which seems like cheating to me.

2:58:46If it premieres on Friday, I don't know how I'm going to a 10 o'clock Thursday screening.

2:58:51I mentioned that too when someone was saying it was because of that--

2:58:54I don't know if that's true. After that Aurora shooting in Colorado,

2:58:57the midnight showing stopped being a midnight.

2:58:59I feel like that was happening before that, but who knows?

2:59:02So it's like--

2:59:04So my 10 o'clock Thursday night screening is a midnight screening,

2:59:08there's like an asterisk, which is we know it's not really a midnight.

2:59:11Right. And like they do 7 p.m. screens like the midnight show is now at 7 p.m.

2:59:15It's like it's like, you know, Christmas creep or anything.

2:59:17I assume the midnight showing will be like the Wednesday before.

2:59:19Yeah. Or it's like the Saturday night, seven o'clock mass.

2:59:22If you're Catholic, it's like, well, we're calling it Sunday.

2:59:25It's Sunday somewhere.

2:59:27Yeah. So my showing is on Thursday as well.

2:59:29Yeah. So, you know, then Friday, I'm going to spoil it.

2:59:33I'm going to spoil everything for everybody else.

2:59:35I'll just feel so much better if I make it into that.

2:59:38And 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

2:59:42Line to go theater and people are coming out of the theater

2:59:45Especially if it's a theater that doesn't exit them out the back

2:59:47Like if the people who are done seeing the movie walk piece past the people who are still waiting to see the movie super dangerous

2:59:53Yeah, yeah famous everybody has famous. Maybe it's even

2:59:57Apocryphal stories of waiting in line for the Empire Strikes Back and then some

3:00:03Dipshit runs by and purposefully screams at the top of his lung Darth is Luke's father

3:00:09Yeah, and in the age of internet trolling

3:00:11I remember seeing this terrible YouTube video of someone driving a car past that people lined up waiting for like whatever was the

3:00:17Fifth book or some Harry Potter book where something dramatic happens

3:00:21other 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

3:00:26The 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

3:00:31Harry Potter for a bunch of little kids listening to this but yells it to the entire line and

3:00:35The worst part is like they don't know if it's true

3:00:38He could the person could be making stuff up

3:00:40But 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

3:00:47For me, don't be that person. That's that's the worst thing ever

3:00:50What's the only Star Wars movie that doesn't take have some part of it take place on tattooing?

3:00:55Is it one of the fake ones?

3:00:59No, it's not one of the Empire I guess right now all the fake ones have scenes on tattooing. Yeah, you're right

3:01:04In special edition to the editing tattooing parts the Empire don't remember just so that they had a Khorasan to Jedi

3:01:13Who knows what the hell they're adding?

3:01:14That would have been the worst if they just like it in between a cutaway as big as circular white from Dagobah

3:01:20they instead of going to the asteroid field they they cut to the

3:01:22Some droids toodling around in the sand. Yeah or like

3:01:27Like when they first start hunting for the Millennium Falcon like there's a phone call from Darth Vader to

3:01:32The Boba Fett and job is palace like come here. I need you

3:01:36Yeah, so what Lucas is really concerned about is like how did those bounty hunters all get on to the Death Star?

3:01:41I want to see them remember. He did that change for Jedi

3:01:43It's like that

3:01:44He showed like a Vader's shuttle taking him from point A to point B

3:01:46So we weren't confused about how he arrived like it closed it here or whatever. It's like right get it

3:01:50They flew there in their spaceships. We don't need to see it. I

3:01:55I think he had, I don't even want to get into what he added.

3:01:59Some of the additions though, like there's the, when you get into the list of like what was taken out of the

3:02:04"despecialized" or whatever you want to call it, the ones that were taken out of the "despecialized"

3:02:08you know, "Shammysdat Prince" or the, you know, what was added to the "specialized"

3:02:12everybody thinks of Han shooting first and all of these gratuitous things and the ridiculous

3:02:17CGI backgrounds they put behind the windows of Bespin and all these things that really, really stand out

3:02:22or the god-awful CGI stuff they added to Mos Eisley in A New Hope.

3:02:27It's the little things though, like your anger, your boiling anger is over these big ugly changes

3:02:34that really stand out and just don't add anything and take away some of the magic. But then when you

3:02:40read some of the little things that Lucas had added, you're like, "What? This man went insane."

3:02:46Like it's the little things that make you realize that he somehow lost his marbles.

3:02:50The one I had forgotten about until I was reminded, I think, in some Slack channel somewhere,

3:02:54I think they were talking to you about it, was the

3:02:56Dagobah when R2 gets spit out of the big swamp creature,

3:03:01and the actual line in the movie is "You're lucky you don't taste very good."

3:03:04That's what Luke says to him, which is a good laugh line, you know, whatever, for a silly situation,

3:03:08and he changed it to a less funny line.

3:03:10Like, it's not like, he was like, "You're lucky you got out of there."

3:03:13Like, no, no, the first one was better.

3:03:16It was adding a little bit of levity, it was sarcastic, it was...

3:03:19and Luke is kind of like sarcastic and a little bit cranky in that scene, so it's perfect.

3:03:24It's like you're lucky you don't taste very good. You're lucky you got out of there. That's your

3:03:28improvement. It's like, you know, when you bring someone in to punch up a script, this is the

3:03:31opposite. This is the guy who unpunches it, punches it down. It's... that's a perfect example. Maybe

3:03:37the canonical example. Maybe that's like the best example because it sounds inconsequential,

3:03:43but it was a little funny, and then it's not funny at all. And it also was like, establishes

3:03:49the characters. It is like, hey, Luke and R2 have a friendship, right? It's not just

3:03:57a device that's owned by Luke. He's, you know, there's a rapport between these two. And you

3:04:02know, everybody who's seen the first one knows that R2D2 is clearly a sort of sarcastic wise

3:04:08ass, right? He's a wise ass robot. You don't know what he's saying, but you can tell from

3:04:123PO's responses that he's a he's a wise ass.

3:04:15And Luke is giving it back to him.

3:04:18It actually is meaningful in some small way

3:04:21in terms of shaping the relationship between the characters.

3:04:24And it fits perfectly in that scene.

3:04:26Like I think one of my favorite cuts in the Dagobah sequences

3:04:29where like Luke is just like he just crashed his ship.

3:04:33Everything's all crappy.

3:04:34And it's like his droid was attacked by a monster and spit out.

3:04:37And he's covered with water and his droids covered in mud.

3:04:40He's like, I don't even know what we're doing here.

3:04:42And R2, like to end the scene, R2 expels mud from one of his vents. The top goes

3:04:46and like that basically sums it up. Like it just, it's like slapstick, slapstick

3:04:52comedy, but also commentary on the situation. We're just, you know what? This is crap. We're,

3:04:58we're not doing well here. So to wrap it up, what, what is your expectation going? Do you

3:05:05think there's going to be a movie that makes you happy or do you think it's going to be another

3:05:09disappointment.

3:05:10Do you have show notes?

3:05:12You should put the incomparable episode where we talked about this in the show notes.

3:05:15I will.

3:05:16It's an entire episode of the incomparable about anticipating The Force Awakens.

3:05:20And to sum up what I said there, I'm of two minds about it.

3:05:24On the one hand, when I dwell on it a little bit, I start to get depressed because I'm

3:05:28like, "There's just no way that this can be as meaningful to me as the original three

3:05:34movies are," which is fine.

3:05:35Like, you know, whatever.

3:05:36Like, I start to think that there's just no way this can be as meaningful to me,

3:05:40because things you experience in your formative years always have a certain extra amount of impact.

3:05:45But on the other hand, I say, "Well, but isn't it possible?"

3:05:50It's not as if as an adult it is impossible to get to me.

3:05:53It's impossible to be affecting, and what I try to do is think of

3:05:56what media, movies, or whatever have seen as an adult that have, like, really stuck with me and affected me.

3:06:04Just basically to put like what what is the bar like have I just become such a jaded individual that no movie can really get

3:06:09To 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

3:06:13Back to was like a lot of the Miyazaki movies

3:06:15I saw as an adult

3:06:16Really stick with me and are meaningful and important movies that I would put right up there with Star Wars movies

3:06:22And then maybe they're not as big because they I didn't see them in my former years

3:06:25But I saw them as an adult and basically what I'm doing is I'm reassuring myself that

3:06:27That a movie can get to me and so that's the top bar and then the other thing I have to say

3:06:33Is like so it's you've decided that you as an adult are able to be affected by a movie

3:06:38What if you watch this movie this new Star Wars movie and it's merely a pretty good movie

3:06:43Are you okay with that? And what I used was a Star Trek movies like the recent reboot Star Trek's I

3:06:47Enjoyed those and when I've rewatched them I said, you know what? This was a fun movie

3:06:51But I don't really care that much about Star Trek. So there's way less baggage there

3:06:55But what I've been trying to think about is if I go into this movie

3:06:58It's not the most amazing movie ever saw but it's competently made it's fun. It's exciting. I have fun watching it

3:07:04Do I say yeah, but it was Star Wars and it's supposed to be way better than that

3:07:09Or 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

3:07:16about

3:07:16and I don't know what the answer to that is, but really what I've come down to is I think I

3:07:21Believe it is possible for for this movie to be really important and meaningful

3:07:26I probably I think it probably won't be and

3:07:28I'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

3:07:36Like the prequels I my big fear is I feel like

3:07:40The big problem with the prequels was well

3:07:43There's so many and we can we've talked we've talked about them at length on this show and others

3:07:47But to me at a fundamental level

3:07:49It's that that the characters were flat and the dialogue was flat and there is no camaraderie

3:07:54And 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

3:08:01prequel trilogy was to explain all the mysteries that that the original thriller trilogy lied on and

3:08:07I'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

3:08:14That Lucas, but the next three movies wouldn't be after the return of the Jedi

3:08:19They would be before when Ben Kenobi and Anakin Skywalker were younger

3:08:24And it always seemed like well, of course he could do that because my god

3:08:27There's so much stuff that they could explain what the hell the Clone Wars were how the Emperor came to be how the Emperor

3:08:32Empire came to be all of these things could you know could be a movie but the fact that they were were

3:08:38mysteries or were only gently or vaguely alluded to

3:08:41It 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

3:08:49Right down to explaining how the force worked

3:08:52I don't think that's gonna be a problem

3:08:54I feel like JJ one thing JJ Abrams knows how to do is have

3:08:57engaging characters and a sense of camaraderie and and a good a

3:09:03Good ear for dialogue. My big concern is that that the modern?

3:09:07Needs or perceived needs in Hollywood of a big-budget action movie are such that there's no way, you know

3:09:17It's still going to be filled with 110 minutes of CGI action chases

3:09:23Yeah, I talked about that in the incomparable to in the context of like modern movie making sensibilities

3:09:30Because this using the Star Trek again as example you've seen those right there. Yeah

3:09:35Star Trek rather. Yeah, especially like the first one. Yeah, and so those definitely

3:09:43Look at Star Trek with modern movie making sensibilities and I like them like I thought they were enjoyable

3:09:49but but you have to say like those movies are

3:09:52Star Trek as reimagined through the loan through the lens of a modern filmmaker and for the Star Wars things. I

3:09:59I really fervently hope that

3:10:02JJ is a big enough Star Wars fan that what they do what he does instead is

3:10:10You know it this certain Star Wars magic that I want to feel in this movie

3:10:14Not that it's any worse or better than modern movie making sensibilities

3:10:18But it's a different set of sensibilities that inform the original trilogy

3:10:21And I feel like those those still work and are still fresh

3:10:25So I want this movie to feel like Star Wars first and foremost

3:10:28I don't want it to feel like Star Wars as the scene through the lens of a modern filmmaker and this thing

3:10:35It's a continuum. I'm not saying it's like you're on one side of it on the other

3:10:37But I desperately want this and again I use Miyazaki as my example Miyazaki movies are about all sorts of different topics across decades

3:10:45But they all feel like Miyazaki movies

3:10:47So I'm okay with this movie being different from the original trilogy in fundamental ways

3:10:53but it has to feel like Star Wars it shouldn't feel like a

3:10:56Modern movie a modern reimagining of Star Wars. I want it to feel like Star Wars at least just these three

3:11:03After that fine then totally reimagine everything about it, but I want these three movies seven eight nine to feel like Star Wars

3:11:10Yeah, that's a good way to put it. I agree and there's it is it's almost like a branding thing

3:11:14You know that there was a certain way that the the original series just lacked bombastic

3:11:21scenes, I mean, I mean like the the the space battle in Return of the Jedi sort of I think set the

3:11:29Set the stage for modern action movies and it was so awesome at the time and I do love it

3:11:33It's one of the and it's one of my favorite things in the whole return of the Jedi. It's fantastic

3:11:37the way that the ships are so dynamic and the camera moves around and stuff like that, but

3:11:43It's it's if you just use a stopwatch and measure how much of the movie is taken up by that battle

3:11:49It's actually very little because it was so incredibly hard for them to do it

3:11:53You know that the computer controlled where everything was actually like a an actual model

3:11:58And in the modern filmmaking where it's once you have all this stuff set up you can just let like

3:12:03You know like it's I got the way that transformer movies work where they're really just two hour CGI

3:12:10Chases through us, you know where transformers are throwing themselves into skyscrapers

3:12:15Yeah, and like you're trying to think about what is it that makes something feel like Star Wars a lot of it is

3:12:20The limitations of motion control cameras and and the you know the 70s and 80s, right?

3:12:26That defined the look of the space battles because what could you do with the mode control camera?

3:12:30We can do this move that move that move in this move and we can optically composite them together and that kind of defines it

3:12:35But 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

3:12:41Like that's not the modern way movies are scored. That is that is an older way movies are scored

3:12:46Like it's not that's not done and you know, John Williams doesn't put an orchestra behind

3:12:52the 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

3:12:58Of music is a weird old style of music so you can go a long way towards making a movie feel like Star Wars

3:13:04without you know like yes, you can do anything in CG, but

3:13:09Make it feel kind of like Star Wars now

3:13:11You can you can do a twist not like in the trailer that we both saw the the camera movement around the Millennium Falcon

3:13:17Falcon when it's doing all these strange maneuvers you couldn't really do that

3:13:20feasibly with the motion-drill camera especially with the crazy backgrounds

3:13:23and everything you can do it with CG but in some sense it still feels Star Wars

3:13:27because lots of those swoopy moves where the camera was following the ship and

3:13:31the ship was twirling around this is just like that cranked up a little bit

3:13:36more it isn't it's a difference between that and like the like the fancy the

3:13:41fancy way that Han piloted the Falcon into the asteroid crater in Empire

3:13:46Strikes Back, where it was like this exuberant, like, straight up, straight down, paperclip,

3:13:52you know, like, U-motion, you know, it's a show-off type of guy.

3:13:59Accompanied by an ascending and descending scale in the soundtrack from John Williams

3:14:03with like the flutes or whatever going in there, like, that's totally a Star Wars type

3:14:06thing. And comparing it to, like, remember, did you watch the Battlestar Galactica reboot?

3:14:10Yeah, I did.

3:14:11Remember they used to do this thing that made it look like the Vipers or whatever were being

3:14:16filmed by someone with a handheld camera far away so it would shake and then they would do the really dramatic zoom in

3:14:22Yeah

3:14:22It's like to acquire the ship and then try to get it centered in the frame

3:14:25Like someone trying to catch like a long Hail Mary pass like a bad cameraman trying to say where the hell is the football?

3:14:31I got it zoom in they don't do that these days

3:14:33I saw that big Hail Mary and like they were headed the camera back the whole time

3:14:36Don't they follow the ball anymore? Whatever the hell happened to NFL films where you get to see the thing spiraling towards you

3:14:40Where is that tech anyway?

3:14:43Yeah, you can you can make something

3:14:45Feel like Star Wars and be modern without making it look like Bao Stark or like to be like all of a sudden

3:14:51Everything is handheld shaky cam and there was shaky cam in the trailer

3:14:54So I'm like, I'm not saying you can't use shaky cam. You totally can't I just I just overall

3:14:58I want the movie to feel like Star Wars, right?

3:15:01And part of that to me is that it has to you have to let certain scenes

3:15:05Just just let them breathe and don't worry about whether there's a lot going on. Like give us something that's a mystery

3:15:11Give us something that's new and then just let us figure it out

3:15:14Like some of my favorite scenes in the original trilogy are just like r2d2 by himself

3:15:18Just off in the desert on Tatooine and you just slowly watch the r2d2 roll across the desert

3:15:24But there's it it's engaging because you're like well, where the hell is this robot going?

3:15:29Yeah, like Empire my favorite one like this. There's so many scenes that end like with with the mud being spit out

3:15:37That's the end of that scene before they cut to a different one

3:15:39It's like, but wait, how does that conclude?

3:15:41It doesn't have to conclude with a line or an event or a call to action

3:15:45that can end with the feeling or just showing like,

3:15:48some, you know, Yoda walking off into the misty swamp

3:15:51and Luke just saying stay at the camp, like

3:15:53something else is going to happen, but you're left with the feeling.

3:15:56How are the characters feeling this morning?

3:15:58Are they dejected? Are they hopeful? Are they cautious? Are they afraid?

3:16:01That's so much more important than ending every scene with a call to action

3:16:06that leads to the next scene.

3:16:07We have to do the whatever and then go show the whatever.

3:16:09And you know, it's just as I get excited about this movie Amy keeps reminding me of

3:16:14the movie AI and

3:16:17You know, which was written by Stanley Kubrick. I think he even got a producer credit, but it came out after he had died

3:16:24But the you know

3:16:27the basic story is that it was a movie he had been to Kubrick had been developing for a long time many years and

3:16:33decided that he didn't want to direct it that Spielberg should direct it because it needed a warmth a

3:16:39Human empathy that he knew that his movies lacked that it coldness would be the wrong way to approach it

3:16:44And so he called up Steven Spielberg and said, you know, what do you think about that? I got this movie

3:16:49Would you want to work with me and Spielberg is a huge Kubrick fan and they'd been friends over the phone for years

3:16:53I was like, okay, and then the poor guy died, but Spielberg made it anyway, and we're going to see it opening night

3:17:00Of course

3:17:00I could not wait and I'm going to see it opening night and I just paused and we had another friend with it

3:17:04Was me Amy and my friend Don and I just said I just want to tell you guys

3:17:07I just want to make a prediction right here

3:17:08I think there's a very strong chance that we're about to see the greatest movie that's ever

3:17:13Had you not seen any other Spielberg movies like yeah, he's got human worth, but he's also a little sappy

3:17:19That's what I said going into CA

3:17:22Seriously, I said in all seriousness. I wanted it. Like I wanted the the being right points

3:17:29Before 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

3:17:35That's ever been made. I mean not that AI was

3:17:38Incredibly terrible, but it was not it it missed the mark. I think most people agree

3:17:43I don't think it makes it's not a bad movie, but it is certainly bad given the pedigree of the

3:17:48Filmmaker so that's why that's what a B keeps reminding me of with the force awakens

3:17:54Well, but you're not making strong predictions about no

3:17:56We're cautiously optimistic, but like this has everything going for it like the thing

3:18:00I think about in this movie that the things that have faded it to exist is I mean obviously the reason exists at all is

3:18:06Lucas sells gets him out of the picture so we don't to worry about his picadillos messing with things. You know what I mean

3:18:11Yeah

3:18:11And who do they get to direct it the guy who's basically admitted so many times before this like that

3:18:17He's a super big Star Wars fan

3:18:19Like when he when he directed Star Trek

3:18:22I'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

3:18:26I'm sure he'll do a good job, but boy wouldn't it be great if he could do Star Wars

3:18:30But now that he's done Star Trek

3:18:31There'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

3:18:34Well, he got to like essentially warm up on the lesser franchise Star Trek, right?

3:18:39and finally and hone his craft over a

3:18:42Series of movies and television shows over the years and then you could say like he's at the top of his game now

3:18:48Fulfilling his childhood fantasy as any one child, you know child at a similar age to direct a new Star Wars movie

3:18:54and he's the guy doing it, right? Now, I've heard there's been creative tensions between him and

3:18:59the people who are running the franchise, and that kind of makes me worry about the future of this or whatever,

3:19:04but, like, boy, the star is really aligned for both us and J.J. Abrams to have. I like J.J. Abrams,

3:19:09I like his other movies,

3:19:10I like that he got to practice on Star Trek, and I really hope that he, like,

3:19:14uses all his skills and all his powers and the Godfather parlance to just, like, put everything he has into this, this,

3:19:21It's his childhood dreams as well as ours tied up into this movie, and I really hope it comes together.

3:19:27So I'm optimistic. We'll see how it goes.

3:19:31Anyway, John Siracusa, thank you for your time. This has been extremely generous of you. We've gone on a long time.

3:19:38Craig didn't take all my time. This would have been, you know...

3:19:42No, I told you you weren't going to get cheated out of time.

3:19:45John was worried when I asked him to do the show that he'd get shortchanged on time because of the Craig Federighi segment.

3:19:50segment, not to worry. Yeah, well, just make it a three hour show, whatever.

3:19:54Yeah, big, long, big, long, healthy. It's like a holiday meal, big, long, healthy meal.

3:19:59I should thank all of our sponsors. We've got Harry's. Go to them, buy their shaving

3:20:02stuff. Wealthfront, you can invest your money. Squarespace, you can build your own website.

3:20:07And Casper, you can buy a mattress, which I again, I'm telling you what a holiday gift

3:20:11idea that would be. John Siracuzzi, you can find him on his weekly podcast with the other

3:20:17guy's ATP that's accidental tech podcast at ATP FM and he's just at Syracuse on

3:20:26Twitter anything else no I think you covered it there we go thank you John

3:20:30thank you