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: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: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