PodSearch

ATP

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:09   Oh my God.

00:00:10   [MUSIC]

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:41   Right.

00:03:41   Right.

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:26   that.

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

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:10:59   - Yeah.

00:11:00   Is iWork on the Mac older than the Mac Pro?

00:11:05   - I don't know.

00:11:08   I think so.

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:02   myth.

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:33   I did.

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 does.

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:14   like that.

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:24   Yes.

00:22:25   All right.

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   Yeah.

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:25   No, no.

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:17   No.

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:54   right?

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:20   I do.

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:28   Yeah.

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:45   in WWDC?

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:08   why not?

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

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:35   GPUs."

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:37   all.

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:01   Okay.

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:43   Or if you--

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   running.

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:31   Pro thing.

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:34   like that.

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:43   on Amazon.

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:28   I'd say no.

00:51:29   Are we going to see it this year then?

00:51:31   Yes.

00:51:32   We'll see something this year.

00:51:33   Tim Cook said...

00:51:34   He 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:43   be.

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:24   power."

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:30   Exactly.

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:34   Exactly.

00:53:35   Right.

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   too.

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:01   years ago.

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:14   in life.

00:59:17   And so it wrecks some things.

00:59:19   If you--

00:59:20   If you have fewer cores and smaller amounts of cache

00:59:22   in the past, too.

00:59:23   Right.

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   Why?

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:38   forever.

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:26   like that?

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:16   years.

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:28   to do.

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:38   that it is.

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:31   Yeah.

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

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:35   - Boring.

01:22:36   (laughing)

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:42   situation?

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:54   up things.

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:28:59   Sure.

01:29:00   Oh, yeah.

01:29:01   Yeah.

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:10   do it.

01:29:11   Let a single system service do it, and let the application register with that system

01:29:14   service.

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:17   perform.

01:32:18   I'm not going to do it.

01:32:19   You 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:26   Exactly.

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:01   Front row.

01:37:02   Yeah.

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:00   No.

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:18   guys.

01:39:19   Exactly.

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:40:58   with you.

01:40:59   Yes.

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

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:57   (laughing)

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   I could.

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   But—

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.