John, We Don’t Play Games

Episode 16 • Released June 7, 2013 • Speakers detected

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

John, We Don’t Play Games

00:00:00 / --:--:--