16: John, We Don't Play Games
00:00:00
◼
►
Don't let Marco say hi to you.
00:00:01
◼
►
That's a good, that's a good guideline because like, what do you do to stop it?
00:00:06
◼
►
He's coming towards me.
00:00:07
◼
►
He might say, oh, he's fine.
00:00:20
◼
►
>> Who the hell is Casey?
00:00:37
◼
►
Who the hell is Casey? Who the hell is Casey?
00:00:40
◼
►
It was an accident! It was an accident!
00:00:43
◼
►
Accidentally podcasted!
00:00:46
◼
►
Accident! It was an accident!
00:00:48
◼
►
Accidentally podcasted!
00:00:52
◼
►
Accident! It was an accident!
00:00:54
◼
►
Accidentally podcasted!
00:00:58
◼
►
One of the big problems with Mac development
00:01:02
◼
►
is that even though you have all this hardware to burn these days,
00:01:06
◼
►
is you have all this memory, all these CPU cores,
00:01:09
◼
►
you have tons of resources to take advantage of
00:01:13
◼
►
on the desktop.
00:01:14
◼
►
But the APIs and the widgets and the UI stuff on the Mac
00:01:20
◼
►
is very, very old.
00:01:23
◼
►
And compared to iOS programming, Mac programming
00:01:26
◼
►
is in many ways harder.
00:01:27
◼
►
And I wonder if Apple has any desire
00:01:31
◼
►
to really dramatically improve that and take advantage
00:01:34
◼
►
of all these people who are iOS developers, who
00:01:37
◼
►
are learning UIKit, which is way, way easier than AppKit
00:01:41
◼
►
and to do a lot of very common things.
00:01:44
◼
►
And to try to modernize the Mac OS X APIs,
00:01:49
◼
►
and to try to bring over more iOS developers,
00:01:53
◼
►
and make life easier, more productive for existing Mac
00:01:56
◼
►
developers, that's something they really haven't done much
00:02:00
◼
►
in the last few Mac OS X releases.
00:02:02
◼
►
And I'd really like to see that happen.
00:02:04
◼
►
As an iOS developer who's kind of scared of Mac programming,
00:02:07
◼
►
I'd love to see that happen.
00:02:09
◼
►
So are you thinking like a UI kit for OS X?
00:02:13
◼
►
I don't know if they could-- the UI kit is
00:02:15
◼
►
very specific for touch.
00:02:17
◼
►
And I don't think they could directly bring it over.
00:02:20
◼
►
I don't think that would make sense.
00:02:21
◼
►
But they could definitely modernize a lot of AppKit,
00:02:25
◼
►
maybe make a whole new API.
00:02:27
◼
►
They probably wouldn't go that far.
00:02:28
◼
►
But at least modernize it a lot and bring
00:02:32
◼
►
a lot of the conveniences and the modern choices from UIKit
00:02:36
◼
►
into app kits, widgets, and
00:02:40
◼
►
bring over new widgets, better widgets, all the layer-backed stuff that
00:02:44
◼
►
iOS does that Mac OS still I think is half done.
00:02:48
◼
►
All sorts of stuff like that that people like Lauren Brikter are way
00:02:52
◼
►
more qualified to talk about, but I know it's still a problem.
00:02:56
◼
►
Well, didn't Chalkenberry and Icon Factor do Chameleon?
00:03:00
◼
►
And then Lauren did Twi, I don't know how to say that, the Twitter UI thing that we
00:03:05
◼
►
use up there.
00:03:06
◼
►
And I think there's even been one or two other ones similar to that.
00:03:09
◼
►
And so because these frameworks exist, obviously there's demand for this.
00:03:15
◼
►
But until Apple does their own thing with the official APIs, it's never going to take
00:03:20
◼
►
off in the same way.
00:03:22
◼
►
Well, do either of you guys know how modern they've made AppKit recently?
00:03:28
◼
►
I mean, I know you've just spent a few minutes saying how not modern it is, but what I mean by that is,
00:03:31
◼
►
do they have like block support pretty
00:03:33
◼
►
prevalently throughout any of AppKit? John, do you happen to know this? Because I have not done it.
00:03:36
◼
►
I was gonna say, like, the stuff they do to foundation, everybody gets, like, fast enumeration,
00:03:42
◼
►
The block support for the low-level stuff where you can, like, iterate over an NSRA and
00:03:46
◼
►
execute some block on the contents. Like, whenever they do that stuff, it benefits both platforms.
00:03:50
◼
►
So there is some sharing and monitoring, plus all like the, you know, the Objective-C, whatever version
00:03:55
◼
►
they're up to with the properties and all that.
00:03:57
◼
►
That's all shared.
00:03:58
◼
►
So that bottom layer of both OSes
00:04:00
◼
►
does get better over the years.
00:04:04
◼
►
Existing sore points, like the whole NSL
00:04:06
◼
►
versus NSView for the stupid table views and stuff like that.
00:04:09
◼
►
That's just like legacy hanging around.
00:04:11
◼
►
When I see stuff like that, I think, well,
00:04:14
◼
►
it makes me think about the Mac as a platform overall.
00:04:19
◼
►
What's their motivation to make it better?
00:04:21
◼
►
Is someone saying, I would develop for the Mac
00:04:24
◼
►
except these APIs are slightly more crufty than they are on the phone, or they're not
00:04:29
◼
►
close enough or whatever.
00:04:30
◼
►
Is that demotivating them?
00:04:32
◼
►
Or is what really is demotivating them is that the market share is small compared to
00:04:35
◼
►
the phone, and they don't feel like they have an idea for a great app?
00:04:41
◼
►
Or is it that Mac apps are necessarily much more complicated and most of your application
00:04:48
◼
►
is not in the UI framework part?
00:04:50
◼
►
Like if you think of something like Photoshop, which is ostensibly a cocoa app now, they
00:04:54
◼
►
don't care how old and creaky the cocoa APIs are.
00:04:58
◼
►
Like that app is custom from top to bottom and then just this little thin layer to throw
00:05:03
◼
►
up some stuff on the screen.
00:05:04
◼
►
So I wonder, given its market share, its growth rate, and what the Blockbuster apps on the
00:05:11
◼
►
Mac are actually like, what would be the return on Apple's investment for modernizing the
00:05:16
◼
►
the OS X API in ways that aren't just like, oh, we did this modernization and it helps
00:05:21
◼
►
both iOS and Mac OS X.
00:05:24
◼
►
Well I think part of it is if you make it easier, not only does it help developers,
00:05:30
◼
►
it also helps Apple, it helps their developers, and also it gives more chance of there being
00:05:39
◼
►
good apps for the platform. You could use a lot of those same arguments against improving
00:05:44
◼
►
Xcode or improving LLVM or improving the fundamentals of the language.
00:05:49
◼
►
Like all the convenient little short syntaxes we got last year for a lot of the
00:05:55
◼
►
boxing classes and stuff like that. There's a lot of stuff like that that Apple's
00:06:01
◼
►
adding, not because they really have to, not because it's going to help them
00:06:06
◼
►
competitively directly, but just because it's nice to do for developers.
00:06:09
◼
►
and then they benefit, we benefit, and then maybe there's this trickle-down effect of
00:06:13
◼
►
nicer apps eventually come out for their platforms.
00:06:16
◼
►
Well, there is competitive pressure from Google on the mobile platform, like their dev tools,
00:06:21
◼
►
their ID, their language, and so Apple has to keep up with, at least have parity with
00:06:27
◼
►
And their language is memory-managed, and Apple's isn't.
00:06:30
◼
►
So they keenly feel that pressure, I feel like.
00:06:32
◼
►
And that is a much more competitive landscape versus the Mac, where it's like, "What are
00:06:35
◼
►
you going to do?
00:06:36
◼
►
figure out something for the umpteen
00:06:38
◼
►
crappy API is available for Windows 8
00:06:41
◼
►
like which one should you use and how many people you're gonna sell to and how are you gonna sell the app through the Windows Store
00:06:47
◼
►
You know the desktop is yesterday's news anyway
00:06:50
◼
►
according to you know, the prevailing wisdom of the time and
00:06:55
◼
►
Like it's not a growth market no matter where you are
00:06:58
◼
►
And I just feel like Apple doesn't feel the pressure on the desktop that they do on
00:07:03
◼
►
mobile, so they're highly motivated to make their mobile experience better for developers
00:07:08
◼
►
to make sure they keep those developers.
00:07:10
◼
►
They're somewhat motivated to make things better on the desktop.
00:07:13
◼
►
I almost feel like if they really were separate, like imagine they were separate IDEs, like
00:07:18
◼
►
completely separate, like there was no shared core foundation or, you know, or plain old
00:07:23
◼
►
foundation code between them and there was no, they use a different IDE, so improvements
00:07:27
◼
►
Xcode didn't benefit.
00:07:29
◼
►
What would the Mac toolchain look like at this point if they didn't also get the benefits
00:07:33
◼
►
of, "Oh, Apple's doing all this stuff," and it benefits both of them.
00:07:37
◼
►
I don't know.
00:07:38
◼
►
Whenever I think about this, I think to applications like iPhoto on the Mac that just has not gotten
00:07:45
◼
►
the kind of attention that it would have gotten if iOS wasn't around, you know?
00:07:50
◼
►
I would say that's true of almost every Apple/Mac application.
00:07:53
◼
►
Yeah, Safari they seem to keep up with.
00:07:57
◼
►
Maybe that's also because it's benefiting iOS.
00:07:58
◼
►
It's hard to tease them apart because so much of their work does benefit both, and that's
00:08:03
◼
►
to their credit, right? There was a good decision to use the same
00:08:07
◼
►
core OS, both of them. But it's hard to figure out how much does Apple care about improving
00:08:11
◼
►
things with the Mac versus how much is the Mac just getting the spillover of their
00:08:15
◼
►
frenzied improvement to iOS. Yeah, it also does
00:08:19
◼
►
feel like, we've talked about before how in many ways Apple still behaves
00:08:23
◼
►
like a much smaller company than it really is, and often that's to its detriment. And one of the
00:08:27
◼
►
examples of that is that they do have this kind of tunnel vision where
00:08:31
◼
►
whatever is the cool thing that they're really focusing on,
00:08:36
◼
►
everything else just gets ignored and neglected for years
00:08:39
◼
►
until somebody comes around and gives it
00:08:43
◼
►
what's often a half-assed update.
00:08:45
◼
►
Sorry, go ahead, John.
00:08:49
◼
►
I was going to say, if that has changed,
00:08:51
◼
►
if that tunnel vision has changed,
00:08:52
◼
►
we won't see the results of it until,
00:08:55
◼
►
it's not the type of thing,
00:08:58
◼
►
when they did the big reorganization
00:08:59
◼
►
along different lines, I forgot what they changed it to,
00:08:58
◼
►
change it to long functional lines or something instead of long product lines or whatever.
00:09:02
◼
►
When they did the big reorg and, you know, forced all out and I've been, that could have
00:09:06
◼
►
been the beginning of a change to this tunnel vision, but we won't know until, I mean, I
00:09:10
◼
►
guess until at least WWDC and possibly later, see the fruits of that reorganization because
00:09:15
◼
►
you can't turn this thing on a dime.
00:09:16
◼
►
But it kind of gets back to what we talked about a couple of shows about the bandwidth
00:09:20
◼
►
of the organization.
00:09:22
◼
►
Does Apple have the capacity to go full steam on multiple fronts of the scene?
00:09:28
◼
►
Do they have the capacity to have a team every single year making iPhoto better?
00:09:32
◼
►
Have a team every single year making iMovie better?
00:09:35
◼
►
The team that was doing iDVD?
00:09:36
◼
►
Fine, you can repurpose those people.
00:09:38
◼
►
But any existing active application, is there a dedicated team whose only job is to make
00:09:42
◼
►
this application better and better year after year until that application is irrelevant?
00:09:46
◼
►
And often from the outside, it seems like that's not the case.
00:09:50
◼
►
kind of this swing group of people where like, you know, once the finder is good enough,
00:09:56
◼
►
everybody except one guy and like his apprentice gets pulled off of that, and they get put
00:10:01
◼
►
onto whatever like, you know, all hands on deck for working on the next version of iOS
00:10:04
◼
►
or something is that that's what it seems like from the outside. Because if your application
00:10:08
◼
►
isn't, you know, Steve Jobs is darling in the past, and I don't know what the current
00:10:13
◼
►
criteria is maybe like, really important to the company. Like, it's very clear that iOS
00:10:18
◼
►
7 is getting the attention right now.
00:10:22
◼
►
And OS X maybe a little bit, but as you
00:10:26
◼
►
go down the chain of applications
00:10:27
◼
►
that you may be using day after day and you think,
00:10:29
◼
►
boy, this has not been--
00:10:31
◼
►
iWork, God, poor iWork.
00:10:35
◼
►
I don't know.
00:10:36
◼
►
It's so hard to tell from the outside what really goes on
00:10:38
◼
►
there, but it sure seems like it doesn't.
00:10:40
◼
►
Whereas when you look at a company like Google,
00:10:42
◼
►
it seems like every time they--
00:10:44
◼
►
Google I/O, it's like--
00:10:45
◼
►
well, first of all, they drop tons of their products.
00:10:48
◼
►
That's one way to do it, right?
00:10:48
◼
►
Just get rid of your products
00:10:50
◼
►
that you weren't bringing forward.
00:10:51
◼
►
Everything is gone except for Google+ and six other things.
00:10:54
◼
►
When they say, well, all those things that we did keep,
00:10:56
◼
►
here's awesome new versions of every single one of those.
00:11:00
◼
►
Is iWork on the Mac older than the Mac Pro?
00:11:05
◼
►
- I don't know.
00:11:09
◼
►
Isn't it 09 is the newest version of iWork?
00:11:10
◼
►
- Yeah, Wikipedia says iWork 09 came out January 6th, 2009.
00:11:14
◼
►
So that's like a year and a half older
00:11:16
◼
►
in the current generation of the Mac Pro.
00:11:18
◼
►
Yeah, and your fake new Mac Pro is--
00:11:21
◼
►
That does not count at all.
00:11:24
◼
►
I was thinking also, on the lines of-- going back
00:11:26
◼
►
a second-- on the lines of API updates and modernizations,
00:11:32
◼
►
I was listening earlier today-- I made a little note of this.
00:11:35
◼
►
I was listening earlier today to another podcast named
00:11:37
◼
►
Springboard.
00:11:38
◼
►
We'll put a link in the show notes.
00:11:40
◼
►
It's springboardshow.com.
00:11:41
◼
►
And in episode 10, they were talking
00:11:43
◼
►
about how the guest was Caleb Davenport.
00:11:47
◼
►
And they were talking about how with Arc,
00:11:51
◼
►
we're training people not to worry about memory management.
00:11:54
◼
►
But then we still have to call down into these carbon APIs
00:11:58
◼
►
to do certain things on iOS even,
00:12:01
◼
►
things like address book or key chain, things that still have
00:12:04
◼
►
no cocoa wrappers, that you still
00:12:06
◼
►
have to go down to the carbon level API or the raw C
00:12:10
◼
►
API and do core foundation memory management and stuff
00:12:14
◼
►
like that and all these old style things.
00:12:18
◼
►
And it really messes with Arc, and it
00:12:20
◼
►
makes things very confusing.
00:12:21
◼
►
And if we're teaching people, you
00:12:22
◼
►
don't have to think about memory management anymore.
00:12:25
◼
►
But then they have to use one of these APIs,
00:12:27
◼
►
and they're leaking strings all over the place,
00:12:29
◼
►
not realizing that there's all these exceptions.
00:12:31
◼
►
Like, you don't have to worry about memory management,
00:12:33
◼
►
except in this case.
00:12:35
◼
►
And so one thing I would love to see
00:12:37
◼
►
just some stupid wrappers around all those ancient C APIs that still don't have nice
00:12:44
◼
►
Objective-C wrapper classes around them, even on iOS. And if iOS 7 brought that, that would--it's
00:12:51
◼
►
not going to make any headlines, it's not going to set the world on fire, but it's going
00:12:54
◼
►
to make a minor convenience for so many developers so often.
00:12:59
◼
►
Oh, I couldn't agree more. I have a very, very, very simple and basic app in the App
00:13:04
◼
►
store and what it allows you to do is to send canned text messages quickly. And when I started
00:13:10
◼
►
doing the address book integration, it was a total pain in the butt for exactly that
00:13:15
◼
►
reason. I mean, it's nothing I can't handle. I cut my teeth in C++ as I think you did Marco
00:13:19
◼
►
C and C++ and John. I don't know, you're so damn old that you probably cut it on like
00:13:24
◼
►
assembly. But anyway, Fortran. The point being, all kidding aside, that the address book API
00:13:32
◼
►
is terrible because it's all straight C and it's so frustrating. This was pre-arc that
00:13:36
◼
►
I did all this and it was so frustrating having to drop down into that, even with retain release,
00:13:41
◼
►
considerably more tedious framework in order to get what seems to be a very simple job
00:13:47
◼
►
done. So I hadn't thought about that. That's a very good point and certainly would make
00:13:51
◼
►
me happy to see some of that get improved. Although, I think, like you said, Marco, you
00:13:56
◼
►
and I might be the only ones.
00:13:57
◼
►
But we're not, because it's like the whole 80/20 feature
00:14:03
◼
►
Yeah, only x percentage of the APIs
00:14:06
◼
►
don't have nice Cocoa wrappers around them,
00:14:09
◼
►
but almost every developer eventually
00:14:12
◼
►
has to use one of them, at least.
00:14:15
◼
►
And there's so many APIs out there that it's stupid.
00:14:18
◼
►
It would take them not very long, not that much effort,
00:14:21
◼
►
not any kind of significant long-term maintenance cost,
00:14:24
◼
►
just to make really basic wrappers around these things,
00:14:26
◼
►
just so that we never have to think about that again.
00:14:28
◼
►
Did you just do the thing where you say that a feature that you want is really easy to
00:14:31
◼
►
program and they should just do it?
00:14:34
◼
►
Yeah, SMOP, simple matter of programming.
00:14:37
◼
►
Will Shipley, this is one of his hobby horses because he really likes Objective-C and he
00:14:40
◼
►
hates these C APIs.
00:14:42
◼
►
And again, the impression I get from the outside is that the reason this is the way it is is
00:14:46
◼
►
because there's some team that's responsible for the address book API and the person in
00:14:49
◼
►
charge of that team thinks their C API is just fine and they don't have people on the
00:14:53
◼
►
team who are either skilled enough, experienced enough, or motivated enough to do Objective-C
00:14:59
◼
►
wrappers because they've cultivated a team of people who are expert C programmers.
00:15:04
◼
►
And that's the ultimate sort of lateral move project.
00:15:09
◼
►
What do we get when we're at the end of this?
00:15:10
◼
►
Well, we get no new functionality.
00:15:11
◼
►
We actually make it a little bit slower.
00:15:13
◼
►
Hey, but it's easier to use, right?
00:15:14
◼
►
And they're like, "Why are we doing this?
00:15:16
◼
►
Why are you dedicating one person for the length of this release to make this wrapper
00:15:20
◼
►
because Bill Shipley wants it?
00:15:21
◼
►
No, just go do something else that's new,
00:15:23
◼
►
or you're needed on this project, or whatever.
00:15:25
◼
►
Because there's so much motion in the address book API.
00:15:27
◼
►
I don't know.
00:15:28
◼
►
Don't you get the impression that there's
00:15:30
◼
►
teams who manage these APIs?
00:15:32
◼
►
This is the team in charge of the whatever API,
00:15:34
◼
►
and it's all filled with C or C++ or whatever programmers,
00:15:37
◼
►
and they made it the way they made it,
00:15:38
◼
►
and I think it's perfectly fine, and they fixed their bugs.
00:15:41
◼
►
And they can't be convinced that what they need to do
00:15:44
◼
►
is make a wrapper or re-implement their API
00:15:47
◼
►
in some different language.
00:15:48
◼
►
Or they have good reasons for it being only in C,
00:15:51
◼
►
And I don't even use these APIs, but I
00:15:56
◼
►
can understand it being a continuous source
00:15:58
◼
►
of frustration, but it seems to me like an organizational
00:16:01
◼
►
failure, more than a technical failure or a failure
00:16:05
◼
►
of leadership or whatever.
00:16:06
◼
►
It's just like something about the organization
00:16:08
◼
►
does not allow for this to happen.
00:16:12
◼
►
Well, and I thought-- perhaps I made this up--
00:16:14
◼
►
but I thought a lot of these APIs,
00:16:16
◼
►
address book being a great example,
00:16:18
◼
►
were very thin layers on top of SQLite or SQLite,
00:16:22
◼
►
or whatever we're pronouncing it as, GIF, databases.
00:16:25
◼
►
And maybe I made that up.
00:16:26
◼
►
But I thought that address book is
00:16:29
◼
►
the example that comes to mind.
00:16:30
◼
►
But I could swear I've seen a couple others.
00:16:32
◼
►
Well, now address book has all these permissions
00:16:34
◼
►
and sandboxing things around it to prevent--
00:16:36
◼
►
No, that's true.
00:16:37
◼
►
--to prevent Path from uploading the entire address
00:16:40
◼
►
book to their servers without anybody knowing.
00:16:42
◼
►
But one way or another, the point I'm driving at is,
00:16:44
◼
►
some of these old and arcane APIs, I think,
00:16:47
◼
►
just very light wrappers around SQLite and so nobody thought to bother with
00:16:51
◼
►
them or to your point John they just didn't have the desire. Well core data is
00:16:56
◼
►
on top of SQLite if you choose that as the if you choose the good back end or
00:17:00
◼
►
whatever like I don't think it's a technical I don't think it's a
00:17:02
◼
►
technical thing I think it's comes down to is if you have if you have a bunch of
00:17:05
◼
►
C programmers and you're tasked with creating a new API it's going to be a C
00:17:10
◼
►
API right? Yeah. It's not like they can't learn Objective-C or whatever but like you
00:17:14
◼
►
If you go to development with the programmers you have, I don't know.
00:17:21
◼
►
You can't just transform them into an experience.
00:17:24
◼
►
You have the guys who made AppKit and the guys who made UIKit.
00:17:27
◼
►
Your experience battle-hardened.
00:17:28
◼
►
We can make a new API in Objective-C. We know how to do that the right way because we've
00:17:32
◼
►
made crappy APIs over and over again.
00:17:35
◼
►
Now we have experience and we know, "Okay, you're making an Objective-C API.
00:17:39
◼
►
Here's what it should look like.
00:17:40
◼
►
Here's the dos and don'ts.
00:17:42
◼
►
how to avoid making an API that people can accidentally use badly.
00:17:47
◼
►
All the people who learned that NSL was a bad idea over years of experience, when they
00:17:51
◼
►
made UIKit, they didn't make the same mistakes a second time.
00:17:53
◼
►
Well, if you take the address book team, a team of people who maybe have never written
00:17:58
◼
►
an Objective-C API, and you tell them, "Make a wrapper," maybe they'll make one, but will
00:18:04
◼
►
it be a great Objective-C API?
00:18:06
◼
►
It'll be like my first Objective-C wrapper API.
00:18:09
◼
►
And I think actually making a wrapper is probably harder than just writing a straight up, like
00:18:13
◼
►
if you had started from scratch, right?
00:18:15
◼
►
But they've got the C API that works, it's called from everywhere that they have to maintain
00:18:18
◼
►
compatibility with it.
00:18:19
◼
►
And you're asking them to add another abstraction on top of that while maintaining compatibility
00:18:24
◼
►
for the people who go to the low level API.
00:18:26
◼
►
It's actually kind of annoying, and I can imagine them not being motivated to do that
00:18:30
◼
►
unless there's some compelling business reason.
00:18:32
◼
►
And they'll always have some excuse of why there's not a compelling business reason.
00:18:35
◼
►
Well there is.
00:18:36
◼
►
First of all, there's, as I said, for the same reason why Mac development should be
00:18:42
◼
►
as easy as possible, relatively speaking, within reason, iOS benefits from quality of
00:18:48
◼
►
apps being good.
00:18:50
◼
►
If there's a whole bunch of people out there who are mismanaging memory from these low-level
00:18:54
◼
►
APIs because they don't know how to do it or they don't know that they have to do it,
00:18:57
◼
►
then there's a bunch of apps taking up more memory than they should, and that's bad for
00:19:00
◼
►
the entire iOS running experience.
00:19:03
◼
►
like Keychain, the easy thing to do is just be insecure and write your credentials into
00:19:09
◼
►
a file somewhere. They want you to use Keychain for security reasons, but using Keychain is
00:19:14
◼
►
hard. So by not making the secure thing easy, apps are less secure. So there's a lot of
00:19:21
◼
►
little reasons that all add up.
00:19:23
◼
►
Well, that's like abstract reasoning. We try to take it to a manager, they want to see
00:19:26
◼
►
a business reason. I think what actually happens is the C API just sits there and gets older
00:19:31
◼
►
and older and more and more disgusting over the years. And then eventually it's like,
00:19:34
◼
►
look, you can't make people use this. It's just like, it's too old. That's what happened
00:19:39
◼
►
with QuickTime, right? So QuickTime was a C API, which was amazing at the time it was written,
00:19:43
◼
►
but it was like, I forget what the first version of QuickTime came out, like 1990? 1991?
00:19:49
◼
►
It was ancient. The movies were the size of like one inch by one inch squares and the Cinepack API
00:19:54
◼
►
or Kodak, and it was just terrible looking, right? But there was a C API, right? And we
00:19:59
◼
►
We carry that same C API forward and forward, and tons of applications are built on it,
00:20:02
◼
►
and blah, blah, blah.
00:20:03
◼
►
And eventually, it's just like it's untenable to make people write to that.
00:20:06
◼
►
So they do QTKit, which is Objective-C wrapper around the gross C API.
00:20:10
◼
►
That's what motivated the wrapper.
00:20:11
◼
►
It's like, "No one wants to use the QuickTime API in C, unless you've been using it that
00:20:16
◼
►
way since 1990.
00:20:18
◼
►
No one wants to learn that as a new API.
00:20:20
◼
►
It's crazy pants."
00:20:21
◼
►
So they do the wrapper, and then they say, "What comes right after the wrapper?
00:20:27
◼
►
You know what?
00:20:28
◼
►
That old C API is deprecated.
00:20:29
◼
►
for everything, please, because we just can't, you know, it's too disgusting.
00:20:32
◼
►
And maybe AdWords, Book, and Keychain aren't quite at that point yet,
00:20:35
◼
►
but when they reach that point, like, that'll be, maybe that's like the canary in the coal mine.
00:20:39
◼
►
First they give you the Objective-C wrapper with massively more limited functionality
00:20:42
◼
►
that just lets you easily play a damn movie in your Cocoa application, right?
00:20:45
◼
►
I just want to put an NSMovie view, I just want to play a damn movie,
00:20:48
◼
►
I don't want to see that crazy API, right?
00:20:50
◼
►
And everyone else is like, "Wait, what about all the umpteen functions that you can do with a straight--
00:20:53
◼
►
Oh, that straight C API will still be there, you can use it."
00:20:55
◼
►
And then fast forward two years, it's like, yeah, that C API is going away.
00:20:58
◼
►
here's the new thing, written from the ground up to be different.
00:21:01
◼
►
Although I think AB Foundation is still a C API for performance reasons,
00:21:04
◼
►
but maybe they can make a better wrap around that.
00:21:07
◼
►
I don't know, someone in the chat room can correct me.
00:21:08
◼
►
Is AB Foundation an Objective-C API or a C API?
00:21:12
◼
►
You might know, Marco.
00:21:13
◼
►
I actually don't know. I've never used it.
00:21:15
◼
►
Well, you will.
00:21:17
◼
►
Either way, what needs to get worse about the address book API
00:21:22
◼
►
before we get to that point?
00:21:25
◼
►
It just needs to look dated.
00:21:28
◼
►
I don't know.
00:21:29
◼
►
It looks dated now.
00:21:30
◼
►
Well, I don't know enough about the QuickTime API,
00:21:32
◼
►
but I can imagine it might have dealt with handles, which
00:21:34
◼
►
were a big thing back in the classic Mac days.
00:21:37
◼
►
And I don't know if that's the case.
00:21:38
◼
►
Again, the chat room is failing me with these.
00:21:40
◼
►
Where's underscore?
00:21:42
◼
►
He needs to correct me with the real-time feedback
00:21:44
◼
►
about whether the QuickTime API used handles.
00:21:47
◼
►
We're lost without underscore.
00:21:49
◼
►
Stuff like that that, hypothetically speaking,
00:21:53
◼
►
It's a concept that doesn't even make sense anymore in a modern, you know, memory protected,
00:21:59
◼
►
preemptive multitasking, virtual memory world.
00:22:04
◼
►
And when people look at that, it just seems crazy, right?
00:22:07
◼
►
So that's the point where you're like, all right, this isn't just like awkward to use
00:22:10
◼
►
and difficult because it doesn't use nice Objective-C fake name parameters and stuff
00:22:15
◼
►
This has got concepts that have no purpose in the modern world and it makes me jump through
00:22:19
◼
►
hoops for no reason.
00:22:20
◼
►
And I'm like, are you getting-- do they still have OS errors
00:22:23
◼
►
where you get your result back as--
00:22:26
◼
►
Well, to me, this entire world is like-- even
00:22:29
◼
►
the nice Objective-C APIs seem gross to me,
00:22:32
◼
►
because you've got to use pointers everywhere
00:22:34
◼
►
and pretend they're not pointers.
00:22:36
◼
►
And pretend they're not pointers.
00:22:37
◼
►
Z. Woldowski says it's Objective-C
00:22:41
◼
►
and pasted the link to the documentation,
00:22:43
◼
►
and it reads as follows.
00:22:44
◼
►
The AV Foundation framework provides an Objective-C
00:22:46
◼
►
interface for blah, blah, blah, blah, blah.
00:22:48
◼
►
Like, the C API just got so old and so gross,
00:22:52
◼
►
even though it was incredibly feature rich,
00:22:53
◼
►
and that's why it stayed around for so long,
00:22:54
◼
►
'cause you could do such amazing things with it,
00:22:56
◼
►
but at a certain point, it was like,
00:22:57
◼
►
if you had a legacy application built around QuickTime,
00:23:00
◼
►
your app was amazing, you could do amazing things,
00:23:01
◼
►
but if you wanted to write a new one,
00:23:02
◼
►
no one wanted to dive in and make, like,
00:23:05
◼
►
a video editing application,
00:23:07
◼
►
especially if you're gonna do, like,
00:23:10
◼
►
not a not professional video editor,
00:23:13
◼
►
something you'd imagine seeing on the Mac App Store.
00:23:14
◼
►
Hey, easily edit your videos, right?
00:23:18
◼
►
You don't want to have to throw someone at the deep end of the full-fledged, old-school
00:23:23
◼
►
C API to QuickTime.
00:23:24
◼
►
It would be much easier if there was a more modern API that they could use to do most
00:23:29
◼
►
of that same stuff.
00:23:30
◼
►
And so they started over with AB Foundation.
00:23:32
◼
►
And it's taken them years to get to the point where I'd—they're still not at the point,
00:23:35
◼
►
I don't think, where AB Foundation doesn't even close what the old QuickTime API did,
00:23:38
◼
►
but they're clearly moving that direction.
00:23:41
◼
►
And let's take a break to thank our first sponsor.
00:23:43
◼
►
It is—can you guys guess?
00:23:46
◼
►
Is it Squarespace?
00:23:47
◼
►
It is Squarespace. How could they not? They are so awesome. They are. This episode is brought to you by Squarespace, the all-in-one platform
00:23:53
◼
►
that makes it easy to create your own website. For a free trial and 10% off, go to squarespace.com and use the offer code
00:24:01
◼
►
ATP6 for Accidental Tech Podcast month of 6, that's June.
00:24:05
◼
►
Squarespace is constantly updating their platform with new features, new designs, and more support.
00:24:09
◼
►
They have beautiful designs for you to start with and tons of style options for you to adjust. We even actually we inject a script
00:24:16
◼
►
tag and a style tag into ours.
00:24:18
◼
►
They let you do that.
00:24:19
◼
►
You can do whatever you want.
00:24:20
◼
►
You can really create your own space
00:24:22
◼
►
online with Squarespace.
00:24:24
◼
►
They take care of hosting, SEO,
00:24:26
◼
►
even automatically resizing your site
00:24:28
◼
►
to look great on any device with responsive design.
00:24:31
◼
►
It's incredibly easy to use.
00:24:33
◼
►
If you end up needing any help though,
00:24:35
◼
►
Squarespace has an amazing support team.
00:24:37
◼
►
They work 24/7, really 24/7.
00:24:40
◼
►
Squarespace starts at just $8 a month
00:24:42
◼
►
and if you order for a whole year,
00:24:44
◼
►
it includes a free domain name.
00:24:47
◼
►
So try Squarespace for free.
00:24:48
◼
►
They have literally a free trial, no credit card required,
00:24:52
◼
►
which is pretty awesome.
00:24:53
◼
►
If you purchase, make sure you get an additional 10% off
00:24:56
◼
►
by using our coupon code ATP6 this month in June here.
00:25:01
◼
►
Use our coupon code, get 10% off,
00:25:03
◼
►
and then that'll tell them that you came from here
00:25:06
◼
►
and that they should keep buying sponsorships on our show
00:25:08
◼
►
'cause they are that awesome.
00:25:10
◼
►
Squarespace is everything you need
00:25:11
◼
►
to create an exceptional website.
00:25:13
◼
►
And thanks again to those guys.
00:25:14
◼
►
We host our site there and no complaints.
00:25:17
◼
►
They've been awesome.
00:25:18
◼
►
- Yep, thanks Squarespace.
00:25:20
◼
►
So before we get away from this kind of low level murdery,
00:25:24
◼
►
do we all agree, and I didn't think about this
00:25:26
◼
►
when I wrote my blog post about what to expect at WWDC.
00:25:30
◼
►
- You have a blog?
00:25:31
◼
►
- Once every two years, I'll write on it.
00:25:34
◼
►
I think I'm up to like a post a month
00:25:35
◼
►
for the last two or three.
00:25:36
◼
►
- So this is what you get for not skipping anyone's tweets
00:25:38
◼
►
from whoever Casey tweets about his blog post?
00:25:41
◼
►
I see it because I read them all.
00:25:42
◼
►
Marco commented on the last one. He's just, he's just... I did actually have it to
00:25:46
◼
►
catch that one. Yeah, how about that? But anyway, one of the things I didn't think
00:25:51
◼
►
about that I wanted to ask you guys, are we going to get the equivalent of the VAR
00:25:56
◼
►
keyword in C#? And I forget what the term is for that, but basically
00:25:59
◼
►
inferred type. Right, like a future declared something, something... C++ auto. I think
00:26:05
◼
►
that's the same. I believe it is. Type inference. Or a visual basic variant. No,
00:26:11
◼
►
Type inference is what I was looking for, I believe you're right.
00:26:14
◼
►
So in other words, you can say, I've got some variable here, and I don't want to explicitly
00:26:20
◼
►
tell you what type it is.
00:26:21
◼
►
Compiler, you're smart, you figure it out.
00:26:23
◼
►
So I guess my question is actually twofold.
00:26:25
◼
►
Firstly, do we expect type inference in Objective-C come Monday?
00:26:30
◼
►
And secondly, what with the crazy awesomeness, and I don't mean that sarcastically, with
00:26:35
◼
►
the static analyzer, I couldn't think of the word I was looking for, the static analyzer
00:26:40
◼
►
and all that craziness, do we think that we'll see any advancements, kind of maybe not as big,
00:26:45
◼
►
but kind of in the same way we saw ARC? I don't think there's any pressing need
00:26:48
◼
►
for type inference. The reason I suggested it is because it's like it's right there sitting in
00:26:53
◼
►
front of them because they've already got a static analyzer. Type inference can be implemented in
00:26:57
◼
►
such a way that it doesn't actually change anything about the language. It just basically saves you
00:27:00
◼
►
typing because if the static analyzer can figure out that that can only possibly be one type
00:27:06
◼
►
that could ever make sense, it lets you not put like the class name two times on the same line,
00:27:10
◼
►
when you're declaring the stupid pointer variable
00:27:12
◼
►
and then calling the class method to make the alloc init
00:27:17
◼
►
and all that other stuff, right?
00:27:18
◼
►
Why does it have to be that twice?
00:27:19
◼
►
Can't it just figure it out?
00:27:21
◼
►
So it's kind of a nice to have,
00:27:22
◼
►
but the memory image of the program it creates
00:27:25
◼
►
isn't different, unlike Arc, for example,
00:27:27
◼
►
which actually does create a different
00:27:28
◼
►
actual running program than you would have written manually.
00:27:31
◼
►
So this is an even less invasive change than that,
00:27:35
◼
►
but it's along the category of stuff like dot syntax
00:27:37
◼
►
where it's like, was dot syntax
00:27:40
◼
►
people saying, "Oh, I can't type any more square brackets. I want to do a dot." I mean,
00:27:43
◼
►
maybe some people were. The thing is, if they had the time to implement it and it's ready,
00:27:51
◼
►
it'll be there. But if it wasn't, it's not like, "Oh my God, this year we got to have
00:27:54
◼
►
type inference because we're really getting dinged on not having type inference." They
00:27:58
◼
►
were getting dinged much more on memory management, so that was more of a pressing need. So I
00:28:02
◼
►
feel like it's a 50/50 chance. If it's not there, no one's going to complain. And if
00:28:05
◼
►
it is there, people are like, "Oh, that's nice. Save some typing. Pretty cool."
00:28:09
◼
►
So I'm really not trying to troll you.
00:28:12
◼
►
Does Perl have type inference?
00:28:14
◼
►
And if so, do you believe in it?
00:28:16
◼
►
Type inference and type inference.
00:28:17
◼
►
You really know nothing about Perl.
00:28:19
◼
►
No, I haven't used Perl and so darn well.
00:28:21
◼
►
Perl doesn't even believe in types, does it?
00:28:23
◼
►
It's all like type unsafe and crap.
00:28:24
◼
►
I think everything's a duck.
00:28:26
◼
►
Yeah, that's right.
00:28:27
◼
►
Everything is a duck.
00:28:28
◼
►
That's the thing about Ruby.
00:28:29
◼
►
We're going to get into trouble for speaking loosely about type safe and unsafe and--
00:28:36
◼
►
Is it statically typed and dynamically typed and strongly typed and weakly typed?
00:28:41
◼
►
And I do not have the definitions of all those terms in front of me, so it's much easier to
00:28:45
◼
►
talk in more specific terms. But suffice it to say, the type inference is not...
00:28:49
◼
►
As we're talking about it, Objective-C is basically an irrelevant concept in Perl,
00:28:55
◼
►
as it's basically irrelevant in JavaScript or PHP for that matter.
00:28:58
◼
►
Right, right. Because everything is very loosely typed.
00:29:01
◼
►
High-level language. You don't have to worry about those low-level.
00:29:03
◼
►
Oh, listen to this guy.
00:29:05
◼
►
Did you just indirectly complement PHP?
00:29:07
◼
►
I'm just saying, you're not dealing with pointers in PHP, and you're also not worried about
00:29:11
◼
►
it. It's not even like Ruby, you know, 2S to get the string version of a thing. You
00:29:15
◼
►
don't have to do that in PHP, do you?
00:29:18
◼
►
No, that's what I'm saying. It's like JavaScript. You just have a value and a variable, and
00:29:21
◼
►
you just use it in a certain way, and it becomes-- it's not as bad as JavaScript with the crazy
00:29:25
◼
►
coercions, and you have to use the triple equal to avoid them, and all that. JavaScript
00:29:29
◼
►
is gross. But yeah, it's not relevant.
00:29:32
◼
►
So someone asked in the chat, it already flew by, why not use id or id or whatever the crap
00:29:38
◼
►
it's called everywhere.
00:29:40
◼
►
And that's something different.
00:29:41
◼
►
You know, when you use id or id or whatever in Objective-C, that's saying, hey, I don't
00:29:46
◼
►
really know what this is, just figure it out at runtime.
00:29:49
◼
►
What type inference does is say, hey, I know that this can only be one type, just like
00:29:53
◼
►
John was saying earlier, but I don't want to spend the time typing NSString, I just
00:29:57
◼
►
want to type the letters VAR.
00:30:00
◼
►
compiler will figure out what is this type and fill it in for you, not literally speaking,
00:30:05
◼
►
but figuratively speaking, it won't change your code or anything. And so that gives you
00:30:09
◼
►
all the benefits of strong typing, of which John doesn't believe in them because he writes
00:30:13
◼
►
Perl, but it saves you a little bit of time. And that's very different than using ID.
00:30:19
◼
►
See, do you think it—I mean, is this something like—to me, I'm thinking if I have—if
00:30:24
◼
►
if I'm reading the code, writing it, okay, you can type in the same
00:30:28
◼
►
keyword for everything. Okay, that's, you know, that's
00:30:32
◼
►
interesting. Reading it, though,
00:30:36
◼
►
do you really want to see a bunch of code that just, you know, a bunch of var declarations, like is that
00:30:40
◼
►
is that really an improvement? Well, and that's exactly what I was, that's when I
00:30:44
◼
►
started to ask Jon about this, that's where I was going with it, is do you guys even believe
00:30:48
◼
►
in this in the first place? Well, wouldn't it not let you do it in a case where there's
00:30:52
◼
►
ambiguity? Like wouldn't it... I don't know how the C++ auto keyword works or the VAR
00:30:57
◼
►
keyword in C# for that matter, but what I would imagine that Apple would bring to Objective-C,
00:31:01
◼
►
assuming it doesn't just bring the straight port of the auto keyword, because they do
00:31:04
◼
►
have really good C++ support at this point, and they could just say, "Hey, write everything
00:31:07
◼
►
in Objective-C++ and use the auto keyword. Done and done." Like, we didn't have to invent
00:31:11
◼
►
the feature, it's already there, right? But assuming they bring their own keyword for
00:31:15
◼
►
type inference, my guess would be that it would just not compile if there's any possible
00:31:20
◼
►
ambiguity and the place where you would not have any ambiguity is the typical thing where
00:31:25
◼
►
you're declaring a variable of a particular type and making a new object of that type
00:31:30
◼
►
and sticking it into it right in the same line.
00:31:32
◼
►
And there you just do not need the class name twice.
00:31:34
◼
►
That's the classic example of like, that's annoying and stupid and nobody looking at
00:31:38
◼
►
that is going to be confused by like var foo equals and then class name, block, you know,
00:31:43
◼
►
they're not going to be confused by that.
00:31:44
◼
►
It's right there.
00:31:45
◼
►
You know what's going into that thing, right?
00:31:47
◼
►
So that is the most obvious case, and then you scale down from there to the point where
00:31:50
◼
►
at a certain point the static analyzer says, "Well, I can't assume what type you're trying
00:31:55
◼
►
to say here because there's multiple possible values that would be valid," and maybe it
00:31:59
◼
►
would just not compile that and say, "No, you've got to explicitly declare that type."
00:32:04
◼
►
That's exactly how it is in C#, where if you don't say on that same line exactly what this
00:32:09
◼
►
is, the compiler will puke it up and say, "I need some more info," or, "You need to provide
00:32:14
◼
►
an actual type because I can't just infer what this is.
00:32:17
◼
►
So, yeah, so if you have to have a mix of declared types and automatic types, doesn't
00:32:24
◼
►
that kind of introduce a lot of bug potential and make code harder to read?
00:32:27
◼
►
Well, what's the bug potential?
00:32:29
◼
►
Well, I guess if you have a keyword, if you can declare them without keywords, like you
00:32:33
◼
►
can in most scripting languages, then that's rough because then you can, like, and there's
00:32:39
◼
►
like, okay, well if you misspell a variable name.
00:32:44
◼
►
- No, it's not JavaScript. - Stuff like that.
00:32:46
◼
►
- JavaScript where you could just, yeah,
00:32:48
◼
►
you just start typing it.
00:32:49
◼
►
- Well, PHP and Perl have this problem too.
00:32:51
◼
►
- Well, but you know, Perl had it first
00:32:53
◼
►
and Perl had the solution first,
00:32:54
◼
►
and I'm assuming PHP has the same solution as Perl,
00:32:56
◼
►
does it not?
00:32:57
◼
►
Where you have a mode where you're not allowed to do that
00:32:59
◼
►
and everybody uses that mode, please tell me that's the case.
00:33:01
◼
►
- Are you getting a head start?
00:33:02
◼
►
- No, no, it has, well, it'll throw a notice
00:33:04
◼
►
which you can catch and treat as an error if you want to,
00:33:06
◼
►
and I do, where if you are using an undeclared variable,
00:33:10
◼
►
it can throw the error.
00:33:12
◼
►
But if you assign to a variable,
00:33:14
◼
►
that implicitly declares it.
00:33:15
◼
►
But there still is that risk of,
00:33:20
◼
►
"Oh, I'm assigning to a variable
00:33:21
◼
►
"that I thought was the same one that I used 10 lines ago,
00:33:23
◼
►
"but I mistyped it."
00:33:24
◼
►
- It doesn't catch that?
00:33:26
◼
►
- If you assign to it, no.
00:33:28
◼
►
- Yeah, well.
00:33:28
◼
►
- If you're testing it or calling something--
00:33:29
◼
►
- PHP screw something else up again.
00:33:31
◼
►
They should have just copied the Perl solution.
00:33:32
◼
►
But anyway, JavaScript hilariously
00:33:36
◼
►
copied the Perl-- didn't we talk about this in a past episode?
00:33:38
◼
►
Hilariously copied the Perl solution.
00:33:40
◼
►
The Perl solution is they added a pragma,
00:33:42
◼
►
or you type use strict, and then it turns it into the good mode
00:33:45
◼
►
where it's like, if you make any typo,
00:33:47
◼
►
it's like, I don't know what variable you're talking about.
00:33:48
◼
►
I will not-- I refuse to create a new variable that you have
00:33:51
◼
►
not declared, like C or any other language in that mode,
00:33:56
◼
►
And in JavaScript, which works the other crazy way,
00:33:58
◼
►
they said, we want that too, but we
00:34:00
◼
►
can't change the language because it's
00:34:01
◼
►
in a bazillion browsers.
00:34:02
◼
►
So in JavaScript, if you just make a string literal
00:34:05
◼
►
where you put double quote or single quote or whatever,
00:34:08
◼
►
use space strict and then close that string literal
00:34:11
◼
►
and put a semicolon.
00:34:12
◼
►
Like no assignment, no nothing.
00:34:13
◼
►
Just like that string literal in your JavaScript code,
00:34:17
◼
►
most modern browsers will see that, interpret it as,
00:34:20
◼
►
oh, you want to go into that strict mode that's
00:34:22
◼
►
kind of like Perl's use strict.
00:34:23
◼
►
It's hilarious that it uses the exact same phrase,
00:34:25
◼
►
use space strict all lowercase.
00:34:27
◼
►
And then it will go into that mode.
00:34:29
◼
►
Sometimes it will, sometimes it won't.
00:34:30
◼
►
And for browsers that don't understand that,
00:34:33
◼
►
But they just see a use of a string literal and void context to use Perl parlance.
00:34:38
◼
►
And so it's valid code.
00:34:40
◼
►
It compiles.
00:34:41
◼
►
You don't choke the other browsers.
00:34:42
◼
►
But if you're using a modern browser that helps you out, you get the benefits of working
00:34:48
◼
►
in that environment.
00:34:49
◼
►
So yeah, I mean, JavaScript has an excuse because it's really old and, again, made by
00:34:52
◼
►
one guy under time pressure and didn't think he was going to be creating the next language
00:34:56
◼
►
for the next millennium.
00:34:59
◼
►
But I would never imagine that a language with so much bondage and discipline as Objective-C
00:35:06
◼
►
would ever allow that type of thing where you just type a variable name and it springs
00:35:11
◼
►
into existence.
00:35:12
◼
►
It would always need some sort of word, whether that be "var," "auto," or whatever word
00:35:16
◼
►
Apple would make up for it.
00:35:17
◼
►
Do you want to talk about WVDC anymore?
00:35:19
◼
►
Yeah, I was going to say—
00:35:21
◼
►
I have more things to talk about.
00:35:23
◼
►
Don't let me steer this conversation.
00:35:25
◼
►
We're going off into the weeds.
00:35:26
◼
►
It's like we're nerds or something.
00:35:29
◼
►
That's not good.
00:35:30
◼
►
If you really think about it, we as a group have kind of made a podcasting career out
00:35:34
◼
►
of going off topic.
00:35:38
◼
►
That's very true.
00:35:39
◼
►
But in an attempt to stay on topic, Jon, what were you thinking was coming over the keynote
00:35:46
◼
►
So the blog post that I was too lazy to write this week that I was on podcast about—yes,
00:35:53
◼
►
this is the pattern.
00:35:54
◼
►
Sometimes the blog post comes first, I suppose—is about hardware.
00:35:58
◼
►
Now we've had the extra week of time, and it's like the Haswell-based laptops, right?
00:36:05
◼
►
Assuming Apple decides to put them in the keynote, which I imagine they would, because
00:36:09
◼
►
They did it last year, and the new ones are coming, whether they've talked about it in
00:36:12
◼
►
the keynote or not.
00:36:14
◼
►
The thing that I hadn't realized, really hadn't thought about actually, was like, last year
00:36:18
◼
►
and since last year, people have been asking me, "Should I get a Retina MacBook Pro or
00:36:24
◼
►
a MacBook Air?"
00:36:25
◼
►
telling people if you can wait, wait, because the Airs have such a terrible screen, especially
00:36:32
◼
►
compared to the Retinas. But the Retinas, the integrated GPU, the one that's on the
00:36:38
◼
►
CPU, the Intel graphics one, is just barely able to handle that screen. And I think it's
00:36:42
◼
►
a shame, it's like a first generation thing. And that will be solved by Haswell, which
00:36:46
◼
►
is coming and will have much better integrated graphics, right? So that's what I've been
00:36:49
◼
►
telling people. If you can wait, wait, because they're going to revise the Airs and presumably
00:36:52
◼
►
you'll have a nicer screen and faster and all that stuff.
00:36:55
◼
►
And the retinas, well there's also
00:36:57
◼
►
the image retention issue which I hope is being solved
00:37:00
◼
►
by them picking different screen supplier or whatever.
00:37:02
◼
►
And the next ones are gonna have, you know,
00:37:05
◼
►
faster CPU, better battery life
00:37:06
◼
►
because of the Hassell power savings,
00:37:07
◼
►
but also a much better integrated GPU.
00:37:10
◼
►
Now what I hadn't been thinking about
00:37:11
◼
►
when I've been telling people that is,
00:37:14
◼
►
what if they ship them with just the integrated GPU
00:37:18
◼
►
and no external GPU anymore?
00:37:20
◼
►
Because I'd been thinking, okay,
00:37:21
◼
►
So the integrated GPU is going to be better and it's going to finally be able to comfortably handle a retina display
00:37:26
◼
►
But of course when you would load up a game or something, I suppose
00:37:29
◼
►
They'll just you know, they'll use the discrete GPU for the game, right?
00:37:32
◼
►
In theory. Yeah after reading the non tech
00:37:35
◼
►
Review of this thing you can see that the integrated GPU is still slightly slower than the current discrete GPU that they use in the retina
00:37:44
◼
►
But that Apple could probably get away with not having discrete GPU in the 15-inch MacBook Pro
00:37:49
◼
►
Oh, I would love that.
00:37:50
◼
►
Just using the integrated, because the power savings would be huge, right?
00:37:55
◼
►
And it would be a cost saving, right?
00:37:59
◼
►
Heat, noise, battery, everything gets better, cost.
00:38:05
◼
►
But on the other hand, wouldn't you feel bad if you bought a Retina MacBook Pro this year
00:38:10
◼
►
and it didn't play a game at as high a frame rate as the one you could have bought last
00:38:14
◼
►
year at the same time?
00:38:15
◼
►
John, we don't play games.
00:38:16
◼
►
We have Macs.
00:38:17
◼
►
Some people do.
00:38:18
◼
►
Some people do.
00:38:19
◼
►
You want to run Diablo 3 in that crazy retina resolution, right?
00:38:23
◼
►
It's not that it's a gaming laptop or anything like that.
00:38:26
◼
►
It would be weird.
00:38:27
◼
►
Wouldn't it be weird for a year later, the new top-of-the-line Apple laptop would have
00:38:31
◼
►
a GPU that is ever so slightly slower than the previous one?
00:38:35
◼
►
And I'm sure that Apple...
00:38:36
◼
►
See, here's the way you can go on this.
00:38:37
◼
►
I think Apple could whip up some benchmark BS that makes the integrated one look slightly
00:38:43
◼
►
faster than the discrete, because there are tests.
00:38:46
◼
►
If you look at the NFTEC thing, there are tests where it gets like 10% or 7% faster.
00:38:50
◼
►
But overall, it's mostly slightly slower.
00:38:53
◼
►
So Apple could do the selective thing where they just pick their benchmark and say, "Hey,
00:38:56
◼
►
look, we ditched the discrete GPU.
00:38:59
◼
►
It's just got an integrated one.
00:39:00
◼
►
And look, it's actually faster than the previous discrete one."
00:39:02
◼
►
And they'll show some single or small double-digit gain on the carefully chosen benchmarks.
00:39:07
◼
►
Well, another thing they could do is what they did, I think, about three years ago.
00:39:13
◼
►
They introduced a 15-inch model at $1699, something like that.
00:39:18
◼
►
It was significantly below the previous $1999 minimum.
00:39:22
◼
►
It was a low-end 15-inch MacBook Pro that didn't have a discrete GPU.
00:39:27
◼
►
It only had the Intel one.
00:39:28
◼
►
And all the other 15-inches, the higher-priced ones, all had discrete GPUs.
00:39:33
◼
►
And everyone's like, "Oh, they don't want to have multiple SKUs or multiple different
00:39:36
◼
►
Well, they've done it before.
00:39:37
◼
►
They do it for other things.
00:39:38
◼
►
If it makes sense, they can do it.
00:39:41
◼
►
If they did this, maybe they would keep the discrete GPU in the most expensive configuration,
00:39:48
◼
►
but then in the cheapest one, leave it out.
00:39:54
◼
►
If I was buying, I'd actually buy that one because it would be cooler running, longer
00:39:59
◼
►
battery life, everything else.
00:40:03
◼
►
The whole dual GPU thing has always been buggy in the OS.
00:40:08
◼
►
If you use something like, I believe it's Cody Krieger's graphics card status program,
00:40:15
◼
►
it'll tell you which one's in use and it has a mode where you can attempt to force it to
00:40:19
◼
►
use one or the other and it doesn't always work because of weird OS things.
00:40:23
◼
►
But it doesn't just use the discrete GPU for games.
00:40:26
◼
►
It has some kind of conditions where I think if something uses layer-backed views or core
00:40:32
◼
►
animation in a certain way, then it automatically turns the GPU on if that app is running at
00:40:38
◼
►
And that includes things like iCal.
00:40:39
◼
►
I mean, really commonly used apps.
00:40:42
◼
►
They tweaked it to not go to the discrete GPU quite as easily.
00:40:47
◼
►
They've made changes to the OS of, say, it used to be, right?
00:40:49
◼
►
Like if you did almost anything involving applications that were not impressive, it
00:40:53
◼
►
was like, "Oh, sorry.
00:40:54
◼
►
If you touch this framework at all, we're going to the discrete GPU."
00:40:57
◼
►
But then they kept moving it back, saying, "Well, the integrated GPU can handle that.
00:41:02
◼
►
to do is trade off of jerky scrolling and bad drawing
00:41:05
◼
►
performance.
00:41:07
◼
►
They know it could be better if it was on a discrete,
00:41:08
◼
►
but they're trying to balance power.
00:41:10
◼
►
That's what I was saying about that machine being compromised.
00:41:12
◼
►
Yeah, you're right.
00:41:13
◼
►
That dual GPU thing is never quite right,
00:41:15
◼
►
and it always leads to lots of weird drawing glitches.
00:41:17
◼
►
And people have retinas.
00:41:18
◼
►
They're always talking about, oh, I
00:41:19
◼
►
was scrolling through Safari.
00:41:20
◼
►
That could be retina bugs, and it also
00:41:22
◼
►
could be the GPU switching.
00:41:24
◼
►
Well, and think about the customer experience of,
00:41:27
◼
►
if you don't know about the switching,
00:41:28
◼
►
and if you don't know which apps are causing it,
00:41:31
◼
►
then you have a situation where your laptop will seemingly
00:41:36
◼
►
randomly get like 30% less battery life on some days
00:41:40
◼
►
or when you're doing certain things.
00:41:41
◼
►
And it's really hard to tell why that is.
00:41:44
◼
►
It's an app running in the background that never lets
00:41:45
◼
►
the discrete GPU be turned off.
00:41:47
◼
►
Right, like in my case, it was always iCal doing that,
00:41:50
◼
►
which is annoying, or Twitter or Tweetbot.
00:41:52
◼
►
They almost, so many apps do this now,
00:41:55
◼
►
including so many Apple apps,
00:41:57
◼
►
that if you're multitasking at all,
00:42:00
◼
►
you probably have something keeping that discrete GPU
00:42:02
◼
►
And so you'll end up having these bursts of time
00:42:06
◼
►
where you'll get dramatically less battery life.
00:42:08
◼
►
And there's no obvious answer to most people as to why that is.
00:42:12
◼
►
And that's terrible.
00:42:14
◼
►
It makes Apple look bad.
00:42:15
◼
►
It makes the customers unhappy.
00:42:17
◼
►
Everything runs too hot.
00:42:18
◼
►
I mean, that's why I think there would be a performance
00:42:22
◼
►
trade-off for certain conditions, like games,
00:42:25
◼
►
by going integrated only.
00:42:28
◼
►
But in almost every other way, that would actually be better.
00:42:32
◼
►
Yeah, I agree.
00:42:32
◼
►
And to go back just a quick step, another great example
00:42:36
◼
►
is because I think that there's some sort of multiplexer
00:42:39
◼
►
in between the graphics cards and the DisplayPort such
00:42:43
◼
►
that if you have an external display
00:42:46
◼
►
connected of any capacity, you're
00:42:48
◼
►
running on that discrete GPU.
00:42:49
◼
►
So let's say you're sitting at your desk,
00:42:52
◼
►
and you've been using your computer for hours,
00:42:54
◼
►
and nothing's gone wrong, and you have half your battery
00:42:57
◼
►
left and then you go to do a presentation and suddenly you have an
00:43:01
◼
►
external monitor that being your projector hooked up to your computer and
00:43:05
◼
►
your battery power just disappears instantly. And that's because of
00:43:09
◼
►
the multiplexer in front of the display port or something along those lines.
00:43:12
◼
►
And it doesn't need to be that way because the 13-inch and the Ayres don't have discrete GPUs
00:43:16
◼
►
and output to external monitors is just fine. With the new
00:43:21
◼
►
Haswell chips a lot of these problems will be lessened severely because
00:43:25
◼
►
they can do almost everything on the integrated now,
00:43:27
◼
►
like they won't have to go to the integrated
00:43:28
◼
►
just because they have an external GPU,
00:43:30
◼
►
they won't have to go to the integrated
00:43:31
◼
►
when you do something fancy, right?
00:43:32
◼
►
So you can basically,
00:43:33
◼
►
or won't have to go to the discrete, rather.
00:43:35
◼
►
They'll be able to stick to the integrated GPU
00:43:37
◼
►
almost all the time, except for perhaps things like games.
00:43:41
◼
►
So that's why I'm coming up with the question of like,
00:43:44
◼
►
it's totally an Apple move to just say,
00:43:46
◼
►
sorry, no more discrete GPU.
00:43:48
◼
►
And that means that this machine,
00:43:50
◼
►
either Apple's gonna say it's only slightly faster
00:43:53
◼
►
in graphics performance than the previous one,
00:43:55
◼
►
always on par, but hey, and they'll super duper tout,
00:43:58
◼
►
like, oh, look at the power set,
00:43:59
◼
►
like all the other things we were talking about, right?
00:44:00
◼
►
Isn't it amazing, right?
00:44:02
◼
►
So that's definitely one way they could go.
00:44:04
◼
►
I would be a little bit disappointed in that,
00:44:05
◼
►
but I can see the Apple pitch,
00:44:07
◼
►
I can see the slides in my head
00:44:08
◼
►
of how they're gonna sell that,
00:44:09
◼
►
and people will be like, oh, it's not so bad, right?
00:44:11
◼
►
Because it would be, I mean,
00:44:12
◼
►
for almost every person who's not doing
00:44:14
◼
►
like 3D graphics or games, it would be a clear win,
00:44:18
◼
►
like, 'cause I never cared about the frame rate
00:44:20
◼
►
of some game, all I know is my battery life is better,
00:44:22
◼
►
I don't have to deal with GPU switching, everything's great.
00:44:24
◼
►
But the thing, you said Marco about,
00:44:25
◼
►
all right, so maybe there's just one top end model
00:44:28
◼
►
where they put the discrete GPU in there
00:44:29
◼
►
for the gamers or whatever.
00:44:31
◼
►
And then the question is, what is that discrete GPU?
00:44:33
◼
►
Like the other one was a 650M or something.
00:44:35
◼
►
I think like the 750M is out or something like that.
00:44:39
◼
►
I could also see them going that route.
00:44:40
◼
►
And Apple knows better than us
00:44:43
◼
►
'cause they never give us the breakdowns,
00:44:44
◼
►
but say they produce a line like that.
00:44:46
◼
►
What is the breakdown between the ones with the discrete
00:44:49
◼
►
and the ones with it?
00:44:50
◼
►
Like I start to think of the guys
00:44:51
◼
►
to opt for the discrete GPU being kind of like the people
00:44:54
◼
►
who would buy the Mac Pro.
00:44:55
◼
►
Like we think we're super important
00:44:57
◼
►
and we think it's awesome and everything,
00:44:58
◼
►
but if it's like 0.05% of the customers,
00:45:02
◼
►
it's really difficult for Apparel to keep doing that
00:45:04
◼
►
year after year.
00:45:05
◼
►
But the thing that makes me feel a little bit better
00:45:06
◼
►
is the, remember the super high res 15 inch,
00:45:09
◼
►
where you get the 15 inch with the higher res screen?
00:45:12
◼
►
- Yep. - That's what I'm looking at.
00:45:13
◼
►
- They did that for a long time.
00:45:15
◼
►
And I have to think that like almost nobody bought
00:45:17
◼
►
that stupid thing.
00:45:18
◼
►
Like the matte screen and the high res,
00:45:20
◼
►
like the only people who buy that are people like that.
00:45:21
◼
►
- Casey and I both did.
00:45:22
◼
►
- Right, right, I know what you mean.
00:45:24
◼
►
Exactly, people who like Mac Pros.
00:45:26
◼
►
But I've been in lots of Apple stores
00:45:29
◼
►
and I have never known anyone who is not a super nerd
00:45:31
◼
►
who opted for that screen because you say,
00:45:32
◼
►
"This one is more expensive, it's matte,
00:45:34
◼
►
"which doesn't look as shiny as shiny," right?
00:45:37
◼
►
And everyone's like, "Why would you get the one
00:45:39
◼
►
"that's uglier, quote unquote uglier,
00:45:41
◼
►
"and I have to squint to see it and it's more expensive?
00:45:43
◼
►
"I'll take that one please."
00:45:45
◼
►
Like, that's gotta be what everybody picks, so.
00:45:46
◼
►
- Well, you'd be surprised.
00:45:47
◼
►
I mean, granted I am talking about nerds,
00:45:49
◼
►
but everyone in my office that has a MacBook Pro
00:45:51
◼
►
one of those. I'm looking at two within arms reach right now, my personal one as well as
00:45:54
◼
►
my work one. I mean they are unbelievably great machines if you're not going to go
00:45:58
◼
►
retina and they were the best of the 15 inch MacBook Pros up until the retina MacBook Pros.
00:46:04
◼
►
So any of those who are checkbox nerds who said, "Oh, I want the best, darn it," then
00:46:10
◼
►
they would get these. And they are unbelievably great machines, excepting the discrete GPU
00:46:15
◼
►
Yeah, so this is my fun litmus test for this keynote is when they, I'm assuming they'll
00:46:23
◼
►
introduce this line of things to look to see, will any of them have a discrete GPU?
00:46:28
◼
►
And if they don't, like, what does that say about, I mean, it gets back to the whole Mac
00:46:32
◼
►
Like, what kind of signals is Apple sending about the kind of company is?
00:46:35
◼
►
Is it the kind of company that has decided that it just doesn't care about top end performance
00:46:42
◼
►
anymore and it considers battery life and suitability for like the 80% or 90% or 99.5%
00:46:50
◼
►
or whatever percent it is to just be so much more important than everything else. So I've got my
00:46:55
◼
►
fingers crossed for at least one model still with this great GPU, but I think I'd be mostly okay for
00:47:02
◼
►
this to be a transition year where they go integrated only because the next round of chips,
00:47:06
◼
►
like maybe Intel will continue dedicating 65% or more of its CPU space to graphics,
00:47:15
◼
►
and at 14 nanometers, that gives you a pretty darn good GPU on the CPU. And so by that point,
00:47:22
◼
►
you're like, "All right, well, discrete GPU. How barbaric," right?
00:47:25
◼
►
So now keeping with hardware. Well, Marco, do you have anything to add on laptops?
00:47:30
◼
►
No, I think that covers it. I mean, I'm looking forward to what they do. I currently own
00:47:36
◼
►
the cheapest model of the current, which is the first 15-inch Retina MacBook Pro.
00:47:41
◼
►
And I use it as a travel and upstairs computer.
00:47:46
◼
►
And so I don't use it a lot. I'm not using it constantly. I'm not pushing its boundaries.
00:47:51
◼
►
So I don't plan to upgrade at all.
00:47:56
◼
►
So with that in mind, gentlemen, it is time. Will there be a Mac Pro?
00:48:01
◼
►
or something equivalent thereof.
00:48:03
◼
►
- Before we get into this, let me do our second sponsor
00:48:06
◼
►
'cause I know this is gonna take a while.
00:48:08
◼
►
- Yep, that's a good call.
00:48:09
◼
►
- So, all right, our second sponsor,
00:48:11
◼
►
this is a new sponsor this week,
00:48:13
◼
►
but I hope you guys have already heard of them
00:48:14
◼
►
and I'm gonna convince you to buy them.
00:48:16
◼
►
The sponsor is Tonks, T-O-N-X,
00:48:19
◼
►
and Tonks is a coffee subscription service.
00:48:23
◼
►
I wrote this blog post a while back.
00:48:26
◼
►
People always ask me, oh, how do you make great coffee?
00:48:29
◼
►
or what kind of setup do I need to make great coffee,
00:48:32
◼
►
because people are always obsessed with gear and stuff
00:48:35
◼
►
And the fact is the answer is actually pretty boring.
00:48:38
◼
►
The answer is, well, get an AeroPress, which is $25,
00:48:44
◼
►
Get an AeroPress and get a really good grinder,
00:48:48
◼
►
which you can get a good burr grinder for between $50
00:48:52
◼
►
and $200, depending on what kind of quality and durability
00:48:56
◼
►
and heft you want to it.
00:48:59
◼
►
So get a good grinder, get an AeroPress,
00:49:01
◼
►
and then just get freshly roasted beans
00:49:02
◼
►
that are really good.
00:49:04
◼
►
Well, that last part is not very easy in most places.
00:49:07
◼
►
Most people don't live right next to a really great roaster.
00:49:12
◼
►
And even if you live next to a great roaster,
00:49:14
◼
►
you might not like the way they roast.
00:49:16
◼
►
You might not like their taste.
00:49:18
◼
►
Tonks is a really, really great roaster,
00:49:20
◼
►
and they will ship you with fast shipping,
00:49:25
◼
►
I believe anywhere in the US.
00:49:26
◼
►
I don't think they serve outside of the US yet,
00:49:28
◼
►
but I'll have to double check that.
00:49:30
◼
►
They will ship you every two weeks,
00:49:33
◼
►
some amount of coffee, whatever you pick,
00:49:35
◼
►
either six ounces, 12, or 24.
00:49:38
◼
►
And they roast it and they ship it out almost immediately,
00:49:42
◼
►
so by the time it gets to you, it is very, very fresh.
00:49:45
◼
►
And they pick world-class beans,
00:49:47
◼
►
they go all over the place trying to find the best beans,
00:49:49
◼
►
and so every week is different, you get a nice variety.
00:49:52
◼
►
So you basically don't have to do anything.
00:49:54
◼
►
You can sign up with Tonks.
00:49:55
◼
►
Go to tongx.org, T-O-N-X.org/ATP so that they know you came from us.
00:50:03
◼
►
Just sign up for a trial and you can even get them to send you a trial of their beans.
00:50:08
◼
►
You can taste how good they are.
00:50:11
◼
►
This is my answer.
00:50:12
◼
►
When people say, "What should I get?"
00:50:13
◼
►
I say, "Get an AeroPress, get the Good Grinder, and just sign up for tongx."
00:50:18
◼
►
And then you don't have to worry about it.
00:50:19
◼
►
Then you will just get fresh beans every two weeks and they're just really, really good.
00:50:24
◼
►
you really can't go wrong with this.
00:50:26
◼
►
It'll probably be the best coffee you've ever had.
00:50:28
◼
►
And I've been a Tonks member for a long time.
00:50:32
◼
►
I currently have paused my subscription
00:50:34
◼
►
only because I've been self-roasting,
00:50:37
◼
►
but whenever I can't keep up self-roasting,
00:50:40
◼
►
I always go back to Tonks, and they are awesome.
00:50:42
◼
►
I have lots of friends who use them.
00:50:44
◼
►
They're just fantastic, highly recommended.
00:50:47
◼
►
They're also having a Father's Day promotion.
00:50:50
◼
►
It's Tonks' way of honoring the dads among us
00:50:52
◼
►
new customers only from June 7th through 17th, they're giving away an AeroPress if you sign
00:50:58
◼
►
up directly for a standard subscription. Everyone signing up will have their first delivery
00:51:03
◼
►
shipped out on the 17th, and the AeroPress will come shortly after that, depending on
00:51:06
◼
►
how quickly they can get them. So that's pretty cool. You basically sign up for Tonks and
00:51:12
◼
►
get a free AeroPress during this Father's Day promotion. So check that out. Go to tonks.org/atp.
00:51:17
◼
►
That's T-O-N-X dot org slash ATP. Thanks a lot to Tonks for sponsoring the show. Seriously,
00:51:21
◼
►
Seriously guys, check them out, they're awesome.
00:51:23
◼
►
Mac Pro or equivalent?
00:51:25
◼
►
Yes, no, maybe.
00:51:27
◼
►
Announce the WWDC?
00:51:29
◼
►
Are we going to see it this year then?
00:51:32
◼
►
We'll see something this year.
00:51:33
◼
►
Tim Cook said...
00:51:35
◼
►
"No enthusiasm."
00:51:36
◼
►
Yeah, I'm reading all the stories, I read Marco's thing, like, yeah, I'm prepared to
00:51:44
◼
►
Like, my judgment for the Mac Pro thing is no matter how well suited it is to my particular
00:51:49
◼
►
which I know what my needs are, I'll know whether I met them, but regardless of whether
00:51:53
◼
►
I'm disappointed in it or not, what I want to see from the company, what I think I need
00:51:57
◼
►
to see from the company is this thing better be faster than all the existing Macs.
00:52:01
◼
►
That sounds stupid, it's like, "Why would they even make it if it's not--" Seriously,
00:52:04
◼
►
I want it to be not just like, "Oh, and it's 5% faster than an iMac." No, I want it to
00:52:08
◼
►
crush the iMac, I want it to be ridiculous, I want it to-- in every way, disk I/O, memory,
00:52:14
◼
►
You know, CPU speed, number of cores, like everything.
00:52:18
◼
►
It should just crush all the other Macs
00:52:20
◼
►
'cause why even have this product that's not gonna do that?
00:52:22
◼
►
And if to make something that crushes all the other Macs,
00:52:25
◼
►
you have to make something with no internal drive bays
00:52:27
◼
►
that just uses like the equivalent of Marco's crazy
00:52:30
◼
►
PCI express SSD card or whatever, fine.
00:52:33
◼
►
Whatever you gotta do to make this thing ridiculously faster
00:52:35
◼
►
when macro puts up little graphs showing
00:52:37
◼
►
like how this computer compares,
00:52:39
◼
►
I don't want to see just a bunch of little lines
00:52:41
◼
►
looks like your cell phone signal strength, and the last one is a little bit longer. I
00:52:46
◼
►
want to see the last one be much longer, you know, in every possible way. That's the purpose
00:52:50
◼
►
of this machine. And I'm not so picky to say like, "Oh, you have to make it exactly to
00:52:54
◼
►
my needs," because I like cheap internal drives because I'm cheap, so you have to have room
00:52:58
◼
►
for five internal drives or whatever. If you have to make it with no internal drives and
00:53:02
◼
►
it's just like a sealed box but it's insanely fast, fine, then do that. So that's my wish
00:53:06
◼
►
for the Mac Pro at this point. I'm into the bargaining stage.
00:53:09
◼
►
I think there's a few things to consider here.
00:53:12
◼
►
You know, one is that when people are thinking about what to do with the Mac Pro and what
00:53:16
◼
►
the future might hold, people always throw out these weird ideas like, "Oh, you're going
00:53:19
◼
►
to be able to daisy chain multiple Mac Minis with Thunderbolt and combine all the computing
00:53:25
◼
►
Like, people have these crazy ideas.
00:53:27
◼
►
But the fact is--
00:53:28
◼
►
Like a cell.
00:53:29
◼
►
Like a cell.
00:53:31
◼
►
Like I said on the ad hoc progress, you're going to have a cell processor inside your
00:53:33
◼
►
TV and it'll make your games look better.
00:53:36
◼
►
Get back to me on that.
00:53:37
◼
►
But the reality is the Mac Pro is a Xeon workstation.
00:53:41
◼
►
It runs stock Intel CPUs on an almost stock Intel motherboard.
00:53:47
◼
►
There's not a lot of custom Apple low level engineering
00:53:52
◼
►
going into this.
00:53:53
◼
►
It's mostly assembling stock Intel parts with stock Intel
00:53:56
◼
►
chipsets with some modifications for Apple,
00:53:59
◼
►
but not a whole lot.
00:54:00
◼
►
And so I think it's very easy to just look
00:54:03
◼
►
at what Intel has available.
00:54:05
◼
►
And that will roughly tell us what the possibilities are here,
00:54:10
◼
►
because that's how the Mac Pro has always worked.
00:54:12
◼
►
And it doesn't seem like a massively growing industry
00:54:15
◼
►
for Apple to dump a whole bunch of custom engineering into.
00:54:17
◼
►
Well, see, like, Intel has custom engineering resources,
00:54:20
◼
►
Remember back when Larrabee was still going on at Intel?
00:54:24
◼
►
And the rumors I heard was that Apple was totally into that.
00:54:27
◼
►
Like, oh, yeah, Intel, you want to take on the GPU world
00:54:30
◼
►
by making tons of little cheap x86 cores
00:54:32
◼
►
and making the GPU out of that?
00:54:34
◼
►
We're all over that because we've got all this OpenCL stuff that we think would work
00:54:38
◼
►
great with that.
00:54:40
◼
►
That project came to nothing, but that's an example of where Intel may have this notion
00:54:45
◼
►
of doing something weird and custom, and Apple would be like, "Yeah, we can do that because
00:54:49
◼
►
we'll build the machine around this crazy thing."
00:54:51
◼
►
So I don't think it's inconceivable that Apple could come up with a machine that uses some
00:54:55
◼
►
crazy thing that Intel made, and it's like a collaboration where no one else was telling
00:55:00
◼
►
Intel, we want this crazy thing because the rest of the industry does want just give us
00:55:03
◼
►
CPUs, give us chipsets, we'll put them into our servers, we'll sell them like they just
00:55:07
◼
►
want straight up stuff. But Apple has an appetite, or used to have an appetite anyway, for weird
00:55:12
◼
►
stuff. Even like on the MacBook Air, can you make us like a weird shrunken version of whatever
00:55:15
◼
►
that Core 2 Duo was? Because without this weird shrunken version, we can't make the
00:55:20
◼
►
original MacBook Air.
00:55:21
◼
►
But even that was just a custom package though. It wasn't that much work.
00:55:25
◼
►
I mean, Larrabee was a project Intel was doing, you know, it wasn't like they were doing it
00:55:28
◼
►
because of Apple.
00:55:29
◼
►
Like, they had their own reasons to do it, but Apple saw it and said, you know, we can
00:55:32
◼
►
make a machine around that.
00:55:33
◼
►
And so apparently the reminder was that Apple had them in the labs and they were fiddling
00:55:36
◼
►
around with it.
00:55:37
◼
►
It was the time they were making OpenCL, I think, which is a great fit for that, so they'd
00:55:40
◼
►
work on the drivers, see how it's going to work out.
00:55:43
◼
►
Had that come to fruition, it would have produced a very interesting machine.
00:55:46
◼
►
And I think there's still room for that kind of collaboration where I don't think it's
00:55:49
◼
►
out of the question that Intel could want to make something independently of Apple.
00:55:55
◼
►
bring it to Apple and Apple be excited by it and say we can make a machine around that.
00:55:58
◼
►
And you know, we're all looking for some crazy conspiracy theory of why has it been three
00:56:02
◼
►
We got this great thing, you really like it.
00:56:04
◼
►
Is it because they couldn't decide for two and a half years and in the last six months
00:56:07
◼
►
they slapped something together?
00:56:08
◼
►
That's a possibility.
00:56:09
◼
►
The other possibility is they're working on something weird and crazy and it took this
00:56:12
◼
►
long for it to come out because Intel's thing was late or whatever.
00:56:16
◼
►
Like we don't know at this point, but I would be perfectly happy with Apple trying to do
00:56:21
◼
►
something daring in cooperation with Intel.
00:56:24
◼
►
I don't think it's out of the question for us to see something that's weird, but you're right.
00:56:27
◼
►
It would much more likely at this point, as I just said to Lex today, at this point,
00:56:33
◼
►
even the stupid boring thing of just taking Intel's legacy on sticking it in a box and selling it to
00:56:37
◼
►
us, like that would be fine. Well, that's all people wanted last year. Like when we were all
00:56:42
◼
►
upset, that's all we want to just take the new CPUs and do it, give an update like you always have.
00:56:46
◼
►
Yeah. Like we're not like the super boring obvious thing at this point would just be like,
00:56:51
◼
►
"That's great! Yes! Fine! Go with that!" But I still like to think, in the absence of any actual product, this is our last chance to fantasize about something really weird and interesting.
00:57:02
◼
►
Well, and I think it's worth considering, you know, they skipped a generation for some reason. There was something that made it worth skipping a generation.
00:57:12
◼
►
And maybe it was Intel's weird stuff.
00:57:14
◼
►
Well, I mean, come on, probably not.
00:57:17
◼
►
Maybe it was like Intel's weird stuff with Thunderbolt
00:57:19
◼
►
and the Xeon chipsets, because like they couldn't,
00:57:22
◼
►
last year, there was some good stuff on AnandTech
00:57:25
◼
►
about this where like basically last year,
00:57:28
◼
►
that server chipset, there was no good way
00:57:30
◼
►
to put Thunderbolt on it.
00:57:31
◼
►
And there still kind of isn't a good way
00:57:32
◼
►
to put Thunderbolt on a Xeon board
00:57:35
◼
►
that has a PCI express GPU on a card.
00:57:39
◼
►
Like there's still no way to route the video through it
00:57:41
◼
►
something like that. There's some relatively minor problem that prevents
00:57:45
◼
►
Thunderbolt from working the way it should on a board that has a slotted
00:57:49
◼
►
video card. Well that also means they couldn't convince Intel to like, "Can you
00:57:52
◼
►
just fix that for us? Like I know we're the only customer who wants it, but could you just do
00:57:55
◼
►
that for us?" And like the answer for the volumes of the Mac Pro from Intel is
00:57:58
◼
►
probably like, "Yeah, no." Right, because they don't sell enough for them to make it.
00:58:02
◼
►
So this is what has me interested but concerned is that it does seem
00:58:08
◼
►
like, from what we're hearing, even from what Apple has said,
00:58:14
◼
►
it seems like this isn't just, oh, we skipped one Xeon
00:58:17
◼
►
generation, and then the next generation, which
00:58:19
◼
►
is going to be this fall, we're just
00:58:21
◼
►
going to update the CPUs and call it a day.
00:58:24
◼
►
This sounds like they're going to be
00:58:26
◼
►
doing a more significant change than that,
00:58:29
◼
►
but I'm kind of worried as to what that change might be.
00:58:31
◼
►
And I think-- so, OK, so my thesis earlier on
00:58:36
◼
►
has always been like, and I linked to this in the post,
00:58:38
◼
►
like if you try to scale down the Mac Pro,
00:58:41
◼
►
if you try to remove any part of it that currently makes it
00:58:44
◼
►
big and beefy and expensive, say you switch to consumer CPUs.
00:58:48
◼
►
That's usually the one that geeks say you should do.
00:58:50
◼
►
Oh, just switch to Ivy Bridge, Haswell,
00:58:52
◼
►
switch to whatever desktop CPU family is current.
00:58:56
◼
►
And then that'll make it way cheaper,
00:58:58
◼
►
and then you can make it small and everything.
00:58:59
◼
►
And all those things are true.
00:59:00
◼
►
But then if you go away from Xeons
00:59:03
◼
►
and you go to the desktop CPUs, then you
00:59:05
◼
►
you have way fewer RAM slots, a lower RAM ceiling,
00:59:08
◼
►
no support for ECC.
00:59:10
◼
►
So you have slightly more chances
00:59:12
◼
►
of things going a little bit wacky, especially later on
00:59:17
◼
►
And so it wrecks some things.
00:59:20
◼
►
If you have fewer cores and smaller amounts of cache
00:59:22
◼
►
in the past, too.
00:59:24
◼
►
And video editors who-- or scientific computing-- people
00:59:29
◼
►
who actually buy today's dual-socket Mac Pros for like
00:59:33
◼
►
five grand and up, if you cut the socket count in half,
00:59:37
◼
►
you cut the performance of parallelizable tasks in half.
00:59:40
◼
►
And to most of us, like me and you, it doesn't really matter.
00:59:44
◼
►
My current one is the single socket six core, because that just made the most sense when I bought it.
00:59:48
◼
►
But for a lot of people,
00:59:52
◼
►
they don't want to give up a socket. They would buy a four socket model
00:59:56
◼
►
if it was available, because it actually matters a lot to them
01:00:00
◼
►
if something renders in half the time. And so that's not to be taken lightly to just remove half the cores out of one of these computers,
01:00:06
◼
►
and then it also affects the RAM limit and stuff like that. So there's other problems with that.
01:00:12
◼
►
Then there's people who say, "Oh, you should remove the card slots." Well, that ruins a lot of different things in small ways.
01:00:20
◼
►
It ruins people who want to have more than one GPU to have a bunch of monitors. And that's surprisingly common, actually.
01:00:28
◼
►
And yeah, you can say, oh, you can use Thunderbolt to daisy chain.
01:00:30
◼
►
Well, then you're adding hacks, and that's more limited,
01:00:32
◼
►
and stuff like that.
01:00:33
◼
►
And you can't use half your monitors that exist in the world
01:00:36
◼
►
and stuff like that.
01:00:36
◼
►
So there's all these edge cases with the Mac Pro.
01:00:40
◼
►
And you said this before.
01:00:41
◼
►
There are so many edge cases of every other Apple computer
01:00:46
◼
►
says no in some way.
01:00:48
◼
►
No, you can't have this.
01:00:49
◼
►
No, you can't expand this.
01:00:50
◼
►
No, this is limited to this.
01:00:51
◼
►
The Mac Pro only says no to affordability and size
01:00:56
◼
►
constraints.
01:00:57
◼
►
And power usage.
01:00:59
◼
►
Right, but it's like the Mac Pro basically covers
01:01:02
◼
►
all of the edge cases in one computer.
01:01:04
◼
►
And if you changed any of its fundamental attributes,
01:01:09
◼
►
you would cut off a large slice of those edge cases.
01:01:13
◼
►
And there's certain things like you
01:01:16
◼
►
can't make it cheaper without not using Xeons anymore,
01:01:19
◼
►
but then that breaks into things.
01:01:20
◼
►
You can't really make it smaller without removing some card
01:01:24
◼
►
support or removing a bunch of beige,
01:01:26
◼
►
but that's the reason why people buy these things.
01:01:28
◼
►
And if you make it a lot smaller,
01:01:29
◼
►
then you're still running hot chips,
01:01:31
◼
►
so you'll need different fans,
01:01:32
◼
►
and they might be louder.
01:01:33
◼
►
There's all these trade-offs that make you realize
01:01:37
◼
►
that the Mac Pro today is the way it is
01:01:40
◼
►
for really good reasons.
01:01:42
◼
►
And that if you dramatically change something about it,
01:01:45
◼
►
you're gonna anger a lot of people,
01:01:47
◼
►
or you're gonna make it suddenly not be possible
01:01:51
◼
►
for a lot of people to use it
01:01:52
◼
►
for what they need to do anymore.
01:01:54
◼
►
I don't know why this bit of information
01:01:57
◼
►
has not seemed to penetrate the fanboy community,
01:01:59
◼
►
but I was surprised by the fact that you wrote this
01:02:02
◼
►
into your article again today and had people respond
01:02:04
◼
►
on Twitter, like the fact that you can't have high-end GPUs
01:02:07
◼
►
hanging off of Thunderbolt.
01:02:08
◼
►
Like we're going to go completely through the Thunderbolt
01:02:11
◼
►
1 error with that never dying.
01:02:14
◼
►
In every single form, it's like, oh, don't worry.
01:02:16
◼
►
It'll just be a bunch of boxes connected by Thunderbolt.
01:02:18
◼
►
And someone will say, oh, you can't have a high-end video
01:02:20
◼
►
card in there.
01:02:21
◼
►
And it seems like that piece of wisdom
01:02:25
◼
►
should have eventually penetrated the community.
01:02:28
◼
►
But that's a nonstarter, the daisy chain type box thing.
01:02:31
◼
►
Like, there are some things you can externalize in daisy chain.
01:02:34
◼
►
The gimme one is optical, right?
01:02:36
◼
►
Optical slow, that could have been outside the computer
01:02:39
◼
►
Guarantee the next Mac Pro is not
01:02:40
◼
►
going to have my optical inside it,
01:02:42
◼
►
unless the case continues to be huge, in which case,
01:02:45
◼
►
we'll fine put them in there, because whatever.
01:02:46
◼
►
But you can externalize an optical,
01:02:49
◼
►
and you have not lost anything.
01:02:51
◼
►
because optical are so cheap and they're so slow,
01:02:54
◼
►
there's no problem with the buses or anything like that.
01:02:56
◼
►
But almost everything else you externalize,
01:02:58
◼
►
you lose something.
01:02:59
◼
►
Externalizing video cards, well,
01:03:01
◼
►
you can't do it with current Thunderbolt.
01:03:02
◼
►
Even with the new Thunderbolt,
01:03:03
◼
►
I don't think it's fastest like whatever the 16x PCI
01:03:07
◼
►
express lines, maybe it would be able to do that,
01:03:09
◼
►
I don't know, but certainly not with existing Thunderbolt,
01:03:10
◼
►
you just can't, right?
01:03:12
◼
►
Externalizing drives, well, you can go to eSATA.
01:03:15
◼
►
Do they have six gigabit eSATA?
01:03:17
◼
►
They probably do.
01:03:18
◼
►
- But I think so.
01:03:19
◼
►
But that's like, you need some sort of enclosure
01:03:21
◼
►
and you have these things dangling around.
01:03:23
◼
►
- And you have like a desk covered in wires and enclosures
01:03:26
◼
►
and power bricks and all these,
01:03:27
◼
►
like you have a million different things
01:03:28
◼
►
all over your desk.
01:03:29
◼
►
- And it's more expensive if you,
01:03:30
◼
►
oh, I'm gonna use Thunderbolt home external drives.
01:03:32
◼
►
That's fast.
01:03:33
◼
►
Well, you know, good luck finding,
01:03:36
◼
►
you can buy a drive mechanism
01:03:37
◼
►
or you could buy like one eighth
01:03:39
◼
►
of an external Thunderbolt drive.
01:03:41
◼
►
- Right, you can buy like an empty Thunderbolt enclosure
01:03:43
◼
►
for like $200 or something.
01:03:45
◼
►
- Twice the price of the actual drive, right?
01:03:47
◼
►
And you know, video cards, you know, like I said,
01:03:49
◼
►
You can't externalize those.
01:03:50
◼
►
And the CPU sockets, you're not going
01:03:53
◼
►
to have one of those in another box.
01:03:54
◼
►
I think once they come up with the new interconnects,
01:03:57
◼
►
like Thunderbolt, everything will
01:03:58
◼
►
be connected by Thunderbolt. The second CPU
01:03:59
◼
►
will be a Thunderbolt cable away.
01:04:01
◼
►
No, it's not magic.
01:04:02
◼
►
It's just a bus.
01:04:03
◼
►
And there's only limited bandwidth.
01:04:04
◼
►
And you can't-- right?
01:04:05
◼
►
And so maybe someday we will get to that modular point.
01:04:08
◼
►
But we're definitely not there yet.
01:04:11
◼
►
And even if we were, what would be the motivation
01:04:14
◼
►
for the modularization in that way?
01:04:15
◼
►
Because it would just create a big, hairy mess.
01:04:17
◼
►
And Apple's not the company that wants
01:04:19
◼
►
800 boxes, unless they could be connected wirelessly or something.
01:04:23
◼
►
We still have power adapters everywhere.
01:04:25
◼
►
Fast forward 25 years and maybe we'll have a bunch of Mac Mini-like things that all talk to each other
01:04:29
◼
►
and provide a magical computing experience, but we're not there yet.
01:04:33
◼
►
So, I don't know what this new Mac Pro is going to be.
01:04:37
◼
►
Well, the other thing too is if they're going to make any of these dramatic changes to the Mac Pro,
01:04:41
◼
►
what's in it for them and what's in it for us?
01:04:45
◼
►
Who's demanding these changes?
01:04:47
◼
►
Mac Pro owners, we already keep the computer on the floor next to our desk or under our desk.
01:04:52
◼
►
We don't really need it to be much smaller.
01:04:55
◼
►
I don't really care what size it is because I don't see it. It's under my desk.
01:04:59
◼
►
Size is not really that important. Power usage is not that important either.
01:05:04
◼
►
It's plugged into the wall, and electricity in most places where you could afford a Mac Pro is not that expensive.
01:05:10
◼
►
And these are computers made for people who are doing important things with them and doing
01:05:17
◼
►
demanding things.
01:05:20
◼
►
Is there really that much demand to shrink it or to make it cooler running or anything
01:05:27
◼
►
I just don't see it.
01:05:28
◼
►
And so obviously, if they're going to make something dramatically different, that sounds
01:05:34
◼
►
for the most part, if it really is going to be dramatically different, it sounds like
01:05:38
◼
►
for existing Mac Pro fans, it's going to be significantly
01:05:40
◼
►
worse in some way.
01:05:42
◼
►
So the question is, is there going to be something better
01:05:45
◼
►
to make up for that?
01:05:46
◼
►
'Cause Apple, what they're saying, you know,
01:05:48
◼
►
Tim Cook said, "Oh, you'll be very pleased by it next year."
01:05:51
◼
►
And then that thing I linked to today,
01:05:52
◼
►
the guy said, "You're going to be so happy you waited."
01:05:56
◼
►
It seems like Apple is really happy with this.
01:05:59
◼
►
Apple's really saying, "This is awesome."
01:06:00
◼
►
And I have to wonder--
01:06:01
◼
►
- Don't you disbelieve them when they say that?
01:06:03
◼
►
Like, "I'm not going to be happy with it."
01:06:04
◼
►
As soon as you say that, it makes me know
01:06:05
◼
►
that I'm not going to be happy with it.
01:06:06
◼
►
- Well, I'm suspicious.
01:06:07
◼
►
Because we now believe that the people in charge of deciding anything about the Mac
01:06:13
◼
►
Pro do not have our interests at heart because they've left us out in the cold for three
01:06:17
◼
►
So now we've already decided, if you cared about my needs, we would not be in this situation.
01:06:22
◼
►
So clearly you don't.
01:06:23
◼
►
And this is kind of like how the Final Cut Pro people felt.
01:06:26
◼
►
They're like, "I think you're going to love the new Final Cut Pro," and they're like,
01:06:29
◼
►
"I can't get my work done because you didn't support X, Y, and Z. And even though you think
01:06:32
◼
►
we shouldn't be using whatever that stupid file format was that Apple didn't want to
01:06:35
◼
►
of support. I actually needed to do my work. So screw you. Apple did eventually have to
01:06:40
◼
►
go back and add support for that, whatever that thing was that I can't remember the name
01:06:43
◼
►
of. That was the type of thing where Apple was totally on board. And I was mostly on
01:06:48
◼
►
board with it as a non-video editor saying, "Yeah, someone's got to drive this stuff forward.
01:06:52
◼
►
But if you just need to get your work done and Apple comes out with a new version of
01:06:55
◼
►
Final Cut Pro, it's like a non-starter for you. That's great, Apple, but I can't use
01:06:59
◼
►
that program. You have made something that's not good for me." But Apple was telling those
01:07:02
◼
►
people, we think you're really gonna love it."
01:07:04
◼
►
Like if they had told before Final Cut Pro X came out, they were like, "You guys, man,
01:07:08
◼
►
just trust me, the next version of Final Cut Pro, you're just gonna love it.
01:07:11
◼
►
It's gonna be awesome."
01:07:12
◼
►
And Apple, I think, probably really believed that.
01:07:15
◼
►
And it arrived, and those people did not love it.
01:07:18
◼
►
Right or wrong, they said they were wrong to not love it, or they, you know, it doesn't
01:07:22
◼
►
matter who's right or wrong.
01:07:23
◼
►
The fact is that Apple told those people, "You are gonna love this program," and they
01:07:27
◼
►
didn't love it.
01:07:28
◼
►
And so I feel like we're exactly in that situation where Apple's telling us we're gonna love
01:07:31
◼
►
it and we're not. We're just not. We may be wrong. It may be that, "Oh, you should love
01:07:37
◼
►
it because that's the future." Maybe it is the future, but I just don't feel like we're
01:07:40
◼
►
going to love it.
01:07:41
◼
►
Yeah, and I think Final Cut Pro X, you hope at least, I hope at least, I hope that Apple
01:07:49
◼
►
learned from that, that their arrogance of saying, "We're going to take things away and
01:07:55
◼
►
you're going to like the result better because we think it's better," that has worked a lot
01:08:00
◼
►
of the time. And a lot of times they're right. But that only works to a point, and at some
01:08:06
◼
►
point you cross the line and you just anger people, or you make it so that you can't do
01:08:11
◼
►
your work anymore.
01:08:12
◼
►
It only works if you can do like, "We don't care about existing customers. This is going
01:08:17
◼
►
to be better for new customers. New customers are the future. There's more of them." If
01:08:21
◼
►
that's true, you're fine. If it's not true, all you're left with is your old customers
01:08:24
◼
►
who are pissed at you.
01:08:26
◼
►
And so I feel like the Mac Pro, it's a similar market.
01:08:31
◼
►
In many ways, it overlaps the market of people who use Final Cut.
01:08:36
◼
►
And I worry, I'm reassured that I hope Apple learn from Final Cut Pro 10
01:08:41
◼
►
and from it being relatively a debacle and costing them a lot of customers, I think.
01:08:46
◼
►
But also, so the Mac Pro, it's a lot of the same people with a lot of the same problems,
01:08:51
◼
►
of the same people with a lot of the same problems. And it's a very similar situation
01:08:56
◼
►
where if Apple dramatically changes this in some way they think is better, it better really
01:09:01
◼
►
be better in the customer's eyes. Otherwise, a lot of people are going to be angry.
01:09:06
◼
►
And it's going to be, you know, Apple can tolerate losing some small
01:09:11
◼
►
percentage of an audience, you're right, to gain a bigger one. But the Mac Pro, like the only people
01:09:16
◼
►
buy this thing are people who are needy and picky like us or like professionals who do
01:09:22
◼
►
video editing and stuff like that. Those are the people who buy these things. This is not
01:09:26
◼
►
a mass market product. It's a lot like the enterprise computing market. You can be that
01:09:31
◼
►
aggressive with removing features and changing things around in the consumer market. But
01:09:35
◼
►
once you get into things that people need to do with their jobs, our needs are a lot
01:09:39
◼
►
less flexible. And so when you start messing with things, you run a much bigger risk. And
01:09:46
◼
►
And I hope they learned from that, but I don't know if they did.
01:09:49
◼
►
I want to reiterate, though, that I really do believe that Final Cut Pro X was the correct
01:09:54
◼
►
move and it is better than the old one.
01:09:55
◼
►
It's just the transition period that's difficult.
01:09:57
◼
►
And that's why I said before that I will actually be okay with them producing something new
01:10:04
◼
►
that does not satisfy the needs of existing customers, provided the reason they did it
01:10:09
◼
►
was because we decided that if we totally ignore the needs of existing customers and
01:10:14
◼
►
and went off in this new direction, we can make a computer that is dramatically more
01:10:18
◼
►
powerful dramatically faster.
01:10:19
◼
►
In the same way that Apple believed, and I think is actually the case, that Final Cut
01:10:23
◼
►
Pro, by leaving behind all that legacy cruft, lets them do things they would not be able
01:10:29
◼
►
Like the demo that they gave of Final Cut Pro X, as someone who is not a professional
01:10:32
◼
►
video editor, I watched that and I'd used the old version of Final Cut.
01:10:35
◼
►
And I said, "Wow, this new version is much better," for the reasons that they stated
01:10:39
◼
►
It's just the people who needed to get their job done that were pissed off, right?
01:10:42
◼
►
So I'm willing to say, fine, you're gonna make a machine
01:10:44
◼
►
that is unsuitable according to my current leads,
01:10:46
◼
►
that is unsuitable for a large number
01:10:48
◼
►
of current Mac Pro customers,
01:10:49
◼
►
but it's like super awesomely fast
01:10:52
◼
►
and you can do amazing things that you could never do,
01:10:54
◼
►
like if they traded it for something, right?
01:10:57
◼
►
And I feel like in Final Cut Pro,
01:10:57
◼
►
they did trade it for something.
01:10:58
◼
►
They traded a program that their existing customers
01:11:01
◼
►
would like for a better way to edit video.
01:11:04
◼
►
That may have been a dumb trade business-wise or whatever,
01:11:06
◼
►
but I think like time is on their side
01:11:08
◼
►
with that type of transition,
01:11:09
◼
►
assuming they continue to develop the product.
01:11:11
◼
►
And I'm okay with that with the Mac Pro.
01:11:13
◼
►
What I don't want to see is them trade away all the stuff
01:11:16
◼
►
their existing customers want,
01:11:17
◼
►
and just give me like a monitor-less iMac.
01:11:19
◼
►
And then I'd be like, screw you, like who cares?
01:11:21
◼
►
Like, you know, it's like a faster Mac Mini,
01:11:24
◼
►
or Mac Mini with a good GPU in it.
01:11:26
◼
►
Like that is just helping nobody, right?
01:11:29
◼
►
So Final Cut Pro, even though I just slammed it,
01:11:31
◼
►
I think is an example of them doing the right thing
01:11:34
◼
►
and getting punished for it by their existing customers.
01:11:39
◼
►
But like, it's much easier to fix software
01:11:41
◼
►
you shiver. They went back to Final Cut Pro X and they said, "Okay, I think it was edit
01:11:44
◼
►
decision list. So you need support for that? Okay, we'll put it in. All right, so you need
01:11:48
◼
►
this? Okay, we'll put it in." They did go back, but you cannot release a point release
01:11:55
◼
►
that includes more PCI slots. So I don't know what they're going to—it's much harder
01:11:59
◼
►
when it comes to hardware.
01:12:00
◼
►
Yeah, I'm a little worried. What do you think about the retina possibility?
01:12:07
◼
►
I think you were right that it sure looks like it's borderline.
01:12:11
◼
►
Like maybe you could squeeze it in this year and maybe it would be like you could just
01:12:16
◼
►
barely get it under the wire, but it would sure be better to wait until next year, right?
01:12:21
◼
►
I'm thinking from the panel point of view, Apple obviously has really good connections
01:12:27
◼
►
to the panel manufacturers and can get things before everybody else.
01:12:31
◼
►
You can look at the original 27-inch iMac for an example of that.
01:12:34
◼
►
And when the 27-inch iMac first came out, and it had the same horizontal resolution
01:12:39
◼
►
as the 30-inch monitor, and cost a few hundred dollars less, I believe, right?
01:12:46
◼
►
Or like $200 more?
01:12:47
◼
►
Yeah, it was much cheaper, but it had lower res, and 30-inch fans were pissed at that.
01:12:51
◼
►
But it only cut off a little bit off the bottom.
01:12:53
◼
►
It went from $1610 to $1690.
01:12:55
◼
►
And so, you know, it was this panel that—
01:12:59
◼
►
No, 30-inch was $2500-something.
01:13:02
◼
►
something 2560 by 1600 versus 2560 by 1440 no the current 27 inches 1920 by 1200 isn't it no
01:13:10
◼
►
what the hell you're a size off that's the 21 anyway so when this thing came out it had like
01:13:17
◼
►
the same resolution roughly a very close resolution as the 30 inch monitor that actually cost
01:13:22
◼
►
almost the same amount as the entire iMac it was it was like you were buying this awesome monitor
01:13:27
◼
►
and getting a free computer to loot the back of it.
01:13:30
◼
►
That was glossy, too.
01:13:34
◼
►
Never forget, Matt displays forever, right?
01:13:36
◼
►
And so at the time, it seemed impossible.
01:13:41
◼
►
People like me who were geeks about this stuff
01:13:43
◼
►
were like, how can Apple afford to put this ridiculously
01:13:46
◼
►
expensive panel in a computer that only costs that much?
01:13:50
◼
►
And it turned out that they had a good deal
01:13:53
◼
►
with the manufacturers.
01:13:54
◼
►
They were the first ones to get a panel of those specs.
01:13:57
◼
►
and in that size, and they got a really great price
01:14:01
◼
►
on it for a while, and that's how they were able to do it.
01:14:04
◼
►
And so, today it comes, or the other day it came out that,
01:14:09
◼
►
who was it, ASUS, somebody had a--
01:14:11
◼
►
- ASUS, not ASUS.
01:14:12
◼
►
- ASUS had a 31.5 inch 4K panel,
01:14:14
◼
►
which is 3840 by something.
01:14:17
◼
►
And at my sitting resolution, that is officially retina
01:14:22
◼
►
by Steve Jobs' old definition of it.
01:14:24
◼
►
so, at my sitting distance rather, and so, you know, a retina 4K panel now exists, and
01:14:32
◼
►
they say the price for ASUS's monitor is going to be like $4,000.
01:14:36
◼
►
Well, what if Apple, excuse me, what if Apple has some really good deal with somebody to
01:14:41
◼
►
make similar panels, to make them 4K panels, and what if they can sell it for $3,000?
01:14:46
◼
►
Well, I do think it's much harder to get that deal when you don't put it in an iMac,
01:14:50
◼
►
though, because if you just put it in the Mac Pro, not that I'm saying they wouldn't
01:14:53
◼
►
do it because they can't get a great deal on it or whatever because they have no problem
01:14:56
◼
►
charging obscene amounts for a big monitor.
01:14:58
◼
►
Like, look, the original price for the 30-inch was outrageous.
01:15:00
◼
►
Right, wasn't it $3,500?
01:15:01
◼
►
Yeah, it was outrageous.
01:15:02
◼
►
So I don't think it's a hardware limitation, and I don't even think it's because they can't
01:15:08
◼
►
get a good deal on them.
01:15:10
◼
►
I worry about how balanced the machine would be with that high a resolution.
01:15:16
◼
►
I mean, I guess if you had-- fine with the Mac Pro is you're going to have a really big,
01:15:20
◼
►
hopefully, a really big powerful GPU in there.
01:15:22
◼
►
But if the Mac Pro is the only machine you can hook up that monitor to, then I feel like
01:15:27
◼
►
people with laptops would be like, "Hey, can I buy that monitor?"
01:15:29
◼
►
But no, you can't drive it from your laptop.
01:15:32
◼
►
And it's like you said in the thing, it would make more sense economy of scale-wise to just
01:15:37
◼
►
wait until all of Apple's line of computers can drive this monitor.
01:15:43
◼
►
And then just by then it would be cheaper anyway naturally and then bring it out then.
01:15:48
◼
►
It comes down to the reason I'm doubting is because Apple's just shown so little interest
01:15:53
◼
►
in the super high end, why would they even bother to put out a monitor that only a Mac
01:15:58
◼
►
Pro can run?
01:16:00
◼
►
They're not even updating the computer for three years, and suddenly they're going to
01:16:02
◼
►
give it its very own special monitor for an entire year that no one else can use in the
01:16:06
◼
►
entire product line.
01:16:08
◼
►
Even if they charge five grand for that monitor, that just doesn't seem like the kind of thing
01:16:11
◼
►
that Apple does these days.
01:16:12
◼
►
But then again, the Mac Pro doesn't seem like the kind of thing that Apple does these days.
01:16:15
◼
►
So we're just in this, it's hard to envision in this period of time here,
01:16:18
◼
►
we are without an update for the Mac Pro and forever that we're going to get both
01:16:22
◼
►
the new Mac Pro and a fancy new awesome monitor that only the Mac Pro can then
01:16:27
◼
►
provide like that would be a hell of a turnaround, don't you think?
01:16:29
◼
►
Well, it could, but also, you know, you know, what if, what if this is part of
01:16:34
◼
►
the new Apple under Tim Cook, where they start caring about the high end more,
01:16:37
◼
►
because the high end is very profitable.
01:16:39
◼
►
It's, it's very low units, but it's very profitable per unit.
01:16:44
◼
►
Plus, they just want to make you happy.
01:16:45
◼
►
I mean, really, that's what it boils down to.
01:16:47
◼
►
They just want John happy.
01:16:48
◼
►
- I point to the Finder and the file system
01:16:50
◼
►
as examples of how they do not want to make me happy.
01:16:53
◼
►
They don't care.
01:16:54
◼
►
- Oh my God.
01:16:55
◼
►
- I think if you look at, assuming Haswell laptops
01:16:59
◼
►
come out next week, I think you're right
01:17:01
◼
►
that it would be really a stretch for them
01:17:04
◼
►
to release a monitor that only worked with Mac Pros.
01:17:08
◼
►
That would definitely be a big stretch.
01:17:10
◼
►
I think there's two interesting possibilities here.
01:17:13
◼
►
One is, what if the Haswell laptops can output 4K?
01:17:18
◼
►
What if they actually can output these monitors?
01:17:20
◼
►
And it's either not talked about or--
01:17:23
◼
►
- No, they can.
01:17:24
◼
►
Even the integrated GPU can drive 4K, can it?
01:17:26
◼
►
- Yeah, it's basically an issue of the internet.
01:17:28
◼
►
It's like you can use DisplayPort 1.2
01:17:30
◼
►
or you can use Thunderbolt 2.0, which isn't ready yet.
01:17:32
◼
►
- But I worry like, okay, can drive it
01:17:35
◼
►
versus like can drive it and still scroll things
01:17:38
◼
►
at a recent, you know what I mean?
01:17:39
◼
►
Like it's kind of like the current,
01:17:40
◼
►
the current, when they have to render the off-screen thing to be larger than native
01:17:44
◼
►
resin scale and stuff like that, that off-screen is really pushing the limit of the current
01:17:49
◼
►
integrated GPU. And is that like, I've always felt like that's not, if I spend...
01:17:52
◼
►
Yeah, but you know what? The 15 inches biggest off-screen is 4K.
01:17:59
◼
►
When you put it in the simulated 1920 mode, that's, it's almost exactly 4K, if not exactly.
01:18:05
◼
►
So it can already kind of do it. Yeah, I'm thinking of like, if you spend
01:18:10
◼
►
the amount of money you're going to spend on the high-end thing, you don't want it to
01:18:13
◼
►
scroll jerkily because you feel like, "All right, fine, if I'm doing something taxing, it's okay to get a little stuttery."
01:18:19
◼
►
But the whole reason I'm buying this expensive thing is everything else has to be like butter, and any experience that isn't, you know.
01:18:24
◼
►
So I guess you're right. If that off-screen, I didn't ever look at the actual rest thing. If the current off-screen is
01:18:30
◼
►
similar to 4K, then maybe it can drive it, and it's just a question of the interconnect.
01:18:37
◼
►
They could do all sorts that's why everyone thinks it was come to the Mac Pro because with you know
01:18:41
◼
►
Thunderbolt 2 or the rebadged Thunderbolt 2 hadn't been officially announced yet
01:18:45
◼
►
So everyone's like well, how is Apple going to drive these external displays and people would come up with scenarios of well
01:18:51
◼
►
Apple could do some crazy custom thing because Apple is Apple and they only have to support what they have to support and
01:18:57
◼
►
So what you buy the Apple monitor you hook it up to the Apple Mac Pro replacement and it runs 4k, right?
01:19:03
◼
►
But with Thunderbolt 2, my understanding is that all Thunderbolt 2 is, my understanding
01:19:08
◼
►
from a single tweet from a cranky person, is that all they let you do is take the two
01:19:11
◼
►
10 gigabit links and gang them together so you have a single 20 gigabit link.
01:19:16
◼
►
Oh, that's all it is?
01:19:17
◼
►
And that's why it's 2X as fast.
01:19:19
◼
►
Instead of having two bidirectional 10 gigabits, you have one bidirectional 20 gigabit thing.
01:19:24
◼
►
Oh, that's not true.
01:19:25
◼
►
I mean, again, the sourcing for that is a single tweet, so it's 140 characters of non-research,
01:19:30
◼
►
so feel free to email me and tell me that is not the case.
01:19:32
◼
►
But not that you know if it drives a display drives display. What do you care? But uh
01:19:36
◼
►
Yeah, well, so the I think the other interesting possibility though, is that what if this crazy cool new thing is
01:19:44
◼
►
a retina iMac
01:19:46
◼
►
That's positioned at the very high end and maybe has you know more RAM slots or two hardware base or something like that
01:19:52
◼
►
Yeah, that was the other one
01:19:53
◼
►
You don't have to worry about driving it over Thunderbolt because it'll be in the same case right thing
01:19:57
◼
►
But then what because you know
01:19:58
◼
►
- But the reason why you can't get one of these panels
01:20:01
◼
►
into the existing iMacs, presumably,
01:20:03
◼
►
is mostly because of cost concerns.
01:20:05
◼
►
That the iMac is not a very expensive computer,
01:20:08
◼
►
even at the high end, it's still,
01:20:10
◼
►
there's not a whole lot of room there
01:20:13
◼
►
to charge an extra grand for an iMac
01:20:16
◼
►
in the current lineup with the current specs and buyers.
01:20:20
◼
►
But if the next Mac Pro solution for pro buyers
01:20:26
◼
►
is just an iMac that has some amped up specs
01:20:29
◼
►
and maybe a little, maybe like one or two extra drive bays
01:20:31
◼
►
in it where you take the whole butt of it off
01:20:35
◼
►
and somehow shove a drive in there.
01:20:36
◼
►
God, taking part in iMacs is awful.
01:20:39
◼
►
But if you, if they somehow address it with a modified iMac,
01:20:44
◼
►
and I'm picturing this being not just looking exactly
01:20:49
◼
►
like the 27 inch but with a higher resolution screen,
01:20:51
◼
►
I'm picturing it being like larger, thicker,
01:20:54
◼
►
bigger and more substantially different
01:20:58
◼
►
from the current iMac, but not as big and beefy as a Mac Pro.
01:21:01
◼
►
There probably wouldn't be enough room in there
01:21:04
◼
►
with thermals and everything for Xeons.
01:21:06
◼
►
Maybe it would just use the high-end desktop chips,
01:21:09
◼
►
but so it would probably max out at 32 gigs of RAM,
01:21:13
◼
►
but maybe you'd have a nicer GPU and more Bays
01:21:18
◼
►
and new Thunderbolt, and maybe that would be enough.
01:21:21
◼
►
I would probably buy that computer
01:21:23
◼
►
because I want retina that badly.
01:21:25
◼
►
- That sounds like a really good high-end iMac,
01:21:26
◼
►
does not sound like a Mac Pro.
01:21:27
◼
►
Someone just posted in the Anotech article
01:21:29
◼
►
and it reminded me, well I was,
01:21:31
◼
►
reminded me that like, so yeah,
01:21:32
◼
►
what I said about Thunderbolt 2 was correct,
01:21:33
◼
►
but like DisplayPort is alongside
01:21:35
◼
►
the two 10 gigabit channels, I believe.
01:21:37
◼
►
So the Thunderbolt 2 will have DisplayPort 1.2
01:21:41
◼
►
and it will support 4K video.
01:21:43
◼
►
So it's not like, the fact that Thunderbolt 2
01:21:46
◼
►
is just getting together the two 10 gigabit things
01:21:49
◼
►
is not actually relevant to the display part of it
01:21:51
◼
►
because I think the DisplayPort stuff runs alongside both of those channels.
01:21:55
◼
►
Someone's saying "nope".
01:21:56
◼
►
I don't know. This is what happens when we don't have any research beforehand.
01:21:59
◼
►
♪ Marco and KC wouldn't let him ♪
01:22:01
◼
►
I don't know.
01:22:02
◼
►
But anyway, like, all these things lead to the fact that
01:22:06
◼
►
it is plausible that we could have
01:22:09
◼
►
4K-ish retina-ish displays being driven by all of Apple's laptops
01:22:15
◼
►
and whatever the MagPair replacement is this year.
01:22:17
◼
►
And it's also plausible that they just decide to wait it out
01:22:21
◼
►
until next year for the retina desktop displays.
01:22:24
◼
►
So the geek says 20 gigabits per channel
01:22:28
◼
►
carries both video and data.
01:22:30
◼
►
- So now that we're somewhere around an hour and a half in,
01:22:33
◼
►
do we wanna talk about iOS 7?
01:22:38
◼
►
Who uses iOS anyway?
01:22:40
◼
►
Does anyone use that?
01:22:41
◼
►
Is that popular?
01:22:43
◼
►
- I mean, Casey, like what do you wanna see in it?
01:22:45
◼
►
You haven't talked much recently.
01:22:47
◼
►
I shouldn't have brought up the Mac Pro.
01:22:49
◼
►
You had said a while back, a good way
01:22:51
◼
►
to see what was coming in iOS is to look
01:22:53
◼
►
at what the low-hanging fruit is, and Apple will fix it.
01:22:57
◼
►
So for example, Notification Center is a great example.
01:23:01
◼
►
Backgrounding, copy and paste, all very good,
01:23:03
◼
►
very classic examples of let's get the low-hanging fruit.
01:23:06
◼
►
And I think you had said a few months ago, maybe even with us,
01:23:10
◼
►
that there isn't a lot of low-hanging fruit left.
01:23:12
◼
►
And I had echoed that in my blog post on the blog that
01:23:14
◼
►
doesn't exist and no one reads.
01:23:16
◼
►
And Justin Williams actually commented to me on app.net that, you know, even though
01:23:22
◼
►
there's not a lot that is, that is, that annoys me about iOS is what I had said.
01:23:27
◼
►
And the things that do, I doubt Apple will fix.
01:23:32
◼
►
Justin had said, well, you know what?
01:23:33
◼
►
That could bite Apple in the butt in that they could get a little complacent and
01:23:38
◼
►
they could end up getting left behind.
01:23:40
◼
►
And I think that's a very interesting point.
01:23:43
◼
►
And so what do I want an iOS seven?
01:23:45
◼
►
I don't even really know.
01:23:48
◼
►
I expect to see some amount of UI change.
01:23:52
◼
►
I don't think it'll be the sweeping, "Oh my goodness, everything is flat, looks like
01:23:56
◼
►
Windows, Phone 8, Series 7, 8, 9," whatever it's called.
01:24:00
◼
►
But I do think there'll be a difference.
01:24:01
◼
►
But other than that, I'm not really sure what to expect.
01:24:04
◼
►
I wish I had some sort of grand epiphany that I could share with everyone so I can cackle
01:24:09
◼
►
during the keynote and say, "Oh, look at me, I was so bright."
01:24:12
◼
►
but I can't come up with anything that I think is really,
01:24:16
◼
►
that we're really in dire need of.
01:24:18
◼
►
- You know, looking at the popularity of things
01:24:22
◼
►
like X-callback URL and all these apps
01:24:25
◼
►
that just launch other apps or that do things
01:24:28
◼
►
with URL callbacks in creative ways,
01:24:30
◼
►
it's very, very clear that we are just starving
01:24:32
◼
►
for better inter-app communication
01:24:34
◼
►
and that we keep doing all these hacks
01:24:37
◼
►
because that's all we have.
01:24:39
◼
►
basically look what people are doing terrible hacks to accomplish,
01:24:43
◼
►
and see if there's a good way that the OS could just support that in some better way.
01:24:47
◼
►
And I think the two big ones there are interapp communication
01:24:51
◼
►
and periodic updates of an app.
01:24:55
◼
►
Periodic background updates. Because right now, you have things that do geofence
01:24:59
◼
►
updates, which is just a terrible hack. I mean, I did it. It's a terrible hack, because it's all you have.
01:25:03
◼
►
If they could solve those two problems
01:25:07
◼
►
of apps updating in the background periodically,
01:25:11
◼
►
and interapp communication.
01:25:13
◼
►
That would be two major changes to the OS that would please
01:25:16
◼
►
many, many users and developers.
01:25:19
◼
►
All right, so I'll bite on interapp communication.
01:25:21
◼
►
I think you're right about that.
01:25:23
◼
►
I think they're going to have some sort of improvement.
01:25:25
◼
►
I'm not convinced it's going to be hyper robust.
01:25:28
◼
►
It'll probably disappoint a lot of nerds,
01:25:30
◼
►
but I think it'll be a lot better.
01:25:32
◼
►
But how do you suspect they're going
01:25:34
◼
►
to manage backgrounding in such a way
01:25:37
◼
►
that it won't be the Android "every app installs a daemon just because they can"
01:25:43
◼
►
I really don't know. I've had some ideas over the years on how they might be able to
01:25:48
◼
►
do it. It's interesting if you look at one case where they do it, which is Newstand.
01:25:56
◼
►
Newstand apps are allowed to wake up in the background once a day by getting a special
01:26:02
◼
►
push notifications sent by their servers. So, you know, well now Glenn, as a magazine
01:26:08
◼
►
publisher, can send a push notification to make the application wake up in the background
01:26:14
◼
►
and do stuff for up to ten minutes. I think that system can be extended a little bit,
01:26:20
◼
►
you know, to non-new standard apps. If you tie it to a push notification, then it does
01:26:26
◼
►
restrict it on some level to just, you know, apps and services that are big enough to have
01:26:31
◼
►
a push back end, and it adds an economic cost,
01:26:35
◼
►
I mean it's a very small one, but it adds a cost to the app creator
01:26:39
◼
►
that you can't just have every app wake up constantly for everything
01:26:43
◼
►
there's going to be some kind of weight and
01:26:47
◼
►
cost of sending all those push notifications. And that
01:26:51
◼
►
then gives Apple a way to throttle it at the system level and at the policy level.
01:26:55
◼
►
You can say, right now, newsstand being once a day is
01:26:59
◼
►
and frequent and wouldn't really solve the needs of most apps that do this, but what
01:27:03
◼
►
if it's limited to, I mean once an hour would be plenty. You know, you could even do it
01:27:07
◼
►
less than that. And what if you'd have to like have some kind of good justification
01:27:15
◼
►
for it that's enforced at app review level. Like, you know, there's like, maybe you could
01:27:19
◼
►
apply it again to certain tiers of, you know, you have to justify being able to, you know,
01:27:24
◼
►
being hourly versus being daily or versus being twice a day.
01:27:28
◼
►
There are ways they can do this, and there's precedence for all of this. They've already done
01:27:32
◼
►
many of these things. They've already introduced certain
01:27:36
◼
►
half measures or limited measures.
01:27:40
◼
►
From what I gather in talking to various Apple people over the years on this exact
01:27:45
◼
►
topic and begging them to do something about it, it sounds like it was always
01:27:49
◼
►
a topic of significant internal debate as to
01:27:53
◼
►
how to allow this kind of stuff, whether to allow it.
01:27:55
◼
►
And you can do things like only when it's on Wi-Fi
01:27:58
◼
►
or only when it's plugged in.
01:27:59
◼
►
There's all sorts of things you can
01:28:01
◼
►
do to mitigate some of the downsides of a bunch of apps
01:28:04
◼
►
waking up here and there.
01:28:06
◼
►
You can do it like only apps that you've launched in the last week.
01:28:10
◼
►
There's so many things you can do to limit it so it's not
01:28:13
◼
►
totally out of hand.
01:28:15
◼
►
And maybe the internal debates about this,
01:28:20
◼
►
maybe that is different now that iOS has different leadership. We don't know yet. And Tim made
01:28:28
◼
►
those comments at all things D about how they need to open up some things in the APIs and
01:28:32
◼
►
they're going to be doing that. He didn't just throw that out there. That was, as we
01:28:38
◼
►
discussed last episode, that was a significant statement that I think we should pay attention
01:28:42
◼
►
to. And I don't think he meant that lightly.
01:28:45
◼
►
It could have been about default apps, it could have been about inter-app communication.
01:28:50
◼
►
There are many things that fall under the category of that vague phrase about opening
01:28:55
◼
►
But those are all big things.
01:28:56
◼
►
Things that we don't want.
01:28:57
◼
►
Those are all very big things.
01:28:58
◼
►
I know, but we just don't know which one it is, though.
01:29:02
◼
►
We could be all three, none, just one.
01:29:03
◼
►
And I was thinking for the background stuff, Apple's MO so far, and it has served them
01:29:06
◼
►
well, is anytime you have anything that wants to be done in the background, don't let applications
01:29:11
◼
►
Let a single system service do it, and let the application register with that system
01:29:15
◼
►
the push notifications.
01:29:16
◼
►
You've got one process that is responsible for doing all that, and the applications register
01:29:21
◼
►
their intent for that.
01:29:22
◼
►
I don't actually-- is that how all push notifications work?
01:29:25
◼
►
Is there a single daemon process that handles it?
01:29:30
◼
►
What you don't want to have is the-- you don't want to have n processes if you have n applications
01:29:36
◼
►
that use this feature.
01:29:37
◼
►
You want to have one process that n applications register with.
01:29:40
◼
►
So almost any-- if you want to go the longest thing,
01:29:44
◼
►
if you just had-- you don't want to have that one application
01:29:48
◼
►
like load bundles from other applications.
01:29:50
◼
►
So then the other application is just
01:29:52
◼
►
going to crash the daemon process
01:29:53
◼
►
and everyone's going to be sad.
01:29:54
◼
►
So you need to have some scenario where
01:29:56
◼
►
a single daemon process-- like if you wanted to just do
01:29:58
◼
►
the arbitrary one.
01:29:59
◼
►
A single daemon process loads arbitrary code supplied
01:30:02
◼
►
by other applications, doesn't crash when their code is crappy,
01:30:05
◼
►
but interleaves their code in an efficient manner.
01:30:07
◼
►
So when someone's in I/O, wait, some other process
01:30:08
◼
►
could be running.
01:30:09
◼
►
and you only have one process, like that's the idealized version.
01:30:12
◼
►
Hey everybody, anyone can do anything in the background they want,
01:30:14
◼
►
but all of your work will be put through this single funnel
01:30:17
◼
►
and it will throttle you and it will let your, it'll like, you know,
01:30:20
◼
►
it's like a little mini scheduler for background type tasks
01:30:23
◼
►
and it could apply policies, like you said, once per day or whatever,
01:30:26
◼
►
but that's the extreme where we don't care what kind of code you do,
01:30:29
◼
►
it doesn't have to just be a specific set of APIs,
01:30:31
◼
►
you will just take your arbitrary code and we'll run it
01:30:33
◼
►
and we'll do it all within this one gatekeeper application
01:30:36
◼
►
that runs your stuff.
01:30:38
◼
►
But I think that is too extreme.
01:30:40
◼
►
I think you're much more likely to have a more limited set
01:30:44
◼
►
of things you can do run by a single process.
01:30:47
◼
►
It's just that the boundaries expand ever so slightly outward
01:30:50
◼
►
from what they are now.
01:30:51
◼
►
Like, there's a fence around what we can do now.
01:30:53
◼
►
The fence gets a little bit bigger.
01:30:54
◼
►
Now there's a little bit more stuff you can do.
01:30:55
◼
►
But still, it's like--
01:30:56
◼
►
So much of that stuff is already in newsstand.
01:30:58
◼
►
The way they-- you have the push that wakes things up
01:31:01
◼
►
in the background.
01:31:01
◼
►
And then you have the asset download system,
01:31:04
◼
►
which is you basically register a URL handler
01:31:07
◼
►
And then you say, "Crawl this URL with this request
01:31:12
◼
►
"and just let me know whenever you're done."
01:31:15
◼
►
Or, "Next time I wake up."
01:31:17
◼
►
- Does your full-fledged app get to run,
01:31:19
◼
►
or does just like a loadable bundle
01:31:21
◼
►
inside your app get to run?
01:31:22
◼
►
- There is no such differentiation in iOS today.
01:31:25
◼
►
If your app runs at all, you can do whatever you want.
01:31:28
◼
►
And so, you get woken up for the 10 minutes
01:31:31
◼
►
when the push comes in.
01:31:33
◼
►
And you can do whatever you want,
01:31:34
◼
►
including download stuff directly.
01:31:36
◼
►
But then if you enqueue the URL download, the NK asset URL
01:31:40
◼
►
download, or whatever, NK asset something download,
01:31:43
◼
►
then that goes into a background queue
01:31:45
◼
►
that your application doesn't own, doesn't manage.
01:31:47
◼
►
You don't see that again until it's done.
01:31:50
◼
►
But your app does not get woken up when it's done.
01:31:54
◼
►
But next time you launch, you can then
01:31:56
◼
►
fetch the results of it.
01:31:57
◼
►
So if you're woken up to do your thing,
01:31:59
◼
►
and you start doing your thing, and then
01:32:01
◼
►
you get killed because of memory pressure,
01:32:03
◼
►
you didn't get a chance to do your thing,
01:32:05
◼
►
but you just got killed.
01:32:06
◼
►
The only thing that's helping you is that if during that time you had registered something
01:32:10
◼
►
like that asset to go download or whatever, then you getting killed is not a big deal
01:32:14
◼
►
because you've already registered your intent to, "I have this task that I would like to
01:32:18
◼
►
I'm not going to do it.
01:32:20
◼
►
Oops, sorry, I got killed."
01:32:21
◼
►
And then when you come back later, you can say, "Hey, that thing I told you about last
01:32:23
◼
►
time, did you do that for me?"
01:32:24
◼
►
And get the result of it.
01:32:27
◼
►
And one of the things, actually, one of the things that kept biting me whenever I would
01:32:30
◼
►
write things against this API is that the nkasset download seems to go into a single
01:32:38
◼
►
item at a time queue that seems to be possibly the same queue as app updates and other system
01:32:47
◼
►
downloads. And so you might enqueue something and it might not finish for hours, even if
01:32:53
◼
►
it would take a minute to download because there's a bunch of crap in front of it.
01:32:56
◼
►
- That's what I was getting at with like a,
01:32:57
◼
►
this is like a mini scheduler,
01:32:59
◼
►
because it has all the same problems as an OS scheduler,
01:33:00
◼
►
where you don't want to starve low priority processes,
01:33:03
◼
►
because that's like, you know,
01:33:04
◼
►
that's a pathological case where you're like,
01:33:06
◼
►
oh, great schedule, high priority tests always get serviced,
01:33:08
◼
►
and then you end up with some low priority tests
01:33:10
◼
►
that would be accomplished in half a second,
01:33:11
◼
►
if only you would ever get up,
01:33:12
◼
►
but there's always higher priority stuff,
01:33:13
◼
►
so you have to have some way to invert that priority,
01:33:17
◼
►
and say, okay, well we do need to give low priority ones
01:33:19
◼
►
a chance to go, or maybe you should like schedule them
01:33:21
◼
►
based on how long you think they're gonna take,
01:33:23
◼
►
and again, like when things are an IO wait,
01:33:24
◼
►
you wanna do something else,
01:33:25
◼
►
and it's just being dumb.
01:33:26
◼
►
Those are all exactly the same process that the entire OS has for scheduling processes.
01:33:31
◼
►
But instead of having the whole OS do it, like, because you say, "Oh, fine, let me just
01:33:35
◼
►
do the Android thing then.
01:33:36
◼
►
We'll actually let the OS kernel schedule all this stuff for us."
01:33:38
◼
►
And then you just end up with everyone making a million processes and you kill your battery.
01:33:42
◼
►
So that's the balance Apple is trying to strike here.
01:33:45
◼
►
And it sounds like the thing they have doing Newsdan is like a really terrible OS kernel
01:33:50
◼
►
in terms of like, "Oh, you're blocked because someone's updating some game that's
01:33:55
◼
►
it's like 1.3 gigabytes and you just want a 4k URL. Well, sorry, you suck.
01:33:59
◼
►
Right. But, so what else in iOS seven?
01:34:05
◼
►
Any quick guesses? Cause we do have to wrap up soon,
01:34:07
◼
►
but either you guys silence.
01:34:10
◼
►
All right. Good talk.
01:34:13
◼
►
Default apps wouldn't be crazy. Like, I don't know.
01:34:15
◼
►
I give that less than 50% chance, but that's not totally crazy. Right?
01:34:19
◼
►
I mean, if they revamp pick, if they would revamp better app communication,
01:34:23
◼
►
that would also give them a good opportunity
01:34:26
◼
►
to rethink this whole URL scheme registration system
01:34:29
◼
►
and maybe tie a SQL to that into the new system.
01:34:33
◼
►
And it would be a convenient time
01:34:38
◼
►
to let you change the defaults while you're
01:34:40
◼
►
doing all this other stuff with having
01:34:43
◼
►
some kind of interapp registry and some kind of file
01:34:47
◼
►
association type thing.
01:34:50
◼
►
This would be the time to do it, if they're going to do it,
01:34:52
◼
►
what I'm saying.
01:34:53
◼
►
Well, and plus, I know it sounds silly, but as you guys pointed out, what is the big room
01:35:00
◼
►
Presidio in Moscone?
01:35:03
◼
►
It's going to be bigger this year, and it seems like every—I'm not being literal,
01:35:08
◼
►
but it appears that a lot of the TB announced sessions are going to be happening in Presidio,
01:35:14
◼
►
and Presidio's going to be bigger, which infers, as I think you said, Marco, or implies,
01:35:18
◼
►
excuse me, that there's going to be some really massive changes happening.
01:35:25
◼
►
But one thing, I do want to temper excitement for the whole TBA thing a little bit, that
01:35:31
◼
►
typically what they do is they will mark a session "TBA" even if it's not talking
01:35:37
◼
►
about a whole new category of things. They'll mark it as "TBA" if its description even
01:35:43
◼
►
contains one word of something that's not public yet. They won't just do two things
01:35:48
◼
►
descriptions, one for before and one for after the keynote. So if it mentions like, "What's new in iOS 7?"
01:35:53
◼
►
Well, they haven't actually said the name iOS 7 anywhere yet. They told us
01:35:58
◼
►
they're going to be showing us the latest of iOS, but they haven't named it yet.
01:36:03
◼
►
And so the name iOS 7, if that's what they're calling it, is probably still private under
01:36:08
◼
►
SuperApple NDA.
01:36:13
◼
►
might not, it isn't a great correlation of amount of new stuff to number of TBA sessions.
01:36:21
◼
►
It just means the new stuff is going to be of general interest. Like, so Xcode,
01:36:24
◼
►
everyone there cares about Xcode 5. And sometimes they repeat sessions too. So it's like, you know,
01:36:29
◼
►
your introduction to Xcode 5, the amazing new ID, right? And then they repeat that session later in
01:36:33
◼
►
the week, both times in Presidio, because everyone at the conference can benefit from that session,
01:36:38
◼
►
and they want to make sure everyone can see it. So stuff like that is not earth shattering,
01:36:42
◼
►
but it does require a big room twice.
01:36:45
◼
►
Do you want to give any W2C tips?
01:36:46
◼
►
I see that on our document here.
01:36:48
◼
►
Ah, look at you looking.
01:36:50
◼
►
My cursor is resting in the official cursor resting area.
01:36:53
◼
►
On Monday morning, everyone just sleep in
01:36:55
◼
►
because there's really no point in lining up early.
01:36:58
◼
►
If you just stroll in at like 8 o'clock,
01:36:59
◼
►
you'll walk right into the keynote, no problem.
01:37:04
◼
►
As far as tips go, if we had a little more time,
01:37:06
◼
►
I could rattle off a bunch.
01:37:07
◼
►
But you and I both, Marco, have put up blog posts
01:37:10
◼
►
about this in the past.
01:37:10
◼
►
and if we remember, maybe we can put them in our show notes.
01:37:12
◼
►
- Yes, and so have a lot of other people too.
01:37:14
◼
►
Like there's no shortage of first-timers guides
01:37:17
◼
►
and tips for the conference and everything.
01:37:20
◼
►
- Yeah, the one thing I think I'd like to say though
01:37:23
◼
►
is I believe I speak for the both of you guys
01:37:26
◼
►
in saying that if you are one of the people
01:37:28
◼
►
who is in San Francisco and you happen to run into one
01:37:31
◼
►
or all of us, definitely say hi.
01:37:33
◼
►
Not during a session, of course, but if it is socially--
01:37:36
◼
►
- Oh, during a session too, who cares?
01:37:38
◼
►
- Well, not when they're talking.
01:37:39
◼
►
- Don't talk during the session.
01:37:40
◼
►
Well, if you're sitting next to us, you can say hello.
01:37:43
◼
►
Well, okay, that is allowed.
01:37:44
◼
►
Yeah, just whisper.
01:37:46
◼
►
Yeah, exactly.
01:37:47
◼
►
Just don't interrupt the speaker.
01:37:48
◼
►
But seriously, please say hi, because I've been around Marco and John at WWDC for the
01:37:54
◼
►
last couple of years, and they're always extremely excited to meet people.
01:37:58
◼
►
I'm excited to meet people.
01:37:59
◼
►
I'm excited to meet people?
01:38:00
◼
►
Are you sure you're with me?
01:38:01
◼
►
I'm not excited.
01:38:02
◼
►
Oh, you say you're not.
01:38:04
◼
►
Casey's the only one of us who could possibly be an extrovert.
01:38:07
◼
►
I like meeting people.
01:38:08
◼
►
Yeah, I think you guys don't give yourselves enough credit. But seriously, please say hi
01:38:14
◼
►
because it's always fun to meet people that enjoy your work. And I can actually sort of
01:38:20
◼
►
include myself in that this year, which is pretty exciting. So definitely say hi if possible.
01:38:25
◼
►
Any tips from you two?
01:38:27
◼
►
I think you nailed it, Casey. If you see anybody who you know from the internet or something,
01:38:31
◼
►
go up and say hi because everyone you know from the internet is not a celebrity. And
01:38:38
◼
►
nobody ever in real life recognizes them and says, "Oh, hey, I love your work," because
01:38:44
◼
►
nobody ever knows what they do when they're back in their regular places that they live.
01:38:48
◼
►
Yeah, but the WWC has always been like that, because even when Steve Jobs was there, if
01:38:53
◼
►
you just plunk Steve Jobs down into a random place in the United States and had him go
01:38:57
◼
►
into a store, do you think the guy behind the counter would recognize him?
01:39:01
◼
►
Maybe 50/50, if you're lucky. And he was the most famous person ever to work for the
01:39:05
◼
►
the new Apple, right? Tim Cook probably can go anywhere in America that's outside the
01:39:12
◼
►
tech nerd world, not get recognized. Everyone else at WBC is way, way, way below all those
01:39:20
◼
►
So this is the only, as I said in the podcast last year, this is the only place where any
01:39:24
◼
►
of us are, many levels of scare quotes, famous. So yeah, this is the one place where we get
01:39:30
◼
►
to get recognized, unlike the Apple store for me when they won't let me pick my hard
01:39:34
◼
►
because they don't know who I am. So yeah, we all enjoy that and try not to let it go to our heads
01:39:41
◼
►
because we know that this is literally the only place on the planet where people are likely to
01:39:45
◼
►
even know who we are and recognize us. So it's nice. And if Marco can go up and introduce himself
01:39:50
◼
►
to Forrestal, then you can certainly introduce yourself to us. I was so nervous about that.
01:39:55
◼
►
Yeah, well then they had to fire him later, so. Yeah. That was it. You talked to that Armin guy,
01:40:02
◼
►
didn't you? You're out! I doomed that guy. That was it. That was the
01:40:05
◼
►
beginning of the end for Scott Forstall. Don't let Marco say hi to you. Yeah, maybe you
01:40:09
◼
►
shouldn't say hi to Marco, but John and I say hi to us. And also before we go, we
01:40:13
◼
►
should probably explain the pre-roll song. Yes, definitely. So a very close
01:40:18
◼
►
friend of mine, Larry King, who is not the one from CNN, he decided to create not an
01:40:27
◼
►
alternative theme song because, let's be honest, we'll never replace our existing
01:40:31
◼
►
theme song by Jonathan Mann, but he thought he'd write us a little tune, and even though
01:40:37
◼
►
it kind of makes fun of me, I got a good kick out of it, and so that was the pre-roll. So
01:40:42
◼
►
we appreciate and thank Larry King, who is @laking—not @lakings, which is the soccer—excuse
01:40:48
◼
►
me, not soccer, the hockey team—but we appreciate him doing that, and we'll put a link to
01:40:53
◼
►
the song in the show notes as well.
01:40:55
◼
►
Well, and he's allowed to make fun of you because he only knows you. Like, he's friends
01:41:00
◼
►
your jaw and can't make fun of you because that would just be mean. But this guy actually
01:41:04
◼
►
just knows you.
01:41:06
◼
►
Exactly. So he gets a bye.
01:41:09
◼
►
Thanks a lot to our two sponsors of this episode, Squarespace. Go to squarespace.com and you
01:41:13
◼
►
can make your own website really easily and really great. And then go to Tonks, t-o-n-x.org/atp,
01:41:21
◼
►
to get really great coffee, fresh roasted and shipped to you on a regular basis. You
01:41:25
◼
►
really can't do any better than that. Thanks a lot to Squarespace and Tonks for sponsoring
01:41:30
◼
►
And thank you guys, and we'll see each other next week at the conference.
01:41:37
◼
►
The show is over, they didn't even mean to begin
01:41:41
◼
►
'Cause it was accidental (accidental)
01:41:44
◼
►
Oh, it was accidental (accidental)
01:41:47
◼
►
John didn't do any research, Marco and Casey wouldn't let him
01:41:51
◼
►
'Cause it was accidental (accidental)
01:41:54
◼
►
Oh, it was accidental (accidental)
01:41:57
◼
►
And you can find the show notes at ATP.fm
01:42:02
◼
►
And if you're into Twitter, you can follow them
01:42:07
◼
►
@C-A-S-E-Y-L-I-S-S
01:42:11
◼
►
So that's Kasey Liss, M-A-R-C-O-A-R-M
01:42:15
◼
►
Auntie Marco Armin, S-I-R-A-C
01:42:20
◼
►
USA, Syracuse
01:42:23
◼
►
It's accidental
01:42:26
◼
►
They didn't mean to
01:42:31
◼
►
♪ Tech podcast so long ♪
01:42:34
◼
►
- Oh, but now I'm getting my Skype call
01:42:38
◼
►
from my other podcast, so I have to run.
01:42:40
◼
►
- All right, they're early.
01:42:41
◼
►
- Well, you and I-- - Yes, they are.
01:42:43
◼
►
- You and I-- - Jason Snell's
01:42:44
◼
►
little face is insistent.
01:42:45
◼
►
- You can get it. - You can hang on.
01:42:46
◼
►
You can hang on. - All right,
01:42:47
◼
►
I'll decide this without you.
01:42:48
◼
►
- Yeah. - Later, guys.
01:42:49
◼
►
- Let's see it. - Later.
01:42:50
◼
►
- All right, now we can talk about 'em.
01:42:53
◼
►
- Yeah, right, can we make the title
01:42:55
◼
►
Jason Snell's Face is Insistent?
01:42:59
◼
►
- If that would actually be in the show,
01:43:00
◼
►
that would be good.
01:43:01
◼
►
Oh, God. Well, you could put it in the show.
01:43:04
◼
►
How come you put all the crap about me in the show and none about him?
01:43:08
◼
►
What are you kidding? Almost every episode ends with him.
01:43:10
◼
►
That's true.
01:43:11
◼
►
All right. Well, I am going to see you, what, Sunday?
01:43:16
◼
►
Yeah, Sunday afternoon.
01:43:17
◼
►
As we—I am very excited. Actually, that should be really fun. I'm really looking forward to that.
01:43:21
◼
►
I can't wait. We can't force Jon to have fun.
01:43:24
◼
►
I know. No matter how—another title. No matter how hard we try, we can't force Jon.
01:43:28
◼
►
And we do try.
01:43:30
◼
►
And we do try. I'm slight, I'm almost willing to say make that the title just to troll him.
01:43:36
◼
►
But the funny thing is he wouldn't have fun and it wouldn't help at all.
01:43:41
◼
►
No, it wouldn't.