139: ‘How Many Fingers Should This Baby Have?’ With Special Guests Craig Federighi and John Siracusa
00:00:00
◼
►
I always end up seeking back to figure out what part I missed where the podcast started,
00:00:06
◼
►
and then I realize it just starts.
00:00:11
◼
►
That is how it goes, Craig.
00:00:15
◼
►
So this is a great thrill for me to be speaking to you.
00:00:21
◼
►
Craig Federighi, Senior Vice President of Software Engineering at—what's the company?
00:00:33
◼
►
And we are talking on the occasion of the open sourcing of Swift, which went live last
00:00:43
◼
►
What day was it last week?
00:00:44
◼
►
It was last Thursday, wasn't it?
00:00:47
◼
►
It's been huge.
00:00:49
◼
►
Yeah, but it was incredibly exciting for us.
00:00:52
◼
►
Yeah, so we're speaking, as we speak, it's about a week later.
00:00:55
◼
►
So how do you think this first week of Swift as an open source project has gone?
00:01:00
◼
►
Yeah, really, really well.
00:01:02
◼
►
I mean, the level of activity on GitHub is off the charts.
00:01:07
◼
►
I mean, we've had really high aspirations for Swift from the beginning, but at every
00:01:12
◼
►
step it's been pretty amazing for us how much bigger it's gone than we could have ever hoped.
00:01:18
◼
►
And I think already on GitHub, we're a more active project than I think all the other
00:01:23
◼
►
languages that are on GitHub, which is just incredible for first week. I think over 60,000
00:01:31
◼
►
people that have taken a clone of the project. So it's pretty amazing. And the team is just
00:01:40
◼
►
ecstatic over the whole thing.
00:01:42
◼
►
Yeah, there's different ways for a big company, especially a big company, to do a quote unquote
00:01:46
◼
►
open source project. There's sort of like, yes, technically it's open source, but it's
00:01:50
◼
►
really just sort of a zip file with a open source license and there it goes,
00:01:56
◼
►
you know, have at it. And then there's the actively engaging in a community
00:02:03
◼
►
manner with the outer world. And so when you guys announced that WWDC Swift would
00:02:10
◼
►
be open source, I think there were some skeptics who thought maybe it was going
00:02:13
◼
►
to be a, well technically it's open source and there it is, but this is
00:02:17
◼
►
really like full throttle, fully engaged with the the world outside Cupertino.
00:02:23
◼
►
Yeah, I mean it's funny, I guess there there always will be skeptics, but anyone
00:02:28
◼
►
who's been watching our team in the context of like the LLVM world, Clang,
00:02:34
◼
►
LLDB, and our WebKit team would see how how much developing in the open is in
00:02:42
◼
►
in the spirit of those teams.
00:02:45
◼
►
And so the Swift team has been among the most engaged with our developer community of any
00:02:51
◼
►
group in Apple, even prior to open sourcing in terms of from the first launch of our announcement
00:02:58
◼
►
of Swift 1.0 in the app store, I mean at the WWDC, and how much they were engaging with
00:03:05
◼
►
all the feedback that was coming in and modifying the language right up to 1.0 and then beyond.
00:03:12
◼
►
And this is really an extension of how the only way they really have ever wanted to work.
00:03:18
◼
►
And so, yeah, they are very excited to be working completely in the open.
00:03:23
◼
►
And it really is a case where as all the features in Swift that we'll be announcing officially
00:03:30
◼
►
to the world at our next developer conference, you can sort of see them unfold before your
00:03:36
◼
►
eyes and the time leading up to that as they're working on them in the open on GitHub.
00:03:42
◼
►
like everything else Apple does.
00:03:44
◼
►
It's very, very similar to everything else we do.
00:03:47
◼
►
That's correct.
00:03:48
◼
►
The thing that to me is most telling-- and I know that GitHub
00:03:51
◼
►
makes it easy to track all these changes
00:03:53
◼
►
and see how many people are involved.
00:03:55
◼
►
But to me, if you just want a quick look at just how much
00:03:58
◼
►
this is a collaboration between the Swift team at Apple
00:04:04
◼
►
and the outside world, it's the Swift evolution mailing list,
00:04:09
◼
►
where you guys have been upfront about this
00:04:13
◼
►
right from Swift 1.0 in 2014,
00:04:16
◼
►
that this is not a finished language.
00:04:18
◼
►
You didn't go and finish a language,
00:04:21
◼
►
and here it is, have at it.
00:04:23
◼
►
It's, we're still working on this.
00:04:26
◼
►
A lot of what we're gonna be working on
00:04:27
◼
►
is tell us what you need,
00:04:30
◼
►
and here on the mailing list,
00:04:32
◼
►
there are people actively engaging,
00:04:34
◼
►
and employees from Apple, Chris Latner
00:04:36
◼
►
and the people on his team,
00:04:38
◼
►
are fully engaging with these ideas and proposals
00:04:42
◼
►
that are coming from outside the company.
00:04:44
◼
►
Already one week into it being an open source project.
00:04:47
◼
►
- Oh yeah, I mean, I think our team
00:04:50
◼
►
is a really seasoned team in the world
00:04:53
◼
►
of developing languages.
00:04:55
◼
►
And we know that a language really
00:04:58
◼
►
can't be developed in a vacuum.
00:05:00
◼
►
It is a product of how people use it
00:05:04
◼
►
and the problems that people are trying to solve.
00:05:06
◼
►
And so we knew from the outset with SWIFT 1.0
00:05:10
◼
►
that we could come up with the language that,
00:05:12
◼
►
a first step you have to crystallize your basic ideas
00:05:15
◼
►
and have a starting point,
00:05:17
◼
►
but we knew we needed feedback then
00:05:19
◼
►
to work toward the language that ultimately SWIFT has
00:05:23
◼
►
and has become and will become in the future,
00:05:25
◼
►
but that we needed to have this kind of open dialogue
00:05:29
◼
►
and open sourcing is, as you say,
00:05:32
◼
►
just really accelerating and deepening the kind of feedback
00:05:36
◼
►
that we're getting.
00:05:37
◼
►
And so it's really energizing for us.
00:05:40
◼
►
And I think it's really exciting for a lot of the developers
00:05:43
◼
►
in our community as well to be a part of it.
00:05:46
◼
►
- What are the other reasons to go open source
00:05:50
◼
►
with a new programming language?
00:05:53
◼
►
- Well, you know, when we talked about it just briefly
00:05:56
◼
►
at WWDC, I think we laid out the big ones,
00:05:59
◼
►
which are for us, Swift is, we think,
00:06:06
◼
►
the primary programming language that developers
00:06:10
◼
►
should be taught to programming in, actually.
00:06:12
◼
►
I mean, if you're gonna learn computer science,
00:06:14
◼
►
Swift is a fantastic learning language.
00:06:17
◼
►
And if you're a developer who is going to invest
00:06:20
◼
►
a huge part of your career in mastering Swift
00:06:24
◼
►
and developing code in Swift,
00:06:26
◼
►
you're gonna want the ability to use that code
00:06:29
◼
►
in every context possible.
00:06:30
◼
►
And you're gonna wanna use your skill in that language
00:06:32
◼
►
in all the environments in which you have to work
00:06:34
◼
►
to do your job.
00:06:35
◼
►
So whether you're scripting your build system or writing web services or, of course, writing
00:06:43
◼
►
your mobile applications, we want to make sure that you can invest in Swift in that
00:06:49
◼
►
way and know that it's going to be available to you everywhere.
00:06:52
◼
►
And so we saw open sourcing as a critical element to make Swift reach its potential
00:06:58
◼
►
to be the language, the major language for the next 20 years of programming in our industry.
00:07:06
◼
►
It's a really ambitious goal.
00:07:10
◼
►
But I think at every point along the way, because this has been our vision from before
00:07:15
◼
►
we first unleashed Swift on the world, but at every step, actually, the reaction has
00:07:24
◼
►
really outdone our expectations.
00:07:26
◼
►
So maybe our goal isn't so outlandish.
00:07:31
◼
►
Do you think that-- I would say that for education purposes,
00:07:34
◼
►
it really has to be open source, because there's really no way
00:07:37
◼
►
that a language is going to take root as a teaching language
00:07:41
◼
►
if it's proprietary to an Apple platform or any other vendor's
00:07:50
◼
►
We had a lot of universities who would
00:07:53
◼
►
teach a specialized mobile programming course
00:07:56
◼
►
or an iOS programming course.
00:07:57
◼
►
And in that context, of course, they teach Swift
00:08:00
◼
►
and Stanford has an outstanding course
00:08:03
◼
►
that's on iTunes U about programming in Swift
00:08:05
◼
►
to program on iOS.
00:08:08
◼
►
But when it comes to bringing it into the core curriculum
00:08:11
◼
►
that every student in the university has to take
00:08:13
◼
►
to let's say, learn computer science,
00:08:16
◼
►
making it open source, having it available to every student
00:08:18
◼
►
on whatever platform they're gonna use to do their work
00:08:21
◼
►
is we think ultimately a huge enabler.
00:08:26
◼
►
And so many of the people we talked to,
00:08:29
◼
►
the professors wanted to use the language in these ways,
00:08:34
◼
►
but they needed it to be open source for this to happen.
00:08:38
◼
►
And so we're really excited
00:08:40
◼
►
to follow through with them on this.
00:08:42
◼
►
- Why not open source it?
00:08:45
◼
►
What were the downsides that were debated
00:08:48
◼
►
before you decide, you know, made the decision
00:08:51
◼
►
to go open source with it.
00:08:52
◼
►
- You know, there really weren't,
00:08:55
◼
►
you know, we of course talked it over at length.
00:09:01
◼
►
We had a tough time coming up
00:09:03
◼
►
with a significant reason not to do it.
00:09:06
◼
►
It was more a when question, you know, is it now?
00:09:10
◼
►
And we knew after 1.0 that we weren't quite there,
00:09:14
◼
►
that we wanted to get that first round of feedback,
00:09:17
◼
►
begin to stabilize the definition of the language.
00:09:20
◼
►
But as we got close to WWDC this last year,
00:09:23
◼
►
we realized we were where we needed to be,
00:09:27
◼
►
to take a step that we knew was gonna happen.
00:09:30
◼
►
It was gonna be this year,
00:09:30
◼
►
or it was gonna be the following year.
00:09:32
◼
►
And we realized we were where we needed to be.
00:09:35
◼
►
And so we moved ahead,
00:09:38
◼
►
and the hunger out there was so great,
00:09:41
◼
►
we thought, let's do it now.
00:09:45
◼
►
But the downsides are really limited.
00:09:47
◼
►
I mean, I think it's inevitable but positive
00:09:51
◼
►
that Swift will be used in all kinds of contexts
00:09:54
◼
►
outside of Apple.
00:09:55
◼
►
And that's kind of the point.
00:09:56
◼
►
So that's fine.
00:09:58
◼
►
It's clear we're gonna get a lot of people wanting
00:10:02
◼
►
to do things with the language that aren't directly related
00:10:05
◼
►
to Apple's line of business.
00:10:08
◼
►
And that's okay, right?
00:10:10
◼
►
That's actually fine as well.
00:10:12
◼
►
So there weren't a lot of downsides,
00:10:16
◼
►
and we think the upsides are tremendous.
00:10:18
◼
►
- One of the areas that I would,
00:10:22
◼
►
I think it's definitely,
00:10:23
◼
►
I see so much excitement about it already
00:10:25
◼
►
is in terms of being cross-platform
00:10:27
◼
►
is the use of Swift on servers.
00:10:30
◼
►
And a lot of that is certainly gonna be Linux.
00:10:33
◼
►
And you guys have already done the port to Linux.
00:10:35
◼
►
- That's right.
00:10:37
◼
►
- And that's an area where I feel like we,
00:10:41
◼
►
I have no idea.
00:10:42
◼
►
I feel like it's going to be used, but I just,
00:10:44
◼
►
it's like, it's so early,
00:10:45
◼
►
we don't know where that's going to be.
00:10:46
◼
►
But do you see that happening,
00:10:48
◼
►
that it's gonna be used for a lot of server-based development
00:10:50
◼
►
that's really outside Apple's platforms?
00:10:54
◼
►
- Oh, totally, yeah.
00:10:55
◼
►
I mean, you know, from really the outset,
00:10:59
◼
►
IBM, for instance, jumped all over Swift
00:11:01
◼
►
for building their mobile apps,
00:11:04
◼
►
and almost immediately they were coming back to us with,
00:11:08
◼
►
we really wanna use this on the server.
00:11:10
◼
►
How can we get this on the server?
00:11:12
◼
►
And of course with an Apple,
00:11:15
◼
►
there's tremendous passion for Swift
00:11:17
◼
►
and our own iCloud team has been, you know,
00:11:20
◼
►
completely chomping at the bit to be able to apply it
00:11:22
◼
►
in many and many of the things they do.
00:11:24
◼
►
So I think it's gonna be the first,
00:11:28
◼
►
among the first kind of breakout uses of Swift.
00:11:31
◼
►
And of course, these days, so many mobile applications
00:11:34
◼
►
are part mobile app, part server code.
00:11:38
◼
►
And in a lot of cases, you at the very least
00:11:40
◼
►
want to share your knowledge.
00:11:41
◼
►
But very often, you want to share parts of your code,
00:11:44
◼
►
parts of your model layer, some of your utility libraries.
00:11:47
◼
►
And having Swift enabling you to do that
00:11:50
◼
►
is going to be huge for a lot of our community.
00:11:53
◼
►
Yeah, I can definitely see that.
00:11:55
◼
►
That, to me, is sort of the building for the future version
00:12:00
◼
►
or aspects of Swift versus, say, Objective-C,
00:12:03
◼
►
which has roots from 20 or even 30 years ago.
00:12:07
◼
►
And the fact that the cloud, or whatever you want to call it,
00:12:12
◼
►
but client software running on a device,
00:12:14
◼
►
talking to servers somewhere off on the internet,
00:12:18
◼
►
is part of, I would say, almost certainly
00:12:21
◼
►
the overwhelming majority of apps
00:12:23
◼
►
that are being written for these platforms.
00:12:25
◼
►
That having a language that makes sense
00:12:27
◼
►
in both ends of the communication is huge.
00:12:31
◼
►
Well, exactly.
00:12:33
◼
►
And if you look at where I think it
00:12:36
◼
►
is for a lot of developers prior to Swift,
00:12:40
◼
►
they probably were using Objective-C.
00:12:44
◼
►
If they had high performance code, they had to write.
00:12:46
◼
►
Part of Objective-C is C. And so they were dropping down
00:12:49
◼
►
into C to do some of the more optimized work, which
00:12:52
◼
►
can be almost another language.
00:12:55
◼
►
There's a real continuum there within the environment.
00:12:58
◼
►
They might have been using a scripting language
00:13:01
◼
►
for part of what they do.
00:13:02
◼
►
And then they might be using a server-side language,
00:13:05
◼
►
And Swift is uniquely capable of spanning
00:13:09
◼
►
from really easy and natural kind of scripting,
00:13:13
◼
►
expressive uses.
00:13:14
◼
►
It's a great application programming language.
00:13:16
◼
►
But it was also designed to be a great systems language
00:13:19
◼
►
and be really fast so that you can
00:13:20
◼
►
do C kind of high performance work without compromises
00:13:25
◼
►
And then it's going to work in the cloud as well.
00:13:29
◼
►
So I think it's going to really unify the environment
00:13:33
◼
►
for a lot of developers.
00:13:35
◼
►
would you describe a systems language? Because this is right from the, one of my notes here,
00:13:41
◼
►
from the Swift programming language. It says Swift is intended to be "the first industrial quality
00:13:47
◼
►
systems programming language that is as expressive and enjoyable as a scripting language, designed to
00:13:52
◼
►
scale from hello world to an entire operating system." What is a systems programming language?
00:14:00
◼
►
Well, there's some low-level bits and some matters of spirit, I think.
00:14:08
◼
►
And in terms of low-level bits, Swift has a very predictable memory management model,
00:14:15
◼
►
a very contained runtime.
00:14:18
◼
►
If you look at traditional scripting languages or languages like Java, they run garbage collectors.
00:14:27
◼
►
You really can't control memory in a significant way.
00:14:32
◼
►
Swift builds on our ARC technology that first came to Objective-C to provide really high
00:14:39
◼
►
performance and really predictable and manageable memory management, which means that if you
00:14:43
◼
►
wanted to write everything from an operating system kernel to a high performance graphics
00:14:49
◼
►
library, you could do that without inheriting a huge per process memory footprint overhead.
00:14:56
◼
►
You see that when you see how Apple's OS and apps are able to run in a lower memory footprint
00:15:04
◼
►
and we're able to ship devices with different memory footprints than some of our competitors
00:15:09
◼
►
who use languages that don't have this characteristic.
00:15:12
◼
►
But Swift is also designed so that when it can be fast, it's as fast as can be.
00:15:20
◼
►
So we aren't taking the overhead of dynamic dispatch for every call, but yet we can provide
00:15:27
◼
►
dynamism when needed.
00:15:31
◼
►
We can optimize, if you use an array in Swift, we can be every bit as optimal and do auto
00:15:39
◼
►
vectorization and parallelization in ways that you would expect from optimized C code,
00:15:47
◼
►
are very hard to do if you were trying to optimize Ruby or Python or even an
00:15:53
◼
►
Objective-C, you know, NSRA built on top of the foundation classes. And so you can
00:15:58
◼
►
go very, very low level and get very predictable peak performance out of your
00:16:03
◼
►
hardware. Yeah, so in other words, it's at least compared, let's just compare it to
00:16:08
◼
►
Objective-C. That Objective-C, there's so many great things we could say about it.
00:16:12
◼
►
it's served, you know, Apple so incredibly well. It still will for the foreseeable
00:16:18
◼
►
future in so many ways, but there's this big but, which is that sometimes you need
00:16:22
◼
►
to, let's say, drop down into C or C++, and now you're losing all of the stuff
00:16:31
◼
►
that you love about Objective-C because you need to drop down temporarily for
00:16:35
◼
►
performance reasons. And Swift, you don't need to do that. You can write the
00:16:39
◼
►
performance code right in Swift.
00:16:42
◼
►
That's right.
00:16:43
◼
►
I mean, Swift, I think when we first introduced Swift, we said we were imagining a world where
00:16:48
◼
►
we took what we loved about Objective-C without carrying forward the baggage of C. But what
00:16:54
◼
►
that meant is Swift has to replace C in its role in Objective-C programming.
00:17:01
◼
►
And it does that really well while bringing all of these higher levels of abstraction
00:17:08
◼
►
higher productivity programming techniques to writing that kind of high performance systems
00:17:12
◼
►
code, but also so great for app code.
00:17:18
◼
►
So one thing that Swift is not, I mean, and I think we've already covered this, but it's
00:17:22
◼
►
not Objective-C with prettier, better syntax.
00:17:27
◼
►
And it's the syntax of Objective-C that people find off-putting at least at first.
00:17:34
◼
►
And I know that that's a debate that people who love Objective-C and have used it for
00:17:39
◼
►
decades, it's a never-ending argument.
00:17:42
◼
►
But at least at first, even if you really, really love Objective-C, I feel like you can't
00:17:48
◼
►
avoid the fact that at first it looks weird.
00:17:53
◼
►
I'll admit, I'm an Objective-C lover.
00:17:56
◼
►
And there were plenty of good debates internally about, should we have a small talk inspired
00:18:03
◼
►
syntax, should we stick with something like Objective-C. But it is a, in the end, it can
00:18:15
◼
►
go either way.
00:18:16
◼
►
And what we were able to retain in Swift are the sort of literate nature of APIs that Objective-C
00:18:25
◼
►
enabled, the readability of code with the labeled arguments.
00:18:29
◼
►
And we brought all of that to Swift while at the same time having a syntax that is just
00:18:34
◼
►
much more concise and, at this point with the sort of evolution of people's expectations
00:18:39
◼
►
around programming languages, just much more natural for them.
00:18:43
◼
►
Like, is part of the thinking there that in terms of the small talk-inspired dynamic runtime,
00:18:51
◼
►
that you didn't need a new language to do that because you already have Objective-C?
00:18:58
◼
►
and that you can go, you know, that for the future,
00:19:01
◼
►
for the next 20 years, that that sort of model
00:19:05
◼
►
of looking at frameworks and programming languages
00:19:09
◼
►
isn't the best way to go from here going forward.
00:19:12
◼
►
- No, I would really separate, I know it's,
00:19:15
◼
►
I would separate the syntax from some of the underlying
00:19:20
◼
►
aspects of the runtime and the programming model.
00:19:25
◼
►
Swift, some of my favorite features from Objective-C
00:19:31
◼
►
are things like protocols and categories, which in Swift
00:19:37
◼
►
are called extensions, and those literate APIs,
00:19:43
◼
►
as well as first class classes with class methods.
00:19:49
◼
►
All of these things that are so important for us
00:19:51
◼
►
to build great APIs and great extensible frameworks
00:19:56
◼
►
were brought to Swift along with things
00:20:00
◼
►
like labeled arguments.
00:20:03
◼
►
And slowly we've also been bringing back
00:20:07
◼
►
much of the dynamism.
00:20:08
◼
►
Now there's some things that are possible in Objective-C.
00:20:11
◼
►
Most of the dynamism that you really want
00:20:15
◼
►
is the ability to figure out what class is this really,
00:20:18
◼
►
to be able to cast the class dynamically
00:20:20
◼
►
a particular protocol, to be able to do a kind of response to select or perform, select
00:20:28
◼
►
All of these things are possible in Swift today.
00:20:31
◼
►
And there's some other things that aren't, but that certainly we consider important to
00:20:34
◼
►
ultimately bring to the language.
00:20:37
◼
►
So this thing about a dynamic programming model is still very important to us.
00:20:43
◼
►
Now there's some very unsafe things that people do in Objective-C, and I've been guilty of
00:20:48
◼
►
of this myself where you walk the Objective-C runtime
00:20:50
◼
►
and hack the method table and that's cool,
00:20:54
◼
►
but it is highly unsafe and doesn't lead
00:20:56
◼
►
to very maintainable, scalable, large programs,
00:20:58
◼
►
some of those techniques, but the vast, vast majority
00:21:00
◼
►
of what makes Objective-C great and dynamic
00:21:02
◼
►
is either part of Swift now or certainly part
00:21:06
◼
►
of our ongoing ambition for the language.
00:21:09
◼
►
But the thing we didn't wanna bring from Objective-C
00:21:12
◼
►
is that in Objective-C, you're paying the overhead
00:21:16
◼
►
of that dynamism all the time.
00:21:19
◼
►
You're trying to use an array or some class
00:21:23
◼
►
and you've got the compiler with both hands
00:21:25
◼
►
tied behind its back in terms of opportunities
00:21:27
◼
►
for optimization, and then you're forcing the developer
00:21:31
◼
►
to then modify the way they've written their code
00:21:34
◼
►
to maybe drop down to C for something
00:21:35
◼
►
where performance matters.
00:21:37
◼
►
For Swift, because it's safer, has more type information,
00:21:41
◼
►
it gives the compiler what it needs to optimize when it can,
00:21:45
◼
►
But that alone doesn't stand in the way of all the,
00:21:49
◼
►
in my opinion, all the dynamism that matters.
00:21:52
◼
►
- In layman's terms, and I'm, you know,
00:21:55
◼
►
probably way more on the layman's side.
00:21:57
◼
►
It's been a long time since I've programmed regularly,
00:22:01
◼
►
but it, you know, for people listening,
00:22:05
◼
►
I think that the big difference is that with Objective-C,
00:22:10
◼
►
and what you mean, and you know,
00:22:12
◼
►
people might not even know what a runtime is,
00:22:13
◼
►
but more or less what it means is you compile the app,
00:22:15
◼
►
starts running and a lot of the stuff gets decided within the app while it's
00:22:20
◼
►
running and with Swift by by doing these things at compile time and knowing more
00:22:26
◼
►
of the type information forcing you to to be a little more specific about the
00:22:31
◼
►
type information up front it it it enables the compiler to do more
00:22:37
◼
►
efficient things before the app is even running because it's it's happening at
00:22:42
◼
►
at the time that the app is compiled.
00:22:44
◼
►
That's right.
00:22:45
◼
►
That's right.
00:22:46
◼
►
And then it permits all kinds of optimizations,
00:22:48
◼
►
because maybe if the compiler can determine ahead of time
00:22:52
◼
►
that absolutely this object you're about to message
00:22:58
◼
►
is of a certain type, and we know
00:23:00
◼
►
you've done whole module optimization,
00:23:02
◼
►
and we know what the result of that method is,
00:23:06
◼
►
sometimes the compiler could even inline the implementation
00:23:08
◼
►
and even involve the overhead of a function call.
00:23:11
◼
►
So let alone a dynamic method dispatch.
00:23:14
◼
►
And so that's part of how you can
00:23:17
◼
►
get these incredible hand optimized C kinds of performance
00:23:22
◼
►
numbers out of what you get to write as very high level code.
00:23:30
◼
►
So Swift, I think, has a really excellent balance there.
00:23:34
◼
►
But the key is we still have a runtime
00:23:36
◼
►
where you can look at your classes and introspect them.
00:23:41
◼
►
And there's more of that coming.
00:23:48
◼
►
Which partly is on an open roadmap,
00:23:51
◼
►
and partly is, you know, in terms of the frameworks
00:23:54
◼
►
for the operating system, obviously is the sort of thing
00:23:56
◼
►
that you're not gonna be able to talk about in advance,
00:23:57
◼
►
because that's not the stuff that's open source.
00:24:00
◼
►
That's right.
00:24:02
◼
►
I mean, some of it, honestly, you will see us
00:24:04
◼
►
bringing up over the course of the coming months
00:24:09
◼
►
in the context of the open source project
00:24:11
◼
►
because certain things that our team will take on,
00:24:16
◼
►
will bring them forward as proposals
00:24:20
◼
►
to the open source community
00:24:21
◼
►
and then you'll see us start to implement them.
00:24:23
◼
►
So I don't wanna jump the gun and pre-announce everything
00:24:26
◼
►
that the team is thinking, but as soon as they,
00:24:30
◼
►
and they've already pre-announced a bunch of the things
00:24:32
◼
►
And big part of the focus we wanted to make sure
00:24:35
◼
►
was clear right out of the gates with Swift
00:24:38
◼
►
was that the goal for Swift 3 was really to stabilize
00:24:43
◼
►
the binary interface and to refine the APIs
00:24:47
◼
►
and finalize our API guidelines and all of those things
00:24:50
◼
►
because we want, I think it's the next important step
00:24:54
◼
►
is to really stabilize the language
00:24:57
◼
►
and the environment for our community.
00:25:00
◼
►
And that's a big task.
00:25:01
◼
►
one of the things that's been so great about Objective-C
00:25:04
◼
►
is it has this great stability
00:25:09
◼
►
where that have enabled us to write frameworks
00:25:12
◼
►
with binary compatible interfaces,
00:25:13
◼
►
release over release over release,
00:25:15
◼
►
something that languages like C++ really couldn't get right.
00:25:20
◼
►
And we absolutely need to bring that to Swift.
00:25:24
◼
►
So we've brought forward some of those goals,
00:25:28
◼
►
but there are other things, of course,
00:25:29
◼
►
that will be added to the 3.0 ambitions
00:25:34
◼
►
as time goes on over the coming months?
00:25:36
◼
►
- One of the complaints I've seen,
00:25:39
◼
►
and part of this is just it's impossible to avoid,
00:25:42
◼
►
I think, with how early in its evolution
00:25:45
◼
►
Swift was unveiled to the world.
00:25:47
◼
►
But what I've seen from developer friends
00:25:51
◼
►
and just commentary on the internet
00:25:53
◼
►
is that it's hard right now
00:25:55
◼
►
to write a large-scale application in Swift.
00:25:59
◼
►
Apple has more people working on Cocoa apps than any other company in the world for obvious
00:26:09
◼
►
How has the feedback from the internal developers, the people who work for you, the engineers
00:26:16
◼
►
who work for you with extensive experience shipping user-facing apps shaped the direction
00:26:21
◼
►
of Swift from 1.0 to what's on the roadmap for 3.0?
00:26:27
◼
►
Of course, there are elements.
00:26:29
◼
►
We have all types here within Apple, right?
00:26:31
◼
►
Just like there are people that are liking the external community.
00:26:40
◼
►
They start out with the, "I love Objective-C. I don't want to change," to, "Okay, hold on.
00:26:45
◼
►
Maybe there's something to this Swift thing," to, "Let me give it a try," to, "Oh my God,
00:26:51
◼
►
We've gone through all the phases internally.
00:26:55
◼
►
We've had some really great adoption by teams like the team that does the dock and window
00:27:02
◼
►
management on OS X, who've implemented all their new features for El Capitan in Swift
00:27:09
◼
►
and started mass converting all of their code and say that they just couldn't imagine going
00:27:15
◼
►
back and that they're more productive with it.
00:27:18
◼
►
Part of what our internal teams need to deal with, though, is that they're working on,
00:27:25
◼
►
say, the current version of Swift 2.0 while it's not done yet.
00:27:30
◼
►
And so it's--
00:27:32
◼
►
I mean, while it's not even WWDC level done yet, right?
00:27:37
◼
►
And they're working on the interfaces
00:27:41
◼
►
in terms of our internal frameworks
00:27:42
◼
►
that haven't been modernized for Swift.
00:27:45
◼
►
And so it can be--
00:27:47
◼
►
they get it rough.
00:27:48
◼
►
They've got to really love it to make that leap,
00:27:51
◼
►
because they're working on a very, very bleeding edge
00:27:54
◼
►
environment when we use it internally. Thankfully with Swift 2.0 now well out the door,
00:28:01
◼
►
that's stabilized things a good bit and they're really open to it. But there's been just a lot of
00:28:09
◼
►
feedback and a lot of it has helped with the impedance, making sure the impedance between
00:28:16
◼
►
Objective-C and Swift is absolutely minimized because of course we have and will continue to
00:28:21
◼
►
to have and continue to continue writing more Objective-C code.
00:28:26
◼
►
And so the ability of Swift and Objective-C code
00:28:31
◼
►
to work together completely naturally is a huge focus.
00:28:35
◼
►
And a bunch of things like generic collections,
00:28:39
◼
►
support for lightweight generics in Objective-C
00:28:43
◼
►
were a big pain point internally and something
00:28:46
◼
►
that we fixed in the language and is now
00:28:48
◼
►
great for all of our app developers externally.
00:28:52
◼
►
So it's been a not dissimilar road for us internally
00:28:58
◼
►
to what you see outside, but in terms of Swift
00:29:02
◼
►
and writing big apps, it's certainly the case
00:29:05
◼
►
that when Swift 1.0 came out, heck,
00:29:07
◼
►
we didn't support incremental compilation
00:29:09
◼
►
in the very first update, and so that was gonna be
00:29:12
◼
►
a limiting factor for productivity
00:29:14
◼
►
for people that had big apps.
00:29:17
◼
►
a lot of that stuff has changed.
00:29:18
◼
►
And then in 2.0, having a good error handling model,
00:29:22
◼
►
having availability checks so you could span API versions,
00:29:26
◼
►
these sorts of things,
00:29:28
◼
►
I think have really addressed the vast majority
00:29:31
◼
►
of the pain points that we were experiencing
00:29:34
◼
►
that I think the community was experiencing
00:29:36
◼
►
about writing larger apps.
00:29:37
◼
►
And so much about Swift is actually inherently better
00:29:41
◼
►
for building big apps because it makes it,
00:29:45
◼
►
handles modules and namespaces
00:29:49
◼
►
in a way more naturally than Objective-C. It makes the API contracts a little
00:29:54
◼
►
more clear, the code more maintainable, so
00:29:57
◼
►
we're very comfortable.
00:30:00
◼
►
Objective-C's namespace management was more or less, "Let's just all agree
00:30:04
◼
►
to put unique initials." Right?
00:30:07
◼
►
Yeah, it's amazing it's taken us this far, but yes, yes, that has basically been the
00:30:12
◼
►
So, yes, exactly. It is, you know, I don't think...
00:30:16
◼
►
Maybe the bar wasn't that high, but we have vaulted over it.
00:30:21
◼
►
How do you manage, as the chief mofo in charge of all this, how do you manage the enthusiasm that you clearly have for Swift?
00:30:30
◼
►
And what to me seems like a sincere belief that Swift is the way forward with the necessary conservativeness that you need, you know,
00:30:39
◼
►
you know, so that there still has to be a lot of objectives he written.
00:30:44
◼
►
Like, how aggressive can you be about putting teams on,
00:30:47
◼
►
"Sure, go ahead and do that in Swift."
00:30:49
◼
►
You know, it's really, I mean, people here are idealistic yet really pragmatic,
00:30:55
◼
►
and I think you see that as an Apple characteristic
00:30:59
◼
►
in many, many elements of what we do.
00:31:03
◼
►
And so, teams know with the nature of what we're trying to get done
00:31:08
◼
►
in their area any given year, the nature of their code base, whether Swift is the right answer for
00:31:16
◼
►
them or where it's the right answer. Even teams where, for one reason or the other, they can't
00:31:23
◼
►
jump right on Objective-C, or rather, Objective-C conversion to Swift now, they then use Swift
00:31:30
◼
►
heavily for writing all their unit tests, which is great because then, at least as they're introducing
00:31:36
◼
►
new APIs, they're experiencing their own APIs in Swift and living on, you know, sort of eating
00:31:44
◼
►
their own dog food in that regard. We do have some constraints internally which we're addressing,
00:31:49
◼
►
but because we, I mean, it's a, maybe there's something in our closet a little bit, but we
00:31:56
◼
►
still support running 32-bit apps on the Mac. And the 32-bit runtime doesn't actually support Swift
00:32:03
◼
►
right now. And so what that means is if we've implemented a framework that's
00:32:09
◼
►
available to 32-bit code, we actually can't write it in Swift. And if that code,
00:32:18
◼
►
if that framework is used across iOS and OS X, as many of our frameworks are, that
00:32:23
◼
►
introduces a little stumbling block as well. So you know, teams recognize what's
00:32:28
◼
►
practical and what's not practical and find ways to use Swift wherever they can.
00:32:32
◼
►
There's no shortage of enthusiasm.
00:32:35
◼
►
I... this has been so geeky and so fun.
00:32:41
◼
►
Sorry about that.
00:32:42
◼
►
No! In the best possible way.
00:32:45
◼
►
I really enjoyed... I loved... I saw you did a whole round of interviews last week and I read them all and I thought it was great.
00:32:51
◼
►
And I didn't want to cover the same ground and I don't think we did.
00:32:54
◼
►
I think this was... this is truly, truly eye-opening to me and I really...
00:32:57
◼
►
I certainly appreciate your time,
00:32:59
◼
►
but I really appreciate the openness that you've had here.
00:33:03
◼
►
Is there anything else you wanna say
00:33:05
◼
►
before we wrap up the segment?
00:33:06
◼
►
Anything else you wanted to talk about with Swift?
00:33:08
◼
►
- I just wanna say how, you know, to the world,
00:33:13
◼
►
or at least the subset of the world
00:33:15
◼
►
that listens to your podcast, which must be most of them,
00:33:17
◼
►
that how proud I am of the team that's made Swift possible.
00:33:22
◼
►
You know, I mean, of course there's Chris Latner,
00:33:24
◼
►
but he's part of an incredible team
00:33:25
◼
►
with folks like Ted Kremenek and Doug Gregor.
00:33:29
◼
►
And even, you know, people, Swift is,
00:33:32
◼
►
while we have our incredible compiler team,
00:33:35
◼
►
we've also got people who have been writing deep frameworks
00:33:39
◼
►
and apps within Apple for, in some cases,
00:33:44
◼
►
since the beginning of Next Step.
00:33:46
◼
►
I mean, people like Ali Ozer,
00:33:47
◼
►
who you may know from his talks at WWDC,
00:33:51
◼
►
has been so vital in shaping the language
00:33:54
◼
►
and how the language fits our frameworks
00:33:56
◼
►
and fits the needs of our developers.
00:33:57
◼
►
And I'm just so thrilled with the work that all of them do
00:34:01
◼
►
and the passion that they put into making Swift a success.
00:34:04
◼
►
And I just wanna get that out there for everyone
00:34:06
◼
►
'cause we're, and there are hundreds more behind them.
00:34:11
◼
►
It's been an incredible effort by our team.
00:34:13
◼
►
- Would you agree with this?
00:34:17
◼
►
I think that Apple is in a unique position to,
00:34:20
◼
►
if Swift achieves what you guys have set out to do,
00:34:24
◼
►
which is to make it like the default language
00:34:26
◼
►
that people might learn to program on
00:34:28
◼
►
for the next few decades,
00:34:30
◼
►
Apple's in a unique position to make that happen
00:34:32
◼
►
because you have these platforms, especially iOS,
00:34:36
◼
►
but the Mac, the watch,
00:34:38
◼
►
anything else that might be coming in the future,
00:34:40
◼
►
or TV OS. - TV, let's not forget
00:34:41
◼
►
about the TV.
00:34:42
◼
►
- That are so popular and are such a draw
00:34:49
◼
►
that they've made Objective-C,
00:34:52
◼
►
like the second or third most popular programming language
00:34:55
◼
►
on some of these, the lists of what books people buy,
00:34:58
◼
►
which I think to someone like you,
00:34:59
◼
►
who's been, started in the next days,
00:35:02
◼
►
if you would have found out that in the year 2015,
00:35:05
◼
►
Objective-C is the second most popular language,
00:35:07
◼
►
you'd be like, what?
00:35:08
◼
►
- I wouldn't have believed it.
00:35:09
◼
►
- Right. - I would not have believed it.
00:35:11
◼
►
- A language that there's some initial reluctance of people
00:35:13
◼
►
to get on board with.
00:35:15
◼
►
Now there's this language that is so approachable
00:35:19
◼
►
and really almost has like at a syntax level,
00:35:22
◼
►
you know, and when you're talking about
00:35:24
◼
►
like hello world type stuff,
00:35:25
◼
►
really almost looks like pure pseudo code.
00:35:29
◼
►
- That Apple is in a unique position
00:35:30
◼
►
where the draw is there with the platforms
00:35:34
◼
►
to really, really make this explode in popularity.
00:35:37
◼
►
- Yeah, I mean, I couldn't say it any better.
00:35:42
◼
►
I think we, when we created Swift,
00:35:46
◼
►
we, while we wanted it, of course, to be a great language,
00:35:50
◼
►
we also, from the outset, wanted it to be a great language
00:35:53
◼
►
for our platforms and the fact that it,
00:35:57
◼
►
and embody the lessons that we learned from creating
00:36:02
◼
►
so many deep frameworks and great apps over so many years.
00:36:06
◼
►
And what that's meant is on day one,
00:36:09
◼
►
Swift was, it wasn't a restart for the community.
00:36:13
◼
►
It wasn't a, hey, well, let me learn
00:36:15
◼
►
whole new set of frameworks, let me wait for Apple to create a whole new set of frameworks.
00:36:19
◼
►
Swift has been this automatic transition for people who wanted to, maybe who were new to
00:36:24
◼
►
our platform and wanted to get started.
00:36:26
◼
►
The whole world was open to them on our platform there, and I think that's been so huge to
00:36:30
◼
►
driving the energy around it.
00:36:33
◼
►
And then others have been drawn in just by the greatness of Swift as it is.
00:36:36
◼
►
I mean, it's amazing, these Swift language conferences where people talking about different
00:36:41
◼
►
functional programming paradigms and Swift and all these different things you can do
00:36:44
◼
►
with the language just based on what an amazing new language it is. So you bring those two
00:36:48
◼
►
communities together and it's magic right now.
00:36:54
◼
►
Thank you so much, Craig. I really appreciate the time.
00:36:58
◼
►
Yeah, thank you, Jon. It's an honor to speak with you. So thank you so much.
00:37:03
◼
►
Where's Craig? Did I miss him?
00:37:09
◼
►
You know what, since that ran as the first segment,
00:37:12
◼
►
I might as well just jump right into a sponsor read,
00:37:15
◼
►
which I was definitely not going to do in the middle of talking
00:37:19
◼
►
to Craig Federighi.
00:37:21
◼
►
He totally should have.
00:37:22
◼
►
He would have just sat there patiently.
00:37:25
◼
►
I feel like I could have done anything.
00:37:27
◼
►
He was incredibly gracious.
00:37:29
◼
►
He was absolutely-- I mean, I expected him to be nice,
00:37:31
◼
►
but he's very nice.
00:37:36
◼
►
Let me tell you about our good friends at Casper.
00:37:39
◼
►
You guys know Casper.
00:37:40
◼
►
They're the company whose URL I frequently get wrong and I won't today.
00:37:45
◼
►
These guys make obsessively engineered mattresses
00:37:49
◼
►
and they sell them at incredibly fair prices.
00:37:51
◼
►
Just the right sink, just the right bounce.
00:37:54
◼
►
You don't have to sit there and go through their website
00:37:55
◼
►
and pick three different types of mattresses.
00:37:59
◼
►
Do you want springs? Do you want memory foam?
00:38:01
◼
►
Do you want latex foam?
00:38:03
◼
►
Now, these guys are mattress experts.
00:38:05
◼
►
They're like the apple of mattresses where they figured it out themselves and they sell one type of mattress. It's their own custom
00:38:11
◼
►
Blend of latex foam and memory foam that has just the right sink just the right bounce
00:38:15
◼
►
So you don't door about that all you do is pick what size
00:38:19
◼
►
What size you want you want do you want to do what you want?
00:38:22
◼
►
You want a queen size you want king size you want a twin size?
00:38:25
◼
►
Whatever you need as you do you go to the website you order it
00:38:28
◼
►
comes to your house in a little box put it in a room where you want it you open it up and it makes a
00:38:33
◼
►
noise and it just soaks up the air and there it is. Now you say I don't want to
00:38:37
◼
►
buy a mattress without trying it. It's risk-free. You get a hundred days to try
00:38:42
◼
►
sleeping on this on your actual bed in your actual house. A hundred days and if
00:38:46
◼
►
you don't like it it's painless return. You just go to their website tell them
00:38:50
◼
►
you want to send it back. They'll take care of it. They'll send somebody
00:38:53
◼
►
to your house and get this mattress out of your house. It couldn't be easier.
00:38:57
◼
►
There's no hard sell if you decide to send it back. Could not be easier.
00:39:01
◼
►
Mattresses, they're made in America and the prices are unbelievable. 500 bucks for a twin size
00:39:06
◼
►
mattress up to $950 for a king size mattress. If you've shopped for a premium king size mattress
00:39:11
◼
►
in the last few years, you know how great a price point that is. I think it's fair to say that that's
00:39:16
◼
►
about half the price that you would pay for a premium mattress at like a retail mattress store.
00:39:22
◼
►
So really, really great. Could not be easier. You don't have to go to the store. You don't have to
00:39:26
◼
►
get this mattress home. You don't have to wait. It couldn't be easier. Where do you go to find out
00:39:31
◼
►
more and let me get this right. Casper.com/talkshow. Casper.com/talkshow.
00:39:38
◼
►
If you want to get a mattress and talk about great holiday gift ideas, boy, buying
00:39:42
◼
►
somebody a mattress is about as good as it gets. Put one under the Christmas tree.
00:39:46
◼
►
Use that URL and you will save 50 bucks off any of those prices I just told you about.
00:39:51
◼
►
So go get your kids new mattresses for Christmas at Casper.com.
00:39:58
◼
►
So here's the deal.
00:39:59
◼
►
So people are probably wondering,
00:40:00
◼
►
how did Craig Federighi end up on the talk show?
00:40:04
◼
►
And what happened was Apple got in touch with me
00:40:07
◼
►
when they started doing the--
00:40:08
◼
►
I guess it was a couple of days, actually,
00:40:12
◼
►
before Swift, the open source thing, was actually announced.
00:40:15
◼
►
And when they started reaching out to the press,
00:40:18
◼
►
they asked whether I'd be interested in having
00:40:20
◼
►
him on the podcast.
00:40:21
◼
►
And I was like, yeah.
00:40:24
◼
►
You should have said, let me check.
00:40:25
◼
►
Let me check my schedule.
00:40:27
◼
►
"No, Moltz might be on that weekend. I can't bump him."
00:40:30
◼
►
I was like, "Hell yeah." No real ground rules. It was very similar to when Phil Schuler
00:40:39
◼
►
was on the live show back at WWDC. It wasn't like they wanted questions in advance or anything
00:40:44
◼
►
like that. Their only request was that it be limited to somewhere around 20 minutes.
00:40:50
◼
►
So I think the fact that we went about 30 or 35 minutes was probably pretty good for
00:40:55
◼
►
multiplier is acceptable in their time limits.
00:40:59
◼
►
Well, I was absolutely watching the clock while we talked, and it felt like when we were rolling up around 20,
00:41:04
◼
►
it really felt like he was having a good time. He was very comfortable. And I think that was definitely, you know,
00:41:09
◼
►
Apple PR's concern would be, you know, they want to limit his exposure in case it was not comfortable,
00:41:15
◼
►
which I think is reasonable.
00:41:19
◼
►
Yeah, I wonder if they would have cut you off. Like, not that you want to run that experiment, but they actually said,
00:41:24
◼
►
"Do you know we gotta wrap this up?" or "No more questions."
00:41:28
◼
►
Probably, because Bill Evans from Apple PR was listening in.
00:41:33
◼
►
He was there. So I would suspect that if I went nuts and just kept him hanging,
00:41:38
◼
►
he probably would have texted me or something like that.
00:41:40
◼
►
It was like, "Hey, come on." It would have been friendly.
00:41:44
◼
►
Yeah, we're just talking about open sourcing Swift. I don't know how bad it could get, right?
00:41:48
◼
►
You're just talking about programming, right? A couple of nerds having a conversation.
00:41:52
◼
►
Yeah. Well, I'll tell you, I would love to hear your thoughts on the interview,
00:41:56
◼
►
because, and this is really, you know, I'm telling you right now, you were my,
00:42:00
◼
►
is this the right term? You were my spirit animal going into the interview.
00:42:03
◼
►
I thought, okay, I've only got 20 or 30 minutes. In my mind, if I,
00:42:08
◼
►
if I can make Syracuse a half happy with this interview,
00:42:11
◼
►
then I'll consider my job well done.
00:42:13
◼
►
That type of interview was tough, I think, because,
00:42:17
◼
►
so you've got Craig making the rounds to the tech press to talk about open
00:42:20
◼
►
sourcing Swift, you know, essentially what his job is
00:42:24
◼
►
doing that press tour to it's to tell everyone how great it is that
00:42:29
◼
►
Apple is doing this thing, right?
00:42:31
◼
►
Well, twofold. I would say twofold.
00:42:33
◼
►
First, it's to tell everybody how great Swift is.
00:42:35
◼
►
And then second is how great it is that they're making it open source.
00:42:39
◼
►
Right. But like his job on that press store is not to do what I think
00:42:44
◼
►
a lot of people might want out of an interview,
00:42:47
◼
►
whether it be podcast or text, which is especially programmers,
00:42:51
◼
►
and especially the direction that you took your interview with Greg,
00:42:54
◼
►
getting more technical and everything, is people want to have,
00:42:57
◼
►
not in a mean way, but in a sort of Usenet, old-style way,
00:43:01
◼
►
an argument about programming with a guy who is in charge
00:43:05
◼
►
of a really big platform that a lot of people program for.
00:43:08
◼
►
Like, it's not like a mean one, but you want to debate whether...
00:43:12
◼
►
I don't know what you want to... You just want to talk to the guy who's in charge.
00:43:15
◼
►
now finally I get to sort of, you know, complain about square brackets or tabs versus spaces
00:43:21
◼
►
or my pet peeve in Swift or the App Store or whatever, you know what I mean? Like, and
00:43:27
◼
►
I think that's more pronounced with Apple people because Apple has in the past tended
00:43:31
◼
►
not to make the important decision makers, especially the important technical people,
00:43:37
◼
►
available to the public in any way. So there was no other venue for you to, you know, air
00:43:44
◼
►
your grievances, it's like you got to talk to the people who were the most polished and
00:43:47
◼
►
the highest level and if your concern was about some minor feature of some framework
00:43:53
◼
►
or ADPI and you couldn't corner someone in a hallway, WWDC, there was no venue for that,
00:43:58
◼
►
so I think, I mean that's changing now as you discussed in the interview, but a lot
00:44:03
◼
►
of people might go into this thinking that they're going to hear, like they want it to
00:44:07
◼
►
be more adversarial, but like it's, A, I think it's impossible to be adversarial with Craig
00:44:11
◼
►
because he's the nicest person in the universe, and if he ever yells at people in meetings,
00:44:15
◼
►
you would never know it from seeing anything he does in public. He seems just like a super
00:44:20
◼
►
nice guy, enthusiastic and upbeat and positive all the time, so you're not going to have
00:44:24
◼
►
that with him. And B, that's not the purpose of the press tour, so it's a waste of time
00:44:27
◼
►
for you to do that. You should use that time much more valuably to engage in interesting
00:44:33
◼
►
conversation that's still on topic, and I think you did that.
00:44:36
◼
►
Yeah, it's the same way I approached the interview with Schiller, where it's... there were definitely
00:44:39
◼
►
questions that in theory I would like to ask, like if I could get them on the stand under
00:44:44
◼
►
oath and make them answer questions, there are very interesting questions that I would like to ask
00:44:49
◼
►
that if I did ask and they weren't under oath that I don't think they would answer and I don't want
00:44:54
◼
►
to waste time on questions that they're not going to answer. So for example, I'm not going to try to
00:44:59
◼
►
pick Federighi's mind about, you know, whether they need a new kernel to have like a real-time
00:45:06
◼
►
operating system for the car. Because it's not going to be a
00:45:10
◼
►
fruitful afternoon of conversation. Exactly. And in
00:45:14
◼
►
addition to the fact that he obviously isn't going to answer
00:45:17
◼
►
that, and he can't talk about it. And even if I wanted to get
00:45:21
◼
►
cute and say, you know, theoretically, of course, you
00:45:24
◼
►
know, but you know, that there's these real time considerations
00:45:27
◼
►
for something like a car that you don't have with these
00:45:29
◼
►
consumer devices like phones and blah, blah, blah, he's not going
00:45:32
◼
►
to get into it. And the second thing in addition to wasting
00:45:34
◼
►
precious time is I feel like asking questions like that would immediately raise their shields.
00:45:39
◼
►
Like, wow, he just asked a stupid question that I can't answer. Now I've got to be careful that I
00:45:43
◼
►
that he's not going to, you know, I want them to feel like, hey, this is going well. And it's
00:45:48
◼
►
they're not necessarily softball questions, but that they're questions that are the sort of thing
00:45:53
◼
►
I was hoping to talk about. Yeah. And the thing is in this in this particular realm, specifically
00:45:57
◼
►
in the open source effort, we've seen through their actions that they are being much more open
00:46:02
◼
►
with Swift and the open source effort than they have ever been before in terms of
00:46:06
◼
►
telling you what they're going to do in the future and having public roadmaps and doing development
00:46:10
◼
►
in the open. You kind of brought this up in the interview with like how Swift's development is
00:46:15
◼
►
out in the open and Craig said how LLVM was and everything, but the contrast that you could have,
00:46:20
◼
►
you know, maybe this would have put them on the defensive, is the contrast is something like
00:46:23
◼
►
the Darwin open source releases. Darwin has been open source from the beginning, but it just hasn't
00:46:28
◼
►
been developed in the same way and maybe it can't be for a variety of reasons because there's just
00:46:31
◼
►
too much proprietary stuff revealing their plans for, you know, whatever devices and
00:46:36
◼
►
stuff they're going to make in the future. But they're so much more open, and he was
00:46:42
◼
►
more open here saying, "Oh yeah, we're going to add these features, and this is what we're
00:46:45
◼
►
going to, you know, we're going to have more things like this by the time WWDC rolls around."
00:46:49
◼
►
When has any Apple -- they wouldn't even tell you if they're going to have a new battery
00:46:54
◼
►
charger in time. You know, they could tell you anything about the future. Not that he
00:46:58
◼
►
he was promising specific things, which sort of,
00:47:00
◼
►
in the vague sort of, this is kind of what we're thinking,
00:47:03
◼
►
kind of what we're planning,
00:47:04
◼
►
because I think it's understood,
00:47:05
◼
►
especially within the realm of this open source thing.
00:47:07
◼
►
It's like, you can see it happening.
00:47:08
◼
►
Like if it's not available at WWDC, it won't be a mystery.
00:47:12
◼
►
You'll see every single check-in,
00:47:13
◼
►
every single debate on the mailing list.
00:47:14
◼
►
And when WWDC comes around, it'll either be readier, it won't.
00:47:17
◼
►
And when everyone can see that,
00:47:19
◼
►
no one's gonna be like, you promised this thing by WWDC
00:47:22
◼
►
and we still can't do it.
00:47:23
◼
►
Why are you, you know, it's like,
00:47:24
◼
►
we'll just look at the mailing list,
00:47:25
◼
►
look at the source code.
00:47:27
◼
►
it didn't get done or there was debate about how it should be done or whatever.
00:47:31
◼
►
So having that stuff in the open just makes it so much easier to have those
00:47:35
◼
►
conversations that there are no gotchas. It's like just you can watch it happening.
00:47:39
◼
►
It's not magic. Right. It's not like, OK, it's
00:47:43
◼
►
early December, as promised before the end of the year, we've made this thing open
00:47:47
◼
►
source. Here's the zip file with all the source.
00:47:50
◼
►
And there's an Apache or whatever.
00:47:52
◼
►
I've whatever license. What are they licensed to be using?
00:47:54
◼
►
I think Apache 2.0.
00:47:56
◼
►
They're using it, you know, it's got an open source license to have at it.
00:48:00
◼
►
And here's where we plan to, here's our roadmap for the first Swift 3.0.
00:48:03
◼
►
And then they go into radio silence.
00:48:05
◼
►
And then early June at WWDC, we find out whether that matched or not.
00:48:10
◼
►
Like you said, from the point from here to there every single day,
00:48:13
◼
►
there are going to be these debates.
00:48:14
◼
►
I mean, to me, I mentioned it in the interview that the Swift evolution
00:48:18
◼
►
mailing list is remarkable because you really have to like,
00:48:22
◼
►
look at the email addresses to see who's from Apple and who's not,
00:48:25
◼
►
because there's really serious and very thoughtful proposals coming from outside Apple.
00:48:31
◼
►
And it's very clear that people inside Apple are giving them their full consideration.
00:48:36
◼
►
It is truly a collaborative relationship, right?
00:48:40
◼
►
You know, eight days into it.
00:48:42
◼
►
Yeah, definitely.
00:48:43
◼
►
I'm assuming it will calm down a little bit.
00:48:46
◼
►
The volume has been tremendous.
00:48:47
◼
►
I had to switch to the digest form of that mailing list because it was just filling my,
00:48:51
◼
►
you know, email in by even though I'm filtering into a folder, it was just too many emails
00:48:55
◼
►
tried taking the digest version of it.
00:48:57
◼
►
But I'm assuming the traffic will die down a little bit.
00:48:59
◼
►
But you're right.
00:49:00
◼
►
It used to-- the old model with the open source,
00:49:03
◼
►
Darwin was the big one where they gave you a big dump.
00:49:05
◼
►
And then I don't know how many people even contributed
00:49:08
◼
►
or even could contribute.
00:49:10
◼
►
And then you wouldn't see anything from them
00:49:12
◼
►
until the next major version.
00:49:14
◼
►
I think just the other day, they finally
00:49:15
◼
►
put out the El Capitan version of the Darwin open source
00:49:19
◼
►
And so if they'd come out with this big source dump,
00:49:21
◼
►
even if they had been accepting feedback,
00:49:24
◼
►
If you didn't see anything from Apple until WWDC, it would just be like
00:49:28
◼
►
like a typical write-only sort of black hole for information.
00:49:32
◼
►
Like they'd have discussions with you and you could say things, but you never knew what Apple's going to do.
00:49:35
◼
►
You just have to sit around and wait and wait and wait.
00:49:37
◼
►
And then at June, there'd be a bunch of slides and people would applaud or not.
00:49:40
◼
►
Here, it all happens in real time in front of you.
00:49:43
◼
►
I guess the open question is still how often do the people at Apple
00:49:48
◼
►
push their changes back up to the repository? How much development?
00:49:51
◼
►
But that's true of any open source thing.
00:49:52
◼
►
you can have your local clone of repository
00:49:55
◼
►
and do a bunch of changes to it
00:49:56
◼
►
and not push them back up to the main repository
00:49:59
◼
►
for a while.
00:50:00
◼
►
To some degree, there has to be development going on
00:50:04
◼
►
in Apple that doesn't immediately get pushed out
00:50:08
◼
►
to the public.
00:50:09
◼
►
I mean, I don't know if there's a vetting process involved
00:50:11
◼
►
in that or just the internal coordination of deciding
00:50:15
◼
►
in their particular, what they're going to do
00:50:17
◼
►
versus what the community is doing.
00:50:20
◼
►
I'm sure they'll navigate it just fine,
00:50:21
◼
►
but it's just like any other open source thing.
00:50:24
◼
►
If there does come a point where the community
00:50:26
◼
►
wants to pull Swift heavily in one direction
00:50:28
◼
►
and Apple wants to pull it at another,
00:50:29
◼
►
you could end up with a fork,
00:50:30
◼
►
but we're so far from that now.
00:50:31
◼
►
Now everyone is kumbaya
00:50:33
◼
►
and everyone's excited to be working on Swift
00:50:35
◼
►
and Swift is this one thing
00:50:36
◼
►
and Apple is clearly in the driver's seat
00:50:38
◼
►
having invented it and having the platform
00:50:39
◼
►
where it's most useful.
00:50:40
◼
►
So I think things will be smooth sailing,
00:50:43
◼
►
as smooth as they can be in open source
00:50:45
◼
►
for the foreseeable future.
00:50:46
◼
►
- Yeah, and I think it must help
00:50:51
◼
►
in a certain degree that just about every programming language I know of,
00:50:56
◼
►
and certainly all the ones people are passionate about,
00:50:58
◼
►
have somebody who was the dictator in charge,
00:51:03
◼
►
who invented it and infused it with their personal,
00:51:08
◼
►
"Here's what I think this programming language should be like."
00:51:11
◼
►
All the great programming languages to me,
00:51:13
◼
►
I think have this opinionated root or origin.
00:51:18
◼
►
And Chris Latner is obviously that individual with Swift.
00:51:22
◼
►
And I think it's very clear, both publicly and from what
00:51:26
◼
►
I've heard privately, that what has happened
00:51:29
◼
►
was always his intention, that it would go open source.
00:51:31
◼
►
And it's not like it took this long because there
00:51:34
◼
►
was a debate internally.
00:51:35
◼
►
It really was what Craig said in the interview, which
00:51:38
◼
►
was, didn't make sense to go open source right out
00:51:42
◼
►
It's still too liquid.
00:51:43
◼
►
Wait till it solidifies a little bit.
00:51:45
◼
►
And then at that point, it was just not a matter of if,
00:51:47
◼
►
but when I think was his exact words.
00:51:49
◼
►
And I think it really helps that Latner was on board
00:51:52
◼
►
with that from the beginning in terms of wanting
00:51:55
◼
►
to have this sort of, it's not like somebody else
00:51:58
◼
►
at Apple is forcing him and his team to participate in this.
00:52:02
◼
►
- Well, the unspoken part of that is like,
00:52:05
◼
►
all right, so it didn't make sense to go
00:52:07
◼
►
because 2.0 was too new.
00:52:09
◼
►
Why would it be bad?
00:52:11
◼
►
Obviously pre-1.0 is like, you have a secret
00:52:14
◼
►
and in the typical Apple, I'm keeping a secret
00:52:16
◼
►
and so I can come to W3C and say,
00:52:17
◼
►
we have a new programming language. So pre 1.0, you can, or you know, pre-announcement,
00:52:21
◼
►
you can say that's the reason it's not open source, because it was a secret, and we didn't
00:52:24
◼
►
even know if we could do it, and we had to decide internally, and so that makes sense.
00:52:28
◼
►
Once everybody knows Swift is a thing, why is it not open source at that point? And it's
00:52:32
◼
►
like, oh, it's too new, we're not ready, we really need to work it out. Why do you need
00:52:35
◼
►
to work it out? Why can't you work it out when it's in the open? Why does it have to
00:52:39
◼
►
be closed source while you're working these things out? And I would say that Swift right
00:52:42
◼
►
now is still, by the standards of most other mature programming languages, still heavily
00:52:46
◼
►
in flux. I mean, for crying out loud, they're ripping out plus plus and minus minus at this
00:52:50
◼
►
point and thinking about what they're going to do with like, you know, people are proposing
00:52:54
◼
►
new keywords like this is incredibly liquid. So why? Why was it closed source between the
00:53:00
◼
►
announcement and now? And the answers that are pretty obvious, like they don't think
00:53:04
◼
►
they need to say them because people basically know supporting an open source project has
00:53:08
◼
►
overhead, right? Like you can work, you can go much faster when you don't have to worry
00:53:11
◼
►
about other people's input. That sounds bad. And it's like, oh, you're being like, there
00:53:15
◼
►
is a lot of overhead, especially for a company like Apple, in terms of intellectual property
00:53:21
◼
►
and making sure this is dividing the line between what's open and what's not.
00:53:25
◼
►
It's a lot of work to do all the things that are required to be a good maintainer of an
00:53:30
◼
►
open source project.
00:53:31
◼
►
And they just, you know, it would have made them go slower, right?
00:53:35
◼
►
So now they're at the point where the trade-off is worth it, that they're okay with going
00:53:41
◼
►
a little bit slower.
00:53:42
◼
►
Of course, the input is a little bit more valuable because in that beginning part, so
00:53:46
◼
►
much basic stuff didn't work.
00:53:48
◼
►
Craig mentioned that you have incremental compilation.
00:53:50
◼
►
It was like you just want it to hold together.
00:53:54
◼
►
Is this feasible at all?
00:53:56
◼
►
Can we ship something?
00:53:57
◼
►
Can we get it working enough in Xcode so the playgrounds don't crash all the time?
00:54:03
◼
►
That's basically, I would assume, the answer that wasn't given there is that it's not like
00:54:08
◼
►
And of course, the internal debate, which is not going to tell you about the details
00:54:10
◼
►
of the internal debate. But yeah, you can go much faster when you don't have to worry about
00:54:16
◼
►
the outside world's opinions or input and you don't have to support them and you don't have to
00:54:19
◼
►
maintain a source repository with clean source code and a mailing list and all the other things
00:54:25
◼
►
that go with that. Yeah, I think it is sort of a one, two, like a two-step process. Like,
00:54:35
◼
►
first step was Swift 1.0. This is good enough to show you guys and let you guys start playing
00:54:40
◼
►
with even though, let's face it, you can't start working with it yet.
00:54:43
◼
►
We'll get it into a shape where it's, you know, you can start using it.
00:54:48
◼
►
And I've been asking around and I do, there are, you know, it's not just in Apple, there
00:54:51
◼
►
are, you know, real developers at real, you know, apps that, you know, people out there,
00:54:56
◼
►
you know, top apps, to borrow a phrase from Raiders of the Lost Ark.
00:55:01
◼
►
There are top apps that have new parts of it, you know, maybe not entirely written in
00:55:06
◼
►
That's probably still very rare.
00:55:07
◼
►
New features are being written in Swift in real apps
00:55:10
◼
►
that you're using today.
00:55:12
◼
►
But I think stage two is this is where, I think,
00:55:15
◼
►
Latner and his team think.
00:55:16
◼
►
We had this vision for what we would start with,
00:55:20
◼
►
and we're not there yet.
00:55:21
◼
►
And this is the point where the fundamental aspects
00:55:25
◼
►
of the language, we're settled on now.
00:55:27
◼
►
And now we're willing to start listening to how we can make
00:55:29
◼
►
it better to suit your needs.
00:55:34
◼
►
Like I said, I think the language is just so young
00:55:37
◼
►
in the grand scheme of things.
00:55:40
◼
►
If you want to do a human analogy,
00:55:44
◼
►
maybe it can sit up now.
00:55:47
◼
►
It doesn't need to be held in one of those big tube things.
00:55:49
◼
►
It can sit up.
00:55:50
◼
►
Occasionally, it toddles over.
00:55:51
◼
►
It falls over a little bit.
00:55:52
◼
►
It can sit up.
00:55:53
◼
►
But this is the best and the worst part,
00:55:58
◼
►
because it's kind of like there's so much potential.
00:56:02
◼
►
But Craig talked about Swift 3.0 and how they're really working on getting the ABI nailed down and everything.
00:56:08
◼
►
And that's just got to be terrifying because you know the standards of binary compatibility that Apple aspires to.
00:56:14
◼
►
Like with Objective-C, I think Marco has brought this up in ATP View Times, like you could have built an iPhone app for the original iPhone.
00:56:21
◼
►
And in theory, if you stayed to, you know, still well supported APIs, that binary would still run.
00:56:28
◼
►
They don't... Apple is not in the habit of breaking backward compatibility for binary libraries and everything that frequently,
00:56:36
◼
►
which is surprising for a company that is so gung-ho about
00:56:39
◼
►
moving on from the past in hardware design and software design. They're really good about that.
00:56:43
◼
►
So nailing that stuff down like that, like 3.0 is not that far away, and it's like,
00:56:47
◼
►
boy, you really only get one shot at doing this right, because there's not gonna be another
00:56:52
◼
►
64 to 30... 32 to 64-bit transition for them to use to paper over like they did with like, you know,
00:56:57
◼
►
the Objective-C stuff where they're like, "Well, when we're going 32-64, it's going to break
00:57:01
◼
►
anything anyway, so now is our chance to do something a little bit differently." There's
00:57:04
◼
►
not going to be a 64-128 transition in the foreseeable future, so they really have to
00:57:09
◼
►
get their ABI something that doesn't have some terrible mistake that ties their hands in the
00:57:14
◼
►
future, and that is supportable for literally decades. Right, or maybe now if it's not a
00:57:19
◼
►
mistake, it's like not like missing some sort of thing that everybody thinks is okay today, but
00:57:26
◼
►
five, six, seven years ago from now, everybody thinks, oh, man, that's it would be so great
00:57:30
◼
►
if we didn't have that, if we weren't stuck with that decision.
00:57:33
◼
►
Or there's going to be some language feature that is much more difficult to support with the
00:57:37
◼
►
ABI as it's designed. Or, you know, I'm even just going to say, oh, well, it doesn't, you know,
00:57:40
◼
►
the way quantum computers work in 50 years is different than that. But even just like
00:57:44
◼
►
you decide there's a particular language feature that they're like, we don't have time for it.
00:57:48
◼
►
Concurrency is a great example in the Swift 3.0, like Swift evolution mailing list and roadmap or
00:57:53
◼
►
or whatever, they're like language level concurrency,
00:57:57
◼
►
it's not planned for 3.0, we don't have time for it,
00:57:59
◼
►
it's too big a feature,
00:58:00
◼
►
if we're gonna save that as post 3.0.
00:58:01
◼
►
But they're gonna have the ABI nailed down.
00:58:03
◼
►
So I really hope there's nothing about,
00:58:06
◼
►
you know, language level concurrency features
00:58:09
◼
►
that would be easier to do with a different API.
00:58:11
◼
►
Not that it's gonna preclude them doing this,
00:58:13
◼
►
and I'm assuming like based on past experience
00:58:16
◼
►
that they're looking for an ABI
00:58:18
◼
►
that were really, really solid,
00:58:19
◼
►
but thus far everything until now has been communication
00:58:23
◼
►
from Apple about Swift to Zoom, we're going to break your crap all the time.
00:58:26
◼
►
We are not maintaining source compatibility.
00:58:28
◼
►
We're adding keywords, we're removing things, we're changing how operators work.
00:58:33
◼
►
And their solution to this has been like, we're going to use Xcode
00:58:36
◼
►
to translate your old code to your new code for you,
00:58:38
◼
►
but we're not going to support your old code.
00:58:40
◼
►
Like, just forget it, because they don't want to be held back by the past.
00:58:44
◼
►
It's kind of the nightmare of, you know, come out with a language
00:58:48
◼
►
and then let literally thousands of developers start writing real applications
00:58:52
◼
►
with it and shipping them to customers, and then be like, "Oh my god, we can never
00:58:56
◼
►
change this part of the language because so many people have all this code out there.
00:59:00
◼
►
We set it out to loosen the world.
00:59:03
◼
►
Now we can never take away plus plus and minus minus.
00:59:04
◼
►
It'll break everyone's apps."
00:59:05
◼
►
And Apple's like, "No, we reserve the right to change how this language looks on the page
00:59:11
◼
►
to make your source code that you think is perfectly good syntactically invalid so it
00:59:15
◼
►
won't even compile.
00:59:16
◼
►
And the way we're going to manage that is by giving you tools to translate your source
00:59:20
◼
►
That's one of my favorite changes in the,
00:59:23
◼
►
I guess it's the, it just came out in the Swift evolution
00:59:26
◼
►
or maybe the new version of Swift that they released
00:59:28
◼
►
as they open sourced it, where they got rid of these
00:59:30
◼
►
plus plus and minus minus operators.
00:59:32
◼
►
And again, just to take a big step back,
00:59:36
◼
►
and I read the interviews that Federighi did
00:59:37
◼
►
with like Mashable and a few other outlets last week.
00:59:41
◼
►
I was half happy and half worried,
00:59:43
◼
►
'cause I was happy because his interviews
00:59:45
◼
►
with like Ars Technica and Mashable covered the basics
00:59:50
◼
►
know, and it was like a foundation of what Apple's official stance was towards this open sourcing of
00:59:54
◼
►
Swift. And I thought that means I don't have to waste time talking about those things with him,
00:59:58
◼
►
and we can go deeper. But then I thought, what if that's all he wants to talk about is this,
01:00:02
◼
►
he doesn't want to get nerdy at all. And I was like, because I kind of want some of this stuff
01:00:05
◼
►
to be a little technical. But then the way the interview went, absolutely no problem getting
01:00:11
◼
►
them to go technical. I just worry now that maybe it's a little bit over, over people's heads for
01:00:16
◼
►
everybody who listens to the show. And so just here's one example I don't want to over explain,
01:00:21
◼
►
but the plus plus minus minus operators are one that's very easy for even a non-programmer to
01:00:25
◼
►
understand. And in every language, geez, I know since C you've been able to take a variable. Let's
01:00:32
◼
►
say the variable is x and if x is an integer and it's currently equal to four, if you write in your
01:00:38
◼
►
source code x++, that turns the variable to 5. It just adds 1 to the
01:00:45
◼
►
variable. And I've never really given a lot of thought to it, but like it seems
01:00:50
◼
►
like every language, just about every C-style syntax language since has taken
01:00:56
◼
►
that and kept it. And Swift had it, and then in the where we're going it was
01:01:01
◼
►
like we're gonna get rid of it, and here's why. And I thought the explanation
01:01:05
◼
►
for Y was terrifically cogent.
01:01:07
◼
►
You know, it was like, yeah, that's sort of like unreadable.
01:01:11
◼
►
And it'd be a lot easier if you just set X plus equals one,
01:01:16
◼
►
so that you know it's adding one to it.
01:01:18
◼
►
- So there's the nuance of post decrement and pre decrement
01:01:22
◼
►
where you can have plus plus X versus X plus plus,
01:01:25
◼
►
which means different things
01:01:25
◼
►
in a lot of different languages, including C.
01:01:27
◼
►
Python, by the way, doesn't have plus plus or minus minus.
01:01:30
◼
►
And this is a great example of a language feature
01:01:34
◼
►
that they're changing based on a proposal for essentially cultural reasons, cultural and like human factors reasons.
01:01:42
◼
►
Not technical, not like performance or interoperability with Objective-C, or the ability to do something that you previously couldn't do.
01:01:51
◼
►
This is purely, it's user interface for programming languages essentially.
01:01:55
◼
►
Does this construct cause more problems than it solves?
01:02:01
◼
►
How much longer is plus equals one versus plus plus?
01:02:04
◼
►
Pre and post, it's really easy to get rid of that because that is very confusing.
01:02:08
◼
►
But, you're like, well, plus plus and minus minus are just, you know, so common, as you noted,
01:02:14
◼
►
in so many other languages, wouldn't we keep that just because it's an idiom that people are familiar with?
01:02:18
◼
►
And then the debate, if you can look through this in the manual, it's just like, well,
01:02:21
◼
►
in what context do you find yourself wanting to do that?
01:02:24
◼
►
Well, when I do a for loop and I say, you know, i equals zero, i less than whatever, i plus plus,
01:02:28
◼
►
And then the Swift answer is, well, we don't want people doing those kind of loops.
01:02:32
◼
►
We want to have a way to iterate over collections more naturally.
01:02:35
◼
►
So if we say you don't have to do a classic style for loop,
01:02:38
◼
►
when do you think you're going to use the plus plus?
01:02:42
◼
►
You know, and so that's how this debate goes.
01:02:44
◼
►
And this is the level they're talking about.
01:02:46
◼
►
That's why I say this is the little baby that can barely sit up at this point,
01:02:49
◼
►
because they're still considering fundamental things
01:02:51
◼
►
like how many fingers should this baby have, right?
01:02:54
◼
►
And, you know, is it going to be a biped, right?
01:02:56
◼
►
Or should it have fur or not?
01:02:57
◼
►
Like, that's the level they're debating at this point,
01:03:01
◼
►
and I think it's wonderful because the worst thing in the world
01:03:04
◼
►
that can happen is for the very early decisions made
01:03:07
◼
►
by a very small group of people not exposed to the wider world
01:03:10
◼
►
to become cemented and become unchangeable and to say,
01:03:14
◼
►
"This is it, and we can't change this because it's too late
01:03:16
◼
►
because too many people are programming it."
01:03:18
◼
►
Unless you get everything perfect on your first try,
01:03:20
◼
►
which you never ever will,
01:03:22
◼
►
all you're doing is like baking in the warts, you know?
01:03:24
◼
►
It's nice for the language to have time to grow and change and make mistakes and learn from them and become a different language
01:03:31
◼
►
Eventually than it was this year or last year. Yeah
01:03:36
◼
►
to take another step back just just in a little uh,
01:03:39
◼
►
Glossary as we go for non-programmers the abi the binary
01:03:44
◼
►
Um apple, what is it? What does abi even stand for application binary binary?
01:03:50
◼
►
that is effectively so
01:03:54
◼
►
Source code is in a text file. You write your Swift in a text file. It goes into the compiler, and the compiler turns it into the binary output.
01:04:02
◼
►
So the .app, the little actual executable inside the .app bundle, that's the binary.
01:04:08
◼
►
Or if it's a framework or a library, it's the compiled code that the machine reads natively.
01:04:13
◼
►
And what they're promising is that Swift 3.0, which is scheduled for, I think they say late 2016, which I sort of interpret, I read between the lines, Mac OS 10.12.
01:04:24
◼
►
probably, and iOS 10.
01:04:29
◼
►
From that point forward, that binary interface is going to be compatible with future versions,
01:04:37
◼
►
with Swift 4, Swift 5, Swift 6 going forward.
01:04:40
◼
►
And like you said, there's high stakes to commit to that.
01:04:44
◼
►
Yeah, and it's most important for someone like Apple who makes a bunch of libraries that they ship with their machines,
01:04:50
◼
►
and your binary needs to know how to call into those libraries.
01:04:53
◼
►
How to find the functions and how to call them,
01:04:56
◼
►
how to present the arguments of those functions,
01:04:59
◼
►
expect where to get the return value from,
01:05:01
◼
►
all those little details that right now have been in flux.
01:05:06
◼
►
And they have to nail them down so that you'll ship your binary,
01:05:10
◼
►
they'll ship their libraries,
01:05:11
◼
►
and then they'll come up with a new version of the OS.
01:05:13
◼
►
And if you don't revise your application, you want it to still work.
01:05:16
◼
►
You don't have to recompile it every time that, you know.
01:05:18
◼
►
If they change the ABI,
01:05:19
◼
►
it would mean that people would have to recompile
01:05:21
◼
►
their stuff.
01:05:22
◼
►
And like I said, historically speaking,
01:05:23
◼
►
Apple has not done that on iOS
01:05:24
◼
►
and has rarely done it on iOS 10.
01:05:26
◼
►
And 32 to 64 bit transitions are a great time
01:05:29
◼
►
to require that because you're like,
01:05:30
◼
►
well, your 32 bit application will keep working,
01:05:32
◼
►
but eventually we're not even gonna support,
01:05:34
◼
►
you know, 32 bit max anymore.
01:05:36
◼
►
So we're just gonna be 64 bit from now on
01:05:38
◼
►
and your application will just age out of the ecosystem
01:05:41
◼
►
if you don't update it.
01:05:42
◼
►
And if you do update it, hey, guess what?
01:05:43
◼
►
You gotta recompile anyway, so no big deal.
01:05:45
◼
►
- What was the gist of what Craig was talking about there
01:05:47
◼
►
with the, it was something about when I was asking
01:05:50
◼
►
where they're using Swift internally,
01:05:52
◼
►
and one of the things that they,
01:05:54
◼
►
where it's holding them up,
01:05:55
◼
►
and they can't just switch to Swift,
01:05:57
◼
►
is that they need to,
01:05:58
◼
►
they still need to support 32-bit on Mac OS X.
01:06:02
◼
►
- Yeah, I couldn't tell whether that was just
01:06:06
◼
►
a sly allusion to the fact that 32-bit support
01:06:09
◼
►
is going away everywhere, that it hasn't, you know,
01:06:12
◼
►
any remaining holdouts to 32-bit support
01:06:14
◼
►
will be disappearing,
01:06:15
◼
►
and they've been doing that over the years,
01:06:16
◼
►
just going 64-bit everywhere they possibly can.
01:06:19
◼
►
It's just where they can stop supporting entirely.
01:06:21
◼
►
The other option is there's no reason
01:06:23
◼
►
they can't make Swift work with the 32-bit things.
01:06:25
◼
►
- Right, right now Swift is 64-bit only though.
01:06:27
◼
►
Is that correct? - Yeah, I mean,
01:06:29
◼
►
as far as I know, yeah.
01:06:30
◼
►
And there's no reason they couldn't make it work
01:06:32
◼
►
with 32-bit, like, you know, sure they could,
01:06:35
◼
►
but is it worth it?
01:06:35
◼
►
So it's just a question of are they just shutting that door
01:06:39
◼
►
and when is it safe for them to shut that door?
01:06:42
◼
►
And in terms of backward compatibility even,
01:06:44
◼
►
like all, you know, the iOS device is going 64-bit,
01:06:47
◼
►
you can still run 32-bit apps on that,
01:06:48
◼
►
but you don't wanna have both 32-bit and 64-bit apps
01:06:51
◼
►
running on your device at the same time,
01:06:52
◼
►
because then you've gotta load two versions
01:06:54
◼
►
of all the libraries into memory and everything.
01:06:55
◼
►
So there are lots of good reasons to just forget about 32,
01:06:58
◼
►
and like I said, just let it age out of the ecosystem.
01:07:00
◼
►
That's what I would imagine Apple would do,
01:07:03
◼
►
but he's talking about the past
01:07:05
◼
►
in terms of what was holding people back.
01:07:07
◼
►
- Here's where it would really help if we had a chat room,
01:07:10
◼
►
but I, 'cause the question has just popped into my head now,
01:07:13
◼
►
and I therefore did not do any research before the show,
01:07:16
◼
►
is, and I'm guessing this is true,
01:07:18
◼
►
I'm guessing watchOS is 64-bit only,
01:07:20
◼
►
and tvOS almost certainly is 64-bit only.
01:07:23
◼
►
There's absolutely no reason why tvOS
01:07:26
◼
►
would have 32-bit support,
01:07:28
◼
►
since the first device that tvOS runs on
01:07:30
◼
►
is a 64-bit device.
01:07:32
◼
►
So on tvOS, and I'm guessing watchOS,
01:07:35
◼
►
it's probably possible to go Swift,
01:07:38
◼
►
you know, use Swift for the frameworks and libraries
01:07:41
◼
►
in the operating system.
01:07:42
◼
►
I don't even know. So you're right. It would be good to have a chair. I don't even know what other that the Apple
01:07:48
◼
►
No, Tuesday a 8 and the first 64-bit was a 7. Yeah
01:07:53
◼
►
Yeah, like I like I said
01:07:57
◼
►
I would imagine the way forward is to travel not to waste its time on 32-bit
01:08:02
◼
►
But who knows like it depends on which?
01:08:04
◼
►
like if you graph those things out and say when can we finally drop 32-bit support both practically speaking and like politically speaking not
01:08:11
◼
►
annoying our partners or whatever
01:08:13
◼
►
Who made like 32-bit games for iOS and don't want to like rebuild them for 64? When can we do that?
01:08:18
◼
►
When is it safe?
01:08:18
◼
►
And then the other question is when do we want to really start ramping up on Swift?
01:08:22
◼
►
Now Swift needs to ramp up before 32-bit goes away
01:08:25
◼
►
Maybe you have to put in the work to do a 32-bit support
01:08:29
◼
►
But it totally seems like the Apple move to just be like Swift is going to hasten the demise of anything
01:08:34
◼
►
supporting 64-bit
01:08:36
◼
►
Yeah, it just seems to me that anything new from when like at least from when the a7 what was that the 5s shipped
01:08:43
◼
►
Yeah from that point forward. It just seems like anything that doesn't have legacy support is 64-bit only
01:08:48
◼
►
So, you know from both from new platform perspective like watch and TV to Swift itself that you know
01:08:56
◼
►
If it's a new language that came out in
01:08:58
◼
►
2014 why in the world would it have 32-bit support? It's you know
01:09:05
◼
►
Anchored to the past. Yeah, and the same thing for new frameworks of their writing new frameworks using Swift Swift only frameworks Swift native frameworks
01:09:12
◼
►
How they're rewriting foundation in Swift, you know, like but for new stuff where there is no there is no non Swift version of this library
01:09:19
◼
►
It's just it's been Swift from day one. It's a brand new library. Maybe it's a big new library
01:09:22
◼
►
That's gonna be a tentpole feature of a future WOEDC and they're gonna tell people how to use it
01:09:27
◼
►
If it's Swift only and Swift doesn't do 32 for 32-bit
01:09:32
◼
►
No 32-bit app can use this thing unless they're again unless they're gonna
01:09:35
◼
►
Bend over backwards to do some crazy way for the you know, the libraries to bridge from 32 to 64
01:09:42
◼
►
I just think it's all 64
01:09:44
◼
►
Going forward and and what he was giving you a glimpse in his things that Apple had already gone through
01:09:48
◼
►
Right, like why aren't it why isn't everybody using so well Swift is really young Swift doesn't support 32-bit
01:09:53
◼
►
These are all reasons that teams that inside Apple that may be interested in Swift
01:09:57
◼
►
Couldn't use it because it just wasn't practically doesn't wasn't practical at that point
01:10:01
◼
►
but it becomes more practical every day.
01:10:03
◼
►
- I really, I thought one of the most astute things he said
01:10:07
◼
►
was, here I'm looking at my transcript here.
01:10:09
◼
►
I mean, people here are idealistic yet really pragmatic.
01:10:13
◼
►
And I think you see that as an Apple characteristic
01:10:15
◼
►
in many, many elements of what we do.
01:10:17
◼
►
And I really do think that.
01:10:19
◼
►
I think that it's almost idealistic yet really pragmatic,
01:10:24
◼
►
gets to the heart of what I like best about Apple,
01:10:30
◼
►
you know, in the long run and overall.
01:10:32
◼
►
And I feel like that really exemplifies it in terms of,
01:10:36
◼
►
sure, we're really excited about Swift
01:10:37
◼
►
and it'd be fun to be writing more,
01:10:38
◼
►
but we've got to write an awful lot of new stuff
01:10:41
◼
►
still in Objective-C for these very, very pragmatic reasons.
01:10:44
◼
►
- Yeah, and this is the overarching, like,
01:10:47
◼
►
you may be excited about Swift,
01:10:48
◼
►
but there's sort of a company cultural imperative
01:10:53
◼
►
to, for example, not break binary compatibility
01:10:56
◼
►
without a good reason, because it's bad for the platform,
01:10:59
◼
►
and if there's any possible way you can avoid it, like it's bad for the ecosystem, it makes developers angry
01:11:06
◼
►
and you only get a certain number of those, and you don't want to like cash them in just on a whim, right?
01:11:14
◼
►
so even though a lot of people may be very excited about using this new technology
01:11:18
◼
►
if there's an overriding concern, you know, larger than your little project, larger than your little feature or your application
01:11:24
◼
►
or whatever it is you're doing inside Apple and the Dictate is
01:11:27
◼
►
you can't use it because you need to support 32-bit, and you need to support 32-bit because we're committed to not breaking binary compatibility
01:11:34
◼
►
until a big company-wide decision happens at a level way above your pay grade, and only then will it be okay.
01:11:41
◼
►
So like, the idealistic and pragmatic, as an organization, yes, but like, within the organization I imagine is distributed, where
01:11:47
◼
►
the lower you go down the org chart, the more people are inclined to be idealistic and want to do something crazy and new,
01:11:52
◼
►
and the higher you go in the org chart, the more people have to be pragmatic and say "there's a bigger picture here",
01:11:56
◼
►
And even though you may be excited to use it
01:11:57
◼
►
on your little project, we decided at the top
01:12:01
◼
►
when it's time to do these big moves
01:12:02
◼
►
that are gonna impact, again, literally thousands
01:12:05
◼
►
of developers and thousands, is it millions of apps?
01:12:07
◼
►
I don't even wanna think about it.
01:12:09
◼
►
- It might be, I don't even know.
01:12:11
◼
►
It's kinda bizarre to think about a million apps,
01:12:13
◼
►
but it's possible.
01:12:14
◼
►
One of the areas I wanted to get to,
01:12:16
◼
►
and when I found out, it was nice,
01:12:18
◼
►
one of the things that was nice about this interview
01:12:20
◼
►
was that I knew about it at least a week in advance.
01:12:24
◼
►
It was actually a little bit more than a week in advance
01:12:25
◼
►
by the time we found a date that worked for both of us.
01:12:29
◼
►
And so I felt like I had plenty of time to prepare,
01:12:33
◼
►
which was great.
01:12:34
◼
►
And so one of the ways that I prepared
01:12:36
◼
►
it was I went to people who know a lot more
01:12:38
◼
►
about programming than I do.
01:12:40
◼
►
And it's specifically a lot more about programming
01:12:41
◼
►
for Apple platforms than I do.
01:12:43
◼
►
And tried to get some questions from them.
01:12:47
◼
►
And one of the things that I asked about,
01:12:49
◼
►
but it's, and I knew this,
01:12:51
◼
►
but I was interested in hearing it from developer friends
01:12:53
◼
►
is this whole angle that Swift is not just Objective-C with a modern friendly syntax.
01:13:00
◼
►
It is a very different language with very different primary priorities.
01:13:07
◼
►
And there are certainly some things, it certainly looks better, and it certainly is a much more
01:13:13
◼
►
approachable syntax. And I feel like at a fundamental level, that's basically why there's
01:13:17
◼
►
there's so much excitement around Swift.
01:13:18
◼
►
Is there's a lot of people who just took one look at
01:13:23
◼
►
or take one look at Objective-C
01:13:24
◼
►
and they're like, I don't get it.
01:13:26
◼
►
And then they take a look at Swift and they're like, wow,
01:13:28
◼
►
that looks like the language I already know,
01:13:30
◼
►
whether it's JavaScript or C or I don't know,
01:13:35
◼
►
even Java to some degree, maybe.
01:13:38
◼
►
It's a lot more similar to those style languages
01:13:40
◼
►
than it is to Objective-C.
01:13:41
◼
►
But there are things about Objective-C
01:13:44
◼
►
and the way that the next now Coco and Coco Touch frameworks,
01:13:49
◼
►
all these things that have derived from the next origins,
01:13:54
◼
►
the way that these frameworks take advantage
01:13:56
◼
►
of the dynamic aspects of Objective-C
01:13:58
◼
►
that people who are really good at it,
01:13:59
◼
►
people who've been writing for these frameworks
01:14:02
◼
►
for a long time love, and Swift sort of
01:14:05
◼
►
isn't really what they were looking for
01:14:07
◼
►
in a next generation language.
01:14:09
◼
►
And I thought his answer to that surprised me, I thought.
01:14:13
◼
►
I mean, it was on message in terms of like,
01:14:17
◼
►
the dynamic things that people wanted to do
01:14:20
◼
►
with Objective-C will eventually be possible with Swift
01:14:22
◼
►
if they're not now and that this is an ongoing thing
01:14:24
◼
►
and they're working on it and yada yada
01:14:25
◼
►
and essentially all the dynamism,
01:14:28
◼
►
which is a word that you like to use,
01:14:29
◼
►
all the dynamism that Apple thinks is important
01:14:32
◼
►
will be available in Swift without the downsides
01:14:34
◼
►
that he also went over extensively,
01:14:36
◼
►
that you've got to pay for that all the time.
01:14:38
◼
►
- Yeah, I thought that was interesting.
01:14:39
◼
►
And I thought it was, I'm not sure,
01:14:43
◼
►
I guess I kind of was worried that he would dodge that question and instead it seemed like he'd dove right into it and it's
01:14:48
◼
►
Obvious so obvious from his answer that they have
01:14:51
◼
►
discussed this internally
01:14:54
◼
►
well, this is an interesting time for Swift because a lot of things that have been true of Swift from the beginning are now starting to
01:15:02
◼
►
become come more into the public consciousness
01:15:04
◼
►
Mostly because more people are using it more people are aware that it even exists as excited as we all were whatever was two years
01:15:09
◼
►
to go to see Swift at
01:15:13
◼
►
It's not really a thing for people
01:15:15
◼
►
Broadly speaking until you know a certain point like can actually use this to make iOS and Mac apps
01:15:21
◼
►
Okay, then it becomes one level of thing and then the open source is the next level is like hey
01:15:24
◼
►
this is maybe of interest to the entire world of programmers right and so now a lot of people are looking at Swift and
01:15:31
◼
►
They're going to I think start realizing things that have been true about Swift from the very beginning you mentioned the syntax thing which is
01:15:38
◼
►
kind of a sideshow because
01:15:40
◼
►
The syntax is, you know, even though it's a thing that people notice when you look at it, and there is a certain, I don't know, like a,
01:15:48
◼
►
like a flavor, like you can tell, does this feel like a modern thing or does this feel old and weird?
01:15:54
◼
►
Does it look like, you mentioned, like does it look like JavaScript? Does it look like whatever language the kids are learning these days, right?
01:15:59
◼
►
But that is mostly not important. I mean, there's some aspect where you have to sort of keep up with the Joneses and not look like you're really old.
01:16:07
◼
►
But then the other aspect of it in terms of the language itself is how many things do I have to worry about?
01:16:12
◼
►
And Objective-C asks developers to worry about things, used to before Arc, asked them to worry about memory management,
01:16:19
◼
►
where they had to call "retain and release".
01:16:21
◼
►
And to a modern young programmer, that just seems barbaric, because like I said, it'd be coming from, you know...
01:16:27
◼
►
I guess JavaScript is a great example, because a lot of people know web stuff and JavaScript is everywhere,
01:16:33
◼
►
but even things like C# or Java on the server,
01:16:36
◼
►
it just seems barbaric to have to deal with that,
01:16:38
◼
►
or to have direct access to memory with pointers.
01:16:40
◼
►
And then Arc made that a little bit better,
01:16:42
◼
►
but still, what are all these asterisks all over the place?
01:16:44
◼
►
That doesn't really make any sense.
01:16:46
◼
►
If you don't know C,
01:16:47
◼
►
I think a surprising number of developers now
01:16:51
◼
►
find that if you're a GUI application developer,
01:16:55
◼
►
the reason is for you to know C
01:16:57
◼
►
to figure out how to make a sheet come up
01:16:59
◼
►
when someone pushes the button.
01:17:01
◼
►
There's not a lot of those,
01:17:02
◼
►
and it just seems like why do I have to worry about all this crap?
01:17:04
◼
►
So, from the developer's perspective,
01:17:06
◼
►
Swift is exciting because it's like, I want to make an iOS app
01:17:10
◼
►
because iOS apps are cool and I like iPhones and all this other stuff,
01:17:14
◼
►
but it's kind of annoying that I got to worry about all this stuff.
01:17:16
◼
►
And Swift says, now you don't have to worry about that stuff anymore.
01:17:19
◼
►
And the syntax looks nicer too.
01:17:21
◼
►
And so that is the public face of Swift and the excitement
01:17:24
◼
►
over finally a more modern language,
01:17:27
◼
►
both in terms of appearance and aesthetics,
01:17:29
◼
►
but also in terms of how many things do I have to be concerned with when writing a program
01:17:34
◼
►
that seemed to me to be beneath the concern of me as like a programmer of a GUI app or
01:17:42
◼
►
Yeah, and I think a lot of that is historical in terms of when languages, C is the primary
01:17:47
◼
►
example because so much has, you know, if you draw the family tree of programming languages,
01:17:52
◼
►
there's an awful lot of languages that derive from C. And in that era, you know, I guess
01:17:58
◼
►
what late sixties or early seventies when C was invented?
01:18:01
◼
►
I, I, I pretty sure the first edition of the KNR was like 1971.
01:18:08
◼
►
So late sixties, early seventies.
01:18:10
◼
►
The computers were so incredibly slow. I mean, just,
01:18:15
◼
►
just mind bogglingly slow by our standards today. You know, it's, you know,
01:18:20
◼
►
like the, the whole, you know,
01:18:22
◼
►
the entire Apollo mission was done with less computing power than your Apple
01:18:25
◼
►
watch has. I mean, it's just ridiculous. And so you needed to squeeze every single cycle
01:18:30
◼
►
out of the CPU that you could. And that meant being, as a programmer, writing at an incredibly
01:18:35
◼
►
low level where you're managing all the memory by hand. Because if it works, then it's incredibly
01:18:41
◼
►
efficient. And then if it doesn't work, you just have to fix it. You have to fix the bugs.
01:18:46
◼
►
But the retain release stuff is a perfect example of that. And I know when I first started
01:18:53
◼
►
trying to go away from it. And it was funny because it's an interesting example of Apple,
01:18:58
◼
►
you know, going down an alley and then deciding against it, which was at some point in the last
01:19:03
◼
►
decade, they introduced garbage collection to cocoa. Pretty sure it was like in the early years
01:19:10
◼
►
of Bertrand. It was definitely after Avi Tevainian had left. And I know there was a lot of reluctance
01:19:19
◼
►
from people who got it and people who didn't have, who at least didn't think they had problems dealing
01:19:24
◼
►
with the manual retain release memory management, didn't like garbage collection at all. And it
01:19:29
◼
►
turns out Apple didn't like it either. And they eventually got rid of it.
01:19:32
◼
►
**Matt Stauffer:** Yeah. All the, all the people who thought,
01:19:34
◼
►
oh, I'd retain release is fine. I don't need this garbage collection. Like one of the big reasons
01:19:39
◼
►
to even consider garbage collection is just, like I said, you know, objectivity started to look old
01:19:45
◼
►
and crappy. Why do I have to worry so much about memory when programming for this platform? It makes
01:19:49
◼
►
the platform feel older and more primitive and less capable. I can program for Android
01:19:54
◼
►
or for Windows or for whatever and I don't have to worry about this and like really I
01:19:58
◼
►
just want to make my app right? I want to decide I want to write the code that's going
01:20:02
◼
►
to make my app do the things my app does. I don't care about memory like can't you just
01:20:05
◼
►
take care of that for me? And so the only reason they would go down the garbage collection
01:20:10
◼
►
path is like well here's one way we can make people not have to worry about retain release
01:20:13
◼
►
and it was like well you put in the retains and releases but they won't do anything or
01:20:17
◼
►
or whatever, and garbage collection for a variety of reasons was difficult to go with
01:20:22
◼
►
Objective-C in particular because it is a superset of C, and because it's very difficult
01:20:27
◼
►
for a garbage collector to know enough information about the C-ish parts of your program, which
01:20:31
◼
►
may be right in the Objective-C or may be in data that's coming out of C libraries,
01:20:36
◼
►
to know enough to do the right thing with that stuff, and so it was kind of not technically
01:20:41
◼
►
infeasible but like never a completely closed solution where you could be like, "I feel
01:20:45
◼
►
like 100% of the time we will do the right thing here.
01:20:48
◼
►
And, you know, and eventually, like, they launched it, it was out there,
01:20:53
◼
►
you could use it, they dogfooded it on some teams,
01:20:55
◼
►
and then eventually pulled it back, right?
01:20:57
◼
►
And this is what I was getting at before with, like,
01:20:59
◼
►
things that have been true about Swift in the beginning
01:21:00
◼
►
that are just now going to be coming into the public eye.
01:21:03
◼
►
The other aspect of Swift, setting aside both the syntax
01:21:06
◼
►
and the modernization in terms of,
01:21:08
◼
►
look at this language that does more modern things
01:21:10
◼
►
that lets the developers not worry about the things
01:21:12
◼
►
they're not worried about,
01:21:13
◼
►
and express themselves in a more compact, elegant form,
01:21:16
◼
►
just solving the problem they want to solve,
01:21:19
◼
►
you mentioned it looked more like pseudocode,
01:21:20
◼
►
that's because you're not, like in pseudocode,
01:21:22
◼
►
you're not concerned with the little details,
01:21:24
◼
►
you're just like, here's the algorithm, here's roughly the steps,
01:21:27
◼
►
I don't want to be concerned about the details, right?
01:21:28
◼
►
It does all that, but the other thing that's big about Swift,
01:21:32
◼
►
and this is an interesting contrast to what you just mentioned about, like,
01:21:34
◼
►
C being made in the day when computers were slow,
01:21:36
◼
►
and it was discussed by Craig as well when he was talking about
01:21:40
◼
►
the just-in-time compilers, the JIT and everything,
01:21:42
◼
►
It is essentially a bet against virtual machines with cycle counting garbage collectors.
01:21:50
◼
►
It is a bet against the things that Java does and C# and Android, which is Dalvik, the virtual machine,
01:21:57
◼
►
or all the JavaScript engines that run all our web browsers.
01:22:01
◼
►
JavaScript is in a tough spot because it's like they're stuck finding a way to make JavaScript fast,
01:22:07
◼
►
because it's everywhere in web browsers and no one really controls that platform.
01:22:10
◼
►
And so that's why we've had to put all this brainpower
01:22:12
◼
►
into making JavaScript fast.
01:22:14
◼
►
But garbage collectors was going more in that direction.
01:22:18
◼
►
But as you mentioned in the description of Swift,
01:22:21
◼
►
it's supposed to span from an operating system up
01:22:23
◼
►
to a scripting system.
01:22:25
◼
►
And once you get down to low level,
01:22:27
◼
►
you can't have a garbage collector doing
01:22:30
◼
►
unpredictable things at unpredictable times.
01:22:33
◼
►
And even if it's predictable, you can't have the garbage
01:22:35
◼
►
collector take these pauses to walk your trees of things
01:22:38
◼
►
to find out what needs to be collected.
01:22:40
◼
►
Even, you know, there's a lot of great technology
01:22:42
◼
►
in the Java world of making garbage collectors
01:22:44
◼
►
that don't induce pauses or are more predictable,
01:22:47
◼
►
but nothing is as predictable as something
01:22:50
◼
►
that is entirely deterministic like Arc,
01:22:52
◼
►
something that is determined at compile time
01:22:55
◼
►
where they'll put in, essentially put in
01:22:57
◼
►
the retains and releases for you.
01:22:59
◼
►
And there's debate as to whether theoretically,
01:23:02
◼
►
can garbage collection approach the reliability
01:23:06
◼
►
and performance characteristics needed
01:23:07
◼
►
for the kernel of an operating system, I think Microsoft just had various projects to try to make
01:23:11
◼
►
a sort of memory managed operating system or whatever,
01:23:13
◼
►
but Swift is a bet heavily in the other direction, and
01:23:16
◼
►
this bet was made when Arc came out for Objective-C,
01:23:19
◼
►
not so much it was Swift, but doubling down with Swift is that
01:23:23
◼
►
to make a language that fulfills the goal set out for Swift,
01:23:26
◼
►
we have to not have this virtual machine
01:23:30
◼
►
and garbage collection that does all the stuff, we have to basically
01:23:34
◼
►
nail things down more, figure things out at compile time, make everything about it deterministic,
01:23:40
◼
►
only then will it become possible to match both the performance and the sort of the predictability
01:23:47
◼
►
of C code so you can write your operating system kernel, your audio subsystem, or I don't know,
01:23:52
◼
►
your real-time operating system for your car, we'll see about that, but you can write that type of
01:23:56
◼
►
code without wondering when, you know, when the garbage collector is going to pause you for a
01:24:02
◼
►
for a second to walk some tree or when something's going to get collected or how much memory
01:24:06
◼
►
is going to be available at any given time based on when the collector ran, based on
01:24:09
◼
►
what code ran before you called into this code.
01:24:11
◼
►
All right, even when you're running on a modern computer that is very fast and maybe that
01:24:15
◼
►
pause isn't even a full second, maybe it's just, you know, 200 milliseconds, but a fraction
01:24:22
◼
►
of a second. In certain contexts, that pause just kills the user experience. I mean, and
01:24:30
◼
►
That's not to badmouth Android, but it's--
01:24:32
◼
►
I mean, I've heard from a lot of people
01:24:34
◼
►
that dealing with a garbage collected system
01:24:36
◼
►
is one of the reasons why Android spent years trying
01:24:39
◼
►
to get to what iOS users thought was a smooth user interface
01:24:43
◼
►
right from the get-go.
01:24:44
◼
►
Because the garbage collector would run while you're
01:24:46
◼
►
scrolling a list or something like that,
01:24:47
◼
►
and you'd get these little stutters or pauses.
01:24:49
◼
►
And they were fractions of a second,
01:24:51
◼
►
not like a whole second long pause,
01:24:53
◼
►
but just a little fraction of a second.
01:24:56
◼
►
And in a real-time situation, if it's
01:24:58
◼
►
kind of camera-based thing running on a car or something like that you really don't want to have
01:25:02
◼
►
an unpredictable even fifth of a second pause and they have pause-free collectors but the whole
01:25:08
◼
►
point is if you give up pausing essentially what you're either doing is having in the degenerate
01:25:12
◼
►
case having something like reference counting happening in a small case like the you know
01:25:16
◼
►
generational collectors and and the long-lived versus short-lived objects like you can you can
01:25:20
◼
►
avoid pausing but if you avoid pausing you basically build up garbage uh and it this is
01:25:25
◼
►
This was also mentioned by Craig, the idea that they can run...
01:25:27
◼
►
I don't know if it's kind of an excuse of why they put a little RAM in their iOS devices,
01:25:31
◼
►
but that they can fit their stack,
01:25:35
◼
►
they can fit their operating system and their framework and their libraries
01:25:37
◼
►
in a smaller memory footprint, what did they say?
01:25:40
◼
►
Probably, reading from his thing here,
01:25:43
◼
►
"with different memory footprints than some of our competitors
01:25:47
◼
►
whose languages don't have this characteristic."
01:25:49
◼
►
Basically, what he's saying is, Android, they have to ship more RAM in their devices
01:25:52
◼
►
because they build up too much garbage,
01:25:53
◼
►
and that's basically the choice you have.
01:25:55
◼
►
Either something has to decide
01:25:57
◼
►
which memory is available for use,
01:26:00
◼
►
which memory are we done with
01:26:01
◼
►
and we can use again for something else,
01:26:02
◼
►
or which memory is still in use.
01:26:04
◼
►
And Arc does that by,
01:26:06
◼
►
Arc, which underlies Objective-C and Swift,
01:26:09
◼
►
does that by, as it runs, it says,
01:26:11
◼
►
I'm using this, now it's available,
01:26:12
◼
►
now I'm using this, now it's available,
01:26:13
◼
►
now I'm using, like, in the code path,
01:26:15
◼
►
along with the executing code.
01:26:17
◼
►
And garbage collection is, I just plow bravely forward,
01:26:19
◼
►
and something else, the garbage collector,
01:26:21
◼
►
occasionally figures out what is available for everybody else and what isn't.
01:26:24
◼
►
Hopefully you can do that without disturbing the other guy
01:26:26
◼
►
who's plowing bravely forward, but sometimes you have to stop him from going,
01:26:29
◼
►
and if you want to have a pause-free one that doesn't stop the ongoing code
01:26:33
◼
►
to figure out what's available, it has to necessarily leave some stuff on the floor
01:26:37
◼
►
and say, "I'm not sure if this isn't used yet.
01:26:40
◼
►
I can't find out without stopping the guy that's running over there,
01:26:43
◼
►
so I'm just going to leave it off the side."
01:26:45
◼
►
What it boils down to is you never know based on, you know,
01:26:49
◼
►
you've got these two things, the collector and the program.
01:26:52
◼
►
You never know at any given point,
01:26:53
◼
►
when I'm at this point in the code,
01:26:55
◼
►
how much memory is gonna be available in this process?
01:26:58
◼
►
Like, well, if the collector ran here,
01:26:59
◼
►
then maybe it'll be here, but if the collector is behind,
01:27:01
◼
►
'cause it's running on a different core,
01:27:02
◼
►
then maybe this much will be available, whatever.
01:27:04
◼
►
And you just end up with a little bit of extra garbage,
01:27:06
◼
►
and the overhead of the virtual machine itself,
01:27:08
◼
►
and all that stuff.
01:27:08
◼
►
This is even before you get into like executing byte code,
01:27:11
◼
►
like Java does versus native and all that other stuff.
01:27:14
◼
►
Swift and Arc and Objective-C are a bet heavily against
01:27:17
◼
►
the virtual machines, like Java virtual machines,
01:27:19
◼
►
C# Virtual Machine, and certainly anything like the JIT craziness that we've had to do
01:27:23
◼
►
for JavaScript to make that fast.
01:27:24
◼
►
Yeah, garbage collection, the analogy works, and so I can see why that stuck as the terminology.
01:27:32
◼
►
But you know, like any analogy, it breaks down at a certain level. And in the real world,
01:27:37
◼
►
the garbage that you keep, like here in Philadelphia, we get garbage collected once a week. The
01:27:45
◼
►
you know, the fact that by Tuesday we've got six days of garbage in the house isn't a problem
01:27:50
◼
►
because we don't generate that much garbage and it just sits tied up in bags in our garage.
01:27:54
◼
►
Whereas on a computing device, uncollected garbage is taking memory, and memory is a precious
01:28:03
◼
►
resource. It's almost like you're in a studio apartment, you know, and you have uncollected garbage.
01:28:07
◼
►
Yeah, and the thing is, again, good garbage collectors take advantage of this to try to
01:28:13
◼
►
to be smart about like what if I'm in a tight loop and inside this loop I do something with
01:28:17
◼
►
some amount of memory but on the next iteration of the loop I'm totally done with it. I don't
01:28:21
◼
►
need a new set of memory I can just keep reusing that same region of memory over and over again
01:28:25
◼
►
in this tight loop. I don't need to allocate and get rid of it like I just need to know
01:28:29
◼
►
say I'm using it okay now I'm done I'm using it I'm done I'm using it and I'm done rather
01:28:34
◼
►
like say you're just creating a new object in loop every time a very naive old style
01:28:37
◼
►
garbage collector like oh you're making a new object you need some memory for that object
01:28:41
◼
►
I mean, we've got the memory for that object.
01:28:42
◼
►
Okay, here you go, I gave you the memory for your object.
01:28:43
◼
►
You make it, and you go to the next iteration of loop,
01:28:45
◼
►
and the garbage collector hasn't run yet,
01:28:46
◼
►
and it's like, oh, you're making a new object.
01:28:48
◼
►
You need some memory for that object,
01:28:49
◼
►
and a programmer manually managing memory
01:28:52
◼
►
would never allocate new memory.
01:28:53
◼
►
It's like, I've got the memory from the old object.
01:28:55
◼
►
I'm done with it.
01:28:56
◼
►
I'm not using it anymore.
01:28:56
◼
►
Just take this, right?
01:28:58
◼
►
- A good programmer might not.
01:29:01
◼
►
I think we've all run into code
01:29:02
◼
►
that was written like that, though.
01:29:04
◼
►
- But this is the problem
01:29:04
◼
►
with the really primitive garbage collectors
01:29:06
◼
►
back in the day, and the garbage collectors became smarter.
01:29:08
◼
►
It's like, oh, well, for a smarter garbage collector,
01:29:11
◼
►
we can divide the world up into objects that are short-lived
01:29:13
◼
►
and objects that hang around for a long time.
01:29:15
◼
►
And let's make these different pools
01:29:16
◼
►
about these short-lived objects
01:29:18
◼
►
and the ones that hang around.
01:29:19
◼
►
And let's try to, you know,
01:29:20
◼
►
what you're trying to do is get to the point
01:29:22
◼
►
where if you gave this to, you know,
01:29:25
◼
►
if you gave this to an assembly language programming,
01:29:26
◼
►
you showed the assembly language,
01:29:28
◼
►
they wouldn't look at it and go,
01:29:29
◼
►
this is the stupidest code I've ever seen in my life.
01:29:31
◼
►
Like, it's just incredibly wasteful of resources.
01:29:33
◼
►
You know, you want them to look at it and go,
01:29:35
◼
►
oh, oh yeah, no, that's pretty much as efficiently
01:29:37
◼
►
you could have written it. Like you're not allocating tons of memory and then leaving it
01:29:43
◼
►
allocated and not reusing it because you don't know that you can look at it and say well here
01:29:47
◼
►
I am I'm looking at the assembly code I can tell this memory is never accessed again why are you
01:29:51
◼
►
keeping it around? Well the garbage collector doesn't know that yet or whatever. So this is
01:29:55
◼
►
this is a kind of a philosophical debate can garbage collection ever be as efficient and as
01:30:01
◼
►
as predictable as manual memory management.
01:30:04
◼
►
And Arc and what underlies Swift and Objective-C with Arc
01:30:09
◼
►
is trying to say we're going to try to automate the part
01:30:12
◼
►
where we say retain this, do stuff with it, release it,
01:30:15
◼
►
retain this, do stuff with it, release it,
01:30:17
◼
►
so that the developer doesn't have to write it,
01:30:19
◼
►
but so that the compiler writes it,
01:30:20
◼
►
so that if we were to look at the assembly code,
01:30:22
◼
►
we can see a predictable pattern.
01:30:24
◼
►
Because there is some overhead to doing all of those,
01:30:27
◼
►
you know, bumping up the retain counts and releasing,
01:30:30
◼
►
Like that's in your running code.
01:30:32
◼
►
It's the code that the garbage collector code
01:30:33
◼
►
doesn't need to do.
01:30:34
◼
►
It doesn't need to increment retain counts
01:30:35
◼
►
and decrement retain counts.
01:30:36
◼
►
It can just run
01:30:37
◼
►
because it knows the garbage collector
01:30:38
◼
►
is gonna take care of that.
01:30:39
◼
►
And so the bet with Arc and Swift is
01:30:42
◼
►
it is more efficient and predictable to do that work in line
01:30:46
◼
►
because then we know exactly when that work will be done
01:30:48
◼
►
and we can be smarter about it.
01:30:50
◼
►
Like we can, in the binary that we generate,
01:30:54
◼
►
look at it and say, are we being smart
01:30:55
◼
►
or are we being stupid here?
01:30:56
◼
►
Versus if you're running the garbage collector,
01:30:58
◼
►
you're like, well, now there's two things in play here.
01:31:00
◼
►
there's the program and then there's the garbage collector
01:31:02
◼
►
and the program looks okay
01:31:03
◼
►
in terms of what it's doing semantically,
01:31:05
◼
►
but how will the garbage collector interact with this?
01:31:08
◼
►
How would it deal with the memory
01:31:10
◼
►
and know when to make it available for reuse or whatever?
01:31:13
◼
►
- I don't know if I'll be able to find it.
01:31:15
◼
►
I did, I remember reading on, what's that website, Quora.
01:31:20
◼
►
I remember reading a Quora page where somebody asked
01:31:23
◼
►
why do Android devices tend to ship
01:31:25
◼
►
with so much more RAM than iOS devices?
01:31:27
◼
►
And like the top voted answer was, I don't know who wrote it,
01:31:31
◼
►
but it was more or less, you know,
01:31:32
◼
►
that because Android is garbage collected,
01:31:35
◼
►
it's effectively Java.
01:31:36
◼
►
It's Java running in Google's handmade rip off of Java.
01:31:41
◼
►
There's no way you can convince everybody of this.
01:31:51
◼
►
And I do think there is a factor in this
01:31:53
◼
►
where Apple just wants to use less RAM because it's cheaper
01:31:56
◼
►
and they save money and this is one of the ways
01:31:58
◼
►
that they get to 38, 39% profit margins.
01:32:03
◼
►
But there really is a factor there
01:32:06
◼
►
that from an effective standpoint,
01:32:08
◼
►
like an Android device that ships with three gigs of RAM
01:32:12
◼
►
has about as much effective RAM for you as the user
01:32:15
◼
►
using the device as an iOS device with one gigabyte of RAM.
01:32:18
◼
►
- Yeah, and this is, like I said,
01:32:19
◼
►
this is before we even considered the idea of bytecode,
01:32:22
◼
►
although Apple's going that direction
01:32:23
◼
►
with its bitcode thing, but not quite.
01:32:24
◼
►
But anyway, the idea in the Java virtual machine, or any kind of virtual machine that you produce is
01:32:31
◼
►
binary code for the virtual machine.
01:32:34
◼
►
And the virtual machine is this hypothetical thing that is not your actual CPU, and then
01:32:39
◼
►
the virtual machine itself will execute that code natively on the CPU.
01:32:44
◼
►
Like, so the whole idea with Java is like, "Oh, you can make this one Java bytecode application
01:32:48
◼
►
and send it to an x86 device, and a PowerPC device, and an alpha device,
01:32:52
◼
►
and this same quote-unquote binary because it's bytecode will run on all of them because they all have Java virtual machines
01:32:57
◼
►
and those Java vulture machines will execute natively on the individual platforms
01:33:01
◼
►
but you just have one binary that was the write once run anywhere type of thing
01:33:05
◼
►
for I'm not sure what the Dalvik design is but I think they have I think they still have bytecode
01:33:12
◼
►
but either way like the idea of a virtual machine is you have a
01:33:15
◼
►
you don't have a real target architecture you have a virtual machine and that's what you're you're coded to
01:33:20
◼
►
and then you have to eventually get to native code.
01:33:22
◼
►
So it's just more stuff between you
01:33:24
◼
►
and seeing how this is gonna actually execute
01:33:26
◼
►
on your actual hardware.
01:33:27
◼
►
- Yeah, and I do think, I think that's a keen observation
01:33:30
◼
►
that this whole segment of the show,
01:33:31
◼
►
that Swift is a bet that there is something better,
01:33:36
◼
►
there's a better way to,
01:33:38
◼
►
better way to get all the advantages
01:33:39
◼
►
of those garbage collected virtual machines
01:33:42
◼
►
and avoid all of the overhead.
01:33:45
◼
►
- Yeah, and the meta thing and that bet,
01:33:47
◼
►
like again, theoretically in computer science,
01:33:49
◼
►
you can have all these debates about,
01:33:50
◼
►
is it theoretically possible to have a pause-free garbage
01:33:52
◼
►
collector that has better performance?
01:33:53
◼
►
Because like I said, there are advantages to the garbage
01:33:55
◼
►
collector because it doesn't have to have that inline code
01:33:57
◼
►
that messes with the memory management.
01:33:59
◼
►
In the actual execution of the program,
01:34:01
◼
►
it can just go forward as fast as it can.
01:34:03
◼
►
And if the garbage collector could do its job and keep up
01:34:06
◼
►
with it and not disturb it, that would be great.
01:34:08
◼
►
But the other part of this is the idea that computing power--
01:34:16
◼
►
not just CPU power or whatever, but if you
01:34:18
◼
►
if you were to graph anything having to do with computing power in terms of
01:34:21
◼
►
How fast can we get to memory? How much memory do we have?
01:34:24
◼
►
What is the single threaded integer performance of a CPU? I think I saw a chart about like
01:34:27
◼
►
Single threaded integer performance of intel CPUs over the past 10 years or whatever
01:34:32
◼
►
And the curve is not a hockey stick going up anymore like in in the in our youth in the heyday of
01:34:38
◼
►
CPU architectures every year there'd be a new chip and it would be like twice as fast and and you know
01:34:42
◼
►
Your code would just get magically fast. You didn't have to recompile it
01:34:45
◼
►
You didn't have to use any new technology like that the clock speed would double and the you know the the number of
01:34:51
◼
►
Execution units would double and just everything was was roses every year. I
01:34:55
◼
►
Remember and this is as late as the 90s
01:34:58
◼
►
I had an internship at a Windows software development place and I was writing you know
01:35:04
◼
►
Dawson Windows code and everybody had a 486 and
01:35:08
◼
►
The Pentiums were just coming out. So I don't know what year this would have been probably around 95
01:35:14
◼
►
Maybe 94 somewhere around there and the one guy got one first one of the engineers got one first and it was so ridiculously
01:35:22
◼
►
Faster than everybody else and it gave us good kit
01:35:24
◼
►
I mean, you know usually programmers get good good devices because they really you know
01:35:29
◼
►
You even if you're like a penny-pinching manager
01:35:31
◼
►
If it takes a long time for the code to compile getting your engineers machines that compile code faster is worth it
01:35:37
◼
►
This guy's machine was so much faster that we would people would wait
01:35:41
◼
►
until he was like away from his desk and then use his computer to compile stuff because it was took less time than waiting for
01:35:47
◼
►
It to compile at your own desk. Yeah, I remember just like seeing doom running from like
01:35:51
◼
►
First time I saw doom run on the pendium. This is before the edge of video cards. This is all in the CPU
01:35:56
◼
►
It was just magic how much faster it was you just and it was the same program
01:36:00
◼
►
Like it was the same program and just for free your everything you did got faster, right?
01:36:04
◼
►
So when we were in that part of the hockey stick curve
01:36:06
◼
►
like the graph I saw looked like it had that part of the hockey stick curve where it's like going up up up and
01:36:11
◼
►
Then it starts to level off and it becomes kind of like a mound. You know, we're going the slope is decreasing over time
01:36:17
◼
►
If we were still on that hockey stick
01:36:19
◼
►
I think it's inevitable that VMS and any sort of higher abstraction thing would have won because it's like yeah
01:36:26
◼
►
it's a little bit slower and
01:36:28
◼
►
Yeah, you can get behind and we may be using more memory than they're supposed to but just everything is on this big hockey stick
01:36:33
◼
►
and it doesn't matter, your concerns are pointless, they will be dwarfed by the inexorability of progress.
01:36:40
◼
►
And progress has slowed for two reasons.
01:36:42
◼
►
One, the move to mobile has pushed everybody back down that chart a little bit,
01:36:48
◼
►
and we kind of think we're back in the hockey stick era where it's like,
01:36:51
◼
►
"Oh, Apple's doubling their CPU speeds every day,"
01:36:53
◼
►
but all they did was they just got shoved back down the hockey stick,
01:36:56
◼
►
because these things are these tiny little CPUs with small batteries and thermal envelopes
01:37:03
◼
►
that don't allow for fans or anything like that.
01:37:05
◼
►
So we're kind of back in the olden days,
01:37:08
◼
►
but that means we're also back in performance.
01:37:10
◼
►
So on the iPhone CPUs, they used to be like dishwasher CPUs.
01:37:15
◼
►
Like, they were terrible.
01:37:16
◼
►
And they've been slowly catching up to,
01:37:19
◼
►
now like with the iPad Pro, it's like, this is a modern MacBook CPU,
01:37:22
◼
►
but not surpassing the desktop.
01:37:25
◼
►
- No. - Right?
01:37:26
◼
►
So everything is slower,
01:37:29
◼
►
and that's been a huge advantage for Apple,
01:37:32
◼
►
having a native platform like back in the day where everything was Objective-C, which is a C-based language,
01:37:37
◼
►
to be able to just get the iPhone 1 out the door and working.
01:37:40
◼
►
Like, that's why the BlackBerry people thought it was a fake demo, because it seemed impossible.
01:37:44
◼
►
Yeah, and then we see things like the watch where we're pushed back to, "Wow, this is really slow again."
01:37:51
◼
►
Yeah, and then the other aspect of this is Moore's Law.
01:37:54
◼
►
Moore's Law can't continue forever.
01:37:57
◼
►
the density of transistors on a CPU doubling every 18 months, well eventually you get down
01:38:04
◼
►
to like quarks and gluons. Like you can't, you know, having the size of things, the math starts
01:38:09
◼
►
to get really funky really fast and as far as we are aware you can't keep subdividing matter
01:38:14
◼
►
forever. Eventually you get down to fundamental particles and way before you get down to fundamental
01:38:18
◼
►
particles everything becomes screwy in terms of the laws of physics and quantum mechanics.
01:38:22
◼
►
So lithography sizes, like we continue to march forward,
01:38:26
◼
►
but there is an end in sight where you're gonna have
01:38:30
◼
►
to come up with a new technology, like quantum computing,
01:38:32
◼
►
or you know, like just, it's not as if this hockey stick
01:38:37
◼
►
can't go on forever.
01:38:38
◼
►
And so the bet with Swift is the era of time
01:38:41
◼
►
that we're in now where progress on computing power
01:38:45
◼
►
and performance has for both like practical reasons,
01:38:48
◼
►
you know, in terms of how much harder is it for Intel
01:38:51
◼
►
to make their top end CPUs faster every year,
01:38:53
◼
►
and how long does it take to get to the next process node
01:38:55
◼
►
for making feature sizes smaller in CPUs,
01:38:58
◼
►
and because of the move to mobile and wearable
01:39:00
◼
►
and who knows what else,
01:39:02
◼
►
that this is a good time to say,
01:39:05
◼
►
I don't think the hardware is gonna make it
01:39:08
◼
►
so that those virtual machines are better suited
01:39:12
◼
►
to Apple's needs than the solution
01:39:14
◼
►
that represented by Swift and Arc with Objective-C.
01:39:17
◼
►
And so let's say, you know,
01:39:20
◼
►
Swift is the language from the next 20 years, and in the next 20 years we feel like this is the best technical solution.
01:39:24
◼
►
Until quantum computers or whatever, this is what we're going with.
01:39:27
◼
►
And Apple is essentially begging the company on that.
01:39:30
◼
►
And it's been a good bet so far, because like I said, I think it gave them a huge advantage during the iPhone era, essentially, the iOS device era,
01:39:39
◼
►
where it was very difficult for the competitors to catch up with them until the CPUs did start climbing up that hockey stick and said,
01:39:44
◼
►
Now we can support a Java virtual machine
01:39:47
◼
►
and have a responsive GUI,
01:39:49
◼
►
just put a little more RAM in there.
01:39:52
◼
►
- It occurs to me,
01:39:54
◼
►
and I don't want to spend a lot of time
01:39:55
◼
►
speculating about a car on this episode at least,
01:39:58
◼
►
but one of the things that makes me laugh
01:39:59
◼
►
about the car idea is that it's like the one team at Apple
01:40:04
◼
►
that's writing software that the computing part
01:40:07
◼
►
of the device doesn't have to really worry
01:40:12
◼
►
about battery life.
01:40:13
◼
►
I mean, the car itself obviously is going to have to worry about battery life tremendously,
01:40:17
◼
►
but the amount of the battery that goes towards propelling a multi-ton device is everything.
01:40:26
◼
►
And the little computer that lights up the dashboard and maybe does whatever else with
01:40:30
◼
►
the sensors and stuff is kind of insignificant.
01:40:33
◼
►
But it's really the exception to where things are going.
01:40:35
◼
►
The watch, to me, is the better example of where things are going, where the computing
01:40:42
◼
►
devices getting smaller and smaller. I mean, and you know, I don't know what the idea would
01:40:46
◼
►
be, but surely they're going to be making devices that make the watch look big, you
01:40:50
◼
►
know, in the years to come. And so they're never going to get out of the need, I don't
01:40:54
◼
►
think in the foreseeable future to have really efficient code that runs on really what everybody
01:41:04
◼
►
would consider to be a painfully slow processor because we keep the desire to keep making
01:41:09
◼
►
things smaller and smaller and have little fingernail sized things that that do clever stuff is
01:41:16
◼
►
Yeah, and really you have to view it kind of as like as epochs in history
01:41:19
◼
►
Like there was there was the part where you're growing up which was awesome where computers would get faster more powerful
01:41:24
◼
►
Just like everything about them would get better just year after year and it was amazing, right?
01:41:28
◼
►
And if you get starry-eyed and extrapolate from that you'd be like by the time we're adults computers will be infinitely fast and have more
01:41:34
◼
►
Memory you the size of a planet, right?
01:41:36
◼
►
But no, that's not how it works. We start reaching the limits of you know
01:41:39
◼
►
silicon wafer lithography and all the other and instruction level parallelism and all the other sort of
01:41:44
◼
►
very difficult problems that make it harder to make you know, or even just like heat dissipation with the the megahertz wars like
01:41:52
◼
►
You know, what are we using now? The three four gigahertz CPUs. They had three four six gigahertz CPUs a long time ago, too
01:41:58
◼
►
Why are we not using 700 gigahertz CPUs? Like we're bringing to the limits of the current way. We do computation
01:42:06
◼
►
We're kind of in it's not a dead period like we're making progress and we're doing interesting things
01:42:09
◼
►
And we're going the other direction saying well
01:42:11
◼
►
We're not making a lot of progress on the top end, but we can shrink these suckers down really small now
01:42:15
◼
►
Isn't that pretty awesome?
01:42:16
◼
►
You can have a smartphone or a smartwatch
01:42:17
◼
►
But there will have that
01:42:19
◼
►
Inevitably come a time where we come out of this slower period and go up into another hockey stick and again whether it's quantum computing
01:42:24
◼
►
Or whatever whether we're all dead or not like there will be further progress
01:42:27
◼
►
It's not the end of progress
01:42:28
◼
►
but if you're Apple and you're trying to figure out how to make
01:42:33
◼
►
the development platform for right now and for the next 20 years you have to sort of bet like what is the best fit for
01:42:39
◼
►
this and it's you know Apple have the benefit of
01:42:41
◼
►
everyone else going first and going with virtual machines whether it be Java or C# or the common language runtime at Microsoft and
01:42:48
◼
►
seeing how JavaScript has worked out in the browser and they've essentially said
01:42:52
◼
►
Because of both mobile and the slowdown in the top-end performance increase
01:42:56
◼
►
We believe this is the best bet for the next 20 years or so because they saw everyone else go before them
01:43:02
◼
►
And so that that's where we are with this
01:43:04
◼
►
I don't think you know Swift is not if so if it's a language for the next hundred years it could be
01:43:08
◼
►
But again the beauty of these details not being in Swift itself is there's nothing in the language itself that dictates that it couldn't be
01:43:15
◼
►
Run on top of a virtual machine. It's just that's not the correct solution for Apple right now
01:43:19
◼
►
And that's not what they're doing. Yeah, all right
01:43:21
◼
►
Let me tell you about our next friend of the show and it's our good friends at wealth front
01:43:25
◼
►
These guys have been sponsoring a show the last few episodes. They are here's what they give you a low-cost automated
01:43:31
◼
►
investment service.
01:43:32
◼
►
It makes it super easy to invest your money the right way.
01:43:36
◼
►
You just put money into Wealthfront account,
01:43:38
◼
►
and then they manage the portfolio.
01:43:41
◼
►
They ask you a couple of questions about how risk
01:43:44
◼
►
averse you are, how aggressive you want to be.
01:43:48
◼
►
Because you can obviously invest in money
01:43:49
◼
►
that goes into the stock market.
01:43:51
◼
►
It could go down.
01:43:51
◼
►
It's not a bank account.
01:43:54
◼
►
So they ask you a couple of questions
01:43:56
◼
►
to see how comfortable you are with risk,
01:43:57
◼
►
and then they just take it from there, and that's it.
01:44:00
◼
►
They literally say whether you're just starting out,
01:44:03
◼
►
you can, I think you can open an account with just 500 bucks.
01:44:06
◼
►
If you wanna put millions of dollars in there,
01:44:08
◼
►
you can do it too.
01:44:09
◼
►
That seems crazy to me, but you know,
01:44:13
◼
►
really it scales all the way from, you know,
01:44:14
◼
►
you being $500 put in a market to millions of dollars,
01:44:18
◼
►
you can do it.
01:44:19
◼
►
Why would you use them
01:44:20
◼
►
instead of a traditional money manager?
01:44:22
◼
►
Basically what Wealthfront is,
01:44:23
◼
►
is an automated service that replaces a human money manager.
01:44:27
◼
►
The big reason to do it is that, number one,
01:44:30
◼
►
they're just putting money into index funds anyway,
01:44:32
◼
►
which is really a smart long-term strategy.
01:44:35
◼
►
If you read anything about the ways
01:44:37
◼
►
that people can actually invest for success in the long term,
01:44:41
◼
►
putting the money into index funds is the way to go.
01:44:43
◼
►
That's pretty much what Wealthfront does,
01:44:44
◼
►
but they balance it between different index funds
01:44:47
◼
►
based on monitoring systems all the time,
01:44:50
◼
►
monitoring the market all the time,
01:44:52
◼
►
and moving money around between different index funds
01:44:54
◼
►
to keep your risk at the right level.
01:44:57
◼
►
And the big thing is is that Wealthfront charges way lower fees than traditional money managers
01:45:04
◼
►
1.0 1% is about the average but some of the some of the money managers out there charge up to 3% and
01:45:10
◼
►
That's of what you have under management
01:45:12
◼
►
So if you have you know ten thousand dollars under management
01:45:16
◼
►
They they take a fee of 3% of your money not like your profits, but your money that's in there
01:45:21
◼
►
Wealthfront's
01:45:23
◼
►
fee is just 0.25 percent and
01:45:27
◼
►
They only start charging that
01:45:31
◼
►
$10,000 so if you
01:45:33
◼
►
Only, you know, once you get $10,000 in your account, that's when they start charging their
01:45:40
◼
►
Fee and if you use the code that I have here for you, they actually bump that up to
01:45:45
◼
►
15,000 and so if you have 15,000 and then one put one more dollar in there
01:45:51
◼
►
They charge the fee on that one dollar that's over fifteen thousand keep going from there
01:45:56
◼
►
Go to here's where you go to find out more wealth front comm slash the talk show
01:46:03
◼
►
You can start with just 500 bucks and they even say right here that that's really how most of the people who sign up for
01:46:09
◼
►
Worldfront do it put a little money in there see how it works
01:46:11
◼
►
And then when you see how it works and you like the results, that's when you put your quote unquote real money in
01:46:17
◼
►
So go to wealthfront.com slash the talk show
01:46:20
◼
►
You'll actually save money because you get that you get bumped up to fifteen thousand dollars before they even start charging you a nickel
01:46:26
◼
►
So go check them out. And here's the part where I have to try to stay out of prison for compliance purposes
01:46:32
◼
►
I have to tell you that wealthfront incorporated is an SEC registered investment advisor
01:46:37
◼
►
Brokerage services are offered through wealthfront brokerage corporation
01:46:42
◼
►
Member fin ra and si PC. This is not a solicitation to buy or sell securities investing in securities involves risks
01:46:51
◼
►
And there is the possibility of losing money past performance is no guarantee of future results
01:46:56
◼
►
Please visit wealthfront comm to read their full disclosure
01:47:00
◼
►
So far so good. Nobody from the SEC has gotten on me about this
01:47:04
◼
►
It's only a matter of time till they find you
01:47:10
◼
►
Anything else on Swift and and the Federighi interview?
01:47:14
◼
►
I hope they do more of those things and I think we're are we working our way down the ladder?
01:47:20
◼
►
I guess we kind of are like Schiller
01:47:22
◼
►
come to talk show and now
01:47:24
◼
►
Federighi and like we keep going down to like Chris Latner is on like open source
01:47:30
◼
►
Podcast talking about programming languages with nerds then eventually you get like individual
01:47:34
◼
►
Developers on like the UI kit team
01:47:37
◼
►
Doing interviews. Well, maybe they won't go that far but I don't know
01:47:39
◼
►
I like the idea because as you go down the chain people
01:47:42
◼
►
You would think would be both in the position and enthusiastic about talking about more small technical details, right?
01:47:49
◼
►
The old Apple the idea was there's only we speak with one voice from the top
01:47:54
◼
►
And and that one voice doesn't say too much and now now we're kind of moving down the ladder
01:48:00
◼
►
We speak with multiple voices from the top tiers and so they can talk about a little bit different things like, you know
01:48:07
◼
►
Phil Schiller is not going to talk to you about, you know, runtime casting things into protocols,
01:48:12
◼
►
right? But Craig Freddie really will. So as you keep going down, the conversations get
01:48:17
◼
►
more interesting to narrower audiences, as opposed to always just being like the big picture,
01:48:22
◼
►
what is Apple doing type of stuff. So I enjoy that.
01:48:24
◼
►
>> The thing I've detected, what I would define the new Apple, the difference between old Apple
01:48:29
◼
►
and new Apple, is that they remain committed to secrecy on future products for the exact same
01:48:36
◼
►
reasons they always have been, that they don't want competitors to know and that from a marketing
01:48:40
◼
►
perspective they feel that being able to unveil these things as a surprise is an advantage and
01:48:45
◼
►
that gets them a lot of publicity around their events and announcements that they wouldn't have
01:48:49
◼
►
if they were blabbing about everything in advance. And I think also just the good old-fashioned
01:48:54
◼
►
under-promise over-deliver, that if you keep talking about stuff in the future all the time,
01:49:00
◼
►
inevitably some of these things are going to ship late and then you've disappointed people in terms
01:49:05
◼
►
and you know but for stuff that's already shipped and talking about decisions they've already made
01:49:11
◼
►
and the stuff that's out there i think that's where the difference is and i feel like old
01:49:14
◼
►
apple was if we're misunderstood screw them i don't we don't care you know you either get it
01:49:19
◼
►
or you don't and i feel like new apple at an executive level really is it's it's the openness
01:49:28
◼
►
is coming from the frustration i think of being misunderstood and feeling like if we could just
01:49:33
◼
►
explain ourselves we'd be less misunderstood and I wish that we could do that.
01:49:37
◼
►
If only like we all of our commentary on our blogs and podcasts and everything only had a username
01:49:42
◼
►
but they had no way to contact us like the App Store. Would that be frustrating Apple? Like if
01:49:48
◼
►
people were misunderstanding you but there was just no way you could find who this John Gruber
01:49:51
◼
►
guy was to talk to him about it. I mean that's a good contrast in terms of the organizations like
01:49:56
◼
►
they'll talk a lot about the roadmap for Swift and Swift 3 and engage with the community about what
01:50:02
◼
►
what would be best about this programming language that now is going to be much bigger than Apple itself and as a community project,
01:50:07
◼
►
but no one will talk to you about the App Store, even if you have an app, you know, it's just
01:50:10
◼
►
such a contrast in terms of, if I could just talk to a person who would be reasonable with me, like surely we could
01:50:17
◼
►
work this out. You hear all the crazy stories about like an app that's in review, whoever, or they think you're violating someone's copyright,
01:50:24
◼
►
when it's like, no, you don't understand,
01:50:25
◼
►
it's the opposite there, and violating mine, and just
01:50:28
◼
►
Things that you feel like can be worked out between two reason people who just talked to each other on the phone that nevertheless take
01:50:33
◼
►
Months, I just want to an unsatisfying conclusion that what was there was a an apps
01:50:38
◼
►
Oh, I know it was when what was the app that that quit the App Store?
01:50:42
◼
►
Which one sketch? Well, no the one that was recent so sketch
01:50:47
◼
►
announced that they were leaving the App Store and
01:50:50
◼
►
Again, I don't know. I don't want to call it the straw that broke the camel's back
01:50:54
◼
►
I don't know that it's gonna mean that anything is gonna happen
01:50:57
◼
►
But to me it was just emblematic of the problems and especially in the Mac App Store
01:51:01
◼
►
Because sketch was to my mind the prototypical modern
01:51:09
◼
►
Productivity app it's it's beloved. It's so popular. I mean an Apple obviously knows it's popular
01:51:15
◼
►
They ship with like the the watch OS
01:51:17
◼
►
SDKs they ship
01:51:20
◼
►
Photoshop templates for watch UI design and sketch templates for watch UI design
01:51:25
◼
►
So, and I think those are the only two, you know, obviously anybody who uses a different graphics program could open up the PSDs and convert them or something like that.
01:51:32
◼
►
But the two that Apple ships, you know, that you can just download from apple.com are for sketch and Photoshop.
01:51:38
◼
►
So to put it on the same pedestal as Photoshop is, you know, it's pretty good.
01:51:43
◼
►
And they've won Apple Design Awards and they've been heavily promoted in the App Store.
01:51:48
◼
►
And for them to leave the App Store to me is just, wow, if they're not happy in the App Store, who is?
01:51:54
◼
►
That's when Apple's narrative doesn't fit anymore because if you're an Apple and you want to have a narrative to make yourself feel better about
01:52:00
◼
►
App Store complaints you'd be like well
01:52:02
◼
►
These are just kind of like the same way you talk about the complaints about you know
01:52:05
◼
►
I don't need Arc, retain release is fine. Like well, these are just the old people like we love them
01:52:09
◼
►
They're loyal to our platform. They've been there a long time
01:52:11
◼
►
Your Adobe's your Microsoft's or whatever, but really the future of the platform is about new blood. It's about new developers developers
01:52:19
◼
►
We haven't heard of like say someone makes a new graphics application. That's not Adobe
01:52:24
◼
►
That's from a smaller team that grows up on our platform that we were the first and only
01:52:28
◼
►
Platform that they targeted that that is native to us that you know, like that's what Apple wants like oh these this
01:52:35
◼
►
Fresh young faces like new talent essentially that because that's the future of the platform
01:52:40
◼
►
The future of the platform is not old crusty people who've been shipping on the Apple platforms for 30 years, right?
01:52:45
◼
►
It's new people and so a new company you've never heard of comes along and makes this great graphics application
01:52:51
◼
►
that is, you know, taking the world by storm and Apple saying putting it up alongside Photoshop and they say
01:52:56
◼
►
Yeah, you know we're out. We can't take this app store stuff anymore
01:53:00
◼
►
Then you can't just say well really the app store is great for everybody's just you old crusty people who are used to the old
01:53:04
◼
►
Ways, you know it breaks the narrative
01:53:06
◼
►
One of the ways that sketch again is like to me a poster child of what Apple wants
01:53:10
◼
►
Third-party apps to be is like exactly what you said
01:53:13
◼
►
It's Mac only and it's not Mac only because they you know
01:53:16
◼
►
It's because they've how does a small team build an app that in some ways can
01:53:21
◼
►
Compete toto Photoshop. It's because they're leveraging all of this great graphic stuff built into Mac OS X
01:53:29
◼
►
Same thing with pixel mater same thing with acorn
01:53:32
◼
►
From our pal Gus, you know that these apps written these graphics apps written by really small teams
01:53:39
◼
►
I mean Gus is the only developer at flying meat. I mean, it's a one-person team there
01:53:44
◼
►
He can make an app that credibly stands as a professional image editor because he's leveraging
01:53:50
◼
►
it wouldn't even make any sense to go cross-platform because it's it's all built on this system stuff and
01:53:56
◼
►
That's what Apple wants for multiple reasons one
01:53:59
◼
►
that's why they give you these API's and they
01:54:02
◼
►
are happy to see them used and then they know that when they add new features to the operating system like
01:54:09
◼
►
What's the thing on the new retina 5k max where there's more colors on the monitor the deep p3?
01:54:15
◼
►
Go or color gamut or whatever. It's called right so then these apps. I think sketch one of these apps
01:54:20
◼
►
I know I just saw in the release notes on the App Store one of them
01:54:23
◼
►
Just released an update that has support for it already
01:54:25
◼
►
Whereas in the old days when you're you know like and not to badmouth Adobe
01:54:30
◼
►
But like with Adobe stuff where they're cross-platform
01:54:32
◼
►
They couldn't adopt like a new great new Mac technology like this deep color on the 5k
01:54:38
◼
►
I'm ax because they have this graphics engine that is a level of abstraction and it's based on what's available on Mac and Windows
01:54:46
◼
►
And if Windows doesn't have it
01:54:48
◼
►
Maybe there's you know
01:54:49
◼
►
It's gonna take them longer to be able to adopt it because then you've got these files that have you know
01:54:54
◼
►
Deep color that don't show up on Windows or something like that
01:54:57
◼
►
It's just a perfect example of doing it the right way and then here they are getting out
01:55:04
◼
►
The one thing that stuck out to me on this and you like your example of wouldn't it be great if you could just talk
01:55:09
◼
►
To somebody and work this out was in the hubbub over sketch leaving the app store. I was reading Michael sigh
01:55:15
◼
►
Had a great blog post like a roundup blog post with like, you know
01:55:20
◼
►
eight nine ten different reactions from around the web and he just noted at the end of the
01:55:24
◼
►
Noted without any further comment that he has an update to a Mac app that's been pending review
01:55:30
◼
►
It's just a bug fix update to one of his apps that was pending review for 59 days
01:55:35
◼
►
What does that what kind of sense does that make here's a bug fix for my users and 59 days later
01:55:42
◼
►
It's still waiting to go into review
01:55:44
◼
►
Yeah, and even that you could say it's like prioritization or whatever and you might feel bad about it
01:55:48
◼
►
But the ones that just really drive me nuts is where like it's a misunderstanding like it's a romantic comedy level
01:55:53
◼
►
misunderstanding and and and it's just like
01:55:57
◼
►
Listen to me, you know, like it's like in a romantic comedies stories
01:56:01
◼
►
But like I think it just if these two people just got together and explain this one thing
01:56:04
◼
►
Like the whole rest of the movie would be pointless, right?
01:56:06
◼
►
And this is like this in the App Store
01:56:07
◼
►
But there's no one for you to talk to like you you send your little message in a bottle and then you wait and then
01:56:11
◼
►
You wait and then you wait and this inscrutable reply comes back. It's like no you didn't understand me
01:56:15
◼
►
You did you even read what I wrote like it's is this an automated system. Is there a human there?
01:56:20
◼
►
Can I talk to somebody somebody who is both empowered and able to understand like there's like there's a language barrier like they don't you know
01:56:26
◼
►
I think the one about copyright was that like where some a bunch of scammers are putting up applications that appeared to come from a
01:56:32
◼
►
Different developer and then Apple would flag the legitimate developer to say they were violating the copyright
01:56:36
◼
►
It was like what whatever was that?
01:56:38
◼
►
stuff like that is very frustrating like and that essentially what that comes down to is like like in a romantic comedy just merely a
01:56:44
◼
►
lack of communication and how can Apple be doing so well and
01:56:47
◼
►
improving so much in its communication like
01:56:50
◼
►
Keeping the advantages like you said of like keeping your product secret and not and not showing everything you're even thinking of making because my people
01:56:57
◼
►
are disappointed but also
01:56:59
◼
►
Being open to feedback and having a community where human beings talk to other human beings doesn't mean they're always gonna agree and doesn't mean
01:57:05
◼
►
People outside Apple are telling Apple what to do
01:57:08
◼
►
But just to make sure everyone's all on the same page and obviously it's a much more advantageous for a programming language
01:57:14
◼
►
Which is less of a competitive advantage for Apple then like its individual features or whatever but the App Store
01:57:20
◼
►
Like it's just it's it's so clearly a different philosophy
01:57:24
◼
►
dictating the the public face of that part of the organization than the other and I know it's all one big place and
01:57:30
◼
►
Apple tries to speak with one voice, but I
01:57:33
◼
►
You know, it just it's becoming
01:57:35
◼
►
increasingly clear where the lines are in terms of like the new Apple that you were describing and
01:57:44
◼
►
The old Apple that's it's still inside there and and you know who knows like who's to say that that is or isn't appropriate for
01:57:50
◼
►
The individual things is just a difference in like what department am I talking to what is the subject that?
01:57:56
◼
►
We're that we're even talking about
01:57:58
◼
►
And how then does Apple talk about it?
01:58:00
◼
►
59 days in review what the hell
01:58:13
◼
►
I guess I could take another break here.
01:58:15
◼
►
And do you want to talk anything else about Swift?
01:58:18
◼
►
I guess the other thing,
01:58:19
◼
►
one other thing I thought about was Swift.
01:58:21
◼
►
I know Apple's, they've said this for a while,
01:58:23
◼
►
but you know, Federighi's had this
01:58:24
◼
►
in his talking points all week long,
01:58:26
◼
►
which is that they really, really think
01:58:28
◼
►
that Swift could be the default go-to programming language,
01:58:33
◼
►
not just for their platforms
01:58:35
◼
►
and writing apps for their platforms,
01:58:37
◼
►
but just like, you know,
01:58:38
◼
►
high school kids who are learning to program,
01:58:40
◼
►
middle school kids.
01:58:41
◼
►
I mean, I don't even know why I wait till high school,
01:58:42
◼
►
but kids learning to program computer science courses
01:58:46
◼
►
in college, you know, why not, you know,
01:58:49
◼
►
that they see Swift as the language
01:58:51
◼
►
that could take that role, which to me is it,
01:58:53
◼
►
I believe it, I really think that they mean it,
01:58:57
◼
►
but that's such an incredibly ambitious goal
01:59:01
◼
►
for a programming language.
01:59:02
◼
►
- Yeah, I think it sounds more reasonable
01:59:04
◼
►
when you think about, well,
01:59:05
◼
►
what are those people learning with now?
01:59:08
◼
►
Because I can tell you it's not C,
01:59:09
◼
►
Like, I think most of the time it's Java or JavaScript,
01:59:14
◼
►
which I guess is JavaScript probably isn't terrible
01:59:17
◼
►
because it's a pretty simple language.
01:59:18
◼
►
- Really, do you think CompSci is JavaScript
01:59:21
◼
►
or do you think just--
01:59:21
◼
►
- I think Java, Java I think is the most common
01:59:24
◼
►
teaching language at this point.
01:59:26
◼
►
Some schools like, you know, I think MIT still has something
01:59:29
◼
►
with Scheme and Lisp and all that business.
01:59:31
◼
►
But the days of them teaching C
01:59:34
◼
►
is your first programming language,
01:59:35
◼
►
I think are long gone and C++ same type,
01:59:38
◼
►
Like, what is a better teaching language is what it gets to.
01:59:40
◼
►
Like, if not Swift, then what?
01:59:42
◼
►
And if Java is the answer, I think Swift has fewer,
01:59:47
◼
►
well, it's difficult.
01:59:48
◼
►
When they say that, like, Swift is gonna be a language,
01:59:50
◼
►
then which Swift do you want them to teach?
01:59:52
◼
►
Do they want us to teach Swift one?
01:59:53
◼
►
Oh, no, no, no, Swift two?
01:59:54
◼
►
Oh, no, like, again, it's barely sitting up at this point.
01:59:57
◼
►
So this is obviously a long-term plan.
01:59:58
◼
►
But once Swift settles down, being a more modern language,
02:00:02
◼
►
it's either gonna be Swift or something like Python
02:00:06
◼
►
or JavaScript that's an even higher level language.
02:00:08
◼
►
because learning languages don't need to care about performance and stuff like that.
02:00:11
◼
►
So you can get away with using, not I'm gonna say a toy language,
02:00:15
◼
►
but a much much higher level language that you just want them to deal with the concepts.
02:00:19
◼
►
And I think the only thing that will hold Swift back is,
02:00:22
◼
►
Swift is a complicated language, Swift has a lot of features, right?
02:00:27
◼
►
And a lot of the features in Swift I think make more sense in the context of understanding simpler languages first.
02:00:34
◼
►
Swift is not a simple language, there is a lot to it.
02:00:37
◼
►
It's very powerful.
02:00:38
◼
►
There's a lot of concepts and things in there.
02:00:40
◼
►
Not details that you don't care about,
02:00:41
◼
►
like memory management and crap.
02:00:43
◼
►
Well, there's a little tiny bit of that
02:00:44
◼
►
if you really want to get into it, but.
02:00:46
◼
►
- All right, what do they have?
02:00:46
◼
►
Like an unsafe pointer type?
02:00:48
◼
►
- Yeah, like they've got the go ahead,
02:00:50
◼
►
screw yourself abilities in there,
02:00:53
◼
►
but you wouldn't teach that.
02:00:54
◼
►
But even just the concepts of the way it handles,
02:00:58
◼
►
all the different prototypes and class extensions
02:01:01
◼
►
and inheritance and when do I use a class
02:01:03
◼
►
and when do I use a struct
02:01:04
◼
►
and value types versus reference types.
02:01:06
◼
►
And there's a lot of things in there that aren't in much simpler languages,
02:01:09
◼
►
like back in the old days, TCL, you know, or like a logo with a little turtle,
02:01:15
◼
►
or even something like Python.
02:01:17
◼
►
I mean, I guess every language has its grotty corners,
02:01:19
◼
►
but Swift is already a pretty full-featured language,
02:01:22
◼
►
and it's going to get even fuller featured with time.
02:01:25
◼
►
So that may hold it back from being a teaching language,
02:01:28
◼
►
because in some respects, a teaching language,
02:01:30
◼
►
you don't even need it to be a real language.
02:01:31
◼
►
I mean, I guess you need it to execute for your exercises and stuff,
02:01:33
◼
►
but you're not teaching them,
02:01:35
◼
►
here's the programming language you're gonna use when you enter the industry, like it's not a vocational school.
02:01:38
◼
►
You're teaching them concepts, which is why MIT can teach Lisp and Scheme and everything and ML or whatever,
02:01:43
◼
►
and it's like, I don't care if you can use this, we're just trying to teach you conceptually how this works,
02:01:48
◼
►
and why Python, again, Python is another language that many people have said looks like pseudocode,
02:01:51
◼
►
especially since there's no curly braces and the indentation is mandatory.
02:01:54
◼
►
You can go to your algorithms book and see the algorithms for red black trees and you can write it in Python
02:01:58
◼
►
and it looks a lot like it did in your algorithms book that didn't have, you know, the algorithms book just has English words,
02:02:03
◼
►
It's not a programming book at all right so I think the road to Swift being a teaching language may be difficult
02:02:10
◼
►
but if I had to pick
02:02:12
◼
►
Do you want to teach this course in Java or in Swift?
02:02:14
◼
►
I think Swift would be better if only because jobs get even more weirdness in terms of like primitives versus you know
02:02:20
◼
►
Auto-boxing and object types and all sorts of weird crap like that so I've never written Java, so I'm speaking from a position of
02:02:29
◼
►
admitted some level of ignorance, but I've you know everything I've ever seen of Java is
02:02:34
◼
►
It's just it's so verbose. Oh
02:02:38
◼
►
It it really I find it very off-putting
02:02:43
◼
►
and there's a lot of like there's a lot of weirdness in Java that has to do with like
02:02:47
◼
►
I think it was a funny part of speaking of things that would sound weird in the future a funny part of Craig video reason
02:02:52
◼
►
You're here when you were saying
02:02:55
◼
►
Or server-side languages like Java. Java was not made as a server-side language. It was a language for set-top boxes, right?
02:03:01
◼
►
Well, and in fact, it's what everybody programs on to write Android apps, right? Oh, you know, well, it's well, that's yeah
02:03:07
◼
►
But like its origins were for set-top boxes and then eventually its second life was oh, these are gonna be applets
02:03:14
◼
►
They're gonna run in your browser. Like it was the opposite of server-side
02:03:17
◼
►
It was gonna be code that we send from a server to your client and runs in people's web browsers
02:03:21
◼
►
And then it had its third life as you know what we're just gonna have this as a memory managed language on a server because
02:03:26
◼
►
It's faster than all those scripting languages, and it doesn't require a manual memory management like C++
02:03:31
◼
►
It always struck me and I know that it came from Sun and that Sun was a you know typical laid-back
02:03:37
◼
►
Valley you know corporation
02:03:40
◼
►
Isn't it funny that you have to talk about Sun in the past tense and it even feels like the past tense now kids don't
02:03:45
◼
►
Even know what Sun is
02:03:48
◼
►
You know, I know that's where it started, but the syntax of it looked so corporate to me
02:03:52
◼
►
It looked like the type of programming language that was written by like IBM programmers who still wore like a shirt and tie to work
02:03:58
◼
►
and and like the type of people who like
02:04:00
◼
►
They your email is configured and you can't even change it so that you have like a 12 line
02:04:05
◼
►
Legal disclaimer in your signature, you know that you know, if you've gotten this email by mistake
02:04:10
◼
►
You're legally obligated to delete it and notify us immediately, you know
02:04:14
◼
►
It just looks like that type of programming language
02:04:16
◼
►
where just to have a simple class, you've got like 12 lines of bullshit boilerplate for everything.
02:04:21
◼
►
Yeah, I never like trying to do Hello World and having to make like a class that I mean,
02:04:26
◼
►
there's a certain symmetry to it like that it is kind of like if you compare it to C++ or something
02:04:33
◼
►
like that, it was trying to make a more rationalized world and I think as one of the
02:04:38
◼
►
first languages to really break out and be successful in doing that, I definitely feel
02:04:42
◼
►
I feel like it has a, I have respect for it as making a substantial leap over what came
02:04:47
◼
►
I have respect for it, but it's, I didn't like it.
02:04:49
◼
►
I, when I went to Drexel in the 90s and majored in computer science, we learned Pascal at
02:04:54
◼
►
first, like the first year courses were Pascal.
02:04:59
◼
►
And people used to complain, some people, not largely, but people, there were complaints
02:05:03
◼
►
like on the mailing list, like students complained into the faculty that, you know, why are we
02:05:08
◼
►
learning Pascal?
02:05:09
◼
►
No, there's no jobs in Pascal.
02:05:11
◼
►
wants C programmers and the professors, if they would respond.
02:05:15
◼
►
Or I guess it wasn't mailing lists, it was the news groups we had for the computer science
02:05:21
◼
►
And they would just be like, "We're not running a vocational school here.
02:05:23
◼
►
If you learn how to program, you'll be able to program in any language."
02:05:26
◼
►
Which is true.
02:05:27
◼
►
I mean, it's not like you learn how to program in C and then you don't know how to program
02:05:33
◼
►
in another language.
02:05:34
◼
►
You just have to learn the syntax.
02:05:35
◼
►
But like when I took object-oriented programming, it was C++.
02:05:40
◼
►
And I thought, wow, object-oriented programming
02:05:44
◼
►
That's what I took away from object-oriented programming
02:05:47
◼
►
I was like, wow, this is bullshit.
02:05:52
◼
►
And that's the thing about teaching languages,
02:05:55
◼
►
is you're trying to teach concepts.
02:05:59
◼
►
And they may be concepts that are pretty new.
02:06:02
◼
►
But you have to have an embodiment of those concepts
02:06:04
◼
►
to teach them, because you do want people
02:06:05
◼
►
to write code that executes.
02:06:06
◼
►
And every embodiment comes with its own BS.
02:06:09
◼
►
whatever that BS may be, whether it may be,
02:06:12
◼
►
oh, it started out as a series of macros on top of C.
02:06:15
◼
►
And so it's got some C grottiness in there.
02:06:18
◼
►
Or this language is obsessed with performance.
02:06:21
◼
►
So there's a lot of crap that you don't quite understand
02:06:23
◼
►
that complicates things, but it's needed for performance.
02:06:26
◼
►
Or Java-like, this was originally made for set-top boxes,
02:06:30
◼
►
and later was used for web applets,
02:06:31
◼
►
and there's this whole bytecode thing that's going on.
02:06:34
◼
►
And they tried to make a new portable framework
02:06:36
◼
►
that works everywhere.
02:06:37
◼
►
So why the hell does FileIO look all crazy?
02:06:40
◼
►
Well, it has to work everywhere and can't rely on any--
02:06:43
◼
►
it's like there's a virtual machine,
02:06:45
◼
►
and it's not using the native libraries in the platform,
02:06:48
◼
►
and everything is all verbose.
02:06:51
◼
►
And that baggage is not part of what
02:06:53
◼
►
they're trying to teach you.
02:06:54
◼
►
But you have to end up learning it as part of the course.
02:06:56
◼
►
And if things go awry, the course
02:06:58
◼
►
can end up being more about that baggage,
02:07:01
◼
►
or get distracted and think that baggage is part
02:07:03
◼
►
of the essential concept, like you said,
02:07:04
◼
►
thinking that C++ is object-oriented programming.
02:07:07
◼
►
two very separate different things and if that's it and it was mine too, it's the first object
02:07:11
◼
►
oriented language I learned with C++, it really warps your world view and you can't help if you're
02:07:17
◼
►
teaching that course to be influenced by the language you're choosing, so I'm glad that
02:07:22
◼
►
people upgraded from C and C++ to Java because it was a significant step up in terms of the BS that
02:07:27
◼
►
you have to learn and deal with, but Java has its own BS and Swift has its own BS too, especially now
02:07:32
◼
►
that it's changing every year, that if you teach the course one year your previous assignments won't
02:07:36
◼
►
won't even compile the next year.
02:07:38
◼
►
Like maybe it's not time to jump on the Swift bandwagon yet.
02:07:41
◼
►
But over time, yeah, you need to upgrade
02:07:44
◼
►
the language you're using to teach.
02:07:45
◼
►
And hopefully they get better over time and have less BS.
02:07:49
◼
►
- Here's the thing, I guess I think I had it in my notes
02:07:52
◼
►
for the interview with Craig Federighi.
02:07:55
◼
►
And I don't think I got to it.
02:07:56
◼
►
And I think it was because it just seemed like a dead end
02:08:00
◼
►
to try to get it out of him.
02:08:01
◼
►
But that, I don't know how I would have asked it,
02:08:06
◼
►
But the basic idea being that a lot of times
02:08:08
◼
►
a programming language is, it starts to fuel
02:08:12
◼
►
the creator of the language's personal itch.
02:08:14
◼
►
Perl is a perfect example of that.
02:08:16
◼
►
Say what you want about Perl.
02:08:17
◼
►
Me and you, I know you still write Perl as your job, right?
02:08:23
◼
►
- And everything I've ever done of any consequence
02:08:26
◼
►
programming-wise is written in Perl.
02:08:28
◼
►
My reference markdown implementation is Perl.
02:08:31
◼
►
I wouldn't, I still, I like it.
02:08:36
◼
►
And I think for me personally, because most of what I want to do is string manipulation,
02:08:41
◼
►
that's why Perl is great.
02:08:42
◼
►
But the fact that it's so great at string manipulation was the fact that Larry Wald
02:08:46
◼
►
wanted to do things like that.
02:08:47
◼
►
And if you read back to when he created it, he was writing these little glue scripts for
02:08:52
◼
►
-- what was it, like the NSA or something like that?
02:08:55
◼
►
It was some kind of government --
02:08:56
◼
►
>> I think it was NASA.
02:08:58
◼
►
I think you're off by one letter in that acronym.
02:09:02
◼
►
But he was like, you know, had these automated things that need to run and FTP the results
02:09:06
◼
►
up to a certain server and that it was automating them with scripts and he was like, wow, this
02:09:09
◼
►
is terrible.
02:09:10
◼
►
It used to be a lot easier if I just made my own little scripting language that made
02:09:13
◼
►
this easier to do and then it grew from there.
02:09:15
◼
►
And all sorts of other languages have origins like that.
02:09:18
◼
►
And I just wonder whether is it a problem that Swift is being steered by someone who's
02:09:24
◼
►
a systems designer who writes, you know, the LLVM and CLang and writes these compilers?
02:09:31
◼
►
Is there a problem having a language written by the compiler guy?
02:09:34
◼
►
Because you're making things, you're trying to make things easier for the compiler
02:09:37
◼
►
and optimize things from the compiler as opposed to making a language that makes it
02:09:41
◼
►
more possible to be expressive as a GUI app designer.
02:09:46
◼
►
Well, that foundational bet on, you know, Arc essentially versus a virtual machine
02:09:52
◼
►
is at the core, I feel like, of the design at Swift because it's baked in entirely.
02:09:57
◼
►
And that is definitely from a compiler writer's perspective.
02:09:59
◼
►
and Craig touched on this as well.
02:10:01
◼
►
If you are writing a compiler, dealing with a language
02:10:06
◼
►
that makes it so you can't add certain obvious optimizations
02:10:10
◼
►
because according to the semantics of the language,
02:10:12
◼
►
you can't be sure that this thing,
02:10:14
◼
►
I can't be sure what method is gonna get called here.
02:10:16
◼
►
I'm not gonna know until runtime.
02:10:18
◼
►
At compile time, I have no idea.
02:10:20
◼
►
So like Craig said, the compiler has hands tied
02:10:23
◼
►
behind its back, both hands sometimes,
02:10:25
◼
►
and it's just like, well, nothing I can do about it.
02:10:26
◼
►
I just gotta put in this code to execute this at runtime.
02:10:30
◼
►
I'll look up the method and we'll execute it
02:10:31
◼
►
and you can try to do some optimizations.
02:10:33
◼
►
And the whole fact that there's a runtime
02:10:34
◼
►
that all your code gets turned into calls
02:10:36
◼
►
to the C library for Objective-C message send
02:10:38
◼
►
and we can optimize the hell out of that
02:10:40
◼
►
with assembly code or whatever.
02:10:41
◼
►
But the bottom line is we can't inline it
02:10:43
◼
►
'cause we don't even know what the hell
02:10:45
◼
►
method's gonna be like.
02:10:46
◼
►
That there's dynamism in the language
02:10:48
◼
►
that the compiler can't handle.
02:10:50
◼
►
So if you're a compiler guy, you're like,
02:10:52
◼
►
boy, this is really frustrating.
02:10:53
◼
►
I know I can make this go faster.
02:10:55
◼
►
I know I can make this safer.
02:10:57
◼
►
I know I can make it so I can guarantee
02:10:59
◼
►
that this is always gonna be initialized.
02:11:01
◼
►
Nothing a programmer can do
02:11:02
◼
►
to end up with this half initialized object
02:11:04
◼
►
that's gonna cause a segfault
02:11:05
◼
►
because they didn't realize through this chain of code
02:11:07
◼
►
that they're halfway through the initializers
02:11:08
◼
►
and they call a method
02:11:09
◼
►
and it tries to read some object attribute
02:11:11
◼
►
that has garbage data in it because it wasn't initialized.
02:11:13
◼
►
I can fix that in the language.
02:11:14
◼
►
And I can say, this language guarantees
02:11:16
◼
►
that by the time this object is constructed,
02:11:18
◼
►
all this stuff has been initialized.
02:11:20
◼
►
It's guaranteed by the language.
02:11:21
◼
►
It's guaranteed by the compiler.
02:11:22
◼
►
That bug is gone from everybody's code.
02:11:24
◼
►
or calling a method on a thing that doesn't exist, that bug is gone for me, I can guarantee that, right?
02:11:29
◼
►
And so it's not just that he's like, I just want to make it good for the compiler,
02:11:32
◼
►
the compiler guy also sees all the places where, you know, where bugs happen, where programs fall down,
02:11:38
◼
►
and he can solve that, and I think what you're getting at is like, okay, but if you mostly write compilers and you don't write GUI apps,
02:11:42
◼
►
maybe you're making a language that makes it more difficult to write UIKit, or AppKit, or some, like, one of these great GUI libraries that helps
02:11:51
◼
►
application developers make the applications that they make for the Mac and for iOS.
02:11:55
◼
►
And I think, I mean, there's two things giving people that impression. One is,
02:12:01
◼
►
there is a match between the language and the libraries in terms of, and culturally as well as
02:12:08
◼
►
technically. And early in Swift's life, one of the main requirements of Swift is you have to be able
02:12:13
◼
►
to call into Objective-C and all that, you have to be able to interact, you have to be able to write
02:12:17
◼
►
an application partially in Swift and partially in Objective-C, or it's a non-starter.
02:12:20
◼
►
And it can't be, it may not be optimal, but it can't be terrible to drop into an object,
02:12:25
◼
►
you know, to call into an object of C library.
02:12:28
◼
►
And like Craig said, you can't wait around to be like, well, we've got a new language
02:12:31
◼
►
and then a whole new set of libraries and a whole new set of, like, you can't just start
02:12:33
◼
►
from scratch.
02:12:34
◼
►
There's too much value and investment in what, in all the existing frameworks and libraries.
02:12:39
◼
►
And then you'd still be in a case where you have dual libraries, like a whole separate
02:12:43
◼
►
stack for Swift and, you know, it's not, so you have to do, have to have that interaction
02:12:48
◼
►
is going to be a little bit weird.
02:12:49
◼
►
Like all the crazy annotations they have
02:12:51
◼
►
in Objective-C libraries to get better interfaces
02:12:53
◼
►
with Swift and you have to think really hard about like--
02:12:55
◼
►
- Carbon and Cocoa?
02:12:57
◼
►
- Yeah, well, I mean, they eventually settled that, right?
02:13:00
◼
►
But you know, during the transition,
02:13:01
◼
►
you gotta do what you gotta do in a transition.
02:13:03
◼
►
I think that transition makes Swift look bad
02:13:05
◼
►
because if it was a top to bottom Swift stack,
02:13:08
◼
►
it would be clear, hey, how do I use Swift
02:13:10
◼
►
to make a GUI app?
02:13:11
◼
►
Right now it's, hey, how do I use Swift
02:13:13
◼
►
to use Objective-C libraries to make a GUI app?
02:13:16
◼
►
And there's this drive by people writing code, like,
02:13:19
◼
►
I just want to be pure Swift.
02:13:21
◼
►
But you can't really be pure Swift at this point.
02:13:23
◼
►
Like, they feel like it's a defeat to say,
02:13:25
◼
►
well, I'm using Swift, but I'm basing everything
02:13:27
◼
►
on NSObject because I just want those type of semantics.
02:13:30
◼
►
Like, it feels dirty, it doesn't feel pure Swift.
02:13:32
◼
►
And it's not going to be pure Swift top to bottom
02:13:34
◼
►
for a long time, just because of the reality
02:13:36
◼
►
of the situation they're in.
02:13:38
◼
►
And the second thing I think that is helping,
02:13:40
◼
►
that you have to take into mind is that,
02:13:42
◼
►
yes, Swift is a language written by a compiler guy
02:13:46
◼
►
that does a lot of things that make it easier to write a compiler
02:13:50
◼
►
and then make it easier to make code that's guaranteed to be safe.
02:13:54
◼
►
But that guy had to pitch his language to an organization filled with people
02:13:58
◼
►
who make GUI applications.
02:14:00
◼
►
He had to convince, like, Alioser that, you know,
02:14:03
◼
►
this new language that I came up with in my basement or whatever,
02:14:06
◼
►
I think should be the language for the next 20 years of Apple,
02:14:09
◼
►
and it's an awesome way to write iOS and Mac apps.
02:14:12
◼
►
He had to make that case.
02:14:14
◼
►
It's not like he's not the dictator of Apple, right?
02:14:17
◼
►
He didn't say, "I came up with Swift
02:14:19
◼
►
and we're gonna use it."
02:14:20
◼
►
And I feel like the people he had to make that case to
02:14:23
◼
►
know what the heck they're doing
02:14:25
◼
►
and it had to have been a good case.
02:14:26
◼
►
- Yeah, have no problem standing up for their,
02:14:29
◼
►
you know, for their own thoughts and-
02:14:31
◼
►
- And yeah, he's not their boss.
02:14:33
◼
►
- So I've, you know, it's very uncomfortable
02:14:37
◼
►
in the phase we are now where it's so clear
02:14:40
◼
►
that there are barriers to making this work
02:14:42
◼
►
and Swift isn't done yet
02:14:43
◼
►
and all these other things that are true,
02:14:45
◼
►
but I'm not really ready to bang the gavel on anything
02:14:47
◼
►
having to do with like, well,
02:14:49
◼
►
Swift is not as well suited
02:14:51
◼
►
for making GUI apps as Objective-C was.
02:14:53
◼
►
You could say that the current version of Swift
02:14:55
◼
►
is not as well suited as Objective-C
02:14:58
◼
►
for using Objective-C libraries to write GUI apps.
02:15:01
◼
►
But I feel like as the culture and capabilities
02:15:04
◼
►
and actual code as in Swift top to bottom,
02:15:07
◼
►
like let's start with foundation
02:15:08
◼
►
and all the other libraries start getting built up,
02:15:12
◼
►
I feel like those same teams that made,
02:15:14
◼
►
like, you know when they made UIKit,
02:15:14
◼
►
they kind of like repented for the sins of AppKit
02:15:17
◼
►
and did it better?
02:15:19
◼
►
There's one more chance to do that right now.
02:15:20
◼
►
All those same, the great minds behind UIKit and AppKit,
02:15:24
◼
►
some of those same minds are going to be the great minds
02:15:27
◼
►
behind the Swift native frameworks
02:15:29
◼
►
for writing GUI applications in the future.
02:15:31
◼
►
And I think that'll be a good thing.
02:15:33
◼
►
- Yeah, I agree.
02:15:33
◼
►
And I think that the other thing too
02:15:35
◼
►
about being the compiler guy is that it put Latner
02:15:40
◼
►
and his team and the people he works with,
02:15:42
◼
►
in a position where they're really intimately familiar
02:15:45
◼
►
with the things that cause problems
02:15:49
◼
►
in shipping applications.
02:15:51
◼
►
And maybe some of those problems are things
02:15:54
◼
►
that a true expert in Objective-C would never do.
02:15:57
◼
►
And therefore they feel a little frustrated
02:15:59
◼
►
like that the language,
02:16:00
◼
►
not that it's being catered to dummies,
02:16:02
◼
►
but that by making certain things that were possible,
02:16:05
◼
►
no longer possible,
02:16:07
◼
►
you prevent a whole class of possible bugs,
02:16:10
◼
►
but at the same time you also prevent certain clever
02:16:14
◼
►
but dangerous techniques that people had taken advantage
02:16:18
◼
►
of significantly.
02:16:19
◼
►
And that Apple is making the decision
02:16:20
◼
►
that that trade-off is worth it
02:16:22
◼
►
because they're in a position where they literally know
02:16:25
◼
►
from like crash reports and code
02:16:28
◼
►
that's actually been shipping that being able
02:16:30
◼
►
to not do this anymore is actually going to cut off
02:16:34
◼
►
this sort of problem won't even be possible anymore.
02:16:37
◼
►
- Or just making it harder.
02:16:38
◼
►
Like, I mean, the idea of a half initialized object,
02:16:40
◼
►
like, you know, making that impossible in the language, you can do that fine.
02:16:45
◼
►
The idea of calling a method that doesn't exist on an object, like, at runtime,
02:16:49
◼
►
you thought you had an object of this type, but really you casted it to the wrong thing.
02:16:53
◼
►
Like, in Swift you can forcibly cast things to the wrong thing and try to send them,
02:16:58
◼
►
you know, the wrong method call, right?
02:17:00
◼
►
Like the whole idea of like looking up a class name by a string,
02:17:03
◼
►
like all these capabilities, this dynamism that Craig talked about that they're adding,
02:17:07
◼
►
they're adding it so it'll be possible to do these things,
02:17:10
◼
►
But it's not like the right or preferred way to do things.
02:17:13
◼
►
And it certainly isn't the default. And if you do it,
02:17:15
◼
►
it's going to stand out in your code
02:17:17
◼
►
because you're going to have to make--
02:17:18
◼
►
it doesn't stand out in Objective-C code
02:17:20
◼
►
when you're iterating over this heterogeneous collection
02:17:21
◼
►
and just sending every object the message blindly.
02:17:24
◼
►
And if they're nil, it'll just be a no op.
02:17:25
◼
►
And if they're the wrong class, it'll blow up at runtime
02:17:28
◼
►
because it'll be like, object blah doesn't
02:17:30
◼
►
respond to the message blah.
02:17:31
◼
►
You'll find that out at runtime.
02:17:33
◼
►
But if you look at the loop, it's
02:17:34
◼
►
like, oh, this is just looping over the contents of an NSRA
02:17:36
◼
►
and sending a message to every single item.
02:17:38
◼
►
Looks good to me.
02:17:39
◼
►
If you try to do something that potentially dangerous in Swift,
02:17:42
◼
►
I think it would look scarier.
02:17:44
◼
►
I think it would look like I am going to now call a method
02:17:47
◼
►
that the compiler cannot absolutely 100% guarantee
02:17:50
◼
►
is going to work.
02:17:52
◼
►
And because that's not the default,
02:17:53
◼
►
and because it will require more code and look scarier,
02:17:56
◼
►
it is sort of culturally saying that in the Swift world,
02:17:59
◼
►
we don't do stuff like that.
02:18:00
◼
►
We don't be like, oh, the program will take care of it.
02:18:02
◼
►
I'm sure every object in this collection
02:18:03
◼
►
will respond to this message.
02:18:04
◼
►
I'm sure it will be fine.
02:18:05
◼
►
Or they'll just do response to selector,
02:18:07
◼
►
and then they'll call it or whatever.
02:18:09
◼
►
In Swift, the default wants to be,
02:18:11
◼
►
if you just see straightforward Swift code,
02:18:13
◼
►
it's gonna work and not fall victim
02:18:15
◼
►
to this whole classes of errors
02:18:17
◼
►
that could potentially happen in Objective-C
02:18:20
◼
►
because too much was determined at runtime.
02:18:22
◼
►
- Let me take a moment here and thank our next sponsor.
02:18:26
◼
►
It's our good friends,
02:18:27
◼
►
longtime friends of the show, Squarespace.
02:18:29
◼
►
You guys know Squarespace.
02:18:30
◼
►
It's a build it, you're all in one,
02:18:33
◼
►
build your own website platform.
02:18:37
◼
►
What type of websites can you make with Squarespace?
02:18:39
◼
►
Well, better question would be what types can't you?
02:18:41
◼
►
You just go there and sign up and immediately
02:18:44
◼
►
you can just get right started and say,
02:18:46
◼
►
what are you trying to build?
02:18:48
◼
►
You wanna build a store?
02:18:50
◼
►
And you go to store and then they'll show you
02:18:52
◼
►
a bunch of templates, for example,
02:18:53
◼
►
stores that you start with and then you say,
02:18:55
◼
►
yes, this is exactly the sort of template,
02:18:58
◼
►
this is the type of store I wanna make.
02:18:59
◼
►
Then you open that up and you just start editing
02:19:02
◼
►
what you see that replace the images with your image,
02:19:04
◼
►
replace the text with your text.
02:19:06
◼
►
You wanna build a blog though,
02:19:08
◼
►
if that's what you're looking to build or host a podcast,
02:19:11
◼
►
you just write down when you sign up,
02:19:13
◼
►
it's just like, I'm gonna create a blog,
02:19:14
◼
►
I'm gonna host a podcast, here's some templates.
02:19:16
◼
►
I like this template, use this one,
02:19:18
◼
►
but I wanna change this to this and this to this,
02:19:20
◼
►
and you start changing things right there in the browser.
02:19:24
◼
►
Total WYSIWYG really could not be more obvious,
02:19:29
◼
►
it's so visual.
02:19:31
◼
►
They have all sorts of hooks there,
02:19:33
◼
►
if you want to insert your own code,
02:19:35
◼
►
you wanna get in there at the code level
02:19:36
◼
►
and change it at that level, you can do that too.
02:19:39
◼
►
But fundamentally, it's a GUI,
02:19:41
◼
►
it's a graphical user interface way to design websites,
02:19:45
◼
►
and they have templates for so many different types of sites
02:19:48
◼
►
it's ridiculous.
02:19:50
◼
►
It doesn't just spit, at the end,
02:19:54
◼
►
it doesn't just spit out a bunch of HTML files
02:19:56
◼
►
that you then put in a folder
02:19:58
◼
►
and upload to a web host or whatever.
02:19:59
◼
►
They're the hosting platform too.
02:20:01
◼
►
It's all in one.
02:20:02
◼
►
You build it, you make it.
02:20:04
◼
►
You can even get your own domain name on it
02:20:06
◼
►
and you can get the domain name for free
02:20:08
◼
►
if you pay for a year in advance.
02:20:10
◼
►
Just could not be easier.
02:20:12
◼
►
Online commerce, the sales stuff,
02:20:14
◼
►
they handle all the tricky stuff,
02:20:16
◼
►
all the encryption and the credit cards and stuff like that.
02:20:19
◼
►
Really, really impressive.
02:20:20
◼
►
Plans start at a ridiculous eight bucks a month.
02:20:24
◼
►
And like I said, you get a free domain name registration
02:20:26
◼
►
for your site if you sign up for a year in advance.
02:20:30
◼
►
And the demo is no credit card required.
02:20:32
◼
►
You just go there and just start like typing and playing.
02:20:35
◼
►
You just go to squarespace.com and just start.
02:20:38
◼
►
And it, you know, you're actually there making a website.
02:20:43
◼
►
Could not be easier.
02:20:44
◼
►
Use the offer code Gruber, my last name, G-R-U-B-E-R,
02:20:48
◼
►
and you will get 10% off your first purchase
02:20:50
◼
►
with Squarespace.
02:20:51
◼
►
If you're listening to this show,
02:20:52
◼
►
'cause John is on it, you can use their code.
02:20:54
◼
►
It's ATP and you'll get the same 10% off.
02:20:56
◼
►
So Squarespace, build it beautiful.
02:20:58
◼
►
If you need to build a website,
02:20:59
◼
►
just go check out Squarespace.
02:21:01
◼
►
Spend an hour there.
02:21:02
◼
►
you'll probably end up saving yourself days of work.
02:21:04
◼
►
- That's very nice of you to give our code.
02:21:08
◼
►
- Oh, it's, we're all in it together.
02:21:09
◼
►
- It's so short and easy to remember.
02:21:11
◼
►
I hope that's our actual code.
02:21:12
◼
►
- No, I know it is.
02:21:12
◼
►
I was listening to your show today and I took note of it.
02:21:15
◼
►
- There you go.
02:21:16
◼
►
You're doing homework.
02:21:17
◼
►
- I wanted to see what you guys said
02:21:19
◼
►
about the smart battery case.
02:21:21
◼
►
I feel like I have my last couple of shows,
02:21:24
◼
►
like I had Joanna Stern on last week,
02:21:27
◼
►
and we've just been like a couple of days away.
02:21:30
◼
►
like we could have, you know, a couple of days later
02:21:32
◼
►
and we could have, Joanna and I could have gone long
02:21:35
◼
►
on the battery case.
02:21:36
◼
►
I kind of had a feeling that that's what they were gonna make
02:21:41
◼
►
'cause I didn't know, I didn't tell me,
02:21:43
◼
►
but after the show when we were still on the air,
02:21:46
◼
►
Joanna said, "Hey, has Apple been in touch with you
02:21:48
◼
►
about anything?"
02:21:49
◼
►
I was like, "No, not yet."
02:21:50
◼
►
And she goes, "They are with me."
02:21:51
◼
►
And all they wanted to know was what color iPhone I have
02:21:54
◼
►
and that they're gonna send me something, you know,
02:21:57
◼
►
to review at the end of the week.
02:21:59
◼
►
And I remember that somebody at Apple,
02:22:04
◼
►
when I went and got my iPad Pro review unit,
02:22:08
◼
►
it was at a briefing in New York,
02:22:09
◼
►
and I was asked which size iPhone do I use,
02:22:13
◼
►
the iPhone 6s or the 6s Plus, and I said 6s,
02:22:16
◼
►
and they were like, good, we might have something
02:22:18
◼
►
for you later, you know, a couple of weeks.
02:22:21
◼
►
And I filed that away at that point,
02:22:23
◼
►
and I thought, what in the world would they make
02:22:25
◼
►
that would apply to the 6s and not apply to the 6s Plus?
02:22:28
◼
►
And the only thing I could think of is a battery pack.
02:22:31
◼
►
That's the only, either a battery pack or,
02:22:34
◼
►
I guess it would have to be a case.
02:22:35
◼
►
Cause if it was a battery pack,
02:22:36
◼
►
it would apply to anything with a lightning port.
02:22:38
◼
►
So I figured it had to be a battery case.
02:22:40
◼
►
- Well, it could have been any kind of case,
02:22:42
◼
►
but I suppose, you know.
02:22:44
◼
►
- Yeah, but why would they make it?
02:22:46
◼
►
To me, a battery case was specifically the sort of thing
02:22:48
◼
►
that they would make only for the 6S and not the 6S,
02:22:51
◼
►
not the plus for the obvious reason
02:22:53
◼
►
that the plus already gets plenty of battery.
02:22:55
◼
►
- They need to make the same battery case for the plus.
02:22:58
◼
►
Just like, just a huge lump on the back of it
02:23:01
◼
►
that have been last two days.
02:23:02
◼
►
- It would be, you could actually sit there
02:23:05
◼
►
and do like arm curls with it, I think.
02:23:07
◼
►
It was actually like build your biceps.
02:23:09
◼
►
- So how was your, one of the things I saw
02:23:11
◼
►
is our friend Cable Sasser,
02:23:13
◼
►
his case was like cracking along the top,
02:23:15
◼
►
maybe he just got the defective one,
02:23:17
◼
►
I'm assuming yours is fine.
02:23:18
◼
►
- What color did he get?
02:23:19
◼
►
- He got the black one or the charcoal, whatever.
02:23:21
◼
►
- So they sent me the white one,
02:23:22
◼
►
and that's the only one I have experience with.
02:23:25
◼
►
So mine didn't crack.
02:23:26
◼
►
And what I did is I got mine Tuesday morning.
02:23:31
◼
►
So it was the day that they announced it.
02:23:34
◼
►
They had already sent one to me by FedEx.
02:23:36
◼
►
So it was like FedEx guy showed up at like 10 AM
02:23:38
◼
►
and I had it.
02:23:39
◼
►
And I pretty much left it on my phone
02:23:42
◼
►
until I got my review out.
02:23:45
◼
►
Which it was obviously, it was a couple of days late.
02:23:48
◼
►
I let you read it before you guys did ATP.
02:23:50
◼
►
I was like, it'll be up by the time
02:23:52
◼
►
your show is on the air.
02:23:54
◼
►
- You're truly the Douglas Adams.
02:23:55
◼
►
Well, I can't say that Doug is Adam's tech running because he wrote for Mac for all their Mac user back in the day, too
02:24:00
◼
►
But yeah, those deadlines are great as they wish best your own self-imposed self-declared deadlines
02:24:04
◼
►
No one was pressuring you to say that you're like, oh no problem. Yeah, I had a Wednesday night school thing
02:24:10
◼
►
some kind of
02:24:12
◼
►
You know showing it the I don't know some kind of projects the kids made at 530 at Jonas's school and I thought oh, that's great
02:24:19
◼
►
I'll just make sure I'm finished by then and I'll have a little self-imposed deadline and I didn't get it up till Friday
02:24:23
◼
►
Yeah, the idea was that the deadline that you were sure you were gonna make it because you had to because you had a school
02:24:30
◼
►
And it turns out when you're self-employed you don't have to do anything
02:24:32
◼
►
You know what? It was the the more I thought about it
02:24:36
◼
►
You know as often happens that writing to me writing is thinking and the more I wrote about it
02:24:41
◼
►
The more I realized that it was it there are interesting things to pursue and think about and talk about it
02:24:47
◼
►
You know, sometimes you start writing
02:24:49
◼
►
I didn't think it was going to be nearly as long as it was, and I didn't think it was.
02:24:52
◼
►
That's like the longest thing you've written in a long time, was about a battery case.
02:24:55
◼
►
Well, that's why it's so... but to me, there's so many little interesting things about it.
02:25:00
◼
►
But one of the things I did to motivate myself to finish, I didn't really like
02:25:04
◼
►
having it on my iPhone, but I kept it on my iPhone until I got the review out.
02:25:08
◼
►
So I actually did use it non-stop, pretty much, other than like to play with, you know,
02:25:14
◼
►
the insertion and removal and some, you know, certain things you want to do testing it.
02:25:19
◼
►
I would but for the most part I had my phone in it from Tuesday till Friday
02:25:23
◼
►
So I didn't see any kind of cracking or anything like that
02:25:25
◼
►
Yeah, maybe taking it in and out causes the cracking
02:25:28
◼
►
I could I mean you would think it was some sort of widespread defect
02:25:31
◼
►
We would have heard about it by now, but it happens when you get the first ones of anything like who knows?
02:25:35
◼
►
Well, yeah, I think I think it's I think the first ones of anything
02:25:38
◼
►
It's it's likely that it was probably just so maybe some kind of
02:25:42
◼
►
You know, maybe there was a batch that got a bad batch of the whatever the substance the silicone
02:25:48
◼
►
What do they call it? Whatever the substance is on the outside?
02:25:50
◼
►
Yeah, or maybe there was a coating that was supposed to be put on that wasn't put on right anyway
02:25:54
◼
►
I wouldn't I wouldn't if you're thinking of getting one
02:25:55
◼
►
I wouldn't let this stop you because if there's something like that happens, it is bringing back to the Apple still
02:25:59
◼
►
They could be a new one. They'll work it out
02:26:00
◼
►
I will say this I'm from ATP you guys were saying and I know somebody else
02:26:04
◼
►
I think it was Joanna actually in a review
02:26:07
◼
►
She I think she got a white one and said don't buy the white one because it's already stained
02:26:10
◼
►
And you guys said don't buy the white one
02:26:12
◼
►
I have the white one and I used it non-stop for four days and
02:26:17
◼
►
It still looks mint condition didn't pick up pick up any stains. So I don't very you're very clean, right?
02:26:22
◼
►
I guess it's tissue boxes on your feet and you lick yourself clean like a cat and so there's no
02:26:26
◼
►
residue what I heard actually after that show is the opposite of people who got the the black one and said it picks up pocket
02:26:32
◼
►
Lint like if you have lint and stuff in your pocket and you put the thing in you take it out to cover with white
02:26:35
◼
►
Stuff so it's like white and black cars like choose your poison. Both of them are gonna have something in the environment
02:26:41
◼
►
It's gonna stand out more on them. I couldn't tell it is obviously very very
02:26:46
◼
►
similar to their non battery silicone cases in terms of the substance that
02:26:51
◼
►
it's made out of but it's maybe not quite the same it actually felt a little
02:26:56
◼
►
grippier to me the the battery case to me felt grippier than the non battery
02:27:01
◼
►
case but on the other hand the one that I had handy which was one that Apple
02:27:05
◼
►
gave me with my review unit a couple months ago for the iPhone 6s was blue
02:27:11
◼
►
and this was only white and black and maybe there's some I know with the watch
02:27:15
◼
►
Straps there's definitely a little difference in how they feel, you know the sport bands
02:27:20
◼
►
There's the different colors have different levels of like flexibility different weights, too. Yeah different weights even
02:27:30
◼
►
I may know that might therefore be true with these two. Maybe the white is somehow grippy
02:27:34
◼
►
Or maybe the white non battery case is grippy or two. I thought it was a little a little too grippy
02:27:38
◼
►
I thought you know and in terms of it actually being thicker therefore was a little harder to get in and out of jean pockets
02:27:44
◼
►
thickness aside, the grippiness made it a little, you know, a little bit too much friction,
02:27:49
◼
►
in my opinion. Yeah, that's always the balance, because one of the complaints about other third
02:27:54
◼
►
party battery cases is they make it slipperier, because a lot of them are hard plastic or hard
02:27:58
◼
►
shiny plastic, and then so you end up dropping it also because it's a bigger, more awkward shape
02:28:02
◼
►
sometimes. But if you make it too grippy, it's hard to slide in and out of a pants pocket,
02:28:06
◼
►
so you just want to find that medium. And yeah, I totally believe that the black and white ones
02:28:10
◼
►
could feel different. And they look in the pictures, I've never actually touched one of
02:28:14
◼
►
these things but they look in the pictures like it could also be potentially that whatever material
02:28:18
◼
►
they're making it out of is thicker you know in the parts that don't have battery in them it's
02:28:22
◼
►
just thicker so it could be squishier it is a little thicker it's definitely like so if you
02:28:26
◼
►
stack it side by side with the the you know so it's resting on like the volume buttons or the
02:28:33
◼
►
power on off switch stack it on the side and compare it side by side with the silicone case
02:28:38
◼
►
it's definitely a little thicker it stands up a little bit more the sides are thicker on this than
02:28:43
◼
►
on the silicone case. And if you think about it, it makes sense because it's actually a lot more
02:28:46
◼
►
rigid. It's, you know, you can kind of put the phone, I think there's a recommended way like the
02:28:51
◼
►
with the silicone cases, they recommend to put it in like certain angle first, but it doesn't really
02:28:55
◼
►
matter. You can just put any side in first and then just sort of squish the other side over the
02:29:02
◼
►
edge of the iPhone. With this, you have to slide it in like it's in between the two sides is like
02:29:07
◼
►
like a rail, it slides in like that.
02:29:10
◼
►
And the sides are definitely thicker.
02:29:12
◼
►
I don't know what, I think it's because
02:29:14
◼
►
it's meant to be more rugged.
02:29:16
◼
►
I think it is sort of a, you know,
02:29:18
◼
►
they're only advertising it as a battery case,
02:29:20
◼
►
but I think it's also Apple's answer to
02:29:22
◼
►
what if you want a more protective case
02:29:24
◼
►
for drops and stuff like that.
02:29:27
◼
►
- Yeah, I mean, once you're gonna have
02:29:28
◼
►
that giant thing on there anyway,
02:29:29
◼
►
there's no sense trying to skimp around the edges
02:29:31
◼
►
to try to make it look spelt, 'cause it's not gonna.
02:29:34
◼
►
I thought on the ATP, I thought you were the only one
02:29:36
◼
►
it was really reasonable. Marco and Casey made me a little angry with their take on
02:29:41
◼
►
it. I thought Marco was way too dismissive about it. What did he call it? He said it
02:29:45
◼
►
looks like an engineering prototype.
02:29:48
◼
►
Like, I do. And this is the thing that gets me is I thought I did a pretty good job of
02:29:51
◼
►
my article. And then on Twitter, there's a handful of people, "Oh, of course, John
02:29:54
◼
►
Gruber likes it." I was like, "I didn't... It wasn't really an overly positive review."
02:29:59
◼
►
And I ended it with saying that I don't want to use it. And I called it weird and funny
02:30:03
◼
►
looking and ungainly. It wasn't like I was entirely complimentary. It was like, I just
02:30:09
◼
►
want to understand why they made it.
02:30:11
◼
►
Yeah, or just like, especially in things like this, where it's like a visceral reaction
02:30:16
◼
►
based on appearances, there's usually, and I would use lots of car analogies on ATP,
02:30:22
◼
►
coming from the car world, like, stuff like that can be polarized on, like the physical
02:30:26
◼
►
shape of an object whose purpose is mostly not dictated by its shape. People have strong
02:30:32
◼
►
opinions about, you know, a Porsche 911 versus a Corvette versus a Mustang, like, these are
02:30:37
◼
►
very different looking things, and in the grand scheme of things, there are engines
02:30:40
◼
►
and wheels, and aerodynamics aside, there are lots of features of cars that look the
02:30:45
◼
►
way they look for just aesthetic design reasons, so anything like that, where you look at a
02:30:51
◼
►
picture of something, as so many people did on the internet, look at a picture of this
02:30:54
◼
►
thing, and just have this negative gut reaction to it, and these articles come flying, like
02:30:59
◼
►
what's happening to Apple design or whatever, you really want to understand like, what is
02:31:05
◼
►
a reasonable rationale for this?
02:31:07
◼
►
And you could come to the conclusion that there is no rationale, that this is just like,
02:31:11
◼
►
it's the simplest thing that they could possibly do, and, you know, they were just lazy, or
02:31:17
◼
►
didn't have time, or like, or whatever, but with Apple, knowing everything we know about
02:31:22
◼
►
Apple, like, that just doesn't seem plausible, because no one was demanding that they release
02:31:26
◼
►
a battery case.
02:31:28
◼
►
It's like and who really cares in the grand scheme of things, right?
02:31:31
◼
►
But this is what they came out with so you want to think about it like and so that's why I was going into the philosophy
02:31:36
◼
►
Like is is there an explanation because this is an area where Apple won't talk to the press for the most part
02:31:40
◼
►
It's like oh, let's have someone from Apple's design studio
02:31:43
◼
►
You're not Johnny I've because he's busy but someone lower level make the rounds to the tech press. No, not really
02:31:48
◼
►
That's not gonna happen right and nor should they because like aesthetics
02:31:51
◼
►
It's like look this is the product we have and we'll see what the reaction to it is
02:31:54
◼
►
But we think it's it makes sense in some way and how could they think this makes sense?
02:31:58
◼
►
So I was going back through what have they said in the past publicly about past designs that could conceivably apply to this design
02:32:05
◼
►
Well, they're true or not. Who knows we're just speculating but the bottom line is
02:32:08
◼
►
If you think it's ugly you think it's ugly
02:32:11
◼
►
Don't buy it buy one that you think is not ugly, right?
02:32:15
◼
►
I mean and the other thing I feel like maybe in my article I didn't cover this enough. It's afterwards is it?
02:32:22
◼
►
If you're wondering why it doesn't look just like a mophie
02:32:26
◼
►
Whatever juice pack air whatever their thinnest one is which is of course the one that Apple if Apple is gonna go that direction
02:32:32
◼
►
They'd make the thin it. They're not gonna make one of these you know the cases that have three thousand
02:32:36
◼
►
What's the unit milliamp hours milliamp hours
02:32:41
◼
►
It's so much easier to write MAH
02:32:44
◼
►
Why doesn't it look like those which is really like sort of the standard for all of them well of course
02:32:51
◼
►
they're not gonna make one like that because if they thought that was the right way to do it,
02:32:54
◼
►
they don't have to do anything. They're already there. The Apple store, you know,
02:32:58
◼
►
are filled with these battery cases that look like that. The only reason for them to make one
02:33:01
◼
►
is if they had an idea that was different. Well, and also, like, I think this is a factor. Like,
02:33:06
◼
►
they know a lot of people buy battery cases. Why shouldn't they have one? And not because,
02:33:12
◼
►
like, they just they need to get that money or whatever. But it's, it's like, as a, it's the
02:33:17
◼
►
same thing with diversifying the phone line. Why don't they make a big phone? Why shouldn't they
02:33:20
◼
►
make a smaller phone, why don't they make something in colors? It's like if it's something
02:33:23
◼
►
that people want and they're buying it anyway, why shouldn't Apple make a really good one?
02:33:28
◼
►
Why rely on third parties to fill that role? And so battery cases have apparently passed
02:33:32
◼
►
into the realm of things that are important enough and that while they purchase enough
02:33:35
◼
►
that Apple feels like it should have a first party solution. And so they do. I mean, I
02:33:39
◼
►
still have questions about the case in terms of how they came up with this compromise because
02:33:43
◼
►
it's like if you're going to be this bulky, like you said the same thing, like why not
02:33:46
◼
►
extend the battery up to the top and bottom, why not go edge to edge with it?
02:33:52
◼
►
Like why not match the capacity of similar thickness battery cases?
02:33:56
◼
►
And you know Apple has its explanations, which may or may not be rationalizations, but in
02:34:01
◼
►
the end a lot of it really does come down to design, because you have to pick a size
02:34:06
◼
►
and a shape and that dictates how much battery life you have, and let's say someone was really
02:34:10
◼
►
wedded to this design and they thought aesthetically it was beautiful and perfect and pure and
02:34:15
◼
►
what they wanted, then the aesthetic design could dictate the size of the battery as opposed
02:34:19
◼
►
to the other way around. It's hard to know without actually talking to the people behind
02:34:23
◼
►
the design. All we can do out here is speculate, and really on ATP, I wasn't going to dismiss
02:34:28
◼
►
anyone else's theories about like that there was time crunch or that, you know, like they
02:34:34
◼
►
didn't put in the effort they normally would. For all I know, maybe this was rushed and
02:34:37
◼
►
I don't know what's going on inside Apple, right? But is there a plausible explanation
02:34:42
◼
►
that, uh, that they say this was actually designed with the same care as every other Apple thing is
02:34:46
◼
►
designed with, or we're led to believe every other Apple thing is designed with, is that even
02:34:50
◼
►
plausible? And I can come up with causal explanations for it. So in the absence of any
02:34:54
◼
►
other information, you just have to kind of like say which one of those do you think is more likely?
02:34:58
◼
►
I think it's so, the hump is so striking that I think it really had to be the result. I think it
02:35:05
◼
►
would be so, I think the, I really doubt that it was the first idea they came up with. It's so
02:35:10
◼
►
unusual and it is at first glance I think almost it's almost impossible to
02:35:15
◼
►
say that it's not a little repulsive at first it just looks swollen in a way you
02:35:22
◼
►
know like you know like when you get stung by a bee and and you know like you
02:35:29
◼
►
get stung on your thumb and your thumb swells up to the base of your thumb
02:35:33
◼
►
swells up to the size of a golf ball like it looks painful when you see
02:35:36
◼
►
somebody with an injury that's swollen, it's like, ooh, you feel it.
02:35:40
◼
►
That's what it looks.
02:35:41
◼
►
It looks swollen, which is not a good look, at least at first.
02:35:45
◼
►
But I found myself after a few days, I kind of got used to it.
02:35:48
◼
►
It's just I stopped thinking of it as being supposed to look like a regular case
02:35:53
◼
►
and that it just looks like it has a battery on the back.
02:35:56
◼
►
Yeah, and like I would another possibility again, having not actually ever
02:35:59
◼
►
touched one of these, I can't say.
02:36:00
◼
►
Although maybe you can tell me what you think about this.
02:36:02
◼
►
like a lot of Oxo Good Grips, like, kitchen things look kind of weird-looking and ugly too,
02:36:10
◼
►
but they're good to hold. And so if you prioritize how good is this thing to hold,
02:36:15
◼
►
not saying this is what they did, because I think the back of it is not shaped like any part of the
02:36:18
◼
►
human hand. Human hand doesn't have like rounded rectangle divots in it or anything, but maybe
02:36:23
◼
►
some ask, like you said, holding your pinky under the lump instead of under the bottom of the thing,
02:36:28
◼
►
Like that could be a factor in it. Like it doesn't mean that they're right
02:36:32
◼
►
So you're just trying to delve like what motivated this why because as you said it's so it's so striking that it it seems clear
02:36:40
◼
►
This was an intentional thing
02:36:42
◼
►
You don't accidentally make this battery case if you if you wanted to do something lazy would just look like every other battery case and I
02:36:46
◼
►
Think Apple would make something look more like they make hell they make silicone cases look pretty much like every other silicone case
02:36:52
◼
►
It's just why does that Bob one because they want to make a nice one and why shouldn't you buy the Apple one if you're?
02:36:56
◼
►
In the Apple store like it makes perfect sense
02:36:58
◼
►
In addition to putting your pinky underneath,
02:37:02
◼
►
the putting your index finger on top of it
02:37:04
◼
►
is pretty good too.
02:37:05
◼
►
And it does sort of, in a weird way,
02:37:08
◼
►
it makes it feel as though you're holding a smaller device.
02:37:11
◼
►
Like you know that it's thicker,
02:37:13
◼
►
but it's like you have these,
02:37:14
◼
►
like from going back to like the old iPhone days
02:37:16
◼
►
with the first few generations
02:37:18
◼
►
when they were physically smaller
02:37:19
◼
►
and it was a lot easier to kinda get your index fingers
02:37:22
◼
►
on top while you still had some kind of reasonable,
02:37:24
◼
►
you know, and it felt like you could hold it more securely
02:37:27
◼
►
your fingers wrapped around it. Your fingers can wrap around the hump in a way that gives you a
02:37:32
◼
►
secure hold. If I were going to, and I knew in advance that I could pack it, if I knew that I
02:37:37
◼
►
were going to be using my iPhone camera to record, I don't know, like while I'm riding on a roller
02:37:42
◼
►
coaster or something like that, I would put it in this case. Like battery, even if the battery was
02:37:47
◼
►
completely depleted and I wasn't going to get one percent of charge from it, I would put my iPhone
02:37:52
◼
►
in that case to hold it while I'm going down a rollercoaster because I feel like I can
02:37:58
◼
►
get like a way more secure grip on that because of the material that it's made of and because
02:38:02
◼
►
of the hump the hump actually gives you like a good place to put fingers.
02:38:06
◼
►
How many trips to Disney do you have to take before you realize it is incredibly dangerous
02:38:10
◼
►
to take movies with your iPhone on a rollercoaster?
02:38:11
◼
►
I have a million signs like do not try to take movies.
02:38:14
◼
►
I wouldn't I wouldn't do it and it's not even because I wouldn't do it just because I it
02:38:20
◼
►
It would just ruin, it would, like imagining me dropping my iPhone on a rollercoaster at
02:38:26
◼
►
Disney would, just the thought of it puts me in such a bad state.
02:38:29
◼
►
It's not that, it's getting hit in the face at 90 miles an hour with someone else's phone.
02:38:34
◼
►
Because like you do it at the top of the loop or whatever, it's Six Flags there.
02:38:37
◼
►
So I guess Disney, I don't know how they manage it at Disney, but at Six Flags they had you
02:38:41
◼
►
going through like metal detectors, so like nothing in your pockets, like literally, it
02:38:45
◼
►
It was like going through the TSA.
02:38:46
◼
►
Like, you know, no car keys, no phones of any kind,
02:38:51
◼
►
just like nothing because--
02:38:53
◼
►
- Well, and it has six flags,
02:38:54
◼
►
the roller coasters go way faster too.
02:38:56
◼
►
- Yeah, I was just saying,
02:38:57
◼
►
like the roller coaster's going 60, 70, 80 miles an hour,
02:39:00
◼
►
and your phone is essentially stationary
02:39:02
◼
►
'cause it's like falling from above,
02:39:04
◼
►
and your face meets that essentially stationary phone,
02:39:07
◼
►
that's not a good experience for anybody.
02:39:09
◼
►
You can kill somebody with one of those things,
02:39:10
◼
►
so kids, no taking movies on roller coasters.
02:39:13
◼
►
- I'm not saying it as though I would do it.
02:39:14
◼
►
I'm just saying that if I were in a precarious situation
02:39:19
◼
►
and needed to have a grip on my phone.
02:39:20
◼
►
- You should do something else that people can relate to.
02:39:22
◼
►
How about going yachting?
02:39:23
◼
►
If you're going yachting, if you were doing Duran Duran,
02:39:26
◼
►
now it's too old, they don't get that.
02:39:27
◼
►
If you're in the video for "Rio"
02:39:28
◼
►
and you're on the front of the yacht
02:39:30
◼
►
and you want to take a movie of it,
02:39:31
◼
►
'cause it's really cool looking,
02:39:33
◼
►
bring the iPhone battery case.
02:39:35
◼
►
- I thought you had a good point on the ATP
02:39:38
◼
►
about it looking like a sci-fi,
02:39:40
◼
►
like if you just paved a hallway with them.
02:39:42
◼
►
Like use them as the tiles,
02:39:44
◼
►
the subway, you know, like the way that the subway, a hallway in the subway station has tiles.
02:39:48
◼
►
Tile it with these, it would look like a great, you know, like you're in a set of like a one of
02:39:54
◼
►
Ridley Scott's, you know, classic sci-fi. Yeah, or like 60-70 sci-fi, you know, do like, you know,
02:40:00
◼
►
I mean, even 2001 era, but an alien or just, you know, anything like Buck Rogers, like they,
02:40:05
◼
►
I guess that's the way that, you know, the future was going to be like white and clean and smooth
02:40:09
◼
►
shapes everywhere. Yeah, but like, you know, some kind of inexplicable ridges and textures,
02:40:16
◼
►
though, you know. Yeah, like on a stormtrooper, like the stormtrooper's got the little thermos
02:40:21
◼
►
on his back, you know, what the hell's that for? I'm sure someone with a technical readout
02:40:24
◼
►
book knows, but like, it was always smooth and white, but there was these lumps, and
02:40:28
◼
►
they seemed purposeful, and it looked like futurey. I actually, and it might just be
02:40:31
◼
►
because I've got Star Wars on the mind this week, but I actually thought, or as soon as
02:40:35
◼
►
I saw it. I thought, boy, this is a real stormtrooper-y looking thing, because it even has a little
02:40:41
◼
►
bit of black around the cutout for the camera. In a way that it's not white, but sort of
02:40:48
◼
►
like an off-white, and yeah, the ridges, the extra ridges, some of them seem, which seem
02:40:52
◼
►
maybe a little inexplicable. There's a certain stormtrooper-y-ness to it.
02:40:57
◼
►
It was a wait for the next version to look like the surface of the Star Destroyer, with
02:41:01
◼
►
little greeblies or whatever they are all over, like little pipes and everything all
02:41:04
◼
►
I'm thinking of other ways this case could have existed like
02:41:07
◼
►
You never see the back of a Nexus 7 like the old Nexus 7s
02:41:11
◼
►
I don't think so, which is like it was like rubber and it had like cross hatching. Oh, yeah
02:41:16
◼
►
I know what you mean little divots come this could have like little lumps on it
02:41:20
◼
►
Like well think of a golf ball world has little you know
02:41:23
◼
►
Concave things or it could be the opposite. It could have convex things like a bunch of like bumps on it
02:41:30
◼
►
I mean, they could have been textured in so many different ways again
02:41:33
◼
►
It's just a completely aesthetically speaking because it's not or maybe there would be some functional grip there
02:41:37
◼
►
But this one is there's one lump, but the surface treatment is essentially smooth. These all seem like
02:41:43
◼
►
Intentional aesthetic choices that that weren't necessarily for gone conclusions that there is some kind of philosophy behind this design
02:41:52
◼
►
Yeah, I texture is gonna come back at some point
02:41:57
◼
►
I feel like we're in an era when texture has sort of fallen out of favor
02:42:01
◼
►
Perhaps largely driven by Apple, but it'll it'll come back eventually
02:42:05
◼
►
You remember the what was it?
02:42:07
◼
►
I figure which case it was the ones with the holes cut out on it the colored ones with the holes cut out from Apple
02:42:12
◼
►
Colored what cases? Oh, yeah. Yeah. Yeah the ones for the
02:42:19
◼
►
Right, and yeah, so it would show the words through it and we were complaining about how it didn't like Center on the words correctly
02:42:24
◼
►
But that was essentially textured because you had these holes in the case that would feel like you'd feel them with your fingers. Yeah
02:42:29
◼
►
I was gonna be yeah, it would be good for another show
02:42:35
◼
►
I was gonna say cuz you know everything they make that was made out of this
02:42:38
◼
►
I don't even know if they call it bead blasted anymore
02:42:40
◼
►
But it's this aluminum that has the same feel the phones have this aluminum
02:42:44
◼
►
The Mac books have this feel the even my iMac has the same is made out of the same stuff
02:42:49
◼
►
But eventually they're gonna switch to a new material from aluminum
02:42:53
◼
►
Yeah, we talked about that in ATP a few times especially with respective phones the aluminum and glass thing is going to seem as
02:43:00
◼
►
barbaric as CRT
02:43:02
◼
►
Video displays due to us now
02:43:05
◼
►
Like you mean it was this big heavy glass thing with like lead on it and electron gun
02:43:09
◼
►
Like how thick was the glass and like that just seems barbaric, right?
02:43:12
◼
►
Aluminum glass phones like the idea that you know for our grandkids the idea that if you dropped your phone on the sidewalk that it
02:43:18
◼
►
it would break, it's gonna sound idiotic.
02:43:20
◼
►
It's gonna sound like we were using
02:43:21
◼
►
the glass shampoo bottles from Prell again.
02:43:23
◼
►
Like, why would you bring glass into the shower?
02:43:25
◼
►
That's so stupid, why didn't you use plastic, right?
02:43:27
◼
►
But right now--
02:43:29
◼
►
- Or like when eyeglasses were made out of glass.
02:43:32
◼
►
- Yeah, shatter and just go into your eyeball.
02:43:35
◼
►
It's like you're doing the best with the materials you have.
02:43:38
◼
►
And aluminum and glass,
02:43:39
◼
►
like it took them a while to get to that.
02:43:40
◼
►
And lots of plastic,
02:43:42
◼
►
and plastic is pretty good material too,
02:43:43
◼
►
especially for radio reception and titanium.
02:43:46
◼
►
But like they went with aluminum and glass
02:43:47
◼
►
'cause I feel like it's just a higher quality experience.
02:43:50
◼
►
Like it feels nicer and more expensive.
02:43:51
◼
►
Glass obviously on the screen is better than plastic
02:43:53
◼
►
as we learned from the iPod Nano,
02:43:54
◼
►
like the plastic is gonna scratch.
02:43:56
◼
►
So you want something that's scratch resistant
02:43:58
◼
►
for the screen and then aluminum for the back.
02:44:00
◼
►
It's just, I mean, 3GS was plastic,
02:44:02
◼
►
but the, you know, and they use glass for the 4 and 4S
02:44:07
◼
►
and like, but aluminum and glass
02:44:08
◼
►
is a pretty solid combo right now.
02:44:10
◼
►
And to get better than it,
02:44:11
◼
►
you basically need something that's not gonna shatter.
02:44:15
◼
►
So it has to be more flexible for the display.
02:44:17
◼
►
And for the back part, I guess you'd
02:44:19
◼
►
probably have to go with something that's
02:44:21
◼
►
equal strength but lighter.
02:44:22
◼
►
So graphite composite plus really hard, flexible screens.
02:44:27
◼
►
Or as I've always said, get the thing down to the size
02:44:29
◼
►
and weight of a credit card.
02:44:30
◼
►
And it really doesn't much matter
02:44:32
◼
►
what material you make it out of because you drop your credit
02:44:34
◼
►
card on the pavement and you pick it back up.
02:44:36
◼
►
Nothing's going to happen to it.
02:44:37
◼
►
It weighs too little that air resistance becomes a factor
02:44:41
◼
►
that doesn't even fall that fast.
02:44:42
◼
►
And if it does, it's flexible enough
02:44:44
◼
►
that it's not gonna shatter or break.
02:44:46
◼
►
- Yeah, I thought of an idea,
02:44:47
◼
►
I was thinking about drops today.
02:44:48
◼
►
I was watching Jonas play Destiny
02:44:50
◼
►
and he jumped off a giant cliff
02:44:52
◼
►
and it seemed like he should have taken damage and didn't.
02:44:55
◼
►
I was like, how come you don't take damage?
02:44:56
◼
►
And he goes, oh, you just,
02:44:57
◼
►
you have like some kind of jets on your feet or something.
02:44:59
◼
►
You know, like a jet, you play the game, so you know.
02:45:01
◼
►
- You need to give me his PSN name, I'll help him out.
02:45:04
◼
►
Or he'll help me out, we'll see.
02:45:06
◼
►
- Yeah, I'll hook you up.
02:45:07
◼
►
And I thought, oh, that's clever.
02:45:08
◼
►
And then I watched it, you know,
02:45:09
◼
►
so it's more or less like your Boba Fett.
02:45:11
◼
►
You jump off a thing and at the very end,
02:45:12
◼
►
you just put on your jet pack a little bit to slow down.
02:45:14
◼
►
I thought, you know, that would be a clever thing
02:45:16
◼
►
for an iPhone to have.
02:45:17
◼
►
If you dropped it, if it had like a little--
02:45:20
◼
►
- That is the Jetsons era solution to this problem.
02:45:23
◼
►
You know what we could do if everything had jets.
02:45:26
◼
►
- Just to slow down just enough--
02:45:26
◼
►
- Just a puff of air at the last moment would keep it from--
02:45:29
◼
►
- And to gently land.
02:45:31
◼
►
But you're right, you know, something like that.
02:45:33
◼
►
But something's got to, I think the other thing
02:45:34
◼
►
that's gonna seem barbaric is the way that
02:45:36
◼
►
with everything made out of aluminum, that they're,
02:45:40
◼
►
Like, can you even imagine how much raw aluminum Apple is sending to China every single day
02:45:47
◼
►
that's just being cut into these shapes by the CNC machines?
02:45:53
◼
►
Well, I mean, the great thing about aluminum is all the shavings and scraps and crap that come off of the machine,
02:45:57
◼
►
like all the material that is removed, that can just go back into the whole recycling thing,
02:46:00
◼
►
because, you know, it just, it's not waste in the sense that you can just recycle that,
02:46:04
◼
►
melt it back down, and put it into another ingot and it comes back to you.
02:46:08
◼
►
But it's a tremendous amount of stuff that they're just cutting which is an incredibly difficult process
02:46:15
◼
►
I mean like but it's it's what they settled on and we saw we all we all saw the development of like how can you?
02:46:20
◼
►
Make a sturdy laptop that's also thin with it doesn't creak or crack or break or feel cheap
02:46:24
◼
►
and they try lots and lots of different things and
02:46:27
◼
►
Boy, this one with the original MacBook Air that the machined out piece of aluminum just seems great
02:46:32
◼
►
I mean eventually they'll get to the point where they're kind of getting to that now with the MacBook one where it's like
02:46:36
◼
►
Strength of materials at this thickness? Do I feel like I can take this MacBook?
02:46:41
◼
►
I'm sorry. The MacBook one is ATB parlance for the MacBook that only has one port on the side of it
02:46:45
◼
►
Just it's just called the MacBook. Anyway
02:46:47
◼
►
Can I bend this over my knee? Because it looks like I might be able to bend this over my knee and I'm just not a
02:46:52
◼
►
comfortable feeling like eventually aluminum becomes no good because
02:46:56
◼
►
It's certain thin, you know thickness if it gets very thin you can bend it and it stays bent and that's not really a good thing
02:47:04
◼
►
That's why you think about things like carbon fiber where they bend but spring back and they're also very light and very strong
02:47:10
◼
►
It's awesome. Well, they switched this year to a new aluminum for the phones
02:47:14
◼
►
So though they look the same the 6s and 6s plus are made from this new
02:47:19
◼
►
7000 series whatever they want to call it, but it's Apple's new fancy-pants
02:47:23
◼
►
version of aluminum
02:47:26
◼
►
And who knows maybe they have you know, maybe maybe this it'll be a take a lot longer than I think
02:47:30
◼
►
It may be a couple years from now. They're gonna have 8000 series of aluminum
02:47:33
◼
►
I don't know, but I kind of feel like by upgrading the aluminum they've used that they're sort of approaching
02:47:39
◼
►
This is as good as it's going to get and well
02:47:42
◼
►
Yeah, but it's like they're they're holding back the tide in that one because it's kind of like samurai swords where you can pick like
02:47:47
◼
►
flexibility or hardness and you want you know hardness on the on the edge the sharp edge because you wanted to
02:47:53
◼
►
Be sharp and be able to cut through things
02:47:55
◼
►
But if it's that hardness through the whole blade the blade will shatter when you hit something so you need a core that's flexible
02:47:59
◼
►
Right so going with it with the aluminum like it's not they're making up these new things so you can make aluminum
02:48:04
◼
►
You can decide do I want it to be very strong and hard or do I want it to be?
02:48:09
◼
►
Like malleable and flexible and not not that it's gonna shatter or anything
02:48:13
◼
►
But like with the aluminum what they're doing now is well
02:48:16
◼
►
We still want to make the phones really thin we want to make them harder to bend and so can we make it so this?
02:48:21
◼
►
Is stronger aluminum hopefully maintain the weight, but at a certain point like it you know like aluminum foil certain point
02:48:28
◼
►
It's gonna bend and what you need is a material that springs back and aluminum is not going to spring back
02:48:33
◼
►
So you will reach a limit in thickness where aluminum is just a non-starter because if you just keep saying
02:48:41
◼
►
We'll just make it so strong that you can't bend it that will you won't be able to do that at a certain point
02:48:45
◼
►
It'll just be too darn thin
02:48:46
◼
►
So the material revolution will come eventually and I'm sure Apple has been for many years now researching
02:48:51
◼
►
What will replace aluminum if anything in our things is it time to try to do a carbon fiber foam because it would be great
02:48:57
◼
►
for radio reception and it would spring back better than aluminum does and we wouldn't
02:49:02
◼
►
have to worry about bendgate as much but you know can we manufacture it in the design so
02:49:07
◼
►
we want to we can't you can't machine carbon fiber you have to mold it and it's really
02:49:10
◼
►
complicated and super expensive and so I think I'll be waiting a while.
02:49:13
◼
►
From the land of fantasy rumors based on like patent fillets and stuff there's the liquid
02:49:17
◼
►
metal stuff that people have been fantasizing about for years so who knows maybe there's
02:49:21
◼
►
something like that too.
02:49:23
◼
►
or in the Jetson puffer jet thing, you can have that material where you can bend it,
02:49:28
◼
►
but if you subject it to some sort of like, if you put it back in heat or you're like
02:49:31
◼
►
apply electricity to it, it goes back into the original shape. Remember that?
02:49:34
◼
►
Yeah, I do remember that.
02:49:36
◼
►
Yeah, the circuit boards inside don't really like bending too much either, by the way.
02:49:40
◼
►
All right, let me take one last break here and then we can talk about Star Wars. I want
02:49:45
◼
►
to tell you about our last sponsor. It's our good friends at Harry's. Now the holiday season
02:49:49
◼
►
is here. This show will be airing tomorrow, December 14. I think it's up till December
02:49:55
◼
►
18. Free shipping is over. But if you order up to the 18th,
02:50:00
◼
►
holiday shipping, economy shipping for the holidays ends on the 18th. So you got a couple
02:50:05
◼
►
of days. You're probably listening to it if you're a fan of the show, because I feel like
02:50:09
◼
►
there's going to be big news that Craig Federighi was on the show. You've got till December 18.
02:50:14
◼
►
You can order it. You can pay for economy shipping. It'll get there before Christmas.
02:50:19
◼
►
What a great gift if there's any kind of men, fathers, brothers, husbands in your life.
02:50:24
◼
►
You can just buy them the holiday kit.
02:50:26
◼
►
They've got these holiday kits with razor blade, with the handle, with some shaving cream and stuff.
02:50:34
◼
►
They sent me one that had this facial stuff.
02:50:37
◼
►
You know, you clean your face with it.
02:50:40
◼
►
I like it. It's good. My skin looks good with it.
02:50:43
◼
►
Really cool stuff. Awesome packaging.
02:50:47
◼
►
This is one of those things you give him a gift if you want to give somebody a gift with razor and stuff like that
02:50:50
◼
►
Give them these Harry's things and they open it up. It looks great makes you look like you have good taste
02:50:55
◼
►
go there check out these holiday kits and
02:50:59
◼
►
Really great prices to
02:51:02
◼
►
High quality blade high quality shaving creams and lotions and gels whatever you want in the thing
02:51:09
◼
►
So go there save yourself the hassle. I hate Christmas shopping good. God almighty. This is like the most right
02:51:16
◼
►
I it's the worst so I'm just you just buy people stuff from sponsors of the show and then you're done with it
02:51:21
◼
►
Get them a mattress and get them a shaving kit from from Harry's
02:51:24
◼
►
Where do you go to find out more?
02:51:29
◼
►
Harry's calm and then use this code talk show know the and their code either use that code and
02:51:35
◼
►
You'll save five bucks off your order and remember you got to the 18th December 18th 2015 and you can still get it
02:51:43
◼
►
Express shipping for the holidays
02:51:46
◼
►
You're worried about that?
02:51:49
◼
►
I'm worried to death about that.
02:51:51
◼
►
I've had two things on my mind the last week, Jon.
02:51:53
◼
►
I've found out I was stressing over this interview with Craig Federighi.
02:51:57
◼
►
I wanted to do a good job with that, and I don't want to have any Star Wars spoilers.
02:52:03
◼
►
Now I've got this interview out of the way.
02:52:05
◼
►
We've got a nice little post-interview discussion with me and you about it.
02:52:09
◼
►
I feel a great sense of relief.
02:52:11
◼
►
Right now, as I speak to you on Sunday, December 13th, I'm now breaking out into a sweat,
02:52:17
◼
►
worrying about spoilers for The Force Awakens.
02:52:19
◼
►
At least you can just hide in your house.
02:52:21
◼
►
I've got to go to an office, though, with people who may be watching the trailers and
02:52:24
◼
►
reading every single thing they can find out about these things.
02:52:27
◼
►
And as you approach a date, you're right, it's like when you get close to an Apple event.
02:52:30
◼
►
Like the day before, that's when the real leaks start coming, like, "Oh, you know,
02:52:35
◼
►
here's what's actually going to come out," and you find out after the fact that actually
02:52:37
◼
►
that you know seven hour before thing was 100% true.
02:52:42
◼
►
- My friend Moises Cholou, he's down in Austin,
02:52:45
◼
►
he's a big film fan.
02:52:48
◼
►
He's trying to get in, he's trying to angle his way
02:52:50
◼
►
into the press screening down there,
02:52:51
◼
►
which is Tuesday morning.
02:52:53
◼
►
But I think the big one is in Los Angeles tomorrow,
02:52:57
◼
►
I think it's on Monday.
02:52:58
◼
►
So I feel like, and the critics I think usually know
02:53:02
◼
►
to keep their spoilers to themselves,
02:53:04
◼
►
but that it's not just like a,
02:53:05
◼
►
it's not a critics only screening,
02:53:07
◼
►
Like all sorts of, anybody who's anybody in Hollywood
02:53:10
◼
►
can go to the screening on Monday night
02:53:12
◼
►
and blab about whatever the secrets are.
02:53:15
◼
►
So now I don't know what to do.
02:53:16
◼
►
- And you just gotta like,
02:53:18
◼
►
just think about like the stupid think pieces
02:53:20
◼
►
that are gonna be like,
02:53:21
◼
►
I can't believe they did this thing in Star Wars
02:53:23
◼
►
and people gotta have a big think piece
02:53:25
◼
►
about what it means for the franchise.
02:53:26
◼
►
Like no one's even seen the movie.
02:53:27
◼
►
You don't have to think pieces on it.
02:53:29
◼
►
And that's gonna make people go.
02:53:31
◼
►
Like that's gonna make people wanna read the story
02:53:35
◼
►
and I don't wanna know.
02:53:36
◼
►
And I can't hide from the world like I can I can ignore the internet
02:53:39
◼
►
But if there's people of the office who have read the think pieces and are discussing how amazing it is the Jar Jar Binks comes back
02:53:44
◼
►
And destroys everybody like I don't want to hear about it
02:53:46
◼
►
Right and I'm so worried that it will it'll pop up in one of those
02:53:52
◼
►
You know like you get to the bottom of an article on most
02:53:55
◼
►
News sites today, and they have these all other things around the web you might want to know
02:54:03
◼
►
I'm so worried that the head, you know, and like you said, that they're just gonna put the spoiler right in the goddamn headline
02:54:08
◼
►
and it'll be right there in front of the house.
02:54:10
◼
►
Of course it'll be because it'll be a think piece that assumes everybody already knows the spoiler and it's like,
02:54:14
◼
►
"Now I want to discuss this spoiler," right?
02:54:16
◼
►
I have, I don't know, it's almost like worse that I've been successful at keeping myself almost entirely spoiler-free.
02:54:24
◼
►
And I also have a good ability, you know, maybe it's a bad ability in the long run,
02:54:32
◼
►
but in certain aspects, but at least for this movie, I can willfully forget some things.
02:54:37
◼
►
>> I don't have that ability.
02:54:39
◼
►
>> [LAUGH] So I can't even think, there's been at least two minor spoilers that I've
02:54:47
◼
►
encountered in the last few weeks. And as I speak to you right now, I can't bring them to mind.
02:54:53
◼
►
And I think I could if I tried, but there's a weird ability in my mind to compartmentalize,
02:54:59
◼
►
where I've kept them away. And when I see them in the movie, I'll be like, "Oh yeah, I knew that,
02:55:03
◼
►
but I'd forgotten it. But I remember that I knew it. I can do that."
02:55:06
◼
►
I'm trying to just not think about the things I already know, the few tidbits. Because if I
02:55:12
◼
►
think about them, I'll figure crap out. So I just avoid that part of my mind. Don't even think
02:55:17
◼
►
about that. I don't know if that's going to work. But it's the same type of thing. Once I see it in
02:55:21
◼
►
the movie, I'd be like, "Yeah, I could have derived that from the information I had at hand, but
02:55:25
◼
►
I didn't want to.
02:55:26
◼
►
So here's what I've done.
02:55:27
◼
►
I just to be clear, I did watch the first trailer.
02:55:31
◼
►
And then I as soon as it was over, I was excited.
02:55:35
◼
►
And then I hit play again and watched it again.
02:55:38
◼
►
And then I thought, shit, why did I watch that?
02:55:40
◼
►
I shouldn't have watched that.
02:55:41
◼
►
I feel like I've already had things spoiled.
02:55:43
◼
►
And I know that J.J.
02:55:45
◼
►
Abrams is sort of an anti spoiler director.
02:55:48
◼
►
And largely, it seems so far they've kept a lot of stuff under wraps.
02:55:52
◼
►
It really seems like I could be wrong.
02:55:54
◼
►
Maybe there's other websites where like the whole thing is spoiled. I haven't seen it. I
02:55:59
◼
►
Trusted him to make a trailer that didn't really have spoilers. I wouldn't say that it did
02:56:04
◼
►
I think it was a good trailer, but I still regretted it. I still regretted it
02:56:08
◼
►
I regret that I've seen the stupid lightsaber with the the
02:56:11
◼
►
Side blades. Yeah, I mean so I watched the first trailer too
02:56:16
◼
►
Just because I was so desperate to know like what is this gonna be like?
02:56:19
◼
►
Like what is what is it even gonna look like?
02:56:21
◼
►
like because it was all bets were off like who knows where they were gonna go with this franchise it could have
02:56:26
◼
►
Was it gonna look like the trailer for Prometheus and be like dark and gritty was it gonna look like?
02:56:31
◼
►
Tomorrow and be happy and like like Howard what is there?
02:56:36
◼
►
What was their take on Star Wars gonna be so I felt like I had to watch the first trailer
02:56:39
◼
►
But after that, I've been often like so far
02:56:42
◼
►
my barriers held up pretty well through a series of filters and people who are nice to me and everything but
02:56:47
◼
►
the one the one place has been tearing down a little bit television shows I almost almost anyone to tell you this but
02:56:55
◼
►
discovered by 30 seconds skipping through ads on my TiVo as
02:56:58
◼
►
The 30 seconds skip went by occasionally a frame
02:57:01
◼
►
That my mind would register as Star Wars would come by and it was enough for me to know that oh my god
02:57:08
◼
►
They're running. They're running Star Wars TV ads. I don't know if you knew this but on television there are ads for this movie
02:57:13
◼
►
I did and it's my my weakness for sports
02:57:16
◼
►
got me. I was watching, I watched the Dallas Cowboys Redskins on Monday Night
02:57:21
◼
►
Football and apparently it seemed to me as though that Disney had
02:57:28
◼
►
purchased a commercial in every, at least one commercial, in every single
02:57:32
◼
►
commercial break. Like a true carpet-barbing marketing campaign and
02:57:37
◼
►
it's there, you know, there's, I took to like skipping through the commercials
02:57:43
◼
►
like with my this is like you couldn't do it but I just skipped through the commercials
02:57:49
◼
►
with my good eye closed and so I was only using my you're listening with your good ear my damaged
02:57:58
◼
►
left eye which I could still see certain things and had like a sense of some things that were
02:58:03
◼
►
going on and like oh that's a red lightsaber but it's like at least the details were blurred out
02:58:08
◼
►
yeah when I saw that the single frames I got nothing from it and I was I was satisfied with
02:58:13
◼
►
that because every like because most of the time I would see zero frames and like once every five
02:58:18
◼
►
shows I would see one frame depending on where it landed but the other day the very first commercial
02:58:23
◼
►
like the very first commercial in the commercial break was a Star Wars one and I got like half a
02:58:27
◼
►
sentence out I'm like oh damn it like because you know you're not you gotta find the remote you gotta
02:58:31
◼
►
pick it up you gotta you know what I mean like I was I was too slow on the draw I was like in the
02:58:35
◼
►
old west I got I got shot I really don't know how this week is gonna go especially once people start
02:58:41
◼
►
I got my tickets. My first screening is Thursday night, which seems like cheating to me.
02:58:46
◼
►
If it premieres on Friday, I don't know how I'm going to a 10 o'clock Thursday screening.
02:58:51
◼
►
I mentioned that too when someone was saying it was because of that--
02:58:54
◼
►
I don't know if that's true. After that Aurora shooting in Colorado,
02:58:57
◼
►
the midnight showing stopped being a midnight.
02:58:59
◼
►
I feel like that was happening before that, but who knows?
02:59:02
◼
►
So it's like--
02:59:04
◼
►
So my 10 o'clock Thursday night screening is a midnight screening,
02:59:08
◼
►
there's like an asterisk, which is we know it's not really a midnight.
02:59:11
◼
►
Right. And like they do 7 p.m. screens like the midnight show is now at 7 p.m.
02:59:15
◼
►
It's like it's like, you know, Christmas creep or anything.
02:59:17
◼
►
I assume the midnight showing will be like the Wednesday before.
02:59:19
◼
►
Yeah. Or it's like the Saturday night, seven o'clock mass.
02:59:22
◼
►
If you're Catholic, it's like, well, we're calling it Sunday.
02:59:25
◼
►
It's Sunday somewhere.
02:59:27
◼
►
Yeah. So my showing is on Thursday as well.
02:59:29
◼
►
Yeah. So, you know, then Friday, I'm going to spoil it.
02:59:33
◼
►
I'm going to spoil everything for everybody else.
02:59:35
◼
►
I'll just feel so much better if I make it into that.
02:59:38
◼
►
And like I said the the most dangerous time I said this in the account for the most dangerous time is when you're waiting in
02:59:42
◼
►
Line to go theater and people are coming out of the theater
02:59:45
◼
►
Especially if it's a theater that doesn't exit them out the back
02:59:47
◼
►
Like if the people who are done seeing the movie walk piece past the people who are still waiting to see the movie super dangerous
02:59:53
◼
►
Yeah, yeah famous everybody has famous. Maybe it's even
02:59:57
◼
►
Apocryphal stories of waiting in line for the Empire Strikes Back and then some
03:00:03
◼
►
Dipshit runs by and purposefully screams at the top of his lung Darth is Luke's father
03:00:09
◼
►
Yeah, and in the age of internet trolling
03:00:11
◼
►
I remember seeing this terrible YouTube video of someone driving a car past that people lined up waiting for like whatever was the
03:00:17
◼
►
Fifth book or some Harry Potter book where something dramatic happens
03:00:21
◼
►
other people didn't expect and so people are waiting a line at the bookstore and get like an opening night to buy the copy of
03:00:26
◼
►
The book and someone like films it for YouTube and drives past and yells a phrase that I'm not gonna yell because it will spoil
03:00:31
◼
►
Harry Potter for a bunch of little kids listening to this but yells it to the entire line and
03:00:35
◼
►
The worst part is like they don't know if it's true
03:00:38
◼
►
He could the person could be making stuff up
03:00:40
◼
►
But in your heart of hearts like as you're reading the book as they approached you're like that guy was right and he wrote it
03:00:47
◼
►
For me, don't be that person. That's that's the worst thing ever
03:00:50
◼
►
What's the only Star Wars movie that doesn't take have some part of it take place on tattooing?
03:00:55
◼
►
Is it one of the fake ones?
03:00:59
◼
►
No, it's not one of the Empire I guess right now all the fake ones have scenes on tattooing. Yeah, you're right
03:01:04
◼
►
In special edition to the editing tattooing parts the Empire don't remember just so that they had a Khorasan to Jedi
03:01:13
◼
►
Who knows what the hell they're adding?
03:01:14
◼
►
That would have been the worst if they just like it in between a cutaway as big as circular white from Dagobah
03:01:20
◼
►
they instead of going to the asteroid field they they cut to the
03:01:22
◼
►
Some droids toodling around in the sand. Yeah or like
03:01:27
◼
►
Like when they first start hunting for the Millennium Falcon like there's a phone call from Darth Vader to
03:01:32
◼
►
The Boba Fett and job is palace like come here. I need you
03:01:36
◼
►
Yeah, so what Lucas is really concerned about is like how did those bounty hunters all get on to the Death Star?
03:01:41
◼
►
I want to see them remember. He did that change for Jedi
03:01:43
◼
►
It's like that
03:01:44
◼
►
He showed like a Vader's shuttle taking him from point A to point B
03:01:46
◼
►
So we weren't confused about how he arrived like it closed it here or whatever. It's like right get it
03:01:50
◼
►
They flew there in their spaceships. We don't need to see it. I
03:01:55
◼
►
I think he had, I don't even want to get into what he added.
03:01:59
◼
►
Some of the additions though, like there's the, when you get into the list of like what was taken out of the
03:02:04
◼
►
"despecialized" or whatever you want to call it, the ones that were taken out of the "despecialized"
03:02:08
◼
►
you know, "Shammysdat Prince" or the, you know, what was added to the "specialized"
03:02:12
◼
►
everybody thinks of Han shooting first and all of these gratuitous things and the ridiculous
03:02:17
◼
►
CGI backgrounds they put behind the windows of Bespin and all these things that really, really stand out
03:02:22
◼
►
or the god-awful CGI stuff they added to Mos Eisley in A New Hope.
03:02:27
◼
►
It's the little things though, like your anger, your boiling anger is over these big ugly changes
03:02:34
◼
►
that really stand out and just don't add anything and take away some of the magic. But then when you
03:02:40
◼
►
read some of the little things that Lucas had added, you're like, "What? This man went insane."
03:02:46
◼
►
Like it's the little things that make you realize that he somehow lost his marbles.
03:02:50
◼
►
The one I had forgotten about until I was reminded, I think, in some Slack channel somewhere,
03:02:54
◼
►
I think they were talking to you about it, was the
03:02:56
◼
►
Dagobah when R2 gets spit out of the big swamp creature,
03:03:01
◼
►
and the actual line in the movie is "You're lucky you don't taste very good."
03:03:04
◼
►
That's what Luke says to him, which is a good laugh line, you know, whatever, for a silly situation,
03:03:08
◼
►
and he changed it to a less funny line.
03:03:10
◼
►
Like, it's not like, he was like, "You're lucky you got out of there."
03:03:13
◼
►
Like, no, no, the first one was better.
03:03:16
◼
►
It was adding a little bit of levity, it was sarcastic, it was...
03:03:19
◼
►
and Luke is kind of like sarcastic and a little bit cranky in that scene, so it's perfect.
03:03:24
◼
►
It's like you're lucky you don't taste very good. You're lucky you got out of there. That's your
03:03:28
◼
►
improvement. It's like, you know, when you bring someone in to punch up a script, this is the
03:03:31
◼
►
opposite. This is the guy who unpunches it, punches it down. It's... that's a perfect example. Maybe
03:03:37
◼
►
the canonical example. Maybe that's like the best example because it sounds inconsequential,
03:03:43
◼
►
but it was a little funny, and then it's not funny at all. And it also was like, establishes
03:03:49
◼
►
the characters. It is like, hey, Luke and R2 have a friendship, right? It's not just
03:03:57
◼
►
a device that's owned by Luke. He's, you know, there's a rapport between these two. And you
03:04:02
◼
►
know, everybody who's seen the first one knows that R2D2 is clearly a sort of sarcastic wise
03:04:08
◼
►
ass, right? He's a wise ass robot. You don't know what he's saying, but you can tell from
03:04:12
◼
►
3PO's responses that he's a he's a wise ass.
03:04:15
◼
►
And Luke is giving it back to him.
03:04:18
◼
►
It actually is meaningful in some small way
03:04:21
◼
►
in terms of shaping the relationship between the characters.
03:04:24
◼
►
And it fits perfectly in that scene.
03:04:26
◼
►
Like I think one of my favorite cuts in the Dagobah sequences
03:04:29
◼
►
where like Luke is just like he just crashed his ship.
03:04:33
◼
►
Everything's all crappy.
03:04:34
◼
►
And it's like his droid was attacked by a monster and spit out.
03:04:37
◼
►
And he's covered with water and his droids covered in mud.
03:04:40
◼
►
He's like, I don't even know what we're doing here.
03:04:42
◼
►
And R2, like to end the scene, R2 expels mud from one of his vents. The top goes
03:04:46
◼
►
and like that basically sums it up. Like it just, it's like slapstick, slapstick
03:04:52
◼
►
comedy, but also commentary on the situation. We're just, you know what? This is crap. We're,
03:04:58
◼
►
we're not doing well here. So to wrap it up, what, what is your expectation going? Do you
03:05:05
◼
►
think there's going to be a movie that makes you happy or do you think it's going to be another
03:05:09
◼
►
disappointment.
03:05:10
◼
►
Do you have show notes?
03:05:12
◼
►
You should put the incomparable episode where we talked about this in the show notes.
03:05:16
◼
►
It's an entire episode of the incomparable about anticipating The Force Awakens.
03:05:20
◼
►
And to sum up what I said there, I'm of two minds about it.
03:05:24
◼
►
On the one hand, when I dwell on it a little bit, I start to get depressed because I'm
03:05:28
◼
►
like, "There's just no way that this can be as meaningful to me as the original three
03:05:34
◼
►
movies are," which is fine.
03:05:35
◼
►
Like, you know, whatever.
03:05:36
◼
►
Like, I start to think that there's just no way this can be as meaningful to me,
03:05:40
◼
►
because things you experience in your formative years always have a certain extra amount of impact.
03:05:45
◼
►
But on the other hand, I say, "Well, but isn't it possible?"
03:05:50
◼
►
It's not as if as an adult it is impossible to get to me.
03:05:53
◼
►
It's impossible to be affecting, and what I try to do is think of
03:05:56
◼
►
what media, movies, or whatever have seen as an adult that have, like, really stuck with me and affected me.
03:06:04
◼
►
Just basically to put like what what is the bar like have I just become such a jaded individual that no movie can really get
03:06:09
◼
►
To me and so I should just put that out of my mind that Star Wars is not gonna be like that and what I came
03:06:13
◼
►
Back to was like a lot of the Miyazaki movies
03:06:15
◼
►
I saw as an adult
03:06:16
◼
►
Really stick with me and are meaningful and important movies that I would put right up there with Star Wars movies
03:06:22
◼
►
And then maybe they're not as big because they I didn't see them in my former years
03:06:25
◼
►
But I saw them as an adult and basically what I'm doing is I'm reassuring myself that
03:06:27
◼
►
That a movie can get to me and so that's the top bar and then the other thing I have to say
03:06:33
◼
►
Is like so it's you've decided that you as an adult are able to be affected by a movie
03:06:38
◼
►
What if you watch this movie this new Star Wars movie and it's merely a pretty good movie
03:06:43
◼
►
Are you okay with that? And what I used was a Star Trek movies like the recent reboot Star Trek's I
03:06:47
◼
►
Enjoyed those and when I've rewatched them I said, you know what? This was a fun movie
03:06:51
◼
►
But I don't really care that much about Star Trek. So there's way less baggage there
03:06:55
◼
►
But what I've been trying to think about is if I go into this movie
03:06:58
◼
►
It's not the most amazing movie ever saw but it's competently made it's fun. It's exciting. I have fun watching it
03:07:04
◼
►
Do I say yeah, but it was Star Wars and it's supposed to be way better than that
03:07:09
◼
►
Or do I am I able to enjoy it the same way that I could enjoy the Star Trek movies that I care way way less
03:07:16
◼
►
and I don't know what the answer to that is, but really what I've come down to is I think I
03:07:21
◼
►
Believe it is possible for for this movie to be really important and meaningful
03:07:26
◼
►
I probably I think it probably won't be and
03:07:28
◼
►
I'm trying to be okay with with it merely being a good fun movie and just me being so much so excited that it wasn't
03:07:36
◼
►
Like the prequels I my big fear is I feel like
03:07:40
◼
►
The big problem with the prequels was well
03:07:43
◼
►
There's so many and we can we've talked we've talked about them at length on this show and others
03:07:47
◼
►
But to me at a fundamental level
03:07:49
◼
►
It's that that the characters were flat and the dialogue was flat and there is no camaraderie
03:07:54
◼
►
And and no said and and and in plot wise and story wise there was no sense of mystery in fact the whole point of the
03:08:01
◼
►
prequel trilogy was to explain all the mysteries that that the original thriller trilogy lied on and
03:08:07
◼
►
I've said this before like it always seemed like the original trilogy could have you know and there were rumors from when we were kids
03:08:14
◼
►
That Lucas, but the next three movies wouldn't be after the return of the Jedi
03:08:19
◼
►
They would be before when Ben Kenobi and Anakin Skywalker were younger
03:08:24
◼
►
And it always seemed like well, of course he could do that because my god
03:08:27
◼
►
There's so much stuff that they could explain what the hell the Clone Wars were how the Emperor came to be how the Emperor
03:08:32
◼
►
Empire came to be all of these things could you know could be a movie but the fact that they were were
03:08:38
◼
►
mysteries or were only gently or vaguely alluded to
03:08:41
◼
►
It gave a weight to the original trilogy that the prequels didn't have because all they tried to do is piss away and explain everything
03:08:49
◼
►
Right down to explaining how the force worked
03:08:52
◼
►
I don't think that's gonna be a problem
03:08:54
◼
►
I feel like JJ one thing JJ Abrams knows how to do is have
03:08:57
◼
►
engaging characters and a sense of camaraderie and and a good a
03:09:03
◼
►
Good ear for dialogue. My big concern is that that the modern?
03:09:07
◼
►
Needs or perceived needs in Hollywood of a big-budget action movie are such that there's no way, you know
03:09:17
◼
►
It's still going to be filled with 110 minutes of CGI action chases
03:09:23
◼
►
Yeah, I talked about that in the incomparable to in the context of like modern movie making sensibilities
03:09:30
◼
►
Because this using the Star Trek again as example you've seen those right there. Yeah
03:09:35
◼
►
Star Trek rather. Yeah, especially like the first one. Yeah, and so those definitely
03:09:43
◼
►
Look at Star Trek with modern movie making sensibilities and I like them like I thought they were enjoyable
03:09:49
◼
►
but but you have to say like those movies are
03:09:52
◼
►
Star Trek as reimagined through the loan through the lens of a modern filmmaker and for the Star Wars things. I
03:09:59
◼
►
I really fervently hope that
03:10:02
◼
►
JJ is a big enough Star Wars fan that what they do what he does instead is
03:10:10
◼
►
You know it this certain Star Wars magic that I want to feel in this movie
03:10:14
◼
►
Not that it's any worse or better than modern movie making sensibilities
03:10:18
◼
►
But it's a different set of sensibilities that inform the original trilogy
03:10:21
◼
►
And I feel like those those still work and are still fresh
03:10:25
◼
►
So I want this movie to feel like Star Wars first and foremost
03:10:28
◼
►
I don't want it to feel like Star Wars as the scene through the lens of a modern filmmaker and this thing
03:10:35
◼
►
It's a continuum. I'm not saying it's like you're on one side of it on the other
03:10:37
◼
►
But I desperately want this and again I use Miyazaki as my example Miyazaki movies are about all sorts of different topics across decades
03:10:45
◼
►
But they all feel like Miyazaki movies
03:10:47
◼
►
So I'm okay with this movie being different from the original trilogy in fundamental ways
03:10:53
◼
►
but it has to feel like Star Wars it shouldn't feel like a
03:10:56
◼
►
Modern movie a modern reimagining of Star Wars. I want it to feel like Star Wars at least just these three
03:11:03
◼
►
After that fine then totally reimagine everything about it, but I want these three movies seven eight nine to feel like Star Wars
03:11:10
◼
►
Yeah, that's a good way to put it. I agree and there's it is it's almost like a branding thing
03:11:14
◼
►
You know that there was a certain way that the the original series just lacked bombastic
03:11:21
◼
►
scenes, I mean, I mean like the the the space battle in Return of the Jedi sort of I think set the
03:11:29
◼
►
Set the stage for modern action movies and it was so awesome at the time and I do love it
03:11:33
◼
►
It's one of the and it's one of my favorite things in the whole return of the Jedi. It's fantastic
03:11:37
◼
►
the way that the ships are so dynamic and the camera moves around and stuff like that, but
03:11:43
◼
►
It's it's if you just use a stopwatch and measure how much of the movie is taken up by that battle
03:11:49
◼
►
It's actually very little because it was so incredibly hard for them to do it
03:11:53
◼
►
You know that the computer controlled where everything was actually like a an actual model
03:11:58
◼
►
And in the modern filmmaking where it's once you have all this stuff set up you can just let like
03:12:03
◼
►
You know like it's I got the way that transformer movies work where they're really just two hour CGI
03:12:10
◼
►
Chases through us, you know where transformers are throwing themselves into skyscrapers
03:12:15
◼
►
Yeah, and like you're trying to think about what is it that makes something feel like Star Wars a lot of it is
03:12:20
◼
►
The limitations of motion control cameras and and the you know the 70s and 80s, right?
03:12:26
◼
►
That defined the look of the space battles because what could you do with the mode control camera?
03:12:30
◼
►
We can do this move that move that move in this move and we can optically composite them together and that kind of defines it
03:12:35
◼
►
But also stuff that didn't have anything to do with technology like how it scored how there's like music behind everything and how it's orchestral
03:12:41
◼
►
Like that's not the modern way movies are scored. That is that is an older way movies are scored
03:12:46
◼
►
Like it's not that's not done and you know, John Williams doesn't put an orchestra behind
03:12:52
◼
►
the Transformers movie during like every scene like Star Wars movies are practically musicals for the amount of music that's in them and the type
03:12:58
◼
►
Of music is a weird old style of music so you can go a long way towards making a movie feel like Star Wars
03:13:04
◼
►
without you know like yes, you can do anything in CG, but
03:13:09
◼
►
Make it feel kind of like Star Wars now
03:13:11
◼
►
You can you can do a twist not like in the trailer that we both saw the the camera movement around the Millennium Falcon
03:13:17
◼
►
Falcon when it's doing all these strange maneuvers you couldn't really do that
03:13:20
◼
►
feasibly with the motion-drill camera especially with the crazy backgrounds
03:13:23
◼
►
and everything you can do it with CG but in some sense it still feels Star Wars
03:13:27
◼
►
because lots of those swoopy moves where the camera was following the ship and
03:13:31
◼
►
the ship was twirling around this is just like that cranked up a little bit
03:13:36
◼
►
more it isn't it's a difference between that and like the like the fancy the
03:13:41
◼
►
fancy way that Han piloted the Falcon into the asteroid crater in Empire
03:13:46
◼
►
Strikes Back, where it was like this exuberant, like, straight up, straight down, paperclip,
03:13:52
◼
►
you know, like, U-motion, you know, it's a show-off type of guy.
03:13:59
◼
►
Accompanied by an ascending and descending scale in the soundtrack from John Williams
03:14:03
◼
►
with like the flutes or whatever going in there, like, that's totally a Star Wars type
03:14:06
◼
►
thing. And comparing it to, like, remember, did you watch the Battlestar Galactica reboot?
03:14:10
◼
►
Yeah, I did.
03:14:11
◼
►
Remember they used to do this thing that made it look like the Vipers or whatever were being
03:14:16
◼
►
filmed by someone with a handheld camera far away so it would shake and then they would do the really dramatic zoom in
03:14:22
◼
►
It's like to acquire the ship and then try to get it centered in the frame
03:14:25
◼
►
Like someone trying to catch like a long Hail Mary pass like a bad cameraman trying to say where the hell is the football?
03:14:31
◼
►
I got it zoom in they don't do that these days
03:14:33
◼
►
I saw that big Hail Mary and like they were headed the camera back the whole time
03:14:36
◼
►
Don't they follow the ball anymore? Whatever the hell happened to NFL films where you get to see the thing spiraling towards you
03:14:40
◼
►
Where is that tech anyway?
03:14:43
◼
►
Yeah, you can you can make something
03:14:45
◼
►
Feel like Star Wars and be modern without making it look like Bao Stark or like to be like all of a sudden
03:14:51
◼
►
Everything is handheld shaky cam and there was shaky cam in the trailer
03:14:54
◼
►
So I'm like, I'm not saying you can't use shaky cam. You totally can't I just I just overall
03:14:58
◼
►
I want the movie to feel like Star Wars, right?
03:15:01
◼
►
And part of that to me is that it has to you have to let certain scenes
03:15:05
◼
►
Just just let them breathe and don't worry about whether there's a lot going on. Like give us something that's a mystery
03:15:11
◼
►
Give us something that's new and then just let us figure it out
03:15:14
◼
►
Like some of my favorite scenes in the original trilogy are just like r2d2 by himself
03:15:18
◼
►
Just off in the desert on Tatooine and you just slowly watch the r2d2 roll across the desert
03:15:24
◼
►
But there's it it's engaging because you're like well, where the hell is this robot going?
03:15:29
◼
►
Yeah, like Empire my favorite one like this. There's so many scenes that end like with with the mud being spit out
03:15:37
◼
►
That's the end of that scene before they cut to a different one
03:15:39
◼
►
It's like, but wait, how does that conclude?
03:15:41
◼
►
It doesn't have to conclude with a line or an event or a call to action
03:15:45
◼
►
that can end with the feeling or just showing like,
03:15:48
◼
►
some, you know, Yoda walking off into the misty swamp
03:15:51
◼
►
and Luke just saying stay at the camp, like
03:15:53
◼
►
something else is going to happen, but you're left with the feeling.
03:15:56
◼
►
How are the characters feeling this morning?
03:15:58
◼
►
Are they dejected? Are they hopeful? Are they cautious? Are they afraid?
03:16:01
◼
►
That's so much more important than ending every scene with a call to action
03:16:06
◼
►
that leads to the next scene.
03:16:07
◼
►
We have to do the whatever and then go show the whatever.
03:16:09
◼
►
And you know, it's just as I get excited about this movie Amy keeps reminding me of
03:16:14
◼
►
the movie AI and
03:16:17
◼
►
You know, which was written by Stanley Kubrick. I think he even got a producer credit, but it came out after he had died
03:16:24
◼
►
But the you know
03:16:27
◼
►
the basic story is that it was a movie he had been to Kubrick had been developing for a long time many years and
03:16:33
◼
►
decided that he didn't want to direct it that Spielberg should direct it because it needed a warmth a
03:16:39
◼
►
Human empathy that he knew that his movies lacked that it coldness would be the wrong way to approach it
03:16:44
◼
►
And so he called up Steven Spielberg and said, you know, what do you think about that? I got this movie
03:16:49
◼
►
Would you want to work with me and Spielberg is a huge Kubrick fan and they'd been friends over the phone for years
03:16:53
◼
►
I was like, okay, and then the poor guy died, but Spielberg made it anyway, and we're going to see it opening night
03:17:00
◼
►
I could not wait and I'm going to see it opening night and I just paused and we had another friend with it
03:17:04
◼
►
Was me Amy and my friend Don and I just said I just want to tell you guys
03:17:07
◼
►
I just want to make a prediction right here
03:17:08
◼
►
I think there's a very strong chance that we're about to see the greatest movie that's ever
03:17:13
◼
►
Had you not seen any other Spielberg movies like yeah, he's got human worth, but he's also a little sappy
03:17:19
◼
►
That's what I said going into CA
03:17:22
◼
►
Seriously, I said in all seriousness. I wanted it. Like I wanted the the being right points
03:17:29
◼
►
Before we did I think we might be going to I believe there's a good chance that we might be going to see the greatest movie
03:17:35
◼
►
That's ever been made. I mean not that AI was
03:17:38
◼
►
Incredibly terrible, but it was not it it missed the mark. I think most people agree
03:17:43
◼
►
I don't think it makes it's not a bad movie, but it is certainly bad given the pedigree of the
03:17:48
◼
►
Filmmaker so that's why that's what a B keeps reminding me of with the force awakens
03:17:54
◼
►
Well, but you're not making strong predictions about no
03:17:56
◼
►
We're cautiously optimistic, but like this has everything going for it like the thing
03:18:00
◼
►
I think about in this movie that the things that have faded it to exist is I mean obviously the reason exists at all is
03:18:06
◼
►
Lucas sells gets him out of the picture so we don't to worry about his picadillos messing with things. You know what I mean
03:18:11
◼
►
And who do they get to direct it the guy who's basically admitted so many times before this like that
03:18:17
◼
►
He's a super big Star Wars fan
03:18:19
◼
►
Like when he when he directed Star Trek
03:18:22
◼
►
I'm like that's kind of a shame because he's always said what a big Star Wars fan he is and I'm sure he likes Star
03:18:26
◼
►
I'm sure he'll do a good job, but boy wouldn't it be great if he could do Star Wars
03:18:30
◼
►
But now that he's done Star Trek
03:18:31
◼
►
There's no way he's gonna do Star Wars cuz the same guy's not gonna get the same guy to do Star Trek and Star Wars
03:18:34
◼
►
Well, he got to like essentially warm up on the lesser franchise Star Trek, right?
03:18:39
◼
►
and finally and hone his craft over a
03:18:42
◼
►
Series of movies and television shows over the years and then you could say like he's at the top of his game now
03:18:48
◼
►
Fulfilling his childhood fantasy as any one child, you know child at a similar age to direct a new Star Wars movie
03:18:54
◼
►
and he's the guy doing it, right? Now, I've heard there's been creative tensions between him and
03:18:59
◼
►
the people who are running the franchise, and that kind of makes me worry about the future of this or whatever,
03:19:04
◼
►
but, like, boy, the star is really aligned for both us and J.J. Abrams to have. I like J.J. Abrams,
03:19:09
◼
►
I like his other movies,
03:19:10
◼
►
I like that he got to practice on Star Trek, and I really hope that he, like,
03:19:14
◼
►
uses all his skills and all his powers and the Godfather parlance to just, like, put everything he has into this, this,
03:19:21
◼
►
It's his childhood dreams as well as ours tied up into this movie, and I really hope it comes together.
03:19:27
◼
►
So I'm optimistic. We'll see how it goes.
03:19:31
◼
►
Anyway, John Siracusa, thank you for your time. This has been extremely generous of you. We've gone on a long time.
03:19:38
◼
►
Craig didn't take all my time. This would have been, you know...
03:19:42
◼
►
No, I told you you weren't going to get cheated out of time.
03:19:45
◼
►
John was worried when I asked him to do the show that he'd get shortchanged on time because of the Craig Federighi segment.
03:19:50
◼
►
segment, not to worry. Yeah, well, just make it a three hour show, whatever.
03:19:54
◼
►
Yeah, big, long, big, long, healthy. It's like a holiday meal, big, long, healthy meal.
03:19:59
◼
►
I should thank all of our sponsors. We've got Harry's. Go to them, buy their shaving
03:20:02
◼
►
stuff. Wealthfront, you can invest your money. Squarespace, you can build your own website.
03:20:07
◼
►
And Casper, you can buy a mattress, which I again, I'm telling you what a holiday gift
03:20:11
◼
►
idea that would be. John Siracuzzi, you can find him on his weekly podcast with the other
03:20:17
◼
►
guy's ATP that's accidental tech podcast at ATP FM and he's just at Syracuse on
03:20:26
◼
►
Twitter anything else no I think you covered it there we go thank you John