4: The Bridges 
   
   
 
 
	 00:00:00
     ◼ 
      
     ►  
     By doing this podcast tonight, my wife asked me what I was going to do. 
     
     
  
 
 
	 00:00:03
     ◼ 
      
     ►  
     I said, well, I might be doing a podcast depending on what Marco-- 
     
     
  
 
 
	 00:00:07
     ◼ 
      
     ►  
     his schedule or whatever. 
     
     
  
 
 
	 00:00:08
     ◼ 
      
     ►  
     But if not, I have a blog post I want to do. 
     
     
  
 
 
	 00:00:10
     ◼ 
      
     ►  
     Because since Dan Frakes' thing about the Mac Mini thing, 
     
     
  
 
 
	 00:00:15
     ◼ 
      
     ►  
     I'm like, all right, I have this week's blog post. 
     
     
  
 
 
	 00:00:18
     ◼ 
      
     ►  
     I need to write that. 
     
     
  
 
 
	 00:00:19
     ◼ 
      
     ►  
     And I still haven't had a chance to do it. 
     
     
  
 
 
	 00:00:21
     ◼ 
      
     ►  
     I wrote two or three paragraphs of it while taking my son to swim lessons 
     
     
  
 
 
	 00:00:25
     ◼ 
      
     ►  
     today while he was in the swimming pool. 
     
     
  
 
 
	 00:00:27
     ◼ 
      
     ►  
     I actually wrote it on my iPad. 
     
     
  
 
 
	 00:00:28
     ◼ 
      
     ►  
     I was inspired by Jason Snell to do that. 
     
     
  
 
 
	 00:00:30
     ◼ 
      
     ►  
     It actually wasn't that awful. 
     
     
  
 
 
	 00:00:32
     ◼ 
      
     ►  
     But anyway, I came back here, and I started writing again, and then I saw your email. 
     
     
  
 
 
	 00:00:37
     ◼ 
      
     ►  
     Podcasts tonight--so you are thwarting me from posting to my blog by continually--like, 
     
     
  
 
 
	 00:00:40
     ◼ 
      
     ►  
     last night I had a podcast, couldn't blog about it. 
     
     
  
 
 
	 00:00:43
     ◼ 
      
     ►  
     Tonight I got a podcast, couldn't blog about it. 
     
     
  
 
 
 
	 00:00:46
     ◼ 
      
     ►  
     You could talk about it. 
     
     
  
 
 
	 00:00:47
     ◼ 
      
     ►  
     Tomorrow I'm going to frickin' blog it. 
     
     
  
 
 
	 00:00:48
     ◼ 
      
     ►  
     Yeah, I actually was hoping we would talk about that particular topic. 
     
     
  
 
 
	 00:00:50
     ◼ 
      
     ►  
     In the podcast last night that I was on, one of the questions on this topic came up, and 
     
     
  
 
 
	 00:00:54
     ◼ 
      
     ►  
     I debated saying something, but I said, "Okay, well, here it is." 
     
     
  
 
 
	 00:00:57
     ◼ 
      
     ►  
     I talked for like two and a half minutes and I said, "Okay, now just make that coherent 
     
     
  
 
 
	 00:01:01
     ◼ 
      
     ►  
     and put it in writing," and that's what my blog post is going to be. That's always 
     
     
  
 
 
	 00:01:04
     ◼ 
      
     ►  
     the challenge. 
     
     
  
 
 
	 00:01:05
     ◼ 
      
     ►  
     Oh yeah, many of my podcast discussions were inadvertently drafts for blog posts that were 
     
     
  
 
 
	 00:01:14
     ◼ 
      
     ►  
     much better considered. 
     
     
  
 
 
	 00:01:15
     ◼ 
      
     ►  
     That's what my podcast is all about. It's just talking it out, rambling, and then you 
     
     
  
 
 
	 00:01:20
     ◼ 
      
     ►  
     distill it down or whatever. But you know what, I should do it anyway because the podcast 
     
     
  
 
 
	 00:01:25
     ◼ 
      
     ►  
     was on last night is going up on the 20th or something. So by the time it goes up, my 
     
     
  
 
 
	 00:01:28
     ◼ 
      
     ►  
     blog post will have been up for weeks. 
     
     
  
 
 
	 00:01:30
     ◼ 
      
     ►  
     Right. We can put this up tomorrow. 
     
     
  
 
 
	 00:01:32
     ◼ 
      
     ►  
     But anyway, I don't want to talk about the mini Mac Pro, because every time I think of 
     
     
  
 
 
	 00:01:38
     ◼ 
      
     ►  
     a blog post, I'm like, "You just got to write a blog post. It doesn't matter if it's two 
     
     
  
 
 
	 00:01:41
     ◼ 
      
     ►  
     paragraphs." I'm like, "Oh, I have a great two-paragraph idea," and it never comes out 
     
     
  
 
 
	 00:01:45
     ◼ 
      
     ►  
     as two paragraphs. Not that it goes out for pages and pages, but I look back at it and 
     
     
  
 
 
	 00:01:50
     ◼ 
      
     ►  
     I'm like, "That was supposed to be two paragraphs, and it's eight." If it was two paragraphs 
     
     
  
 
 
	 00:01:53
     ◼ 
      
     ►  
     and it came out as four, I'd be okay. But eight, I feel like there's something going 
     
     
  
 
 
	 00:01:57
     ◼ 
      
     ►  
     wrong. So I have one very simple idea that it should be really three sentences, but then 
     
     
  
 
 
	 00:02:02
     ◼ 
      
     ►  
     I write those three sentences and I say, "If you don't already know what I mean, you won't 
     
     
  
 
 
	 00:02:05
     ◼ 
      
     ►  
     understand those three sentences." So I expand, and I expand, and I expand until I feel like 
     
     
  
 
 
	 00:02:08
     ◼ 
      
     ►  
     I'm bringing some new people along who don't already know what I'm saying and don't already 
     
     
  
 
 
	 00:02:13
     ◼ 
      
     ►  
     agree with me. 
     
     
  
 
 
	 00:02:15
     ◼ 
      
     ►  
     So are we going to not talk about it then? 
     
     
  
 
 
	 00:02:18
     ◼ 
      
     ►  
     No, I'm not going to talk about the next one. 
     
     
  
 
 
 
	 00:02:21
     ◼ 
      
     ►  
     I already know. I live in fear of Marco just blogging, "This is such an obvious idea that 
     
     
  
 
 
	 00:02:25
     ◼ 
      
     ►  
     if I mention it, all of you are just like, 'Yeah, everyone knows that. Stupid. Let me 
     
     
  
 
 
	 00:02:28
     ◼ 
      
     ►  
     write two sentences about it in my blog post.'" 
     
     
  
 
 
	 00:02:31
     ◼ 
      
     ►  
     I think with this thing, everyone has been talking about what they could do with the 
     
     
  
 
 
	 00:02:36
     ◼ 
      
     ►  
     Mac Pro. Every six months, there's a wave of discussion about it. And so many people 
     
     
  
 
 
	 00:02:43
     ◼ 
      
     ►  
     think that it's going to be some kind of weird modular thing where you get a bunch of Mac 
     
     
  
 
 
	 00:02:46
     ◼ 
      
     ►  
     minis and connect them via some mystery Thunderbolt that's fast enough to do anything meaningful 
     
     
  
 
 
	 00:02:50
     ◼ 
      
     ►  
     with this kind of stuff. 
     
     
  
 
 
	 00:02:51
     ◼ 
      
     ►  
     the PlayStation 3 is going to be like with a cell processor. You'll be able to have multiple 
     
     
  
 
 
	 00:02:54
     ◼ 
      
     ►  
     ones together to make your games look better. Did you hear about that? 
     
     
  
 
 
	 00:02:59
     ◼ 
      
     ►  
     And it's just like, it doesn't... All these fantasies that people have about this, in 
     
     
  
 
 
	 00:03:03
     ◼ 
      
     ►  
     addition to having a lot of technical challenges, mostly involving the speed and bandwidth of 
     
     
  
 
 
	 00:03:08
     ◼ 
      
     ►  
     the connectors between the individual parts, but it would just be an amazingly complicated, 
     
     
  
 
 
	 00:03:16
     ◼ 
      
     ►  
     inelegant setup. What I hate about the iMac is that once you have some kind of powerful 
     
     
  
 
 
	 00:03:25
     ◼ 
      
     ►  
     demand with an iMac, you usually end up having a desk covered in hard drive enclosures and 
     
     
  
 
 
	 00:03:29
     ◼ 
      
     ►  
     all these bolt-on things shoved on the outside or connected to it that with the Mac Pro you 
     
     
  
 
 
	 00:03:34
     ◼ 
      
     ►  
     could just put inside, and with many advantages there. So I feel like any move towards less 
     
     
  
 
 
	 00:03:43
     ◼ 
      
     ►  
     internal storage, less internal capacity for expansion, 
     
     
  
 
 
	 00:03:48
     ◼ 
      
     ►  
     any move in that direction really eliminates quite a lot 
     
     
  
 
 
	 00:03:51
     ◼ 
      
     ►  
     of the Mac Pro's appeal. 
     
     
  
 
 
	 00:03:53
     ◼ 
      
     ►  
     And a lot of people just, they don't really distinguish 
     
     
  
 
 
	 00:03:57
     ◼ 
      
     ►  
     between the Xeon line and the regular consumer CPU line. 
     
     
  
 
 
	 00:04:01
     ◼ 
      
     ►  
     But that's also a very important distinction, because 
     
     
  
 
 
	 00:04:03
     ◼ 
      
     ►  
     the Xeon line means you can have two sockets and lots of 
     
     
  
 
 
 
	 00:04:08
     ◼ 
      
     ►  
     And you get all sorts of benefits, like ECC RAM, which 
     
     
  
 
 
	 00:04:12
     ◼ 
      
     ►  
     it just makes your computer a little bit more stable, like a little bit less likely to have 
     
     
  
 
 
	 00:04:16
     ◼ 
      
     ►  
     some problem down the road 
     
     
  
 
 
	 00:04:17
     ◼ 
      
     ►  
     or it'll crash, it'll kernel panic 
     
     
  
 
 
	 00:04:21
     ◼ 
      
     ►  
     three fewer times in its lifespan but those might really matter to you. 
     
     
  
 
 
	 00:04:24
     ◼ 
      
     ►  
     There's all sorts of these benefits that you get with the server grade components, 
     
     
  
 
 
	 00:04:28
     ◼ 
      
     ►  
     with these giant expensive motherboards, with these giant PCI Express slots that 
     
     
  
 
 
	 00:04:32
     ◼ 
      
     ►  
     have really really high bandwidth that you know if you have 
     
     
  
 
 
	 00:04:35
     ◼ 
      
     ►  
     if you want to do multiple video cards to have like six monitors you can do 
     
     
  
 
 
	 00:04:39
     ◼ 
      
     ►  
     that with a Mac Pro, you can't do it with anything else. 
     
     
  
 
 
	 00:04:42
     ◼ 
      
     ►  
     there's all these edge cases 
     
     
  
 
 
	 00:04:46
     ◼ 
      
     ►  
     that with the Mac Pro you can do all of them. 
     
     
  
 
 
	 00:04:50
     ◼ 
      
     ►  
     Most people don't need all of them, but a lot of people need one of them. 
     
     
  
 
 
	 00:04:54
     ◼ 
      
     ►  
     So I feel like, my blog post 
     
     
  
 
 
	 00:04:58
     ◼ 
      
     ►  
     kind of made it sound like I thought that the iMac could solve all these problems and it can't. 
     
     
  
 
 
	 00:05:02
     ◼ 
      
     ►  
     My point with the blog post was not that 
     
     
  
 
 
	 00:05:06
     ◼ 
      
     ►  
     the iMac is good enough for most Mac Pro customers 
     
     
  
 
 
	 00:05:10
     ◼ 
      
     ►  
     necessarily, but that it's a good enough solution for Apple to release, to address most of these 
     
     
  
 
 
 
	 00:05:20
     ◼ 
      
     ►  
     And that's a weird distinction to make, but it's good enough for Apple to deal with them 
     
     
  
 
 
	 00:05:25
     ◼ 
      
     ►  
     by just releasing this. 
     
     
  
 
 
	 00:05:29
     ◼ 
      
     ►  
     As a user, there's lots of... 
     
     
  
 
 
	 00:05:31
     ◼ 
      
     ►  
     I as a user can say, "I wouldn't like that as much." 
     
     
  
 
 
	 00:05:35
     ◼ 
      
     ►  
     And almost everybody has responded saying, "I work in video," or, "I work in science," 
     
     
  
 
 
	 00:05:39
     ◼ 
      
     ►  
     something like that, I work in something where that would suck in some way. 
     
     
  
 
 
	 00:05:43
     ◼ 
      
     ►  
     And that's true, but there's already tons of small 
     
     
  
 
 
	 00:05:47
     ◼ 
      
     ►  
     markets that Apple doesn't address, usually because they're too small and they're relatively 
     
     
  
 
 
	 00:05:51
     ◼ 
      
     ►  
     unprofitable. If a whole bunch of high-end workstation 
     
     
  
 
 
	 00:05:55
     ◼ 
      
     ►  
     users had to switch to Windows, which many of them already have 
     
     
  
 
 
	 00:05:59
     ◼ 
      
     ►  
     for different video editing programs, since Apple pissed off all the video editors with Final Cut Pro 10, 
     
     
  
 
 
	 00:06:03
     ◼ 
      
     ►  
     if some of those people have to switch to Windows 
     
     
  
 
 
	 00:06:08
     ◼ 
      
     ►  
     video editing needs, I don't think Apple cares that much. Yeah, if they can avoid it easily, 
     
     
  
 
 
	 00:06:13
     ◼ 
      
     ►  
     they will, but I think that that specialized market is something Apple's willing to lose. 
     
     
  
 
 
	 00:06:20
     ◼ 
      
     ►  
     I'm going to be sad to see my tower with filled-with-server-grade hardware go up, because I don't know if I can 
     
     
  
 
 
	 00:06:26
     ◼ 
      
     ►  
     attribute it to it having server-grade components in it, but this machine has been so incredibly 
     
     
  
 
 
	 00:06:32
     ◼ 
      
     ►  
     reliable. My 2008 Mac Pro, it has been the most reliable, probably the most reliable 
     
     
  
 
 
	 00:06:37
     ◼ 
      
     ►  
     computer I've ever owned because even my favorite Mac ever, the SE30, that had some reliability 
     
     
  
 
 
	 00:06:42
     ◼ 
      
     ►  
     problems, mostly related to the fact that I had a color video card shoved in it, which 
     
     
  
 
 
	 00:06:46
     ◼ 
      
     ►  
     is something Apple never foresaw, so it had some flaky issues there and had a bum power 
     
     
  
 
 
	 00:06:51
     ◼ 
      
     ►  
     supply early on. But like, this Mac Pro has just been 100% champ. Like, nothing has gone 
     
     
  
 
 
	 00:06:57
     ◼ 
      
     ►  
     wrong in it. I think I had one bad dim that went wrong, and when it went wrong, it was 
     
     
  
 
 
	 00:07:01
     ◼ 
      
     ►  
     so obvious that it went wrong. The machine booted, but it just had less RAM, and you'd 
     
     
  
 
 
	 00:07:06
     ◼ 
      
     ►  
     go to the little thing and it would show which bank wasn't showing up. It was just like everything 
     
     
  
 
 
	 00:07:10
     ◼ 
      
     ►  
     worked exactly the way it's supposed to. I've put a million different hard drives in it, 
     
     
  
 
 
	 00:07:14
     ◼ 
      
     ►  
     I've added to the RAM, never had any problems with noise, heat, no fan bearings have gone 
     
     
  
 
 
	 00:07:19
     ◼ 
      
     ►  
     bad, just nothing. I can't imagine the machine replacing it being more satisfying than this 
     
     
  
 
 
	 00:07:27
     ◼ 
      
     ►  
     was when it was new. Because in 2008, and it was cheap, it was before they were super-duper 
     
     
  
 
 
	 00:07:33
     ◼ 
      
     ►  
     expensive for a crappy thing. And I don't know if it's because of the ICC RAM, is it 
     
     
  
 
 
	 00:07:39
     ◼ 
      
     ►  
     because the CPUs are relatively underclocked to what they could possibly be clocked to, 
     
     
  
 
 
	 00:07:43
     ◼ 
      
     ►  
     is it because the cooling is such overkill because the case was locked to the friggin' 
     
     
  
 
 
	 00:07:46
     ◼ 
      
     ►  
     G5? Whatever it is about it, I'm going to be sad to see this thing go. Or go into my 
     
     
  
 
 
	 00:07:52
     ◼ 
      
     ►  
     attic because that's not going to actually leave my house, of course. 
     
     
  
 
 
	 00:07:56
     ◼ 
      
     ►  
     I sold my version of that computer to Dan, 
     
     
  
 
 
	 00:07:59
     ◼ 
      
     ►  
     and it cost like $140 to ship it to him. 
     
     
  
 
 
	 00:08:03
     ◼ 
      
     ►  
     That's nuts. 
     
     
  
 
 
 
	 00:08:06
     ◼ 
      
     ►  
     But yeah, the Mac Pro is a fantastic computer 
     
     
  
 
 
	 00:08:08
     ◼ 
      
     ►  
     for these type of users. 
     
     
  
 
 
	 00:08:12
     ◼ 
      
     ►  
     I don't ever see myself going laptop full time 
     
     
  
 
 
	 00:08:14
     ◼ 
      
     ►  
     and being that happy with it. 
     
     
  
 
 
	 00:08:16
     ◼ 
      
     ►  
     I did it last year for a while, and it was OK, 
     
     
  
 
 
	 00:08:20
     ◼ 
      
     ►  
     but there are just so many downsides to it 
     
     
  
 
 
	 00:08:22
     ◼ 
      
     ►  
     for me and so many little annoyances. 
     
     
  
 
 
	 00:08:23
     ◼ 
      
     ►  
     I mentioned on neutral that I like everything 
     
     
  
 
 
	 00:08:25
     ◼ 
      
     ►  
     to be stock and clean. That's why I hate having a desk covered in wires and hard drive enclosures. 
     
     
  
 
 
	 00:08:29
     ◼ 
      
     ►  
     Like, I don't want to have to bolt on a million different things to make my computer fast 
     
     
  
 
 
	 00:08:34
     ◼ 
      
     ►  
     and stable and have enough space for what I'm using it for. 
     
     
  
 
 
	 00:08:37
     ◼ 
      
     ►  
     Yeah, but couldn't you just get, like, one of those absurdly overpriced Thunderbolt docks, 
     
     
  
 
 
	 00:08:45
     ◼ 
      
     ►  
     not dock, core replicators? 
     
     
  
 
 
	 00:08:46
     ◼ 
      
     ►  
     Yeah, the big bays. Well, I could, but— 
     
     
  
 
 
	 00:08:48
     ◼ 
      
     ►  
     You can't. You can't put a video card in it. You can't put a high-end video card in it. 
     
     
  
 
 
	 00:08:53
     ◼ 
      
     ►  
     And there's a lot of people for whom that solves their problem. 
     
     
  
 
 
	 00:08:56
     ◼ 
      
     ►  
     A lot of video editors don't use internal storage for their projects. 
     
     
  
 
 
	 00:08:59
     ◼ 
      
     ►  
     They use external drives with RAID 0 and just giant drives. 
     
     
  
 
 
	 00:09:03
     ◼ 
      
     ►  
     Well, then they have a fiber channel card inside their Mac. 
     
     
  
 
 
	 00:09:06
     ◼ 
      
     ►  
     Well, I mean, a lot of them-- not necessarily the big production houses, 
     
     
  
 
 
	 00:09:10
     ◼ 
      
     ►  
     but a lot of smaller shops and individual video editors 
     
     
  
 
 
	 00:09:13
     ◼ 
      
     ►  
     will just use those external G drives or LaCie, all those high-end enclosures 
     
     
  
 
 
	 00:09:18
     ◼ 
      
     ►  
     that are made of metal and just have two consumer drives in them. 
     
     
  
 
 
	 00:09:20
     ◼ 
      
     ►  
     They'll just use those. 
     
     
  
 
 
	 00:09:22
     ◼ 
      
     ►  
     I think those people-- 
     
     
  
 
 
	 00:09:23
     ◼ 
      
     ►  
     it's not so much that they need a Mac Pro. 
     
     
  
 
 
	 00:09:25
     ◼ 
      
     ►  
     It's that they need a machine that's 
     
     
  
 
 
	 00:09:27
     ◼ 
      
     ►  
     built with the philosophy of the Mac Pro, 
     
     
  
 
 
	 00:09:29
     ◼ 
      
     ►  
     in terms of reliability. 
     
     
  
 
 
	 00:09:33
     ◼ 
      
     ►  
     They'd rather pay more for something 
     
     
  
 
 
	 00:09:34
     ◼ 
      
     ►  
     that will be reliable than pay less for something 
     
     
  
 
 
	 00:09:38
     ◼ 
      
     ►  
     that's just as good, but is made to consumer spec. 
     
     
  
 
 
 
	 00:09:41
     ◼ 
      
     ►  
     And I'm that way, too. 
     
     
  
 
 
	 00:09:44
     ◼ 
      
     ►  
     If my computer gets flaky, that is a severe problem for me, 
     
     
  
 
 
	 00:09:48
     ◼ 
      
     ►  
     in so many ways. 
     
     
  
 
 
	 00:09:50
     ◼ 
      
     ►  
     It'd be a problem for this podcast, or any podcast. 
     
     
  
 
 
	 00:09:52
     ◼ 
      
     ►  
     It'd be a problem with my work, with my coding, 
     
     
  
 
 
	 00:09:54
     ◼ 
      
     ►  
     if I have to be randomly rebooting every few days 
     
     
  
 
 
	 00:09:58
     ◼ 
      
     ►  
     for some weird issue or some weird reason. 
     
     
  
 
 
	 00:10:00
     ◼ 
      
     ►  
     That's a severe disruption, that adds up. 
     
     
  
 
 
	 00:10:02
     ◼ 
      
     ►  
     And for people who that really is disruptive to, 
     
     
  
 
 
	 00:10:06
     ◼ 
      
     ►  
     it is worth it to pay more to get a high-end tower. 
     
     
  
 
 
	 00:10:09
     ◼ 
      
     ►  
     Especially, and you said these things last forever. 
     
     
  
 
 
	 00:10:12
     ◼ 
      
     ►  
     Your 2008 Mac Pro is still pretty good by today's standards. 
     
     
  
 
 
	 00:10:16
     ◼ 
      
     ►  
     My 2010 Mac Pro-- we've not even got it last year-- 
     
     
  
 
 
	 00:10:21
     ◼ 
      
     ►  
     my 2010 Mac Pro is still the fastest Mac 
     
     
  
 
 
	 00:10:25
     ◼ 
      
     ►  
     for most single-threaded tasks, and among the fastest Macs 
     
     
  
 
 
	 00:10:28
     ◼ 
      
     ►  
     for anything parallelizable. 
     
     
  
 
 
	 00:10:30
     ◼ 
      
     ►  
     It's certainly up there. 
     
     
  
 
 
	 00:10:31
     ◼ 
      
     ►  
     I'm still playing games that are released this year on my Mac. 
     
     
  
 
 
	 00:10:35
     ◼ 
      
     ►  
     So even though I have-- 8800 is not amazing, 
     
     
  
 
 
	 00:10:38
     ◼ 
      
     ►  
     a good video card. 
     
     
  
 
 
	 00:10:40
     ◼ 
      
     ►  
     It's still better than what you get in a MacBook, right? 
     
     
  
 
 
	 00:10:43
     ◼ 
      
     ►  
     Maybe not anymore. 
     
     
  
 
 
	 00:10:44
     ◼ 
      
     ►  
     But certainly for most-- 
     
     
  
 
 
	 00:10:46
     ◼ 
      
     ►  
     Maybe not in a MacBook Pro, but I'm saying a MacBook. 
     
     
  
 
 
	 00:10:48
     ◼ 
      
     ►  
     That's what people buy. 
     
     
  
 
 
	 00:10:49
     ◼ 
      
     ►  
     Like when you get it, when a kid gets a laptop 
     
     
  
 
 
	 00:10:51
     ◼ 
      
     ►  
     and they go off to college, they get a MacBook, 
     
     
  
 
 
	 00:10:53
     ◼ 
      
     ►  
     because the parents just want to get them a laptop. 
     
     
  
 
 
	 00:10:55
     ◼ 
      
     ►  
     And you can't play modern games in that thing. 
     
     
  
 
 
	 00:10:57
     ◼ 
      
     ►  
     And here I am with my 2008 computer, 
     
     
  
 
 
	 00:10:59
     ◼ 
      
     ►  
     and I can play them in the floor. 
     
     
  
 
 
	 00:11:00
     ◼ 
      
     ►  
     So that's the kind of investment I want to make. 
     
     
  
 
 
	 00:11:03
     ◼ 
      
     ►  
     That's why I always want to get the biggest, hottest, fastest 
     
     
  
 
 
	 00:11:05
     ◼ 
      
     ►  
     video card they have, stick it in a box with lots of RAM slots, 
     
     
  
 
 
	 00:11:08
     ◼ 
      
     ►  
     make it reliable, and give me internal storage. 
     
     
  
 
 
	 00:11:11
     ◼ 
      
     ►  
     And I'm happy. 
     
     
  
 
 
 
	 00:11:12
     ◼ 
      
     ►  
     And when you do want to get rid of that computer, 
     
     
  
 
 
	 00:11:16
     ◼ 
      
     ►  
     If you sell that computer in the next year, you'll still get over $1,000 for it. 
     
     
  
 
 
	 00:11:20
     ◼ 
      
     ►  
     I don't sell my children, Marco. 
     
     
  
 
 
	 00:11:24
     ◼ 
      
     ►  
     But you'll lease puppies. 
     
     
  
 
 
 
	 00:11:26
     ◼ 
      
     ►  
     They go up into the attic. 
     
     
  
 
 
	 00:11:27
     ◼ 
      
     ►  
     I'm trying to think of something to do with this thing. 
     
     
  
 
 
	 00:11:29
     ◼ 
      
     ►  
     So you just leave them there and starve? 
     
     
  
 
 
	 00:11:31
     ◼ 
      
     ►  
     If it didn't take so much power, I would put it in the basement and make it a video server 
     
     
  
 
 
	 00:11:34
     ◼ 
      
     ►  
     or something. 
     
     
  
 
 
	 00:11:35
     ◼ 
      
     ►  
     That's always the problem with old hardware. 
     
     
  
 
 
	 00:11:37
     ◼ 
      
     ►  
     It's not worth the power or heat or noise. 
     
     
  
 
 
	 00:11:39
     ◼ 
      
     ►  
     Well, I guess if you keep buying Mac Minis, I would put an old Mac Mini in the basement 
     
     
  
 
 
	 00:11:44
     ◼ 
      
     ►  
     if I ever had bought a Mac Mini, but yeah. 
     
     
  
 
 
	 00:11:47
     ◼ 
      
     ►  
     See, but the problem I have with the Mac Pro, having never owned one, 
     
     
  
 
 
	 00:11:50
     ◼ 
      
     ►  
     is that it seems contrary to everything that Apple wants. 
     
     
  
 
 
	 00:11:53
     ◼ 
      
     ►  
     You know, even within the laptop line, now RAM 
     
     
  
 
 
	 00:11:55
     ◼ 
      
     ►  
     is getting soldered on the board, and hard drives 
     
     
  
 
 
	 00:11:58
     ◼ 
      
     ►  
     are getting soldered on the board. 
     
     
  
 
 
	 00:12:00
     ◼ 
      
     ►  
     But you don't carry around a Mac Pro. 
     
     
  
 
 
	 00:12:02
     ◼ 
      
     ►  
     You're right. 
     
     
  
 
 
	 00:12:02
     ◼ 
      
     ►  
     But what I'm driving at is everything about all the consumer grade Macs, even 
     
     
  
 
 
	 00:12:07
     ◼ 
      
     ►  
     the MacBook Pros, for the purpose of this conversation, 
     
     
  
 
 
	 00:12:11
     ◼ 
      
     ►  
     I'm classing that as consumer grade. 
     
     
  
 
 
	 00:12:13
     ◼ 
      
     ►  
     All of those are becoming more and more integrated, 
     
     
  
 
 
	 00:12:17
     ◼ 
      
     ►  
     to cite the overly used word. 
     
     
  
 
 
	 00:12:19
     ◼ 
      
     ►  
     And the Mac Pro is contrary to all of that. 
     
     
  
 
 
	 00:12:23
     ◼ 
      
     ►  
     Consumers don't want crap in their way. 
     
     
  
 
 
	 00:12:27
     ◼ 
      
     ►  
     That's the basic thing. 
     
     
  
 
 
	 00:12:29
     ◼ 
      
     ►  
     The story I was telling about my sister when I convinced her 
     
     
  
 
 
	 00:12:32
     ◼ 
      
     ►  
     to finally replace her. 
     
     
  
 
 
	 00:12:33
     ◼ 
      
     ►  
     She had a Sunflower iMac, another one 
     
     
  
 
 
	 00:12:35
     ◼ 
      
     ►  
     with a little stand thingy. 
     
     
  
 
 
	 00:12:36
     ◼ 
      
     ►  
     And she was all right with that one. 
     
     
  
 
 
	 00:12:38
     ◼ 
      
     ►  
     And then I convinced her to upgrade 
     
     
  
 
 
	 00:12:40
     ◼ 
      
     ►  
     to get the flat panel ones. 
     
     
  
 
 
	 00:12:42
     ◼ 
      
     ►  
     And she was-- her favorite thing about that computer 
     
     
  
 
 
	 00:12:45
     ◼ 
      
     ►  
     was that when we put it on our desk 
     
     
  
 
 
	 00:12:46
     ◼ 
      
     ►  
     and started to get it set up, she says, where's the computer? 
     
     
  
 
 
	 00:12:48
     ◼ 
      
     ►  
     And I said, that's it. 
     
     
  
 
 
	 00:12:48
     ◼ 
      
     ►  
     That's all there is. 
     
     
  
 
 
	 00:12:49
     ◼ 
      
     ►  
     And she's like, that's all there is? 
     
     
  
 
 
	 00:12:51
     ◼ 
      
     ►  
     That's great, because that's what I always wanted. 
     
     
  
 
 
	 00:12:52
     ◼ 
      
     ►  
     I just wanted the screen. 
     
     
  
 
 
	 00:12:54
     ◼ 
      
     ►  
     I don't want some other thing in my life 
     
     
  
 
 
	 00:12:56
     ◼ 
      
     ►  
     that gets in the way of me doing stuff. 
     
     
  
 
 
	 00:12:58
     ◼ 
      
     ►  
     They recognize that they need a screen, because you 
     
     
  
 
 
	 00:12:59
     ◼ 
      
     ►  
     need something to look at. 
     
     
  
 
 
	 00:13:00
     ◼ 
      
     ►  
     And you need a mouse, and you need a keyboard. 
     
     
  
 
 
	 00:13:02
     ◼ 
      
     ►  
     But do I need anything else? 
     
     
  
 
 
 
	 00:13:04
     ◼ 
      
     ►  
     And so that's why the iMac-- making the iMac go away, 
     
     
  
 
 
	 00:13:08
     ◼ 
      
     ►  
     consumers love that. 
     
     
  
 
 
	 00:13:09
     ◼ 
      
     ►  
     And the Mac Pro is the opposite of that, 
     
     
  
 
 
	 00:13:11
     ◼ 
      
     ►  
     because it's the opposite of going away. It's humongous, it's heavy, you can't even fit 
     
     
  
 
 
	 00:13:16
     ◼ 
      
     ►  
     it on a desk because it'll just dominate you. It's anti-consumer because consumers do not 
     
     
  
 
 
	 00:13:24
     ◼ 
      
     ►  
     want to see crap like that. Whereas if you're someone who needs a Mac Pro or someone who 
     
     
  
 
 
	 00:13:28
     ◼ 
      
     ►  
     wants it to play games or whatever, you are the type of person who is willing to accept 
     
     
  
 
 
	 00:13:32
     ◼ 
      
     ►  
     that intrusion into your life of this big space heater. 
     
     
  
 
 
	 00:13:36
     ◼ 
      
     ►  
     And so much of the Mac Pro commentary that's out there from tech blogs and writers and 
     
     
  
 
 
	 00:13:41
     ◼ 
      
     ►  
     stuff, so much of the commentary that focuses on, "I want it to get smaller, I want it 
     
     
  
 
 
	 00:13:46
     ◼ 
      
     ►  
     to get sleeker," that's from people who have never owned one. 
     
     
  
 
 
	 00:13:49
     ◼ 
      
     ►  
     And the people who own them usually love them and usually don't care how big it is because 
     
     
  
 
 
	 00:13:55
     ◼ 
      
     ►  
     it's on the floor. 
     
     
  
 
 
	 00:13:56
     ◼ 
      
     ►  
     It's out of sight. 
     
     
  
 
 
	 00:13:57
     ◼ 
      
     ►  
     You tuck it away under the desk and you don't really… 
     
     
  
 
 
	 00:14:00
     ◼ 
      
     ►  
     If my Mac Pro got 30% thinner, I wouldn't even notice. 
     
     
  
 
 
	 00:14:03
     ◼ 
      
     ►  
     I could stand for it. 
     
     
  
 
 
	 00:14:04
     ◼ 
      
     ►  
     I can see it. 
     
     
  
 
 
	 00:14:05
     ◼ 
      
     ►  
     Like, I don't see it because I want it to take up less room, but I'm like, you know 
     
     
  
 
 
 
	 00:14:09
     ◼ 
      
     ►  
     Once you ditch the space for two optical drives and you convert some of the storage area to 
     
     
  
 
 
	 00:14:15
     ◼ 
      
     ►  
     be taking SSDs instead of 3.5 inch disks, I'm like, at that point, maybe you're wasting 
     
     
  
 
 
	 00:14:21
     ◼ 
      
     ►  
     space and maybe you can slim it down. 
     
     
  
 
 
	 00:14:23
     ◼ 
      
     ►  
     And some of it is also like fashion. 
     
     
  
 
 
	 00:14:25
     ◼ 
      
     ►  
     Like I would be interested in seeing a new fashion iteration considering we've been with 
     
     
  
 
 
	 00:14:28
     ◼ 
      
     ►  
     this case for a long time. 
     
     
  
 
 
	 00:14:30
     ◼ 
      
     ►  
     But it's not like I'm saying glom it all to the back of the LCD because I don't want it 
     
     
  
 
 
	 00:14:33
     ◼ 
      
     ►  
     in my way. There's a dedicated spot on the floor where it goes. I could put something 
     
     
  
 
 
	 00:14:38
     ◼ 
      
     ►  
     slightly smaller there, but I would be fine if they kept it the same. At this point, we're 
     
     
  
 
 
	 00:14:43
     ◼ 
      
     ►  
     desperate. It's like bargaining. Please, just keep the same case. Just give us a new one 
     
     
  
 
 
	 00:14:48
     ◼ 
      
     ►  
     that's not crap. 
     
     
  
 
 
	 00:14:50
     ◼ 
      
     ►  
     And also, a lot of the people who make arguments about it or have theories about it or who 
     
     
  
 
 
	 00:14:54
     ◼ 
      
     ►  
     judge it unfairly don't realize how expensive Zeons are. So, they'll say, "Oh, this thing 
     
     
  
 
 
	 00:15:01
     ◼ 
      
     ►  
     us overpriced, it's like, well, actually… Well, I mean, it's overpriced, but it's 
     
     
  
 
 
	 00:15:05
     ◼ 
      
     ►  
     not Apple's fault. Intel is gouging on that price, you know. 
     
     
  
 
 
	 00:15:09
     ◼ 
      
     ►  
     Exactly. Like, if you look at any other workstation… But at this point, it is Apple's fault, 
     
     
  
 
 
	 00:15:14
     ◼ 
      
     ►  
     because they charge so much money for what is an ancient piece of crap computer at this 
     
     
  
 
 
	 00:15:18
     ◼ 
      
     ►  
     point. Now it's Apple's fault. Well, the funny thing is, Intel still charges 
     
     
  
 
 
	 00:15:22
     ◼ 
      
     ►  
     that much for these processors. I know, but add it up. Build your own Mac Pro. 
     
     
  
 
 
	 00:15:27
     ◼ 
      
     ►  
     "Okay, so Intel, let's pretend we buy the processors at retail price," which Apple 
     
     
  
 
 
	 00:15:31
     ◼ 
      
     ►  
     doesn't. And then, "Let's pretend we buy the RAM at retail price," which Apple doesn't. 
     
     
  
 
 
	 00:15:35
     ◼ 
      
     ►  
     Pretend you buy all the parts at retail, and you're like, "Boy, that case must cost $1,200 
     
     
  
 
 
	 00:15:38
     ◼ 
      
     ►  
     to make, I guess." It does not add up. 
     
     
  
 
 
	 00:15:42
     ◼ 
      
     ►  
     No, it doesn't add up. But it isn't as far off as a lot of people think. Especially the 
     
     
  
 
 
	 00:15:47
     ◼ 
      
     ►  
     add-ons, once you go to, "Okay, well, I want to bump it up to dual socket with 2.66 gigahertz," 
     
     
  
 
 
	 00:15:52
     ◼ 
      
     ►  
     then you look at the difference that costs, like, "$1,500 extra? What the hell?" And then 
     
     
  
 
 
	 00:15:55
     ◼ 
      
     ►  
     And you look, oh, actually, Intel charges $1,200 more for the CPUs. 
     
     
  
 
 
	 00:16:02
     ◼ 
      
     ►  
     I think it is such a beast, but if you did anything to really slim it down, like if you 
     
     
  
 
 
	 00:16:12
     ◼ 
      
     ►  
     eliminated a few drive bays, or if you made it single socket only, which would save a 
     
     
  
 
 
	 00:16:17
     ◼ 
      
     ►  
     lot of space on the bottom, then you are limiting who will buy it. 
     
     
  
 
 
	 00:16:23
     ◼ 
      
     ►  
     you are taking people who used to buy Mac Pros and you are really significantly reducing 
     
     
  
 
 
	 00:16:28
     ◼ 
      
     ►  
     their motivation to buy a Mac Pro again. 
     
     
  
 
 
	 00:16:31
     ◼ 
      
     ►  
     And that's why I just think, like, I do hope that Apple keeps it around. 
     
     
  
 
 
	 00:16:35
     ◼ 
      
     ►  
     I do hope that the next revision has some kind of solution for Retina on the desktop. 
     
     
  
 
 
	 00:16:41
     ◼ 
      
     ►  
     Hopefully they will release some kind of Retina Cinema Display and then there will be some 
     
     
  
 
 
	 00:16:46
     ◼ 
      
     ►  
     kind of insane video card in the new Mac Pro that can drive it for some insane price premium, 
     
     
  
 
 
 
	 00:16:51
     ◼ 
      
     ►  
     I'm hoping that's where they're going with this. 
     
     
  
 
 
	 00:16:53
     ◼ 
      
     ►  
     - It'll be the Apple 15-inch Redness Cinema Display. 
     
     
  
 
 
 
 
	 00:16:58
     ◼ 
      
     ►  
     - It's just what you wanted, right? 
     
     
  
 
 
 
	 00:17:00
     ◼ 
      
     ►  
     - It's like traveling back in time. 
     
     
  
 
 
	 00:17:02
     ◼ 
      
     ►  
     - I know, the thing that I just, 
     
     
  
 
 
	 00:17:03
     ◼ 
      
     ►  
     I can't reconcile it in my head 
     
     
  
 
 
	 00:17:05
     ◼ 
      
     ►  
     is that to me as a non-Pro Mac or a non-Mac Pro user, 
     
     
  
 
 
	 00:17:10
     ◼ 
      
     ►  
     I was gonna say non-Pro Mac user, 
     
     
  
 
 
	 00:17:12
     ◼ 
      
     ►  
     because I'm, the laptop is sufficient for me, 
     
     
  
 
 
	 00:17:16
     ◼ 
      
     ►  
     it seems so obvious to me that the Mac Pro 
     
     
  
 
 
	 00:17:19
     ◼ 
      
     ►  
     just cannot continue in any even vaguely similar form to the way it is now, because everything 
     
     
  
 
 
	 00:17:25
     ◼ 
      
     ►  
     Apple is doing is going in the other direction. I know I just said that, but it's just the 
     
     
  
 
 
	 00:17:29
     ◼ 
      
     ►  
     more I hear you guys talking... 
     
     
  
 
 
	 00:17:30
     ◼ 
      
     ►  
     Well, there's two sides to that, though. First of all, it is a very high margin product. 
     
     
  
 
 
	 00:17:35
     ◼ 
      
     ►  
     They don't make a whole lot of them, but it is high margin. And they could even raise 
     
     
  
 
 
	 00:17:39
     ◼ 
      
     ►  
     the price premium by another $500 per case, and we'd all still buy them. Right? Most Mac 
     
     
  
 
 
	 00:17:44
     ◼ 
      
     ►  
     would continue to buy them even if the price premium was even bigger. 
     
     
  
 
 
	 00:17:48
     ◼ 
      
     ►  
     So the profitability angle of them I think is probably covered. I don't think 
     
     
  
 
 
	 00:17:52
     ◼ 
      
     ►  
     if they treated it as a unit of the company, I don't think it would be losing money. 
     
     
  
 
 
 
	 00:18:00
     ◼ 
      
     ►  
     a lot of people will say, "Oh well, it doesn't sell very many, they should just cut it out." 
     
     
  
 
 
	 00:18:04
     ◼ 
      
     ►  
     Well, they don't sell very many Macs relative to iPhones and iPads, but 
     
     
  
 
 
	 00:18:08
     ◼ 
      
     ►  
     no one's saying they should stop selling Macs. 
     
     
  
 
 
	 00:18:12
     ◼ 
      
     ►  
     Yeah, most people don't say that though. 
     
     
  
 
 
	 00:18:15
     ◼ 
      
     ►  
     People tend to develop these rules in their head 
     
     
  
 
 
	 00:18:21
     ◼ 
      
     ►  
     about how Apple works and how they make decisions. 
     
     
  
 
 
	 00:18:26
     ◼ 
      
     ►  
     I listed a whole bunch of these 
     
     
  
 
 
	 00:18:27
     ◼ 
      
     ►  
     when I wrote about the iPhone Plus speculation. 
     
     
  
 
 
	 00:18:29
     ◼ 
      
     ►  
     So many people are like, 
     
     
  
 
 
	 00:18:30
     ◼ 
      
     ►  
     "Oh, they're not gonna add another SKU 
     
     
  
 
 
	 00:18:32
     ◼ 
      
     ►  
     "'cause that's not the way they do things." 
     
     
  
 
 
	 00:18:33
     ◼ 
      
     ►  
     No, that is how they do things when it makes sense. 
     
     
  
 
 
	 00:18:37
     ◼ 
      
     ►  
     - It's the iPhone math mark, I believe. 
     
     
  
 
 
	 00:18:38
     ◼ 
      
     ►  
     - Yes. (laughs) 
     
     
  
 
 
	 00:18:40
     ◼ 
      
     ►  
     So yeah, people have all these theories, 
     
     
  
 
 
	 00:18:43
     ◼ 
      
     ►  
     they're like armchair Apple commentators, 
     
     
  
 
 
	 00:18:45
     ◼ 
      
     ►  
     which yes, granted we all are, 
     
     
  
 
 
	 00:18:46
     ◼ 
      
     ►  
     but the armchair commentators will come up with some rule 
     
     
  
 
 
	 00:18:51
     ◼ 
      
     ►  
     that Apple will always follow. 
     
     
  
 
 
	 00:18:53
     ◼ 
      
     ►  
     And in practice, there are very few of those rules. 
     
     
  
 
 
	 00:18:55
     ◼ 
      
     ►  
     Apple breaks its own rules all the time. 
     
     
  
 
 
	 00:18:57
     ◼ 
      
     ►  
     And so many decisions Apple makes are inconsistent 
     
     
  
 
 
	 00:19:02
     ◼ 
      
     ►  
     with previous decisions they've made 
     
     
  
 
 
	 00:19:03
     ◼ 
      
     ►  
     and future decisions they will make, 
     
     
  
 
 
	 00:19:05
     ◼ 
      
     ►  
     that you can't say, oh, well, 
     
     
  
 
 
	 00:19:07
     ◼ 
      
     ►  
     they're gonna get rid of this line 
     
     
  
 
 
	 00:19:09
     ◼ 
      
     ►  
     because they hardly sell any of them. 
     
     
  
 
 
	 00:19:12
     ◼ 
      
     ►  
     That doesn't necessarily mean they should get rid of something or that they will. 
     
     
  
 
 
	 00:19:16
     ◼ 
      
     ►  
     Speaking of the iPhone Plus, we should start thinking now of how Apple is going to—because 
     
     
  
 
 
	 00:19:21
     ◼ 
      
     ►  
     we've seen enough of these presentations already—what does Apple put up on the slides 
     
     
  
 
 
	 00:19:25
     ◼ 
      
     ►  
     when they introduce the iPhone with the bigger screen? 
     
     
  
 
 
	 00:19:30
     ◼ 
      
     ►  
     How do you sell that? 
     
     
  
 
 
	 00:19:31
     ◼ 
      
     ►  
     I would say they're going to put it right between the iPhone and the iPad. 
     
     
  
 
 
	 00:19:35
     ◼ 
      
     ►  
     When they introduced the iPad and they had the iPhone on one side and the laptop on the 
     
     
  
 
 
	 00:19:39
     ◼ 
      
     ►  
     the other, and like, what can go in between these things? 
     
     
  
 
 
	 00:19:41
     ◼ 
      
     ►  
     I think they're going to completely ignore 
     
     
  
 
 
	 00:19:42
     ◼ 
      
     ►  
     the competition, which of course is all at that size now, 
     
     
  
 
 
	 00:19:45
     ◼ 
      
     ►  
     and just say, here's an iPhone, here's an iPad. 
     
     
  
 
 
	 00:19:50
     ◼ 
      
     ►  
     We think there's room for something in the mail. 
     
     
  
 
 
	 00:19:52
     ◼ 
      
     ►  
     Well, see, the way Steve Jobs would have done it 
     
     
  
 
 
	 00:19:54
     ◼ 
      
     ►  
     is his jerky way to do it would be kind of like, 
     
     
  
 
 
	 00:19:57
     ◼ 
      
     ►  
     we made the iPhone, and we thought 
     
     
  
 
 
	 00:19:59
     ◼ 
      
     ►  
     the size was just perfect. 
     
     
  
 
 
	 00:20:01
     ◼ 
      
     ►  
     And we decided that-- a couple of customers 
     
     
  
 
 
	 00:20:06
     ◼ 
      
     ►  
     said they would like a little bit bigger, 
     
     
  
 
 
	 00:20:08
     ◼ 
      
     ►  
     we made it a little bit taller. 
     
     
  
 
 
	 00:20:10
     ◼ 
      
     ►  
     And if you want a little bit bigger screen, there you go. 
     
     
  
 
 
	 00:20:13
     ◼ 
      
     ►  
     And then some people said they still wanted it to be bigger. 
     
     
  
 
 
	 00:20:16
     ◼ 
      
     ►  
     And so every time it's like, well, what we made was perfect, 
     
     
  
 
 
	 00:20:19
     ◼ 
      
     ►  
     but you people just kept asking for some other thing. 
     
     
  
 
 
	 00:20:22
     ◼ 
      
     ►  
     So we made it taller. 
     
     
  
 
 
	 00:20:24
     ◼ 
      
     ►  
     That wasn't enough for you. 
     
     
  
 
 
 
	 00:20:26
     ◼ 
      
     ►  
     Here's-- kind of in a jerky kind of way. 
     
     
  
 
 
	 00:20:29
     ◼ 
      
     ►  
     That's one way we'd go with it. 
     
     
  
 
 
	 00:20:30
     ◼ 
      
     ►  
     The other way to go with it is just 
     
     
  
 
 
	 00:20:31
     ◼ 
      
     ►  
     pretend you'd never said all those things in the past 
     
     
  
 
 
	 00:20:33
     ◼ 
      
     ►  
     about the iPhone size being appropriately sized. 
     
     
  
 
 
	 00:20:35
     ◼ 
      
     ►  
     And just say, here's the new iPhone. 
     
     
  
 
 
	 00:20:37
     ◼ 
      
     ►  
     It's got a beautiful display. 
     
     
  
 
 
	 00:20:38
     ◼ 
      
     ►  
     It's 4.5 inches or whatever the heck it is. 
     
     
  
 
 
	 00:20:41
     ◼ 
      
     ►  
     We've always been at war with East Asia. 
     
     
  
 
 
	 00:20:44
     ◼ 
      
     ►  
     And no, don't even say anything about it. 
     
     
  
 
 
	 00:20:45
     ◼ 
      
     ►  
     And it's great. 
     
     
  
 
 
	 00:20:47
     ◼ 
      
     ►  
     In your own presentation, you're not 
     
     
  
 
 
	 00:20:49
     ◼ 
      
     ►  
     obliged to address the fact that the previous phones had 
     
     
  
 
 
	 00:20:51
     ◼ 
      
     ►  
     smaller screens. 
     
     
  
 
 
	 00:20:52
     ◼ 
      
     ►  
     Yeah, and that's how they're going to do it. 
     
     
  
 
 
	 00:20:54
     ◼ 
      
     ►  
     If this thing's real-- 
     
     
  
 
 
	 00:20:55
     ◼ 
      
     ►  
     You just say, it's a new phone, and it's great, 
     
     
  
 
 
	 00:20:57
     ◼ 
      
     ►  
     and here it is. 
     
     
  
 
 
	 00:20:58
     ◼ 
      
     ►  
     Look at this beautiful display. 
     
     
  
 
 
	 00:21:01
     ◼ 
      
     ►  
     And they'll just give you the measurement of the display. 
     
     
  
 
 
	 00:21:03
     ◼ 
      
     ►  
     They don't need to mention that that measurement is 
     
     
  
 
 
	 00:21:04
     ◼ 
      
     ►  
     larger than the other one. 
     
     
  
 
 
	 00:21:05
     ◼ 
      
     ►  
     course it'll be the same rez, you know, at all nine yards. If they continue to sell the 
     
     
  
 
 
	 00:21:10
     ◼ 
      
     ►  
     old size as well, then they might have to mention it, but I don't know. 
     
     
  
 
 
	 00:21:14
     ◼ 
      
     ►  
     Oh, I think they'd sell both. Because, you know, that's... Like, with the iPhone 5 versus 
     
     
  
 
 
	 00:21:19
     ◼ 
      
     ►  
     the 4s, like, they're not going to keep both of those sizes around forever. You know, once 
     
     
  
 
 
	 00:21:24
     ◼ 
      
     ►  
     the 4s is out of the cycle of being the cheap phone, you know, they're not going to keep 
     
     
  
 
 
	 00:21:28
     ◼ 
      
     ►  
     size going somehow. But I think the iPhone 5 size, 
     
     
  
 
 
	 00:21:32
     ◼ 
      
     ►  
     that will, like the primary iPhone size 
     
     
  
 
 
	 00:21:36
     ◼ 
      
     ►  
     or one of the primary iPhone sizes will always be that ballpark. 
     
     
  
 
 
	 00:21:40
     ◼ 
      
     ►  
     And then if they have a bigger one, it'll always be that ballpark also. 
     
     
  
 
 
	 00:21:44
     ◼ 
      
     ►  
     Because, you know, the 4S to the 5 is such a small 
     
     
  
 
 
	 00:21:48
     ◼ 
      
     ►  
     difference in the outside dimensions of the phone, and the 5 is so much 
     
     
  
 
 
	 00:21:52
     ◼ 
      
     ►  
     thinner and lighter. I mean, a lot of people with the 4S look at the 5 and they're 
     
     
  
 
 
	 00:21:56
     ◼ 
      
     ►  
     angry because they bought the 4s, not the 5, 
     
     
  
 
 
	 00:21:59
     ◼ 
      
     ►  
     or they're angry that the upgrade would be too expensive 
     
     
  
 
 
	 00:22:01
     ◼ 
      
     ►  
     or something. 
     
     
  
 
 
	 00:22:02
     ◼ 
      
     ►  
     And they want to justify keeping the 4s and not getting the 5. 
     
     
  
 
 
	 00:22:05
     ◼ 
      
     ►  
     So they're like, the 5 sucks. 
     
     
  
 
 
	 00:22:06
     ◼ 
      
     ►  
     I don't want something that big. 
     
     
  
 
 
	 00:22:07
     ◼ 
      
     ►  
     I hope Apple keeps these devices around forever. 
     
     
  
 
 
	 00:22:09
     ◼ 
      
     ►  
     Most people, though, who have owned the previous phones, who 
     
     
  
 
 
	 00:22:13
     ◼ 
      
     ►  
     have ever picked up and held a 5 are like, oh my god, 
     
     
  
 
 
	 00:22:16
     ◼ 
      
     ►  
     I can't believe how light this is. 
     
     
  
 
 
	 00:22:18
     ◼ 
      
     ►  
     I want this. 
     
     
  
 
 
	 00:22:18
     ◼ 
      
     ►  
     And even if they don't immediately go and upgrade, 
     
     
  
 
 
	 00:22:20
     ◼ 
      
     ►  
     because not everybody can do that, 
     
     
  
 
 
	 00:22:22
     ◼ 
      
     ►  
     most people recognize that the 5 overall is better. 
     
     
  
 
 
	 00:22:25
     ◼ 
      
     ►  
     and that if the 4s went away and the 5 was the smallest iPhone you could buy, very few 
     
     
  
 
 
	 00:22:32
     ◼ 
      
     ►  
     people would say, "I want something smaller." It's pretty great. So I see them keeping that 
     
     
  
 
 
	 00:22:40
     ◼ 
      
     ►  
     around. But if they only made the big one, I think you'd have a lot of people demanding 
     
     
  
 
 
	 00:22:44
     ◼ 
      
     ►  
     something smaller. 
     
     
  
 
 
	 00:22:46
     ◼ 
      
     ►  
     After reading Andy's, have you been reading Andy's Android conversion stories? 
     
     
  
 
 
	 00:22:49
     ◼ 
      
     ►  
     I haven't read it yet, no. But I've seen some quotes and it does sound pretty compelling. 
     
     
  
 
 
	 00:22:54
     ◼ 
      
     ►  
     So one of the things he brought up, which I hadn't thought about too much before, is 
     
     
  
 
 
	 00:22:59
     ◼ 
      
     ►  
     I've seen Andy's-- Andy's always got different phones that he's testing, right? 
     
     
  
 
 
	 00:23:02
     ◼ 
      
     ►  
     And since they're not always Apple phones, they're bigger phones. 
     
     
  
 
 
	 00:23:07
     ◼ 
      
     ►  
     And one of the things I hadn't noticed, because I'm not actually using them and just sort 
     
     
  
 
 
	 00:23:09
     ◼ 
      
     ►  
     of playing with them, fiddling around that he brought up in the thing, is not so much 
     
     
  
 
 
	 00:23:11
     ◼ 
      
     ►  
     that like, oh, the bigger screen is nice, which is true. 
     
     
  
 
 
	 00:23:14
     ◼ 
      
     ►  
     And we know all the people who like bigger screens, people who have vision problems, 
     
     
  
 
 
	 00:23:17
     ◼ 
      
     ►  
     people who just like it bigger. 
     
     
  
 
 
	 00:23:19
     ◼ 
      
     ►  
     But that Android in particular does something with larger screens that iOS is probably going 
     
     
  
 
 
	 00:23:23
     ◼ 
      
     ►  
     to have slightly more difficulty doing, which is it uses the larger screen to actually show 
     
     
  
 
 
	 00:23:27
     ◼ 
      
     ►  
     more information. So the phones with larger screens have larger resolutions. So the apps 
     
     
  
 
 
	 00:23:34
     ◼ 
      
     ►  
     are designed to show more stuff, whereas we're all assuming a bigger iPhone is just simply 
     
     
  
 
 
	 00:23:40
     ◼ 
      
     ►  
     going to be, all right, same res, but just bigger, which gives you half of what a big 
     
     
  
 
 
	 00:23:43
     ◼ 
      
     ►  
     new screen can do. But Andy's saying what made him go over is not so much just that 
     
     
  
 
 
	 00:23:47
     ◼ 
      
     ►  
     it's physically larger because the eyesight is fine, right, but that apps on that phone 
     
     
  
 
 
	 00:23:52
     ◼ 
      
     ►  
     for that bigger screen showed more stuff and were designed to have more stuff on the screen. 
     
     
  
 
 
	 00:23:58
     ◼ 
      
     ►  
     Not so many more items in the list view, but just more context in the side and just more 
     
     
  
 
 
	 00:24:02
     ◼ 
      
     ►  
     room for information. It wasn't simply the same image you'd see on a smaller Android 
     
     
  
 
 
	 00:24:06
     ◼ 
      
     ►  
     screen made larger because your vision is bad. So that half of the equation, I'm not 
     
     
  
 
 
	 00:24:12
     ◼ 
      
     ►  
     sure what Apple can do there because all of its user interfaces on all of the iPhone apps 
     
     
  
 
 
	 00:24:16
     ◼ 
      
     ►  
     are designed for a thumb reaching around the screen. And by making it bigger, yeah, it's 
     
     
  
 
 
	 00:24:21
     ◼ 
      
     ►  
     easier to see, but you don't get to take advantage of that extra room because you're keeping 
     
     
  
 
 
	 00:24:24
     ◼ 
      
     ►  
     the res the same to keep the developers from freaking out. 
     
     
  
 
 
	 00:24:31
     ◼ 
      
     ►  
     With iOS 6, the issue is auto layout, which is way more capable and mature and flexible 
     
     
  
 
 
	 00:24:36
     ◼ 
      
     ►  
     than the old auto sizing system they had in place. So now, the frameworks are getting 
     
     
  
 
 
	 00:24:43
     ◼ 
      
     ►  
     in place for iOS apps to be more flexible sizes. Android has always had that because 
     
     
  
 
 
	 00:24:50
     ◼ 
      
     ►  
     Android phones have always been a wide variety of sizes. So Android is, like, all the apps 
     
     
  
 
 
	 00:24:56
     ◼ 
      
     ►  
     are designed, at least the good ones, are designed to be pretty flexible with the size 
     
     
  
 
 
	 00:25:02
     ◼ 
      
     ►  
     that they're willing to render at and will work at, just because they've always had to. 
     
     
  
 
 
	 00:25:06
     ◼ 
      
     ►  
     So that is definitely one advantage. But I wonder how Apple will do this in the future. 
     
     
  
 
 
	 00:25:11
     ◼ 
      
     ►  
     laying the groundwork with auto layout and by having the iPhone 4 and the 5 be these 
     
     
  
 
 
	 00:25:17
     ◼ 
      
     ►  
     two different sizes, they're laying the groundwork for a future where we can more easily support 
     
     
  
 
 
	 00:25:24
     ◼ 
      
     ►  
     more sizes and iOS developers expect that and do that. But it does add so much complexity 
     
     
  
 
 
	 00:25:30
     ◼ 
      
     ►  
     and it is so much harder to design apps that way that I wonder if they're ever going to 
     
     
  
 
 
	 00:25:34
     ◼ 
      
     ►  
     pull that trigger and make things that are a wider variety of sizes. 
     
     
  
 
 
	 00:25:40
     ◼ 
      
     ►  
     I think they'll be forced to eventually. 
     
     
  
 
 
	 00:25:42
     ◼ 
      
     ►  
     And I think the way they'll get away with it-- 
     
     
  
 
 
	 00:25:43
     ◼ 
      
     ►  
     because the stumbling block is not so much going to be the apps. 
     
     
  
 
 
	 00:25:45
     ◼ 
      
     ►  
     Because assuming everyone gets on the Auto Layout train, 
     
     
  
 
 
	 00:25:48
     ◼ 
      
     ►  
     and everyone's had a trial run with making their apps taller, 
     
     
  
 
 
	 00:25:51
     ◼ 
      
     ►  
     which you don't necessarily need to adopt Auto Layout to do. 
     
     
  
 
 
	 00:25:53
     ◼ 
      
     ►  
     It's pretty easy to do. 
     
     
  
 
 
	 00:25:55
     ◼ 
      
     ►  
     But the sticking block is always games. 
     
     
  
 
 
	 00:25:57
     ◼ 
      
     ►  
     And what I think they're going to do with games-- 
     
     
  
 
 
	 00:25:59
     ◼ 
      
     ►  
     things designed for a fixed screen sky. 
     
     
  
 
 
	 00:26:01
     ◼ 
      
     ►  
     Because they're not using any real UI. 
     
     
  
 
 
	 00:26:02
     ◼ 
      
     ►  
     It's just a big OpenGL view. 
     
     
  
 
 
	 00:26:05
     ◼ 
      
     ►  
     What I think they're going to do there with games 
     
     
  
 
 
	 00:26:08
     ◼ 
      
     ►  
     is the same thing they did on the retina MacBook Pros, which 
     
     
  
 
 
 
	 00:26:13
     ◼ 
      
     ►  
     and they did this intent. 
     
     
  
 
 
	 00:26:14
     ◼ 
      
     ►  
     There was no reason they were forced 
     
     
  
 
 
	 00:26:15
     ◼ 
      
     ►  
     to do this on the MacBook Pros, but they did. 
     
     
  
 
 
	 00:26:17
     ◼ 
      
     ►  
     They said, OK, well, so you have native retina size, 
     
     
  
 
 
	 00:26:19
     ◼ 
      
     ►  
     but we also have a size that's even bigger than that, 
     
     
  
 
 
	 00:26:21
     ◼ 
      
     ►  
     and we'll just scale your whole freaking screen 
     
     
  
 
 
	 00:26:23
     ◼ 
      
     ►  
     and put it in retina. 
     
     
  
 
 
	 00:26:24
     ◼ 
      
     ►  
     And you're like, oh, that's going to look horrible in LCD 
     
     
  
 
 
	 00:26:26
     ◼ 
      
     ►  
     at non-native res, but it turns out 
     
     
  
 
 
	 00:26:28
     ◼ 
      
     ►  
     if you make the pixels small enough, 
     
     
  
 
 
	 00:26:29
     ◼ 
      
     ►  
     it is not as horrible as you might think. 
     
     
  
 
 
	 00:26:32
     ◼ 
      
     ►  
     So what do you do with the games that don't update 
     
     
  
 
 
	 00:26:35
     ◼ 
      
     ►  
     on your bigger screen? 
     
     
  
 
 
	 00:26:36
     ◼ 
      
     ►  
     You just scale them. 
     
     
  
 
 
	 00:26:38
     ◼ 
      
     ►  
     and you would think it would look hideous and it doesn't look as good as it could, but 
     
     
  
 
 
	 00:26:42
     ◼ 
      
     ►  
     because the pixels are so small, you are not incredibly sore that, you know, like, as long 
     
     
  
 
 
	 00:26:47
     ◼ 
      
     ►  
     as you keep the aspect ratio the same, "Oh, this game wasn't updated for the iPhone 7, 
     
     
  
 
 
	 00:26:51
     ◼ 
      
     ►  
     so it doesn't show any new information. All it does is scale the one that used to run 
     
     
  
 
 
	 00:26:55
     ◼ 
      
     ►  
     on the iPhone 6. You know, it scales it horizontally and vertically in proportion, and now it fills 
     
     
  
 
 
	 00:27:00
     ◼ 
      
     ►  
     my screen, and maybe that game guy never has to go back in port, and going forward, he 
     
     
  
 
 
	 00:27:05
     ◼ 
      
     ►  
     can make games that work at all the different ress natively, but he never has to backport 
     
     
  
 
 
	 00:27:09
     ◼ 
      
     ►  
     that. And then everyone else just deals with the auto layout issues and tries to do something 
     
     
  
 
 
 
	 00:27:14
     ◼ 
      
     ►  
     One of the problems with apps, though, is that designers have been accustomed to—before 
     
     
  
 
 
	 00:27:19
     ◼ 
      
     ►  
     the iPhone 5 came out—designers were really accustomed to having pixel-perfect control 
     
     
  
 
 
	 00:27:23
     ◼ 
      
     ►  
     over the whole screen, knowing that every iPhone/iPod Touch app would always have a 
     
     
  
 
 
	 00:27:30
     ◼ 
      
     ►  
     screen that's exactly this shape, exactly this physical size, exactly this resolution, 
     
     
  
 
 
	 00:27:34
     ◼ 
      
     ►  
     So they could design the entire app as one bitmap, basically. 
     
     
  
 
 
	 00:27:39
     ◼ 
      
     ►  
     And web developers used to make web pages out 
     
     
  
 
 
	 00:27:42
     ◼ 
      
     ►  
     of HTML tables with sliced up images, but the world moves on, 
     
     
  
 
 
 
 
	 00:27:45
     ◼ 
      
     ►  
     And so now with the iPhone 5, they've 
     
     
  
 
 
	 00:27:47
     ◼ 
      
     ►  
     broken that for a lot of apps and games. 
     
     
  
 
 
	 00:27:51
     ◼ 
      
     ►  
     This does affect games, too, with UI. 
     
     
  
 
 
	 00:27:54
     ◼ 
      
     ►  
     Not necessarily the main viewport of the game 
     
     
  
 
 
	 00:27:59
     ◼ 
      
     ►  
     into the engine can be different sizes in most cases 
     
     
  
 
 
	 00:28:03
     ◼ 
      
     ►  
     without too much work. 
     
     
  
 
 
	 00:28:04
     ◼ 
      
     ►  
     but the UI usually can't. 
     
     
  
 
 
	 00:28:07
     ◼ 
      
     ►  
     So that is challenging for games and apps alike. 
     
     
  
 
 
	 00:28:12
     ◼ 
      
     ►  
     But once they've gotten people accustomed to it 
     
     
  
 
 
	 00:28:15
     ◼ 
      
     ►  
     with the iPhone 5, maybe now it'll be easier 
     
     
  
 
 
	 00:28:18
     ◼ 
      
     ►  
     and people will start adapting. 
     
     
  
 
 
	 00:28:20
     ◼ 
      
     ►  
     Also, stylistically, what's in fashion right now in design 
     
     
  
 
 
	 00:28:26
     ◼ 
      
     ►  
     is moving out of those extremely detailed 
     
     
  
 
 
	 00:28:29
     ◼ 
      
     ►  
     pixel perfect textures and into flat design, 
     
     
  
 
 
	 00:28:33
     ◼ 
      
     ►  
     which scales into different aspect ratios way easier. 
     
     
  
 
 
	 00:28:38
     ◼ 
      
     ►  
     - That fad will probably be over by the time 
     
     
  
 
 
	 00:28:39
     ◼ 
      
     ►  
     they change the screen size. 
     
     
  
 
 
	 00:28:40
     ◼ 
      
     ►  
     But we'll cycle back again, 
     
     
  
 
 
	 00:28:41
     ◼ 
      
     ►  
     and we'll be back to making everything look like 
     
     
  
 
 
	 00:28:43
     ◼ 
      
     ►  
     it's made with wood. - Bell bottoms. 
     
     
  
 
 
 
	 00:28:46
     ◼ 
      
     ►  
     Now the thing that, 
     
     
  
 
 
	 00:28:48
     ◼ 
      
     ►  
     where I'm not on the same thought train that you guys are, 
     
     
  
 
 
	 00:28:52
     ◼ 
      
     ►  
     is everyone I've ever spoken to, 
     
     
  
 
 
	 00:28:55
     ◼ 
      
     ►  
     which to be fair is a very small sample size, 
     
     
  
 
 
	 00:28:57
     ◼ 
      
     ►  
     but everyone I've ever spoken to who has tried auto layout 
     
     
  
 
 
	 00:29:00
     ◼ 
      
     ►  
     has not had good things to say. 
     
     
  
 
 
	 00:29:01
     ◼ 
      
     ►  
     And I think, was it Brent Simmons 
     
     
  
 
 
	 00:29:03
     ◼ 
      
     ►  
     just posted something saying that-- 
     
     
  
 
 
	 00:29:04
     ◼ 
      
     ►  
     Yeah, I think it's not Auto Layout that's bad. 
     
     
  
 
 
	 00:29:06
     ◼ 
      
     ►  
     It's Auto Layout plus IB. 
     
     
  
 
 
	 00:29:07
     ◼ 
      
     ►  
     I totally agree with what Brett said, 
     
     
  
 
 
	 00:29:08
     ◼ 
      
     ►  
     and I've seen that in action with people 
     
     
  
 
 
	 00:29:10
     ◼ 
      
     ►  
     trying to do stuff with Auto Layout. 
     
     
  
 
 
	 00:29:12
     ◼ 
      
     ►  
     I still don't use Auto Layout because I can't figure out 
     
     
  
 
 
	 00:29:13
     ◼ 
      
     ►  
     how it works in interface builder. 
     
     
  
 
 
	 00:29:15
     ◼ 
      
     ►  
     So I just don't use it. 
     
     
  
 
 
	 00:29:16
     ◼ 
      
     ►  
     I just use the old system because it's 
     
     
  
 
 
	 00:29:17
     ◼ 
      
     ►  
     good enough for my needs. 
     
     
  
 
 
	 00:29:20
     ◼ 
      
     ►  
     So and I guess maybe the answer is 
     
     
  
 
 
	 00:29:22
     ◼ 
      
     ►  
     that we use the-- what is it? 
     
     
  
 
 
	 00:29:23
     ◼ 
      
     ►  
     Visual format language or whatever? 
     
     
  
 
 
	 00:29:24
     ◼ 
      
     ►  
     We all start drawing ASCII art. 
     
     
  
 
 
	 00:29:26
     ◼ 
      
     ►  
     Well, I think it's a bit of a learning curve. 
     
     
  
 
 
	 00:29:28
     ◼ 
      
     ►  
     And maybe you bail on that learning curve 
     
     
  
 
 
	 00:29:30
     ◼ 
      
     ►  
     if you know the old system well enough 
     
     
  
 
 
	 00:29:31
     ◼ 
      
     ►  
     it's not worth it for you to climb it. 
     
     
  
 
 
	 00:29:33
     ◼ 
      
     ►  
     But what Brian said is the way it has to be. 
     
     
  
 
 
	 00:29:36
     ◼ 
      
     ►  
     When you lay something out with a GUI tool, 
     
     
  
 
 
	 00:29:39
     ◼ 
      
     ►  
     auto layout is not going to leave 
     
     
  
 
 
	 00:29:42
     ◼ 
      
     ►  
     an open-ended question. 
     
     
  
 
 
	 00:29:45
     ◼ 
      
     ►  
     You have to have-- it has to behave in a certain way. 
     
     
  
 
 
	 00:29:47
     ◼ 
      
     ►  
     It has to be deterministic. 
     
     
  
 
 
	 00:29:48
     ◼ 
      
     ►  
     So it's going to add the missing constraint that you have not 
     
     
  
 
 
	 00:29:50
     ◼ 
      
     ►  
     yet specified. 
     
     
  
 
 
	 00:29:51
     ◼ 
      
     ►  
     And if you don't know what all those implicit constraints 
     
     
  
 
 
	 00:29:53
     ◼ 
      
     ►  
     that it's adding for you are, you're like, well, 
     
     
  
 
 
	 00:29:55
     ◼ 
      
     ►  
     I didn't add that constraint. 
     
     
  
 
 
	 00:29:56
     ◼ 
      
     ►  
     It's like, well, you need something there 
     
     
  
 
 
	 00:29:58
     ◼ 
      
     ►  
     to balance the equation so the thing knows 
     
     
  
 
 
	 00:29:59
     ◼ 
      
     ►  
     what it's supposed to do when you resize, right? 
     
     
  
 
 
	 00:30:02
     ◼ 
      
     ►  
     And that can be frustrating. 
     
     
  
 
 
	 00:30:03
     ◼ 
      
     ►  
     But I think if you really, really knew auto layout, it would be obvious to you what implicit 
     
     
  
 
 
	 00:30:09
     ◼ 
      
     ►  
     constraints Interface Builder is adding. 
     
     
  
 
 
	 00:30:12
     ◼ 
      
     ►  
     And you wouldn't be surprised by when you lay something out with Auto Layout Interface 
     
     
  
 
 
	 00:30:16
     ◼ 
      
     ►  
     Builder, add one constraint, and see how it behaves. 
     
     
  
 
 
	 00:30:19
     ◼ 
      
     ►  
     Because you'd know what all the other ones would have to be to fill that in. 
     
     
  
 
 
	 00:30:21
     ◼ 
      
     ►  
     Like, I mean, there's still room for variation in there that IB could be adding things that 
     
     
  
 
 
	 00:30:25
     ◼ 
      
     ►  
     you don't think should-- it should close the equation in a different way or whatever. 
     
     
  
 
 
	 00:30:28
     ◼ 
      
     ►  
     But I think it's a solvable problem, 
     
     
  
 
 
	 00:30:33
     ◼ 
      
     ►  
     and Apple will iterate on it until they get something 
     
     
  
 
 
	 00:30:35
     ◼ 
      
     ►  
     that works reasonably well. 
     
     
  
 
 
	 00:30:37
     ◼ 
      
     ►  
     Also, it's kind of a chicken and egg thing. 
     
     
  
 
 
	 00:30:39
     ◼ 
      
     ►  
     Right now, most apps are able to adapt to the iPhone 5 
     
     
  
 
 
	 00:30:43
     ◼ 
      
     ►  
     without significant changes because it just 
     
     
  
 
 
	 00:30:46
     ◼ 
      
     ►  
     stretched vertically. 
     
     
  
 
 
	 00:30:47
     ◼ 
      
     ►  
     And any app that has a scrollable, 
     
     
  
 
 
	 00:30:50
     ◼ 
      
     ►  
     like a vertically scrollable content area in the middle, 
     
     
  
 
 
	 00:30:52
     ◼ 
      
     ►  
     any kind of table view or list app, 
     
     
  
 
 
	 00:30:55
     ◼ 
      
     ►  
     that was a really easy transition 
     
     
  
 
 
	 00:30:56
     ◼ 
      
     ►  
     for most of these apps to make. 
     
     
  
 
 
	 00:30:58
     ◼ 
      
     ►  
     So it wasn't that painful to adapt to the iPhone 5. 
     
     
  
 
 
	 00:31:03
     ◼ 
      
     ►  
     If they would add a whole new resolution that 
     
     
  
 
 
	 00:31:06
     ◼ 
      
     ►  
     was wider and taller, that was different in both dimensions, 
     
     
  
 
 
	 00:31:10
     ◼ 
      
     ►  
     even if it's a different aspect ratio, 
     
     
  
 
 
	 00:31:12
     ◼ 
      
     ►  
     then that adds even more complexity. 
     
     
  
 
 
	 00:31:15
     ◼ 
      
     ►  
     If they do that, then it's going to be so much work 
     
     
  
 
 
	 00:31:18
     ◼ 
      
     ►  
     to adapt a lot of these apps to it, 
     
     
  
 
 
	 00:31:20
     ◼ 
      
     ►  
     then maybe it'll motivate developers 
     
     
  
 
 
	 00:31:22
     ◼ 
      
     ►  
     to convert to Auto Layout or to start using it for new projects. 
     
     
  
 
 
	 00:31:26
     ◼ 
      
     ►  
     Whereas now, the value proposition 
     
     
  
 
 
	 00:31:27
     ◼ 
      
     ►  
     isn't that strong for it. 
     
     
  
 
 
	 00:31:29
     ◼ 
      
     ►  
     Because it's like, well, the old system 
     
     
  
 
 
	 00:31:30
     ◼ 
      
     ►  
     works well enough for so many cases, and we already know it. 
     
     
  
 
 
	 00:31:34
     ◼ 
      
     ►  
     And we only have to support two devices, 
     
     
  
 
 
	 00:31:36
     ◼ 
      
     ►  
     and it's fairly easy to support them both now. 
     
     
  
 
 
	 00:31:39
     ◼ 
      
     ►  
     So it's a lot less compelling now. 
     
     
  
 
 
	 00:31:43
     ◼ 
      
     ►  
     Do you remember-- I'm trying to remember the Auto Layout Demos 
     
     
  
 
 
 
	 00:31:46
     ◼ 
      
     ►  
     Did you go to those sessions? 
     
     
  
 
 
	 00:31:47
     ◼ 
      
     ►  
     I did, yeah. 
     
     
  
 
 
	 00:31:48
     ◼ 
      
     ►  
     So I'm trying to think of if they had the ability 
     
     
  
 
 
	 00:31:51
     ◼ 
      
     ►  
     to do the thing where like, OK, so now when-- they 
     
     
  
 
 
	 00:31:53
     ◼ 
      
     ►  
     were showing it on the Mac. 
     
     
  
 
 
	 00:31:54
     ◼ 
      
     ►  
     So now when your window is a little bit bigger, 
     
     
  
 
 
	 00:31:57
     ◼ 
      
     ►  
     suddenly new information and/or UI elements 
     
     
  
 
 
	 00:32:00
     ◼ 
      
     ►  
     come into existence that weren't previously there. 
     
     
  
 
 
	 00:32:03
     ◼ 
      
     ►  
     Sort of like responsive design when 
     
     
  
 
 
	 00:32:04
     ◼ 
      
     ►  
     they have parts of the navigation disappear 
     
     
  
 
 
 
	 00:32:06
     ◼ 
      
     ►  
     I think that's supportive. 
     
     
  
 
 
	 00:32:07
     ◼ 
      
     ►  
     Because that's what you really need for-- you're 
     
     
  
 
 
	 00:32:10
     ◼ 
      
     ►  
     trying to avoid a situation where we have now, 
     
     
  
 
 
	 00:32:12
     ◼ 
      
     ►  
     OK, I make my app for the iPod or for the iPhone, 
     
     
  
 
 
	 00:32:16
     ◼ 
      
     ►  
     and then I have to-- if I'm going to do a good job, 
     
     
  
 
 
	 00:32:18
     ◼ 
      
     ►  
     I've got to do a different UI for the iPad. 
     
     
  
 
 
	 00:32:20
     ◼ 
      
     ►  
     Because it's just so different in size, 
     
     
  
 
 
	 00:32:21
     ◼ 
      
     ►  
     you can't just take the phone thing and scale it up. 
     
     
  
 
 
	 00:32:23
     ◼ 
      
     ►  
     Well, if you have a larger iPhone, like getting back to Andy's point, if you really want to 
     
     
  
 
 
	 00:32:28
     ◼ 
      
     ►  
     do an awesome job for those people, you're going to say, "Okay, now I have more room 
     
     
  
 
 
	 00:32:31
     ◼ 
      
     ►  
     to put stuff. 
     
     
  
 
 
	 00:32:32
     ◼ 
      
     ►  
     I shouldn't really just take my iPhone screen and make sure everything scales correctly. 
     
     
  
 
 
	 00:32:36
     ◼ 
      
     ►  
     In fact, I have room for another button here. 
     
     
  
 
 
	 00:32:38
     ◼ 
      
     ►  
     I have room for an ancillary display with some other information." 
     
     
  
 
 
	 00:32:42
     ◼ 
      
     ►  
     That's what the AAA guys are going to do. 
     
     
  
 
 
	 00:32:44
     ◼ 
      
     ►  
     And the question is, if they're doing that, does auto layout a factor or do they just 
     
     
  
 
 
	 00:32:49
     ◼ 
      
     ►  
     make three different views? 
     
     
  
 
 
	 00:32:50
     ◼ 
      
     ►  
     the regular iPhone, the bigger iPhone, and then the iPad. 
     
     
  
 
 
	 00:32:54
     ◼ 
      
     ►  
     And if Auto Layout has the ability 
     
     
  
 
 
	 00:32:56
     ◼ 
      
     ►  
     to sanely let people say, OK, well, here's the iPhone one. 
     
     
  
 
 
	 00:32:59
     ◼ 
      
     ►  
     If you make it a little bit bigger, 
     
     
  
 
 
	 00:33:01
     ◼ 
      
     ►  
     another control comes into view and another display thing. 
     
     
  
 
 
	 00:33:05
     ◼ 
      
     ►  
     And then I'll still have to do another layout for the iPad. 
     
     
  
 
 
	 00:33:07
     ◼ 
      
     ►  
     Yeah, see, I bet most good developers, 
     
     
  
 
 
	 00:33:11
     ◼ 
      
     ►  
     or especially developers with good designers, 
     
     
  
 
 
	 00:33:14
     ◼ 
      
     ►  
     most good developers will want to code those separately 
     
     
  
 
 
 
	 00:33:17
     ◼ 
      
     ►  
     because a lot of times, even if it's like, 
     
     
  
 
 
	 00:33:20
     ◼ 
      
     ►  
     okay, we'll show or hide these controls or rearrange them, 
     
     
  
 
 
	 00:33:24
     ◼ 
      
     ►  
     even then, a lot of times the iPad interface 
     
     
  
 
 
	 00:33:26
     ◼ 
      
     ►  
     probably should work even more differently than that. 
     
     
  
 
 
	 00:33:28
     ◼ 
      
     ►  
     And so I think we're always gonna have people who-- 
     
     
  
 
 
	 00:33:31
     ◼ 
      
     ►  
     - Well, that's the iPad, of course, 
     
     
  
 
 
	 00:33:33
     ◼ 
      
     ►  
     what I'm saying from the small phone to the bigger phone. 
     
     
  
 
 
	 00:33:35
     ◼ 
      
     ►  
     - Oh, right, yeah. 
     
     
  
 
 
	 00:33:36
     ◼ 
      
     ►  
     And that's a smaller jump, hopefully, 
     
     
  
 
 
	 00:33:38
     ◼ 
      
     ►  
     in what you wanna be different. 
     
     
  
 
 
	 00:33:40
     ◼ 
      
     ►  
     So Auto Layout could take care of that 
     
     
  
 
 
	 00:33:43
     ◼ 
      
     ►  
     in a lot of cases, I'm sure. 
     
     
  
 
 
	 00:33:45
     ◼ 
      
     ►  
     But I still think so many people are going to want to custom design things to just be 
     
     
  
 
 
	 00:33:50
     ◼ 
      
     ►  
     more different than what the layout engine is capable of providing. 
     
     
  
 
 
	 00:33:55
     ◼ 
      
     ►  
     And Carter is the old curmudgeon syndrome. 
     
     
  
 
 
	 00:33:58
     ◼ 
      
     ►  
     If you know how the regular layout works, is it worth it to you to learn how the auto-- 
     
     
  
 
 
	 00:34:01
     ◼ 
      
     ►  
     because then all you're doing is you're going through an abstraction layer that's preventing 
     
     
  
 
 
	 00:34:05
     ◼ 
      
     ►  
     you from just setting the things that you know you want to set. 
     
     
  
 
 
	 00:34:08
     ◼ 
      
     ►  
     In some cases, auto layout can do things that you would have to write code for. 
     
     
  
 
 
	 00:34:10
     ◼ 
      
     ►  
     And that's the kind of case where you're like, am I writing this stupid freaking layout code 
     
     
  
 
 
	 00:34:13
     ◼ 
      
     ►  
     to recalculate the distances between these things based on the-- it's like, if springs 
     
     
  
 
 
	 00:34:18
     ◼ 
      
     ►  
     and struts can't do it, but auto layout can, auto layout is saving you from manually writing 
     
     
  
 
 
	 00:34:23
     ◼ 
      
     ►  
     that code to do some stupid math on points to figure out how far things are. And that's 
     
     
  
 
 
	 00:34:28
     ◼ 
      
     ►  
     the type of thing that probably would demo well at W3C to say, if you didn't have auto 
     
     
  
 
 
	 00:34:32
     ◼ 
      
     ►  
     layout, the amount of code you'd have to write for this would make you not want to use this 
     
     
  
 
 
	 00:34:36
     ◼ 
      
     ►  
     feature and would make you not make your layout act this way. But look how easy it is in auto 
     
     
  
 
 
	 00:34:41
     ◼ 
      
     ►  
     Auto Layout versus like, I could do this in springs and struts. 
     
     
  
 
 
	 00:34:45
     ◼ 
      
     ►  
     There's no reason for me to use Auto Layout. 
     
     
  
 
 
	 00:34:47
     ◼ 
      
     ►  
     It's just getting in my way. 
     
     
  
 
 
	 00:34:49
     ◼ 
      
     ►  
     Well, the other thing that I find 
     
     
  
 
 
	 00:34:51
     ◼ 
      
     ►  
     interesting about Auto Layout is, although, like I said 
     
     
  
 
 
	 00:34:53
     ◼ 
      
     ►  
     earlier, I haven't heard a lot of people sing its praises, 
     
     
  
 
 
	 00:34:57
     ◼ 
      
     ►  
     I certainly haven't heard a lot of people say, 
     
     
  
 
 
	 00:35:00
     ◼ 
      
     ►  
     this is supposed to work, but doesn't, a la iCloud. 
     
     
  
 
 
	 00:35:04
     ◼ 
      
     ►  
     You know, it doesn't seem like the technology is bad. 
     
     
  
 
 
	 00:35:07
     ◼ 
      
     ►  
     It's just a big learning curve, like the both of you guys 
     
     
  
 
 
	 00:35:09
     ◼ 
      
     ►  
     have been saying. 
     
     
  
 
 
	 00:35:10
     ◼ 
      
     ►  
     Whereas iCloud seems to have somewhat of a big learning curve and it's a piece of crap. 
     
     
  
 
 
	 00:35:17
     ◼ 
      
     ►  
     You can't learn anything if it doesn't act in a deterministic way. 
     
     
  
 
 
	 00:35:19
     ◼ 
      
     ►  
     So a local API in a framework on your system, you have a fighting chance of figuring out. 
     
     
  
 
 
	 00:35:24
     ◼ 
      
     ►  
     But when you're communicating to a black box over the network and you can't figure 
     
     
  
 
 
	 00:35:27
     ◼ 
      
     ►  
     out why it works the way it does, it does not converge on a solution. 
     
     
  
 
 
	 00:35:33
     ◼ 
      
     ►  
     When Apple makes new APIs and frameworks and things like that, they're solving a number 
     
     
  
 
 
	 00:35:39
     ◼ 
      
     ►  
     of problems with these APIs. 
     
     
  
 
 
	 00:35:40
     ◼ 
      
     ►  
     Some of them appear to be designed not necessarily 
     
     
  
 
 
	 00:35:44
     ◼ 
      
     ►  
     for everyone to use as their new default of how they build 
     
     
  
 
 
	 00:35:48
     ◼ 
      
     ►  
     things, but for rapid development, 
     
     
  
 
 
	 00:35:51
     ◼ 
      
     ►  
     or for less sophisticated developers 
     
     
  
 
 
	 00:35:53
     ◼ 
      
     ►  
     to get something working well and quickly. 
     
     
  
 
 
	 00:35:54
     ◼ 
      
     ►  
     So I think one of the biggest examples of this 
     
     
  
 
 
	 00:35:57
     ◼ 
      
     ►  
     is arc versus storyboards. 
     
     
  
 
 
	 00:36:00
     ◼ 
      
     ►  
     Arc is a really great feature that they obviously 
     
     
  
 
 
	 00:36:03
     ◼ 
      
     ►  
     want everybody to use. 
     
     
  
 
 
	 00:36:05
     ◼ 
      
     ►  
     There's really very few downsides to it overall, 
     
     
  
 
 
	 00:36:08
     ◼ 
      
     ►  
     And even power users, even very skilled developers 
     
     
  
 
 
	 00:36:12
     ◼ 
      
     ►  
     will get a lot of value out of using Arc with almost 
     
     
  
 
 
	 00:36:15
     ◼ 
      
     ►  
     no downsides. 
     
     
  
 
 
	 00:36:17
     ◼ 
      
     ►  
     Storyboards are a very restrictive and limited 
     
     
  
 
 
	 00:36:23
     ◼ 
      
     ►  
     structure that your app uses. 
     
     
  
 
 
	 00:36:26
     ◼ 
      
     ►  
     They can save a lot of time for rapid development 
     
     
  
 
 
	 00:36:29
     ◼ 
      
     ►  
     or for less experienced developers. 
     
     
  
 
 
	 00:36:31
     ◼ 
      
     ►  
     They can save tons of time and provide a nicer 
     
     
  
 
 
	 00:36:34
     ◼ 
      
     ►  
     framework for certain things. 
     
     
  
 
 
	 00:36:35
     ◼ 
      
     ►  
     But they're so limited that a lot of high-end developers 
     
     
  
 
 
	 00:36:39
     ◼ 
      
     ►  
     really can't use them for much. 
     
     
  
 
 
	 00:36:42
     ◼ 
      
     ►  
     And so maybe Auto Layout is not quite 
     
     
  
 
 
	 00:36:49
     ◼ 
      
     ►  
     to the level of storyboards, but maybe it's 
     
     
  
 
 
	 00:36:51
     ◼ 
      
     ►  
     not quite to the level of Arc either. 
     
     
  
 
 
	 00:36:54
     ◼ 
      
     ►  
     It's there for people to use maybe sometimes, 
     
     
  
 
 
	 00:36:57
     ◼ 
      
     ►  
     or as they go forward, maybe new developers learn this. 
     
     
  
 
 
	 00:37:00
     ◼ 
      
     ►  
     But maybe it isn't intended to capture 
     
     
  
 
 
	 00:37:02
     ◼ 
      
     ►  
     a lot of the older developers quite yet. 
     
     
  
 
 
	 00:37:04
     ◼ 
      
     ►  
     because maybe the value isn't quite that clear on it. 
     
     
  
 
 
	 00:37:08
     ◼ 
      
     ►  
     And certainly, once you have one of those situations 
     
     
  
 
 
	 00:37:11
     ◼ 
      
     ►  
     where you're laying out something with the old system 
     
     
  
 
 
	 00:37:14
     ◼ 
      
     ►  
     that's really a pain to do it, once you have one 
     
     
  
 
 
	 00:37:17
     ◼ 
      
     ►  
     of those situations, yeah, maybe then you start learning it. 
     
     
  
 
 
	 00:37:19
     ◼ 
      
     ►  
     But I think there's very little reason for developers 
     
     
  
 
 
	 00:37:24
     ◼ 
      
     ►  
     to convert things to Auto Layout if they're working fine 
     
     
  
 
 
	 00:37:27
     ◼ 
      
     ►  
     with springs and struts, or to absolutely use Auto Layout 
     
     
  
 
 
	 00:37:31
     ◼ 
      
     ►  
     for everything in the next project. 
     
     
  
 
 
	 00:37:33
     ◼ 
      
     ►  
     Like, it might not make sense to do that yet. 
     
     
  
 
 
	 00:37:36
     ◼ 
      
     ►  
     Yeah, maybe it's just the circles that we travel in 
     
     
  
 
 
	 00:37:38
     ◼ 
      
     ►  
     and the people who read, but the number of people 
     
     
  
 
 
	 00:37:40
     ◼ 
      
     ►  
     who have a grumpy face about IB, which is not 
     
     
  
 
 
	 00:37:43
     ◼ 
      
     ►  
     like a fancy new technology, come from the next days, right? 
     
     
  
 
 
	 00:37:47
     ◼ 
      
     ►  
     They're like, I'll just do it in code. 
     
     
  
 
 
 
	 00:37:50
     ◼ 
      
     ►  
     Like, it just shows that sometimes, no matter how-- 
     
     
  
 
 
	 00:37:53
     ◼ 
      
     ►  
     because that was a big selling point in the next days. 
     
     
  
 
 
	 00:37:56
     ◼ 
      
     ►  
     It was like, look at Interface Builder. 
     
     
  
 
 
	 00:37:57
     ◼ 
      
     ►  
     It's amazing, right? 
     
     
  
 
 
	 00:37:58
     ◼ 
      
     ►  
     And some people just say, I'd rather just do it in code. 
     
     
  
 
 
	 00:38:02
     ◼ 
      
     ►  
     And that's just what they would rather do. 
     
     
  
 
 
	 00:38:04
     ◼ 
      
     ►  
     And no matter how nice you make the tool, 
     
     
  
 
 
	 00:38:08
     ◼ 
      
     ►  
     if people don't want a tool that does that, 
     
     
  
 
 
	 00:38:11
     ◼ 
      
     ►  
     if it's not solving a problem they think they have, 
     
     
  
 
 
	 00:38:13
     ◼ 
      
     ►  
     it will just sit there. 
     
     
  
 
 
	 00:38:14
     ◼ 
      
     ►  
     So auto layout, even if they make it awesome and perfect, 
     
     
  
 
 
	 00:38:17
     ◼ 
      
     ►  
     just like interface builder, there will be some people say, 
     
     
  
 
 
	 00:38:20
     ◼ 
      
     ►  
     nah, I prefer to just do it in code. 
     
     
  
 
 
	 00:38:22
     ◼ 
      
     ►  
     And they will. 
     
     
  
 
 
	 00:38:22
     ◼ 
      
     ►  
     Well, and interface builder, I've 
     
     
  
 
 
	 00:38:24
     ◼ 
      
     ►  
     always thought has been comically unintuitive. 
     
     
  
 
 
	 00:38:27
     ◼ 
      
     ►  
     And my background, as Casey knows, because he was there, 
     
     
  
 
 
	 00:38:31
     ◼ 
      
     ►  
     My background was Visual Basic. 
     
     
  
 
 
	 00:38:34
     ◼ 
      
     ►  
     And Microsoft does a lot of things badly. 
     
     
  
 
 
	 00:38:38
     ◼ 
      
     ►  
     I got to give them credit for that. 
     
     
  
 
 
	 00:38:40
     ◼ 
      
     ►  
     They do so many things badly, it's quite impressive. 
     
     
  
 
 
	 00:38:42
     ◼ 
      
     ►  
     However, their development tools are really good. 
     
     
  
 
 
	 00:38:46
     ◼ 
      
     ►  
     And they're especially good at not 
     
     
  
 
 
	 00:38:51
     ◼ 
      
     ►  
     having a really huge learning curve 
     
     
  
 
 
	 00:38:52
     ◼ 
      
     ►  
     to get started on something. 
     
     
  
 
 
	 00:38:54
     ◼ 
      
     ►  
     And Visual Basic-- and now, of course, 
     
     
  
 
 
	 00:38:57
     ◼ 
      
     ►  
     it's way more sophisticated with all their new stuff. 
     
     
  
 
 
	 00:38:59
     ◼ 
      
     ►  
     But I started using Visual Basic with version 1.0, 
     
     
  
 
 
 
	 00:39:04
     ◼ 
      
     ►  
     Visual Basic 1.0. 
     
     
  
 
 
	 00:39:05
     ◼ 
      
     ►  
     And even then, it was really easy to use. 
     
     
  
 
 
	 00:39:08
     ◼ 
      
     ►  
     You drag out a control, and you double click it, 
     
     
  
 
 
	 00:39:11
     ◼ 
      
     ►  
     and there's the function. 
     
     
  
 
 
	 00:39:12
     ◼ 
      
     ►  
     It was so easy to use that I could figure it out 
     
     
  
 
 
	 00:39:15
     ◼ 
      
     ►  
     as an extreme novice in seventh grade. 
     
     
  
 
 
	 00:39:19
     ◼ 
      
     ►  
     It was really easy to figure out. 
     
     
  
 
 
	 00:39:20
     ◼ 
      
     ►  
     Interface Builder has so many weird little things about it, 
     
     
  
 
 
	 00:39:24
     ◼ 
      
     ►  
     weird behaviors that aren't necessary. 
     
     
  
 
 
	 00:39:28
     ◼ 
      
     ►  
     It's not like, oh, you're going to have some advanced need 
     
     
  
 
 
	 00:39:32
     ◼ 
      
     ►  
     at some point, and you might need to know this. 
     
     
  
 
 
	 00:39:33
     ◼ 
      
     ►  
     No, it's like, if you're going to use 
     
     
  
 
 
	 00:39:35
     ◼ 
      
     ►  
     this to do anything at all, you need 
     
     
  
 
 
	 00:39:36
     ◼ 
      
     ►  
     to know these weird things about it that aren't very intuitive. 
     
     
  
 
 
	 00:39:40
     ◼ 
      
     ►  
     And it's always been that way. 
     
     
  
 
 
	 00:39:41
     ◼ 
      
     ►  
     And they keep saying it's getting better, 
     
     
  
 
 
	 00:39:43
     ◼ 
      
     ►  
     and in some ways it gets better, and then it 
     
     
  
 
 
	 00:39:45
     ◼ 
      
     ►  
     adds new weird things that you need 
     
     
  
 
 
	 00:39:47
     ◼ 
      
     ►  
     to learn in some weird way. 
     
     
  
 
 
	 00:39:49
     ◼ 
      
     ►  
     So really, Interface Builder has never 
     
     
  
 
 
	 00:39:51
     ◼ 
      
     ►  
     been particularly easy to use. 
     
     
  
 
 
	 00:39:55
     ◼ 
      
     ►  
     And Casey, I'm curious, because you've come to this way more 
     
     
  
 
 
	 00:39:58
     ◼ 
      
     ►  
     recently than John and I have. What do you think of Interface Builder? Like, have you 
     
     
  
 
 
	 00:40:01
     ◼ 
      
     ►  
     had those problems and you have used all the Microsoft stuff more recently because you 
     
     
  
 
 
	 00:40:05
     ◼ 
      
     ►  
     were a Windows guy for so long at work, and you still are kind of. What do you think about 
     
     
  
 
 
	 00:40:10
     ◼ 
      
     ►  
     this comparison? 
     
     
  
 
 
	 00:40:13
     ◼ 
      
     ►  
     I think for the most part I agree with what you said. I don't have any hate for Interface 
     
     
  
 
 
	 00:40:19
     ◼ 
      
     ►  
     Builder and I think that largely comes from the fact that A) I haven't done years upon 
     
     
  
 
 
	 00:40:25
     ◼ 
      
     ►  
     years of iOS development, and B, all the iOS development I've done is tended to be with 
     
     
  
 
 
	 00:40:31
     ◼ 
      
     ►  
     reasonably simple and straightforward user interfaces. 
     
     
  
 
 
	 00:40:37
     ◼ 
      
     ►  
     I do agree, though, that it is not intuitive. 
     
     
  
 
 
	 00:40:39
     ◼ 
      
     ►  
     Like when you were talking about how you drag a button onto a form in current Windows forms, 
     
     
  
 
 
	 00:40:46
     ◼ 
      
     ►  
     parlance or parlance, however you pronounce that word, esoteric. 
     
     
  
 
 
	 00:40:50
     ◼ 
      
     ►  
     Regardless, you just drop it on a form, you double click, and there's your method, just 
     
     
  
 
 
	 00:40:54
     ◼ 
      
     ►  
     like you were saying, whereas with Interface Builder, as you're describing this, I'm thinking, 
     
     
  
 
 
	 00:40:57
     ◼ 
      
     ►  
     "Well, how does that work in Interface Builder?" Well, you have to have something on the header 
     
     
  
 
 
	 00:41:01
     ◼ 
      
     ►  
     or perhaps the code, the M file, that is an IB action or an IB outlet. Well, wait, what's 
     
     
  
 
 
	 00:41:08
     ◼ 
      
     ►  
     the difference between the two? Oh, well, you see, an IB action is for a function or 
     
     
  
 
 
	 00:41:12
     ◼ 
      
     ►  
     a message, and an IB outlet is where you just want to have a reference, and it's already 
     
     
  
 
 
	 00:41:16
     ◼ 
      
     ►  
     – it's like, "Oh, my God, just shut up." So I don't think it's terrible. I don't have 
     
     
  
 
 
	 00:41:20
     ◼ 
      
     ►  
     a problem with Interface Builder, but I would agree with everything you said about the micro 
     
     
  
 
 
	 00:41:24
     ◼ 
      
     ►  
     developer tools really are good. And it's funny because I've been teaching a co-worker 
     
     
  
 
 
	 00:41:29
     ◼ 
      
     ►  
     Objective-C and Cocoa and whatnot, and he's really enjoyed it and got over the ugly, ugly, 
     
     
  
 
 
	 00:41:35
     ◼ 
      
     ►  
     ugly syntax a lot quicker than I did. But one of the things that it's hysterical to 
     
     
  
 
 
	 00:41:40
     ◼ 
      
     ►  
     watch is when he's trying to figure out what the right method is to do something, like 
     
     
  
 
 
	 00:41:45
     ◼ 
      
     ►  
     for example, to make a string lowercase. Rather than go to the documentation, what does he do? 
     
     
  
 
 
	 00:41:51
     ◼ 
      
     ►  
     auto-complete it. That's the Windows developer for you. 
     
     
  
 
 
	 00:41:55
     ◼ 
      
     ►  
     Because Windows is so good at that. 
     
     
  
 
 
	 00:41:59
     ◼ 
      
     ►  
     When you're programming in anything.net for the first time, 
     
     
  
 
 
	 00:42:03
     ◼ 
      
     ►  
     all you need to know is the first word, "system." Is it still system? 
     
     
  
 
 
	 00:42:07
     ◼ 
      
     ►  
     So yeah, you can know nothing about 
     
     
  
 
 
	 00:42:11
     ◼ 
      
     ►  
     the language you're programming, or the API that you're programming against at least. The language, of course, 
     
     
  
 
 
	 00:42:15
     ◼ 
      
     ►  
     there's always things. But you can know nothing about the API you're programming against. And just type in "system." 
     
     
  
 
 
	 00:42:19
     ◼ 
      
     ►  
     and just start there and you will probably find what you need. Yeah you are 
     
     
  
 
 
	 00:42:25
     ◼ 
      
     ►  
     absolutely right and that's the funny thing is watching him use Xcode's crummy 
     
     
  
 
 
	 00:42:29
     ◼ 
      
     ►  
     IntelliSense I know it's not called IntelliSense but whatever they call it 
     
     
  
 
 
	 00:42:32
     ◼ 
      
     ►  
     and it's gotten better like I remember everyone freaking out at WWDC they were 
     
     
  
 
 
	 00:42:37
     ◼ 
      
     ►  
     so excited when they when somebody announced that when you start typing 
     
     
  
 
 
	 00:42:41
     ◼ 
      
     ►  
     NSS rather than what was it? NSS stream. Yeah or whatever it was. I was just trying to remember what the 
     
     
  
 
 
	 00:42:48
     ◼ 
      
     ►  
     what the bad match was. It was NS Stream, right? 
     
     
  
 
 
	 00:42:52
     ◼ 
      
     ►  
     Or set, maybe? I was trying to formulate a Google query for it. I was going to type 
     
     
  
 
 
	 00:42:56
     ◼ 
      
     ►  
     NS String, Auto-Completion, Annoying. 
     
     
  
 
 
	 00:43:00
     ◼ 
      
     ►  
     It was probably NS Stream. Whatever it was. Everyone went berserk 
     
     
  
 
 
	 00:43:04
     ◼ 
      
     ►  
     because they finally got the auto-complete to the point that it sort of 
     
     
  
 
 
	 00:43:08
     ◼ 
      
     ►  
     made sense. But it's not a great documentation browser, whereas in .NET 
     
     
  
 
 
	 00:43:12
     ◼ 
      
     ►  
     you really never need to kick open any documentation. Exactly. You can just 
     
     
  
 
 
	 00:43:16
     ◼ 
      
     ►  
     sit there with IntelliSense and you'll find what you need. 
     
     
  
 
 
	 00:43:18
     ◼ 
      
     ►  
     - Whereas like, if I'm working in Xcode, 
     
     
  
 
 
	 00:43:21
     ◼ 
      
     ►  
     I have to have that organizer window open, 
     
     
  
 
 
	 00:43:23
     ◼ 
      
     ►  
     and I have to have it to the documentation tab, 
     
     
  
 
 
	 00:43:25
     ◼ 
      
     ►  
     and I'm going over there and searching in a search field 
     
     
  
 
 
	 00:43:27
     ◼ 
      
     ►  
     like every five minutes for something. 
     
     
  
 
 
	 00:43:29
     ◼ 
      
     ►  
     Like, any kind of built-in, you know, 
     
     
  
 
 
	 00:43:32
     ◼ 
      
     ►  
     pop-up automatic documentation is usually not enough 
     
     
  
 
 
	 00:43:35
     ◼ 
      
     ►  
     for what I'm looking for. 
     
     
  
 
 
	 00:43:36
     ◼ 
      
     ►  
     Or I don't know the name of what I'm looking for exactly, 
     
     
  
 
 
	 00:43:38
     ◼ 
      
     ►  
     and you know, I can't autocomplete it. 
     
     
  
 
 
	 00:43:40
     ◼ 
      
     ►  
     Or the autocomplete is freaking out 
     
     
  
 
 
	 00:43:42
     ◼ 
      
     ►  
     because of some thing that it choked on, 
     
     
  
 
 
	 00:43:45
     ◼ 
      
     ►  
     you know hundred lines up but i don't know about yet 
     
     
  
 
 
	 00:43:47
     ◼ 
      
     ►  
     uh... and it's not working 
     
     
  
 
 
	 00:43:49
     ◼ 
      
     ►  
     and it's it's a reverse numbers i'm right i'm reading all my code the 
     
     
  
 
 
	 00:43:53
     ◼ 
      
     ►  
     old-fashioned way i don't have auto completion i just memorize every single 
     
     
  
 
 
	 00:43:57
     ◼ 
      
     ►  
     freaking function its name and then they the argument one like return that's how 
     
     
  
 
 
	 00:44:01
     ◼ 
      
     ►  
     i was a huge p because that was all my back and just don't you speak 
     
     
  
 
 
	 00:44:05
     ◼ 
      
     ►  
     uh... that's why right back i'm writing on text made which doesn't really have 
     
     
  
 
 
 
	 00:44:09
     ◼ 
      
     ►  
     intel sense type features 
     
     
  
 
 
	 00:44:11
     ◼ 
      
     ►  
     uh... or if it doesn't know how to activate them 
     
     
  
 
 
	 00:44:13
     ◼ 
      
     ►  
     and please don't email me, I really don't care. 
     
     
  
 
 
	 00:44:15
     ◼ 
      
     ►  
     And like, you know, I can write that way, 
     
     
  
 
 
	 00:44:17
     ◼ 
      
     ►  
     but it's so nice when you don't have to, 
     
     
  
 
 
	 00:44:20
     ◼ 
      
     ►  
     and it really is a major productivity booster 
     
     
  
 
 
	 00:44:22
     ◼ 
      
     ►  
     to have things that can tell a sense that it, you know, 
     
     
  
 
 
	 00:44:26
     ◼ 
      
     ►  
     but doing that well makes a really big difference 
     
     
  
 
 
	 00:44:28
     ◼ 
      
     ►  
     to coding, especially when you're new 
     
     
  
 
 
	 00:44:31
     ◼ 
      
     ►  
     to a language or an API. 
     
     
  
 
 
	 00:44:33
     ◼ 
      
     ►  
     - You're absolutely right. 
     
     
  
 
 
	 00:44:34
     ◼ 
      
     ►  
     And I think part of the problem might be 
     
     
  
 
 
	 00:44:37
     ◼ 
      
     ►  
     that Objective-C is such a verbose language, 
     
     
  
 
 
	 00:44:39
     ◼ 
      
     ►  
     and you know, method names are stringed 
     
     
  
 
 
	 00:44:42
     ◼ 
      
     ►  
     replacing occurrences of string with string with options or whatever the hell 
     
     
  
 
 
	 00:44:45
     ◼ 
      
     ►  
     it is i forget what it is 
     
     
  
 
 
	 00:44:47
     ◼ 
      
     ►  
     yeah that's one letter in pearl s 
     
     
  
 
 
	 00:44:49
     ◼ 
      
     ►  
     exactly that delimiters well let's be honest all of pearl is just regular 
     
     
  
 
 
	 00:44:53
     ◼ 
      
     ►  
     questions anyway 
     
     
  
 
 
	 00:44:56
     ◼ 
      
     ►  
     i think we should talk about that on some future podcasts 
     
     
  
 
 
	 00:45:01
     ◼ 
      
     ►  
     at a certain point the verbose names do not 
     
     
  
 
 
	 00:45:05
     ◼ 
      
     ►  
     understanding your reading well except once you do get familiar with apple's 
     
     
  
 
 
	 00:45:09
     ◼ 
      
     ►  
     crazy API naming style, then you can start guessing the names of things before you know 
     
     
  
 
 
	 00:45:14
     ◼ 
      
     ►  
     them. And you can usually guess correctly, at least to the point where then autocorrect 
     
     
  
 
 
	 00:45:17
     ◼ 
      
     ►  
     will help you. 
     
     
  
 
 
	 00:45:18
     ◼ 
      
     ►  
     That's so true. 
     
     
  
 
 
	 00:45:19
     ◼ 
      
     ►  
     That's so true. 
     
     
  
 
 
	 00:45:20
     ◼ 
      
     ►  
     Well, you know what to begin with, because once you learn the words for the event handlers 
     
     
  
 
 
	 00:45:23
     ◼ 
      
     ►  
     for "will" and "did" and "finish" and all that stuff, then at least you have 
     
     
  
 
 
	 00:45:28
     ◼ 
      
     ►  
     a fighting chance on the prefixes. But the words that come after the prefixes, that's 
     
     
  
 
 
	 00:45:34
     ◼ 
      
     ►  
     kind of like people writing little essays in their parameter names, and the order that 
     
     
  
 
 
	 00:45:38
     ◼ 
      
     ►  
     They put the adjectives and verbs and where the with comes and the option and error and 
     
     
  
 
 
 
	 00:45:44
     ◼ 
      
     ►  
     So there's a rich history of scrambling up the fake name parameter things. 
     
     
  
 
 
	 00:45:49
     ◼ 
      
     ►  
     That's what they should do. 
     
     
  
 
 
	 00:45:51
     ◼ 
      
     ►  
     They'll never do this, but give object to see real name parameters so the order doesn't 
     
     
  
 
 
	 00:45:54
     ◼ 
      
     ►  
     matter anymore. 
     
     
  
 
 
	 00:45:55
     ◼ 
      
     ►  
     That'd be great. 
     
     
  
 
 
 
	 00:45:57
     ◼ 
      
     ►  
     That would be a different language. 
     
     
  
 
 
	 00:45:58
     ◼ 
      
     ►  
     That would be a different language. 
     
     
  
 
 
	 00:45:59
     ◼ 
      
     ►  
     That would be a different language. 
     
     
  
 
 
	 00:46:00
     ◼ 
      
     ►  
     That would be a different language. 
     
     
  
 
 
	 00:46:01
     ◼ 
      
     ►  
     That would be a different language. 
     
     
  
 
 
	 00:46:02
     ◼ 
      
     ►  
     That would be a different language. 
     
     
  
 
 
	 00:46:03
     ◼ 
      
     ►  
     It's funny though, Marco, because just today, I was trying to remember for the—I was working 
     
     
  
 
 
	 00:46:07
     ◼ 
      
     ►  
     with my coworker who's learning the language and the API, and I was trying to remember, 
     
     
  
 
 
	 00:46:11
     ◼ 
      
     ►  
     "Wait, how do you get a lowercase string? It's not too lower. That's .net. No, that's 
     
     
  
 
 
	 00:46:16
     ◼ 
      
     ►  
     not how Apple would do it." 
     
     
  
 
 
	 00:46:17
     ◼ 
      
     ►  
     How about just lowercase string? 
     
     
  
 
 
	 00:46:18
     ◼ 
      
     ►  
     No. You know what? I bet Apple would do lowercase string, and sure enough, that's what it would 
     
     
  
 
 
	 00:46:22
     ◼ 
      
     ►  
     do. So it's exactly— 
     
     
  
 
 
	 00:46:23
     ◼ 
      
     ►  
     Or like strings by converting to lowercase. 
     
     
  
 
 
	 00:46:24
     ◼ 
      
     ►  
     Yeah, so that's what I'm saying. You got the— 
     
     
  
 
 
	 00:46:27
     ◼ 
      
     ►  
     That's true. 
     
     
  
 
 
	 00:46:28
     ◼ 
      
     ►  
     Yeah. Well, like earlier today, I had an array that I wanted to join with a string and join 
     
     
  
 
 
	 00:46:35
     ◼ 
      
     ►  
     all the components with a string. And so I had the array, and from the array I started 
     
     
  
 
 
	 00:46:39
     ◼ 
      
     ►  
     typing string by. And I'm pretty sure that was correct. It's string by joining components 
     
     
  
 
 
	 00:46:44
     ◼ 
      
     ►  
     with string, or something like that. And because I'm familiar enough with Apple's style, I 
     
     
  
 
 
	 00:46:49
     ◼ 
      
     ►  
     was able to guess that method without looking it up. And I was right. 
     
     
  
 
 
	 00:46:54
     ◼ 
      
     ►  
     And so, an interface builder is actually very similar. Once you get it, then you can see, 
     
     
  
 
 
	 00:47:03
     ◼ 
      
     ►  
     "Okay, I can see why they thought that made sense, and now it makes sense to me, and now 
     
     
  
 
 
	 00:47:09
     ◼ 
      
     ►  
     I'm past it." 
     
     
  
 
 
	 00:47:11
     ◼ 
      
     ►  
     But the learning curve is just ridiculous for all this other stuff. 
     
     
  
 
 
	 00:47:13
     ◼ 
      
     ►  
     I understand the verbose naming thing, that someone who has never seen Objective-C before 
     
     
  
 
 
	 00:47:18
     ◼ 
      
     ►  
     can look at that and guess that you are taking a string and joining a bunch of other strings 
     
     
  
 
 
	 00:47:25
     ◼ 
      
     ►  
     with some other string, and they can tell which is which. 
     
     
  
 
 
	 00:47:28
     ◼ 
      
     ►  
     the mental and visual space that that call takes up, 
     
     
  
 
 
	 00:47:32
     ◼ 
      
     ►  
     as compared to like s equals a dot join, 
     
     
  
 
 
	 00:47:36
     ◼ 
      
     ►  
     and then single quotes the joining string. 
     
     
  
 
 
	 00:47:39
     ◼ 
      
     ►  
     Like maybe someone doesn't know what that means, 
     
     
  
 
 
	 00:47:41
     ◼ 
      
     ►  
     but once you know the language and know 
     
     
  
 
 
	 00:47:42
     ◼ 
      
     ►  
     a little bit about the basics of the API, 
     
     
  
 
 
	 00:47:45
     ◼ 
      
     ►  
     it's just that's why people are allergic to verbose things. 
     
     
  
 
 
	 00:47:48
     ◼ 
      
     ►  
     Not because verbose is so much bad, but because there's 
     
     
  
 
 
	 00:47:51
     ◼ 
      
     ►  
     a limited common vocabulary that people feel like should not 
     
     
  
 
 
	 00:47:54
     ◼ 
      
     ►  
     be that verbose because it happens so often. 
     
     
  
 
 
	 00:47:56
     ◼ 
      
     ►  
     And that's why a lot of Objective-C code looks like a lot of visual stuff like squint, 
     
     
  
 
 
	 00:48:01
     ◼ 
      
     ►  
     a lot of black on the page for doing operations that, you know, in some, you know, higher level, 
     
     
  
 
 
	 00:48:06
     ◼ 
      
     ►  
     more dynamic language like, you know, JavaScript even or Perl or Ruby or Python would just be so 
     
     
  
 
 
	 00:48:12
     ◼ 
      
     ►  
     much, take up so much less room and be so much faster to scan because you wouldn't have to read, 
     
     
  
 
 
	 00:48:18
     ◼ 
      
     ►  
     you know what I mean? Like it's just join map grep filter, you know, replace substitute instead of 
     
     
  
 
 
	 00:48:25
     ◼ 
      
     ►  
     the big English sentences with stuff hanging off of it. 
     
     
  
 
 
 
	 00:48:29
     ◼ 
      
     ►  
     Although, the big English sentences are substantially easier to read if you aren't familiar with 
     
     
  
 
 
	 00:48:34
     ◼ 
      
     ►  
     the API that they're calling. 
     
     
  
 
 
	 00:48:37
     ◼ 
      
     ►  
     That's true, but I'm saying there's a subset of really super common functionality. 
     
     
  
 
 
	 00:48:42
     ◼ 
      
     ►  
     So I guess maybe it would be weird to have a language where the—I don't know if it's 
     
     
  
 
 
	 00:48:45
     ◼ 
      
     ►  
     weird, I think it's reasonable. 
     
     
  
 
 
	 00:48:46
     ◼ 
      
     ►  
     They call it in Pearl Huffman coding, where you take the things that are common and make 
     
     
  
 
 
	 00:48:50
     ◼ 
      
     ►  
     them concise. And as you get more esoteric, you get more verbose. 
     
     
  
 
 
	 00:48:55
     ◼ 
      
     ►  
     So the built-in stuff is super duper short. 
     
     
  
 
 
	 00:48:57
     ◼ 
      
     ►  
     Lowercase is LC, right? 
     
     
  
 
 
	 00:48:59
     ◼ 
      
     ►  
     But the really more esoteric things, like creating a socket with timeouts 
     
     
  
 
 
	 00:49:03
     ◼ 
      
     ►  
     and a binding port and stuff, that is verbose and has big name parameters. 
     
     
  
 
 
	 00:49:07
     ◼ 
      
     ►  
     And everything's long and spelled out, right? 
     
     
  
 
 
	 00:49:09
     ◼ 
      
     ►  
     Whereas in Objective-C-- and not the language, but the API, 
     
     
  
 
 
	 00:49:12
     ◼ 
      
     ►  
     and the Cocoa and Foundation APIs-- everything is verbose. 
     
     
  
 
 
	 00:49:14
     ◼ 
      
     ►  
     Even basic string functions, even things dealing with numbers and formatting, 
     
     
  
 
 
	 00:49:19
     ◼ 
      
     ►  
     everything is verbose. 
     
     
  
 
 
	 00:49:20
     ◼ 
      
     ►  
     They don't say, OK, people are going 
     
     
  
 
 
	 00:49:22
     ◼ 
      
     ►  
     to change a string to lowercase way more often than they're 
     
     
  
 
 
	 00:49:26
     ◼ 
      
     ►  
     going to set up some sort of handler for some event 
     
     
  
 
 
	 00:49:30
     ◼ 
      
     ►  
     or whatever, set up an NSNotification center. 
     
     
  
 
 
	 00:49:32
     ◼ 
      
     ►  
     So shouldn't one of those be shorter, 
     
     
  
 
 
	 00:49:34
     ◼ 
      
     ►  
     because it's going to be more common? 
     
     
  
 
 
	 00:49:36
     ◼ 
      
     ►  
     To be fair, the lowercase string method 
     
     
  
 
 
	 00:49:38
     ◼ 
      
     ►  
     is one of the shortest method names. 
     
     
  
 
 
	 00:49:41
     ◼ 
      
     ►  
     It's not two letters long, right? 
     
     
  
 
 
	 00:49:42
     ◼ 
      
     ►  
     And substitution, like running regular expressions matches 
     
     
  
 
 
	 00:49:46
     ◼ 
      
     ►  
     and substituting-- Perl thought it was important enough 
     
     
  
 
 
	 00:49:49
     ◼ 
      
     ►  
     put syntax in the language for it. So did sort of JavaScript kind of put syntax in the language 
     
     
  
 
 
	 00:49:54
     ◼ 
      
     ►  
     for it and a couple other things too, but you know, okay, so fine. An objector saved, 
     
     
  
 
 
	 00:49:57
     ◼ 
      
     ►  
     it's not a syntax in the language, but the API for things that deal with strings don't have any 
     
     
  
 
 
	 00:50:02
     ◼ 
      
     ►  
     recognition of how common they are. Like they are just as verbose as everything else. Although— 
     
     
  
 
 
	 00:50:07
     ◼ 
      
     ►  
     Well, and then a string is monolithic as hell as well. I mean, it has so many different 
     
     
  
 
 
	 00:50:12
     ◼ 
      
     ►  
     weirdo methods, like for paths and— 
     
     
  
 
 
 
	 00:50:15
     ◼ 
      
     ►  
     Can't you do-- doesn't it have data type things 
     
     
  
 
 
	 00:50:17
     ◼ 
      
     ►  
     related to URLs? 
     
     
  
 
 
	 00:50:19
     ◼ 
      
     ►  
     And it's like, I thought you were a string. 
     
     
  
 
 
	 00:50:20
     ◼ 
      
     ►  
     What do you have methods that have to do with URLs? 
     
     
  
 
 
	 00:50:23
     ◼ 
      
     ►  
     Well, I kind of know about those two. 
     
     
  
 
 
	 00:50:24
     ◼ 
      
     ►  
     Yeah, there's a whole bunch of things. 
     
     
  
 
 
 
	 00:50:25
     ◼ 
      
     ►  
     Why do you know about URLs? 
     
     
  
 
 
	 00:50:27
     ◼ 
      
     ►  
     You're a string class. 
     
     
  
 
 
	 00:50:29
     ◼ 
      
     ►  
     The core useful foundation class is 
     
     
  
 
 
	 00:50:32
     ◼ 
      
     ►  
     in a string, in its data, in its array. 
     
     
  
 
 
	 00:50:34
     ◼ 
      
     ►  
     There's so much weird-- OK, I want to convert this to this. 
     
     
  
 
 
	 00:50:40
     ◼ 
      
     ►  
     Which object has that class, or has that method? 
     
     
  
 
 
	 00:50:42
     ◼ 
      
     ►  
     Which class has that method? 
     
     
  
 
 
	 00:50:43
     ◼ 
      
     ►  
     And a lot of times, it's not the one you expect it to be. 
     
     
  
 
 
 
	 00:50:46
     ◼ 
      
     ►  
     You've got to do like a knitWith, 
     
     
  
 
 
	 00:50:48
     ◼ 
      
     ►  
     and then you pass the NSString, or do you 
     
     
  
 
 
	 00:50:49
     ◼ 
      
     ►  
     call a method on NSString that returns the string from data? 
     
     
  
 
 
 
	 00:50:53
     ◼ 
      
     ►  
     And yeah, it's-- 
     
     
  
 
 
 
	 00:50:54
     ◼ 
      
     ►  
     String to data gets me every time. 
     
     
  
 
 
	 00:50:56
     ◼ 
      
     ►  
     I always assume the wrong one has the method I need, 
     
     
  
 
 
	 00:50:58
     ◼ 
      
     ►  
     and I always have to spend two minutes looking 
     
     
  
 
 
	 00:51:00
     ◼ 
      
     ►  
     through documentation-- 
     
     
  
 
 
	 00:51:01
     ◼ 
      
     ►  
     I actually have a macro IP string to data. 
     
     
  
 
 
 
	 00:51:05
     ◼ 
      
     ►  
     Or I know, and IP data to string, 
     
     
  
 
 
	 00:51:08
     ◼ 
      
     ►  
     which is also a very common one. 
     
     
  
 
 
	 00:51:10
     ◼ 
      
     ►  
     like when dealing with web services, you get back data. 
     
     
  
 
 
	 00:51:14
     ◼ 
      
     ►  
     I use those constantly. 
     
     
  
 
 
	 00:51:15
     ◼ 
      
     ►  
     I also have a whole string category 
     
     
  
 
 
	 00:51:18
     ◼ 
      
     ►  
     that I stick on my strings. 
     
     
  
 
 
	 00:51:22
     ◼ 
      
     ►  
     I stole XPath's string functions, 
     
     
  
 
 
	 00:51:24
     ◼ 
      
     ►  
     so I have substring before, substring after, contains, 
     
     
  
 
 
	 00:51:28
     ◼ 
      
     ►  
     and a few other little things like that. 
     
     
  
 
 
	 00:51:31
     ◼ 
      
     ►  
     Like to just parse strings and check them, 
     
     
  
 
 
	 00:51:32
     ◼ 
      
     ►  
     because it's just-- even contains, 
     
     
  
 
 
	 00:51:34
     ◼ 
      
     ►  
     it's like a way more compact syntax than like-- 
     
     
  
 
 
	 00:51:37
     ◼ 
      
     ►  
     Oh, god, yes. 
     
     
  
 
 
	 00:51:37
     ◼ 
      
     ►  
     If n is not found does not equal string range 
     
     
  
 
 
	 00:51:40
     ◼ 
      
     ►  
     of string and yeah, it's so much more compact. 
     
     
  
 
 
	 00:51:44
     ◼ 
      
     ►  
     So I'll definitely add helpers for things like that 
     
     
  
 
 
	 00:51:46
     ◼ 
      
     ►  
     that I do very commonly. 
     
     
  
 
 
	 00:51:48
     ◼ 
      
     ►  
     URL encoding, the default method of string 
     
     
  
 
 
	 00:51:52
     ◼ 
      
     ►  
     by replacing percent escapes using, 
     
     
  
 
 
	 00:51:56
     ◼ 
      
     ►  
     like that big long method that converts a string 
     
     
  
 
 
	 00:51:59
     ◼ 
      
     ►  
     to URL encoding doesn't do it right for OAuth. 
     
     
  
 
 
	 00:52:01
     ◼ 
      
     ►  
     There's a few characters that that method doesn't encode 
     
     
  
 
 
	 00:52:07
     ◼ 
      
     ►  
     that whatever RFC OAuth requires does require them to be encoded. 
     
     
  
 
 
	 00:52:11
     ◼ 
      
     ►  
     So I have my own IP URL encode string methods. 
     
     
  
 
 
	 00:52:15
     ◼ 
      
     ►  
     So I have weird add-ons like that that just save me time. 
     
     
  
 
 
	 00:52:19
     ◼ 
      
     ►  
     And the whole idea of having categories on classes 
     
     
  
 
 
	 00:52:22
     ◼ 
      
     ►  
     is awesome, that you can extend the built-in system classes. 
     
     
  
 
 
	 00:52:26
     ◼ 
      
     ►  
     You think that's awesome? 
     
     
  
 
 
	 00:52:28
     ◼ 
      
     ►  
     Yeah, you love Ruby. 
     
     
  
 
 
	 00:52:29
     ◼ 
      
     ►  
     A monkey patching your brains out. 
     
     
  
 
 
	 00:52:30
     ◼ 
      
     ►  
     You're going to go blind. 
     
     
  
 
 
	 00:52:31
     ◼ 
      
     ►  
     Certainly it can be done badly. 
     
     
  
 
 
	 00:52:34
     ◼ 
      
     ►  
     And also, haven't you heard? 
     
     
  
 
 
	 00:52:35
     ◼ 
      
     ►  
     It's three letters, please, for third party code in the prefixes. 
     
     
  
 
 
	 00:52:40
     ◼ 
      
     ►  
     You're just going to stick with IP, because that'll never 
     
     
  
 
 
	 00:52:42
     ◼ 
      
     ►  
     conflict with anything having to do with the technology stack, 
     
     
  
 
 
 
	 00:52:44
     ◼ 
      
     ►  
     Yeah, exactly. 
     
     
  
 
 
	 00:52:47
     ◼ 
      
     ►  
     I don't understand why there are no namespaces. 
     
     
  
 
 
	 00:52:49
     ◼ 
      
     ►  
     I mean, I understand, because it's all C and it's all-- 
     
     
  
 
 
	 00:52:51
     ◼ 
      
     ►  
     It's just C with the runtime. 
     
     
  
 
 
	 00:52:53
     ◼ 
      
     ►  
     I know, I know. 
     
     
  
 
 
	 00:52:54
     ◼ 
      
     ►  
     But god, namespaces would be so nice. 
     
     
  
 
 
	 00:52:56
     ◼ 
      
     ►  
     Well, you know, like baby steps. 
     
     
  
 
 
	 00:52:57
     ◼ 
      
     ►  
     All these problems you're talking about would be solved. 
     
     
  
 
 
	 00:52:59
     ◼ 
      
     ►  
     They just had to put a nicer, higher-level language, 
     
     
  
 
 
 
	 00:53:02
     ◼ 
      
     ►  
     You know what? 
     
     
  
 
 
	 00:53:03
     ◼ 
      
     ►  
     It'll never happen, John. 
     
     
  
 
 
	 00:53:04
     ◼ 
      
     ►  
     He's been bitching about that for years. Well, this year is going to be type inference, 
     
     
  
 
 
	 00:53:08
     ◼ 
      
     ►  
     right? So we're lurching towards something, but all that crap with the strings and the data and 
     
     
  
 
 
	 00:53:15
     ◼ 
      
     ►  
     dealing with stuff like that, it completely goes away if you have a language that has, 
     
     
  
 
 
	 00:53:20
     ◼ 
      
     ►  
     I don't know, native strings and a little more laissez-faire attitude about data types where you 
     
     
  
 
 
	 00:53:25
     ◼ 
      
     ►  
     can just sling things around and not worry about if it's a float or an integer or a number. Oh, 
     
     
  
 
 
	 00:53:30
     ◼ 
      
     ►  
     no, you can't do that. That language is useless. I know. I know all the reasons why 
     
     
  
 
 
	 00:53:34
     ◼ 
      
     ►  
     Objective-C is living on and it's way more efficient and so on. But, you know, everyone 
     
     
  
 
 
	 00:53:38
     ◼ 
      
     ►  
     wants to have their cake and eat it too. So right now at least Apple has its cake. 
     
     
  
 
 
	 00:53:40
     ◼ 
      
     ►  
     I honestly, I like it. 
     
     
  
 
 
	 00:53:42
     ◼ 
      
     ►  
     I understand how that analogy works. 
     
     
  
 
 
	 00:53:43
     ◼ 
      
     ►  
     But I like Objective-C and all of Apple's recent stuff with it. I mean, yeah, it's not perfect. 
     
     
  
 
 
	 00:53:48
     ◼ 
      
     ►  
     But, you know, I think if you think any language is perfect, you don't know it well enough yet. 
     
     
  
 
 
	 00:53:53
     ◼ 
      
     ►  
     Or you don't have enough experience as a programmer, honestly. And so every language 
     
     
  
 
 
	 00:53:58
     ◼ 
      
     ►  
     has problems and shortcomings. And, you know, just by the nature of these things, it's not 
     
     
  
 
 
	 00:54:03
     ◼ 
      
     ►  
     really possible to design a perfect language. 
     
     
  
 
 
	 00:54:06
     ◼ 
      
     ►  
     And certainly, Objective-C has a lot of ancient baggage 
     
     
  
 
 
	 00:54:11
     ◼ 
      
     ►  
     that it's still carrying that it can probably never get rid of 
     
     
  
 
 
	 00:54:13
     ◼ 
      
     ►  
     because of the kind of language it is. 
     
     
  
 
 
	 00:54:15
     ◼ 
      
     ►  
     But Apple's doing some pretty awesome stuff with it. 
     
     
  
 
 
	 00:54:19
     ◼ 
      
     ►  
     Like even simple things, they did reduce a whole lot 
     
     
  
 
 
	 00:54:22
     ◼ 
      
     ►  
     of that boilerplate last year when they introduced 
     
     
  
 
 
	 00:54:26
     ◼ 
      
     ►  
     compact syntax for array access, dictionaries, stuff like that, 
     
     
  
 
 
	 00:54:31
     ◼ 
      
     ►  
     the compact primitives. 
     
     
  
 
 
	 00:54:33
     ◼ 
      
     ►  
     They introduced a lot of that stuff that they are making real progress, making synthesize 
     
     
  
 
 
	 00:54:39
     ◼ 
      
     ►  
     optional, stuff like that. 
     
     
  
 
 
	 00:54:41
     ◼ 
      
     ►  
     And they'll get rid of the double name stuff with the type inference where you won't have 
     
     
  
 
 
	 00:54:46
     ◼ 
      
     ►  
     to declare the variable being of type whatever and then call the class method to give you 
     
     
  
 
 
	 00:54:52
     ◼ 
      
     ►  
     a new one of those. 
     
     
  
 
 
	 00:54:53
     ◼ 
      
     ►  
     Didn't I just write that name? 
     
     
  
 
 
 
	 00:54:56
     ◼ 
      
     ►  
     Well, of course that's the class that I'm going to call the method on to instantiate 
     
     
  
 
 
	 00:54:59
     ◼ 
      
     ►  
     one of those because that's the type of the variable. 
     
     
  
 
 
	 00:55:02
     ◼ 
      
     ►  
     So that's my next guess for what they're going to add. 
     
     
  
 
 
	 00:55:06
     ◼ 
      
     ►  
     But I still feel like at a certain point, you can't-- 
     
     
  
 
 
	 00:55:10
     ◼ 
      
     ►  
     it's like HFS Plus. 
     
     
  
 
 
	 00:55:10
     ◼ 
      
     ►  
     At a certain point, you can't just keep adding crap 
     
     
  
 
 
	 00:55:12
     ◼ 
      
     ►  
     or fixing crap or trying to make it better. 
     
     
  
 
 
	 00:55:14
     ◼ 
      
     ►  
     At a certain point, you need a new boat. 
     
     
  
 
 
 
	 00:55:16
     ◼ 
      
     ►  
     As long as it's like a C-based language, 
     
     
  
 
 
	 00:55:18
     ◼ 
      
     ►  
     you're always going to have-- there's 
     
     
  
 
 
	 00:55:20
     ◼ 
      
     ►  
     going to be a pretty hard limit on a lot of these modern niceties 
     
     
  
 
 
	 00:55:24
     ◼ 
      
     ►  
     that you can add to it. 
     
     
  
 
 
	 00:55:26
     ◼ 
      
     ►  
     I mean, the transition I see-- I'll 
     
     
  
 
 
	 00:55:28
     ◼ 
      
     ►  
     keep predicting this until I'm dead 
     
     
  
 
 
	 00:55:30
     ◼ 
      
     ►  
     or until Apple goes out of business-- 
     
     
  
 
 
	 00:55:31
     ◼ 
      
     ►  
     is that you know how now you have core foundation, which 
     
     
  
 
 
	 00:55:34
     ◼ 
      
     ►  
     is just straight C, and you've got the Objective-C APIs, 
     
     
  
 
 
	 00:55:36
     ◼ 
      
     ►  
     and everyone's like, oh, I've got to deal with core foundation 
     
     
  
 
 
	 00:55:39
     ◼ 
      
     ►  
     APIs, like lower level, and it doesn't have all this stuff, 
     
     
  
 
 
	 00:55:41
     ◼ 
      
     ►  
     or whatever. 
     
     
  
 
 
	 00:55:44
     ◼ 
      
     ►  
     If they come up with something higher level than Objective-C, 
     
     
  
 
 
	 00:55:46
     ◼ 
      
     ►  
     which I think a higher level language is much more 
     
     
  
 
 
	 00:55:48
     ◼ 
      
     ►  
     appropriate for most of the stuff you do-- catching events, 
     
     
  
 
 
	 00:55:52
     ◼ 
      
     ►  
     figuring out when they click this button, 
     
     
  
 
 
	 00:55:53
     ◼ 
      
     ►  
     bring this view into view. 
     
     
  
 
 
	 00:55:54
     ◼ 
      
     ►  
     Like, that crap does not need to be in a C-based language. 
     
     
  
 
 
	 00:55:58
     ◼ 
      
     ►  
     It's just monkey work of connecting up things in the UI. 
     
     
  
 
 
	 00:56:00
     ◼ 
      
     ►  
     But there will always be parts of it that need to be in a lower level language. 
     
     
  
 
 
	 00:56:03
     ◼ 
      
     ►  
     So then you have a continuum of, all right, I wrote most of my code 
     
     
  
 
 
	 00:56:06
     ◼ 
      
     ►  
     in whatever this higher level language is. 
     
     
  
 
 
	 00:56:08
     ◼ 
      
     ►  
     And then some portions of it are Objective-C 
     
     
  
 
 
	 00:56:09
     ◼ 
      
     ►  
     because it's so much more efficient. 
     
     
  
 
 
	 00:56:11
     ◼ 
      
     ►  
     And then presumably some portions are still in core foundation. 
     
     
  
 
 
	 00:56:13
     ◼ 
      
     ►  
     It's a layer cake of, all right, well, the OpenGL crap is still a straight C 
     
     
  
 
 
	 00:56:18
     ◼ 
      
     ►  
     API because that's really performance sensitive. 
     
     
  
 
 
	 00:56:20
     ◼ 
      
     ►  
     And then somewhere in the middle is something 
     
     
  
 
 
	 00:56:22
     ◼ 
      
     ►  
     that's not high level UI dealing with it, 
     
     
  
 
 
	 00:56:25
     ◼ 
      
     ►  
     but it's a little bit lower level. 
     
     
  
 
 
	 00:56:26
     ◼ 
      
     ►  
     And then at the top, you'll be-- overall structure 
     
     
  
 
 
	 00:56:29
     ◼ 
      
     ►  
     most of the time you're writing this very high-level language. 
     
     
  
 
 
	 00:56:31
     ◼ 
      
     ►  
     I could see them going to something like that. 
     
     
  
 
 
	 00:56:33
     ◼ 
      
     ►  
     I think that served them very well, though, 
     
     
  
 
 
	 00:56:35
     ◼ 
      
     ►  
     in these early years of mobile computers. 
     
     
  
 
 
	 00:56:40
     ◼ 
      
     ►  
     Because they have gained so well-- 
     
     
  
 
 
	 00:56:43
     ◼ 
      
     ►  
     they've benefited so much from just the sheer efficiency 
     
     
  
 
 
	 00:56:47
     ◼ 
      
     ►  
     of the C-based language. 
     
     
  
 
 
	 00:56:49
     ◼ 
      
     ►  
     The things that benefit them early suddenly 
     
     
  
 
 
	 00:56:51
     ◼ 
      
     ►  
     become disadvantages later. 
     
     
  
 
 
 
	 00:56:54
     ◼ 
      
     ►  
     Because then suddenly everyone else is less efficient language. 
     
     
  
 
 
	 00:56:56
     ◼ 
      
     ►  
     The CPUs catch up. 
     
     
  
 
 
	 00:56:57
     ◼ 
      
     ►  
     and it's like, "Oh, that was the great advantage for you back then, but now not so much. Now 
     
     
  
 
 
	 00:57:03
     ◼ 
      
     ►  
     that advantage is insignificant." 
     
     
  
 
 
	 00:57:06
     ◼ 
      
     ►  
     If WebOS came out five years from now, it would stand a way better chance in the market, 
     
     
  
 
 
	 00:57:12
     ◼ 
      
     ►  
     because everyone wouldn't be complaining about its terrible battery life and terrible performance. 
     
     
  
 
 
	 00:57:19
     ◼ 
      
     ►  
     It wouldn't be that big of a difference from anything else that was out there. 
     
     
  
 
 
	 00:57:23
     ◼ 
      
     ►  
     It's kind of like Android. 
     
     
  
 
 
	 00:57:24
     ◼ 
      
     ►  
     I mean, Java is disgusting, right? 
     
     
  
 
 
	 00:57:25
     ◼ 
      
     ►  
     But Android, like it is-- 
     
     
  
 
 
	 00:57:27
     ◼ 
      
     ►  
     Tennessee, I think. 
     
     
  
 
 
	 00:57:29
     ◼ 
      
     ►  
     It is using a high-level language. 
     
     
  
 
 
	 00:57:30
     ◼ 
      
     ►  
     And it was slower for a long time. 
     
     
  
 
 
	 00:57:33
     ◼ 
      
     ►  
     And arguably, iOS still has the performance advantage there, 
     
     
  
 
 
	 00:57:36
     ◼ 
      
     ►  
     but the gap has really closed. 
     
     
  
 
 
 
	 00:57:38
     ◼ 
      
     ►  
     Hardware is getting better. 
     
     
  
 
 
	 00:57:39
     ◼ 
      
     ►  
     There's more memory. 
     
     
  
 
 
	 00:57:41
     ◼ 
      
     ►  
     There's more stuff to indulge Java's foibles. 
     
     
  
 
 
	 00:57:44
     ◼ 
      
     ►  
     And if you believe that the things you 
     
     
  
 
 
	 00:57:47
     ◼ 
      
     ►  
     don't have to worry about in Java, 
     
     
  
 
 
	 00:57:48
     ◼ 
      
     ►  
     like segmentation faults and crap like that, 
     
     
  
 
 
	 00:57:51
     ◼ 
      
     ►  
     are an advantage, then suddenly Android's platform, 
     
     
  
 
 
	 00:57:56
     ◼ 
      
     ►  
     in this particular respect, becomes 
     
     
  
 
 
	 00:57:57
     ◼ 
      
     ►  
     more attractive to development, to doing new developments. 
     
     
  
 
 
	 00:58:00
     ◼ 
      
     ►  
     You don't have to learn about Arc. 
     
     
  
 
 
	 00:58:01
     ◼ 
      
     ►  
     You don't have to learn about pointers, for crying out loud. 
     
     
  
 
 
	 00:58:05
     ◼ 
      
     ►  
     You know what I mean? 
     
     
  
 
 
 
	 00:58:06
     ◼ 
      
     ►  
     You don't have all these weird stars before your variable 
     
     
  
 
 
	 00:58:07
     ◼ 
      
     ►  
     names that new programmers have no idea what they're there for. 
     
     
  
 
 
 
	 00:58:10
     ◼ 
      
     ►  
     What is that? 
     
     
  
 
 
	 00:58:11
     ◼ 
      
     ►  
     And why it weirdly breaks when they forget one. 
     
     
  
 
 
	 00:58:13
     ◼ 
      
     ►  
     Luckily for Apple, in the continuum of things 
     
     
  
 
 
	 00:58:16
     ◼ 
      
     ►  
     that make someone go on a platform or not, 
     
     
  
 
 
	 00:58:18
     ◼ 
      
     ►  
     the crappiness of the language is very low on the list, 
     
     
  
 
 
	 00:58:21
     ◼ 
      
     ►  
     as evidenced by the fact of all these bazillion people suddenly learning Objective-C, because 
     
     
  
 
 
	 00:58:25
     ◼ 
      
     ►  
     that's where the money is. 
     
     
  
 
 
 
	 00:58:27
     ◼ 
      
     ►  
     So, all right, we'll learn your crazy-ass language with square brackets. 
     
     
  
 
 
	 00:58:29
     ◼ 
      
     ►  
     Just get out of my way. 
     
     
  
 
 
	 00:58:31
     ◼ 
      
     ►  
     And that's always how it's been, except on the web. 
     
     
  
 
 
	 00:58:33
     ◼ 
      
     ►  
     On the web, you can write in pretty much anything, as long as you can find some server software 
     
     
  
 
 
 
	 00:58:38
     ◼ 
      
     ►  
     So the web has tons of great languages to choose from, and it doesn't really matter 
     
     
  
 
 
	 00:58:41
     ◼ 
      
     ►  
     which one you write in. 
     
     
  
 
 
	 00:58:42
     ◼ 
      
     ►  
     But on native platforms, there's always been one language and one framework on every major 
     
     
  
 
 
	 00:58:50
     ◼ 
      
     ►  
     native platform where you really should be writing things in that. 
     
     
  
 
 
	 00:58:54
     ◼ 
      
     ►  
     And Windows for a long time has been C++ and then 
     
     
  
 
 
	 00:58:58
     ◼ 
      
     ►  
     more recently it's moving into .NET stuff. OS 10 has 
     
     
  
 
 
	 00:59:02
     ◼ 
      
     ►  
     always been Objective-C. iOS has always been Objective-C. 
     
     
  
 
 
	 00:59:06
     ◼ 
      
     ►  
     They're adding stuff to the framework. There's always 
     
     
  
 
 
	 00:59:10
     ◼ 
      
     ►  
     that push that if you want to develop on this platform you should really be doing it 
     
     
  
 
 
	 00:59:14
     ◼ 
      
     ►  
     in this language everywhere except the web. 
     
     
  
 
 
	 00:59:18
     ◼ 
      
     ►  
     So, if—I agree with that. That is a very interesting point. My question for the two 
     
     
  
 
 
	 00:59:24
     ◼ 
      
     ►  
     of you gentlemen is, if you were to pick the language today that would replace or supplement 
     
     
  
 
 
	 00:59:32
     ◼ 
      
     ►  
     Objective-C, what is it? 
     
     
  
 
 
	 00:59:33
     ◼ 
      
     ►  
     Jon, this is all you. 
     
     
  
 
 
	 00:59:38
     ◼ 
      
     ►  
     What are my criteria? What realistic bounds do I have to stick with? 
     
     
  
 
 
	 00:59:44
     ◼ 
      
     ►  
     It has to be language that exists today, which by the way, I don't think Apple would necessarily 
     
     
  
 
 
	 00:59:48
     ◼ 
      
     ►  
     play by that rule. 
     
     
  
 
 
	 00:59:49
     ◼ 
      
     ►  
     No, they definitely. 
     
     
  
 
 
	 00:59:51
     ◼ 
      
     ►  
     And it has to prevent John Syracuse from continuing to bitch about what languages are available 
     
     
  
 
 
	 00:59:57
     ◼ 
      
     ►  
     for use in Apple platforms. 
     
     
  
 
 
	 01:00:00
     ◼ 
      
     ►  
     No choices to fill those criteria. 
     
     
  
 
 
	 01:00:02
     ◼ 
      
     ►  
     Okay, it will get him to complain as little as possible, which is an extremely lofty but 
     
     
  
 
 
	 01:00:08
     ◼ 
      
     ►  
     theoretically plausible goal. 
     
     
  
 
 
	 01:00:10
     ◼ 
      
     ►  
     This is a good question because it makes me realize all this time I've been talking to 
     
     
  
 
 
	 01:00:13
     ◼ 
      
     ►  
     I've never been pushing for Apple to adopt any existing languages. 
     
     
  
 
 
	 01:00:17
     ◼ 
      
     ►  
     I've always been thinking that they will do their own thing. 
     
     
  
 
 
	 01:00:20
     ◼ 
      
     ►  
     Like, pretty much as they have been, like Objective-C, at this point, is their own thing. 
     
     
  
 
 
	 01:00:24
     ◼ 
      
     ►  
     Like, it may have started out as the old--like, at this point, whatever crazy fake version number they apply to the language, 
     
     
  
 
 
	 01:00:29
     ◼ 
      
     ►  
     they've changed it so much, they're completely fearless about changing it. 
     
     
  
 
 
	 01:00:32
     ◼ 
      
     ►  
     So I always imagined, whatever thing replaced it would also be of their own invention, 
     
     
  
 
 
	 01:00:36
     ◼ 
      
     ►  
     exactly tailored to what they need the language to do, 
     
     
  
 
 
	 01:00:39
     ◼ 
      
     ►  
     And no language, like, there's no language out there that I like well enough to say they 
     
     
  
 
 
	 01:00:46
     ◼ 
      
     ►  
     should just do that one. 
     
     
  
 
 
	 01:00:48
     ◼ 
      
     ►  
     And I think you're right, and I think they would do their own thing, but then that John 
     
     
  
 
 
	 01:00:52
     ◼ 
      
     ►  
     Syracuse guy would continue to complain about the fact that everyone has to learn this weird 
     
     
  
 
 
	 01:00:56
     ◼ 
      
     ►  
     new language. 
     
     
  
 
 
	 01:00:57
     ◼ 
      
     ►  
     No, I never complained about learning. 
     
     
  
 
 
	 01:00:58
     ◼ 
      
     ►  
     I have never made a single complaint about, "Oh, you've got to learn this new language." 
     
     
  
 
 
 
	 01:01:01
     ◼ 
      
     ►  
     Well, here's an idea. 
     
     
  
 
 
	 01:01:03
     ◼ 
      
     ►  
     What if they are doing it already? 
     
     
  
 
 
	 01:01:05
     ◼ 
      
     ►  
     What if--so similarly, how Objective-C in its first implementations was basically a 
     
     
  
 
 
	 01:01:11
     ◼ 
      
     ►  
     macro language on top of C. Is that accurate? I've always heard that. 
     
     
  
 
 
	 01:01:16
     ◼ 
      
     ►  
     You're thinking of C++. 
     
     
  
 
 
	 01:01:17
     ◼ 
      
     ►  
     OK. No, I don't think so. I think it was C. Anyway-- 
     
     
  
 
 
	 01:01:19
     ◼ 
      
     ►  
     No, C++ was C with classes, and it was just a series of-- 
     
     
  
 
 
	 01:01:24
     ◼ 
      
     ►  
     Yes, that is also true. But I think Objective-C started out the same way. 
     
     
  
 
 
	 01:01:27
     ◼ 
      
     ►  
     It always had to have a runtime, right? I mean, it wasn't just macros. It had to have 
     
     
  
 
 
	 01:01:31
     ◼ 
      
     ►  
     a library of code to somewhere, Objective-C message then had to be written and you had 
     
     
  
 
 
	 01:01:36
     ◼ 
      
     ►  
     to call into that library to call a method. 
     
     
  
 
 
 
	 01:01:39
     ◼ 
      
     ►  
     Anyway, Objective-C started out as a bolt-on on top of C. It has matured a lot since then, 
     
     
  
 
 
	 01:01:44
     ◼ 
      
     ►  
     and the C roots are still all there, but now the tools are all native of Objective-C, the 
     
     
  
 
 
	 01:01:50
     ◼ 
      
     ►  
     compilers are all native of Objective-C that Apple's writing. 
     
     
  
 
 
	 01:01:55
     ◼ 
      
     ►  
     That is the language now. 
     
     
  
 
 
	 01:01:57
     ◼ 
      
     ►  
     What if their next big language is what they're doing with Objective-C now? 
     
     
  
 
 
	 01:02:03
     ◼ 
      
     ►  
     That's moving towards it. 
     
     
  
 
 
	 01:02:04
     ◼ 
      
     ►  
     And then at some point in the future, they enable some kind of new syntax mode, where 
     
     
  
 
 
	 01:02:11
     ◼ 
      
     ►  
     it adds a lot of the stuff that we want, it adds a lot of the complex stuff, it hides 
     
     
  
 
 
	 01:02:14
     ◼ 
      
     ►  
     pointers and things like that. 
     
     
  
 
 
	 01:02:16
     ◼ 
      
     ►  
     Yeah, so Objective-C without the C. 
     
     
  
 
 
	 01:02:18
     ◼ 
      
     ►  
     Yeah, built on top of Objective-C temporarily, or in version one. 
     
     
  
 
 
	 01:02:23
     ◼ 
      
     ►  
     And then over time—and exactly what you said, you'll have to drop into that syntax 
     
     
  
 
 
	 01:02:27
     ◼ 
      
     ►  
     to use some low-level APIs, but most of everything will be available right there. 
     
     
  
 
 
	 01:02:34
     ◼ 
      
     ►  
     I think they're moving... 
     
     
  
 
 
	 01:02:35
     ◼ 
      
     ►  
     Because if they were going to replace this language in five years, I don't think they'd 
     
     
  
 
 
	 01:02:40
     ◼ 
      
     ►  
     be putting this much effort into it now. 
     
     
  
 
 
	 01:02:42
     ◼ 
      
     ►  
     They're doing radical changes to it now. 
     
     
  
 
 
	 01:02:45
     ◼ 
      
     ►  
     The Objective-C without the C thing seems to be the path they're going on, but this 
     
     
  
 
 
	 01:02:48
     ◼ 
      
     ►  
     does not entirely satisfy me. 
     
     
  
 
 
	 01:02:50
     ◼ 
      
     ►  
     I'm sure they're taking this into account with their plans. 
     
     
  
 
 
	 01:02:52
     ◼ 
      
     ►  
     They are, totally. 
     
     
  
 
 
	 01:02:53
     ◼ 
      
     ►  
     They're listening right now somehow. 
     
     
  
 
 
	 01:02:57
     ◼ 
      
     ►  
     The people who are making decisions about what to do disagree with me about what the 
     
     
  
 
 
	 01:03:03
     ◼ 
      
     ►  
     ideal situation would be. 
     
     
  
 
 
	 01:03:04
     ◼ 
      
     ►  
     I think they would be perfectly happy to slowly evolve Objective-C to eventually bifurcated 
     
     
  
 
 
	 01:03:09
     ◼ 
      
     ►  
     into Objective-C without the C part, where safety is much more guaranteed than it is 
     
     
  
 
 
	 01:03:14
     ◼ 
      
     ►  
     and you could have an unsafe realm. 
     
     
  
 
 
	 01:03:16
     ◼ 
      
     ►  
     And then most people eventually get most people doing their coding in the safe part, where 
     
     
  
 
 
	 01:03:21
     ◼ 
      
     ►  
     you can't scribble all over your own memory, where you just call into Objective-C APIs 
     
     
  
 
 
	 01:03:25
     ◼ 
      
     ►  
     and just use the escape hatch for the other stuff. 
     
     
  
 
 
	 01:03:28
     ◼ 
      
     ►  
     But I really, like I mentioned, I really think that ideally-- 
     
     
  
 
 
	 01:03:31
     ◼ 
      
     ►  
     and of course, you can't have the ideal-- but ideally, 
     
     
  
 
 
	 01:03:35
     ◼ 
      
     ►  
     a higher level language with more safety guarantees 
     
     
  
 
 
	 01:03:37
     ◼ 
      
     ►  
     and less fussiness about types wouldn't just mean, 
     
     
  
 
 
	 01:03:40
     ◼ 
      
     ►  
     oh, well, we've got that language. 
     
     
  
 
 
	 01:03:42
     ◼ 
      
     ►  
     We're all set. 
     
     
  
 
 
	 01:03:42
     ◼ 
      
     ►  
     It would also necessarily imply different APIs. 
     
     
  
 
 
	 01:03:46
     ◼ 
      
     ►  
     Like in a language with built-in strings, 
     
     
  
 
 
	 01:03:48
     ◼ 
      
     ►  
     NSString doesn't exist. 
     
     
  
 
 
	 01:03:50
     ◼ 
      
     ►  
     You don't instantiate a class to get a string in a language that 
     
     
  
 
 
	 01:03:53
     ◼ 
      
     ►  
     has native strings. 
     
     
  
 
 
	 01:03:54
     ◼ 
      
     ►  
     in a language that has language level support for regular expressions, that's not like a 
     
     
  
 
 
	 01:04:01
     ◼ 
      
     ►  
     library you call. 
     
     
  
 
 
	 01:04:03
     ◼ 
      
     ►  
     As things get pulled into the language, you necessarily change the way API works. 
     
     
  
 
 
	 01:04:08
     ◼ 
      
     ►  
     Whole concepts of APIs change based on what the language supports. 
     
     
  
 
 
	 01:04:12
     ◼ 
      
     ►  
     That's why these bridges are so terrible. 
     
     
  
 
 
	 01:04:14
     ◼ 
      
     ►  
     Like if you have Python, you're like, "Oh, I have this amazing Python. 
     
     
  
 
 
	 01:04:17
     ◼ 
      
     ►  
     It's high level language." 
     
     
  
 
 
	 01:04:18
     ◼ 
      
     ►  
     But you're just calling the same freaking APIs and they don't mesh. 
     
     
  
 
 
	 01:04:21
     ◼ 
      
     ►  
     It seems like, boy, no one would ever write a Python API like this. It's so clear that I'm 
     
     
  
 
 
	 01:04:25
     ◼ 
      
     ►  
     calling into an Objective-C API, not just because of the naming conventions, but just because of 
     
     
  
 
 
	 01:04:29
     ◼ 
      
     ►  
     write out error parameters where you pass in an error and it's going to write back to it and crap 
     
     
  
 
 
	 01:04:35
     ◼ 
      
     ►  
     like that. That doesn't happen in high-level languages because you could. You could pass 
     
     
  
 
 
	 01:04:39
     ◼ 
      
     ►  
     references in languages with references, but it just doesn't. It's not how you design the API. 
     
     
  
 
 
	 01:04:43
     ◼ 
      
     ►  
     And like I said, the whole NIS string wing of the language just disappears. And then maybe, 
     
     
  
 
 
	 01:04:50
     ◼ 
      
     ►  
     like Ruby, you have all the strings be objects and you have methods on them, which isn't 
     
     
  
 
 
	 01:04:53
     ◼ 
      
     ►  
     that the same thing? Well, not really, because it's not like you're saying "new string" and 
     
     
  
 
 
	 01:04:57
     ◼ 
      
     ►  
     putting—I just feel like the language and the API are a matched set, and you can't change 
     
     
  
 
 
	 01:05:04
     ◼ 
      
     ►  
     one without changing the other. And if you change the language sufficiently, if you keep 
     
     
  
 
 
	 01:05:07
     ◼ 
      
     ►  
     evolving this language to the point where it starts becoming higher level and more safe 
     
     
  
 
 
	 01:05:12
     ◼ 
      
     ►  
     and less work for the developer, it will be a shame if the API still looks like, "Oh, 
     
     
  
 
 
	 01:05:18
     ◼ 
      
     ►  
     "Oh, well, why does the API look like this?" Well, it used to be it was just the C-based 
     
     
  
 
 
	 01:05:21
     ◼ 
      
     ►  
     language, and this is the way everything was. 
     
     
  
 
 
	 01:05:23
     ◼ 
      
     ►  
     Well, see, I'm not sure I agree, though, because everything you just described is .NET, 
     
     
  
 
 
	 01:05:28
     ◼ 
      
     ►  
     or at least to my ears. And it's weird, because I have no love for Microsoft, but I do think 
     
     
  
 
 
	 01:05:34
     ◼ 
      
     ►  
     .NET is actually a pretty cool language. And to a .NET developer, you, generally speaking, 
     
     
  
 
 
	 01:05:40
     ◼ 
      
     ►  
     can use the Win32 API without ever touching C++ or C, because .NET consumes all of that 
     
     
  
 
 
	 01:05:47
     ◼ 
      
     ►  
     and acts as the bridge. 
     
     
  
 
 
	 01:05:49
     ◼ 
      
     ►  
     And even when I'm calling into these APIs, I don't need to 
     
     
  
 
 
	 01:05:52
     ◼ 
      
     ►  
     worry about pointers. 
     
     
  
 
 
	 01:05:54
     ◼ 
      
     ►  
     I can, but I don't need to. 
     
     
  
 
 
	 01:05:55
     ◼ 
      
     ►  
     And generally speaking, I don't need to worry about any 
     
     
  
 
 
	 01:05:57
     ◼ 
      
     ►  
     of that crap, because .NET has encapsulated all of it and is 
     
     
  
 
 
	 01:06:00
     ◼ 
      
     ►  
     putting a facade in front of it, so I don't have to worry 
     
     
  
 
 
 
	 01:06:03
     ◼ 
      
     ►  
     That being said, if I have an old C API that I want to call, 
     
     
  
 
 
	 01:06:06
     ◼ 
      
     ►  
     or C++ API I want to call, I can P invoke into it. 
     
     
  
 
 
	 01:06:09
     ◼ 
      
     ►  
     And I can say, hey, there's DLL here. 
     
     
  
 
 
	 01:06:10
     ◼ 
      
     ►  
     Here's the structure of the method I need to call. 
     
     
  
 
 
	 01:06:13
     ◼ 
      
     ►  
     And I can even do it unsafely. 
     
     
  
 
 
	 01:06:16
     ◼ 
      
     ►  
     and I have an unsafe keyword where I can manage my own memory and do all that crap. So everything 
     
     
  
 
 
	 01:06:19
     ◼ 
      
     ►  
     you just described, believe it or not, is .NET. I'm not necessarily saying that. 
     
     
  
 
 
	 01:06:23
     ◼ 
      
     ►  
     I know about .NET. I think .NET is way far ahead of where Apple is, technologically speaking. 
     
     
  
 
 
	 01:06:29
     ◼ 
      
     ►  
     Maybe not necessarily API-wise, because Microsoft seems to have more trouble figuring out what 
     
     
  
 
 
	 01:06:34
     ◼ 
      
     ►  
     it wants out of an API and sticking to it. I don't remember what iteration of, you know, 
     
     
  
 
 
	 01:06:38
     ◼ 
      
     ►  
     "No, you should use this toolkit for UIs." No, actually, just this one. 
     
     
  
 
 
	 01:06:41
     ◼ 
      
     ►  
     It changes every five years. 
     
     
  
 
 
	 01:06:42
     ◼ 
      
     ►  
     Okay, no, seriously. 
     
     
  
 
 
 
 
	 01:06:45
     ◼ 
      
     ►  
     The CLR and that whole idea behind it, that is a foundation, that if Apple had that foundation 
     
     
  
 
 
	 01:06:50
     ◼ 
      
     ►  
     now and it was performant and they'd put as much time into it as Windows had, they would 
     
     
  
 
 
	 01:06:53
     ◼ 
      
     ►  
     be in a much stronger position to say, "Look, everything is common language runtime, and 
     
     
  
 
 
	 01:06:57
     ◼ 
      
     ►  
     we have all these escape patches for unsafe, and we can put new languages on it." 
     
     
  
 
 
	 01:07:01
     ◼ 
      
     ►  
     And you know, Python on the CLR is just straight-up Python. 
     
     
  
 
 
	 01:07:05
     ◼ 
      
     ►  
     You write your Python functions, and we can try to Python API. 
     
     
  
 
 
	 01:07:10
     ◼ 
      
     ►  
     You write they have to do bridges, but hopefully they don't just do straight bridges. 
     
     
  
 
 
	 01:07:13
     ◼ 
      
     ►  
     They do, you know, wrappers are different than bridges. 
     
     
  
 
 
	 01:07:14
     ◼ 
      
     ►  
     a wrapper is like, "I want to use a convenient API that hides all the stuff that's irrelevant 
     
     
  
 
 
	 01:07:19
     ◼ 
      
     ►  
     to me because I'm in a high-level language." And wrappers have a cost in terms of performance, 
     
     
  
 
 
	 01:07:24
     ◼ 
      
     ►  
     but they're a better semantic fit than bridges are. 
     
     
  
 
 
	 01:07:27
     ◼ 
      
     ►  
     Yes, absolutely. And that's what I'm used to, is seeing a bunch of wrappers and facades 
     
     
  
 
 
	 01:07:31
     ◼ 
      
     ►  
     that under the hood are doing P invokes and all the nasty, crappy things that I don't 
     
     
  
 
 
	 01:07:35
     ◼ 
      
     ►  
     want to have to do. But to me, I'm just calling system.whatever.whatever. 
     
     
  
 
 
	 01:07:40
     ◼ 
      
     ►  
     The thing, the disadvantage that Microsoft has is that the API that it's wrapping is 
     
     
  
 
 
	 01:07:44
     ◼ 
      
     ►  
     much more disgusting than, you know what I mean? 
     
     
  
 
 
	 01:07:47
     ◼ 
      
     ►  
     Like Win32 is compared to like Core Foundation, it's not really a contest. 
     
     
  
 
 
	 01:07:50
     ◼ 
      
     ►  
     Oh, it's awful. 
     
     
  
 
 
	 01:07:51
     ◼ 
      
     ►  
     Yeah, so they're just wrapping wrappers of wrappers because in the very bottom is just 
     
     
  
 
 
	 01:07:56
     ◼ 
      
     ►  
     this terrible slime that no one wants to touch. 
     
     
  
 
 
	 01:08:00
     ◼ 
      
     ►  
     It's true, but you still haven't answered my question. 
     
     
  
 
 
	 01:08:01
     ◼ 
      
     ►  
     If you were to pick a language today, what would you pick? 
     
     
  
 
 
	 01:08:05
     ◼ 
      
     ►  
     Do I get to pick Perl 6 even though it doesn't really exist, kind of, sort of? 
     
     
  
 
 
	 01:08:09
     ◼ 
      
     ►  
     It's kind of a cop-out, I mean, because you don't really know what's so bad about it yet. 
     
     
  
 
 
	 01:08:13
     ◼ 
      
     ►  
     Well, I mean, I know what's so bad about the language, I just don't know what's so bad 
     
     
  
 
 
	 01:08:16
     ◼ 
      
     ►  
     about the implementation. 
     
     
  
 
 
	 01:08:17
     ◼ 
      
     ►  
     The language exists as a spec, it's just no one has implemented it, so, like, does it 
     
     
  
 
 
	 01:08:21
     ◼ 
      
     ►  
     really exist? 
     
     
  
 
 
 
	 01:08:23
     ◼ 
      
     ►  
     Right, that's kind of a question there. 
     
     
  
 
 
	 01:08:24
     ◼ 
      
     ►  
     You have a half implementation or whatever, but, like, language-wise, I think Perl 6 is 
     
     
  
 
 
	 01:08:29
     ◼ 
      
     ►  
     the most exciting language that sort of kind of almost exists. 
     
     
  
 
 
	 01:08:34
     ◼ 
      
     ►  
     I dislike Python more than I dislike Ruby. 
     
     
  
 
 
	 01:08:38
     ◼ 
      
     ►  
     So I would probably have to go with Ruby. 
     
     
  
 
 
	 01:08:41
     ◼ 
      
     ►  
     I really do dislike several things about Ruby 
     
     
  
 
 
	 01:08:45
     ◼ 
      
     ►  
     pretty vehemently, because I feel like they should have 
     
     
  
 
 
	 01:08:47
     ◼ 
      
     ►  
     known better. 
     
     
  
 
 
	 01:08:49
     ◼ 
      
     ►  
     But I dislike Python more, and I definitely 
     
     
  
 
 
	 01:08:51
     ◼ 
      
     ►  
     dislike JavaScript more. 
     
     
  
 
 
	 01:08:52
     ◼ 
      
     ►  
     So I guess I would have to go with Ruby as much 
     
     
  
 
 
	 01:08:54
     ◼ 
      
     ►  
     as it pains me to say that, as much as I am not 
     
     
  
 
 
	 01:08:57
     ◼ 
      
     ►  
     a fan of Ruby, really. 
     
     
  
 
 
	 01:08:59
     ◼ 
      
     ►  
     Python is just totally distasteful to me. 
     
     
  
 
 
	 01:09:02
     ◼ 
      
     ►  
     and JavaScript is just too primitive. 
     
     
  
 
 
	 01:09:06
     ◼ 
      
     ►  
     You know, nothing about Apple modernizing Objective-C 
     
     
  
 
 
	 01:09:10
     ◼ 
      
     ►  
     and eventually adding this new syntax layer on top of it, 
     
     
  
 
 
	 01:09:13
     ◼ 
      
     ►  
     if that's what their plan is, that 
     
     
  
 
 
	 01:09:14
     ◼ 
      
     ►  
     doesn't preclude them from also modernizing 
     
     
  
 
 
	 01:09:17
     ◼ 
      
     ►  
     the APIs along with that. 
     
     
  
 
 
	 01:09:19
     ◼ 
      
     ►  
     Well, I mean, they would have to wrap them. 
     
     
  
 
 
	 01:09:22
     ◼ 
      
     ►  
     Well, temporarily. 
     
     
  
 
 
	 01:09:23
     ◼ 
      
     ►  
     But compare with a bridge. 
     
     
  
 
 
	 01:09:24
     ◼ 
      
     ►  
     A bridge, when it wraps things, I 
     
     
  
 
 
	 01:09:27
     ◼ 
      
     ►  
     agree with everything you said, a bridge sucks. 
     
     
  
 
 
	 01:09:29
     ◼ 
      
     ►  
     because you get these weird APIs that obviously are not written 
     
     
  
 
 
	 01:09:33
     ◼ 
      
     ►  
     with that new language in mind. 
     
     
  
 
 
	 01:09:37
     ◼ 
      
     ►  
     But that's because bridges are usually 
     
     
  
 
 
	 01:09:38
     ◼ 
      
     ►  
     written by people who aren't the API platform owners. 
     
     
  
 
 
	 01:09:42
     ◼ 
      
     ►  
     If Apple would make a new bridge-- 
     
     
  
 
 
	 01:09:44
     ◼ 
      
     ►  
     and the Java bridge was its own thing. 
     
     
  
 
 
	 01:09:46
     ◼ 
      
     ►  
     That was doomed. 
     
     
  
 
 
	 01:09:46
     ◼ 
      
     ►  
     But if Apple decided this is the new thing, this new language 
     
     
  
 
 
	 01:09:51
     ◼ 
      
     ►  
     layer we built on top of Objective C now, 
     
     
  
 
 
	 01:09:53
     ◼ 
      
     ►  
     or that's backed by Objective C that's now this whole different 
     
     
  
 
 
	 01:09:56
     ◼ 
      
     ►  
     language layer on top, this is our new thing, this is the way forward, then within a few 
     
     
  
 
 
	 01:10:02
     ◼ 
      
     ►  
     years they could have all their APIs modernized to it. Or at least all the ones people actually 
     
     
  
 
 
	 01:10:07
     ◼ 
      
     ►  
     use on a regular basis. 
     
     
  
 
 
	 01:10:08
     ◼ 
      
     ►  
     Or some of them. I mean, what you would hope is that, like, I guess you would hope that 
     
     
  
 
 
	 01:10:13
     ◼ 
      
     ►  
     the bottom layers roll up eventually, like, kind of like the assembly. Assembly has been 
     
     
  
 
 
	 01:10:18
     ◼ 
      
     ►  
     basically completely rolled up. Like, you know, original Mac operating system, tremendous 
     
     
  
 
 
	 01:10:21
     ◼ 
      
     ►  
     amount of assembly. 
     
     
  
 
 
	 01:10:22
     ◼ 
      
     ►  
     And the amount of assembly in operation 
     
     
  
 
 
	 01:10:25
     ◼ 
      
     ►  
     that anyone has to write or deal with or call or anything 
     
     
  
 
 
	 01:10:28
     ◼ 
      
     ►  
     has just shrunk up to the point where now it's 
     
     
  
 
 
	 01:10:29
     ◼ 
      
     ►  
     like in a couple of device drivers in the kernel 
     
     
  
 
 
	 01:10:31
     ◼ 
      
     ►  
     and some libraries for doing math. 
     
     
  
 
 
 
	 01:10:34
     ◼ 
      
     ►  
     It's a low end curls up, and it's just 
     
     
  
 
 
	 01:10:36
     ◼ 
      
     ►  
     gone from the operation of the operating system, 
     
     
  
 
 
	 01:10:39
     ◼ 
      
     ►  
     the things dealing with the GUI. 
     
     
  
 
 
	 01:10:41
     ◼ 
      
     ►  
     And you would hope that eventually the C part of things 
     
     
  
 
 
	 01:10:44
     ◼ 
      
     ►  
     starts to roll up too. 
     
     
  
 
 
	 01:10:45
     ◼ 
      
     ►  
     Not the objective C part, but let's just 
     
     
  
 
 
	 01:10:47
     ◼ 
      
     ►  
     start with the C part. 
     
     
  
 
 
	 01:10:48
     ◼ 
      
     ►  
     OK, well now the C is only in the kernel 
     
     
  
 
 
	 01:10:50
     ◼ 
      
     ►  
     and device drivers or whatever. 
     
     
  
 
 
	 01:10:52
     ◼ 
      
     ►  
     And it used to be everywhere. 
     
     
  
 
 
	 01:10:53
     ◼ 
      
     ►  
     Everything used to be C. Everything is, 
     
     
  
 
 
	 01:10:56
     ◼ 
      
     ►  
     if you can't objector C as it. 
     
     
  
 
 
	 01:10:57
     ◼ 
      
     ►  
     I would like to see progress at the high end, 
     
     
  
 
 
	 01:11:01
     ◼ 
      
     ►  
     but also rolling up at the low end. 
     
     
  
 
 
	 01:11:02
     ◼ 
      
     ►  
     Because if you don't do that, all you're doing 
     
     
  
 
 
	 01:11:04
     ◼ 
      
     ►  
     is putting more layers on layer cake. 
     
     
  
 
 
	 01:11:06
     ◼ 
      
     ►  
     And at a certain point, no matter 
     
     
  
 
 
	 01:11:09
     ◼ 
      
     ►  
     what kind of performance you get-- 
     
     
  
 
 
	 01:11:11
     ◼ 
      
     ►  
     this is a great article that someone should put in our 
     
     
  
 
 
	 01:11:13
     ◼ 
      
     ►  
     non-existent show notes. 
     
     
  
 
 
	 01:11:14
     ◼ 
      
     ►  
     But at a certain point, no matter 
     
     
  
 
 
	 01:11:15
     ◼ 
      
     ►  
     what kind of performance you get from the hardware, 
     
     
  
 
 
	 01:11:17
     ◼ 
      
     ►  
     if you keep putting layers on the layer cake, 
     
     
  
 
 
	 01:11:20
     ◼ 
      
     ►  
     Performance won't be your problem. It'll be like latency. Did you read that article from John Carmack talking about latency of VR headsets? 
     
     
  
 
 
	 01:11:26
     ◼ 
      
     ►  
     No, but that's that sounds good. 
     
     
  
 
 
	 01:11:28
     ◼ 
      
     ►  
     It's like we have amazing technology with GPUs and we can do like amazing texture fills and huge, you know, shader operations 
     
     
  
 
 
	 01:11:35
     ◼ 
      
     ►  
     operating on like millions and millions of pixels like 15 times per frame and we can do these amazing frame rates and 
     
     
  
 
 
	 01:11:39
     ◼ 
      
     ►  
     none of that matters because if you can't react to me turning my head within 20 milliseconds and get a new image in front of 
     
     
  
 
 
	 01:11:46
     ◼ 
      
     ►  
     my eyes, it's like motion sickness inducing. And so all this great technology we have actually 
     
     
  
 
 
	 01:11:50
     ◼ 
      
     ►  
     impairs the ability, because there's so many layers in the layer cake of like this goes 
     
     
  
 
 
	 01:11:54
     ◼ 
      
     ►  
     through this stack and goes through the USB thing and converted there and then goes through 
     
     
  
 
 
	 01:12:00
     ◼ 
      
     ►  
     the input system and then goes through the OpenGL and out to the graphics card and comes 
     
     
  
 
 
	 01:12:04
     ◼ 
      
     ►  
     back out and has to be displayed. Like all the layers we've added to the layer cake, 
     
     
  
 
 
	 01:12:09
     ◼ 
      
     ►  
     for this amazing performance, kills latency. So this is not a direct analogy because it's 
     
     
  
 
 
	 01:12:13
     ◼ 
      
     ►  
     not like this latency of the API stack. But it's the same idea is that we can't just keep 
     
     
  
 
 
	 01:12:15
     ◼ 
      
     ►  
     adding layers on a layer cake, you have to curl up the lower ones too. You have to pop 
     
     
  
 
 
	 01:12:19
     ◼ 
      
     ►  
     ones off the bottom as you add ones to the top. So that's the kind of progress I'm looking 
     
     
  
 
 
	 01:12:23
     ◼ 
      
     ►  
     for in my lifetime. If anyone's listening, get on that. 
     
     
  
 
 
	 01:12:26
     ◼ 
      
     ►  
     I think they're doing that. We haven't really seen the next big step yet, but it looks like, 
     
     
  
 
 
	 01:12:34
     ◼ 
      
     ►  
     based on the actions that we have seen, I think that's a plausible prediction of where 
     
     
  
 
 
	 01:12:38
     ◼ 
      
     ►  
     they're actually heading. 
     
     
  
 
 
	 01:12:40
     ◼ 
      
     ►  
     They're not going in the wrong direction. It's not like we're... It's just quibbling 
     
     
  
 
 
	 01:12:44
     ◼ 
      
     ►  
     about the details and the pace. 
     
     
  
 
 
	 01:12:46
     ◼ 
      
     ►  
     Mobile set everything back a decade or two. 
     
     
  
 
 
	 01:12:49
     ◼ 
      
     ►  
     So fine, I understand that. 
     
     
  
 
 
	 01:12:52
     ◼ 
      
     ►  
     It makes perfect sense. 
     
     
  
 
 
	 01:12:53
     ◼ 
      
     ►  
     But I would like to see more advancement in the high end 
     
     
  
 
 
	 01:13:00
     ◼ 
      
     ►  
     and more curling up in the low end. 
     
     
  
 
 
	 01:13:02
     ◼ 
      
     ►  
     The road they're taking to it is perhaps more 
     
     
  
 
 
	 01:13:04
     ◼ 
      
     ►  
     securitous and slower than I would like, 
     
     
  
 
 
	 01:13:07
     ◼ 
      
     ►  
     especially when I see things like CLR existing 
     
     
  
 
 
	 01:13:09
     ◼ 
      
     ►  
     for such a long time. 
     
     
  
 
 
	 01:13:10
     ◼ 
      
     ►  
     The technology was there, and yeah, your entire stack is still better than Microsoft's now, 
     
     
  
 
 
	 01:13:17
     ◼ 
      
     ►  
     but my whole thing with this is it's not something you can do overnight. 
     
     
  
 
 
	 01:13:22
     ◼ 
      
     ►  
     If you're going to try to do it incrementally in pieces, I think you will end up running 
     
     
  
 
 
	 01:13:26
     ◼ 
      
     ►  
     into a barrier where there has to be discontinuity somewhere. 
     
     
  
 
 
	 01:13:29
     ◼ 
      
     ►  
     If there isn't, you're going to end up with a sort of mongrel at the end of it, like HFS+ 
     
     
  
 
 
	 01:13:33
     ◼ 
      
     ►  
     where you just took this old thing and slowly modified it a bit at a time, but never sat 
     
     
  
 
 
	 01:13:36
     ◼ 
      
     ►  
     down to say, "Okay, what is this new thing that we want?" 
     
     
  
 
 
	 01:13:40
     ◼ 
      
     ►  
     It's like if iOS was just an incremental revision of slowly adding mobile-savvy features to 
     
     
  
 
 
 
 
	 01:13:46
     ◼ 
      
     ►  
     They started over conceptually from the UI perspective. 
     
     
  
 
 
	 01:13:50
     ◼ 
      
     ►  
     I'm a fan of that kind of clean break, and I worry that slowly creeping up on Objective-C 
     
     
  
 
 
	 01:13:55
     ◼ 
      
     ►  
     without the C will result in a language that no one can really love. 
     
     
  
 
 
	 01:13:59
     ◼ 
      
     ►  
     Maybe that won't ever hurt Apple, because like we said, it's not a big deal as long 
     
     
  
 
 
	 01:14:03
     ◼ 
      
     ►  
     as you're doing great in the market and everything, but that's what appeals to me. 
     
     
  
 
 
	 01:14:07
     ◼ 
      
     ►  
     So I think it's like a philosophical difference. 
     
     
  
 
 
	 01:14:09
     ◼ 
      
     ►  
     And obviously, I'm probably more idealistic in not being the person whose job it is to 
     
     
  
 
 
	 01:14:15
     ◼ 
      
     ►  
     make this decision for the biggest company in the world or whatever. 
     
     
  
 
 
	 01:14:19
     ◼ 
      
     ►  
     And you could also question—I think it's worth considering—is it too late to do something 
     
     
  
 
 
 
	 01:14:25
     ◼ 
      
     ►  
     Are these systems so complex? 
     
     
  
 
 
	 01:14:27
     ◼ 
      
     ►  
     Are these devices and APIs so feature-rich and so mature? 
     
     
  
 
 
	 01:14:33
     ◼ 
      
     ►  
     Would it be too big of an undertaking for them to do this now? 
     
     
  
 
 
	 01:14:36
     ◼ 
      
     ►  
     It's never too late. 
     
     
  
 
 
	 01:14:38
     ◼ 
      
     ►  
     Never too late. 
     
     
  
 
 
	 01:14:39
     ◼ 
      
     ►  
     I mean, if anything, I would say, 
     
     
  
 
 
	 01:14:41
     ◼ 
      
     ►  
     when is the time that you should be thinking about this? 
     
     
  
 
 
	 01:14:44
     ◼ 
      
     ►  
     It's when you're at the height of your power. 
     
     
  
 
 
	 01:14:46
     ◼ 
      
     ►  
     Because if you try to do it on your way down, 
     
     
  
 
 
	 01:14:47
     ◼ 
      
     ►  
     Palm is like, wait a second. 
     
     
  
 
 
	 01:14:49
     ◼ 
      
     ►  
     Did you know ROS sucks? 
     
     
  
 
 
	 01:14:50
     ◼ 
      
     ►  
     We should make an all new one. 
     
     
  
 
 
	 01:14:52
     ◼ 
      
     ►  
     Like, too little, too late. 
     
     
  
 
 
 
 
	 01:14:55
     ◼ 
      
     ►  
     You know what I mean? 
     
     
  
 
 
	 01:14:56
     ◼ 
      
     ►  
     You got to-- so whatever their plan is, they have a plan. 
     
     
  
 
 
	 01:14:59
     ◼ 
      
     ►  
     Like, if it takes them longer and they 
     
     
  
 
 
	 01:15:01
     ◼ 
      
     ►  
     do it in a smaller series of steps or whatever, but like-- 
     
     
  
 
 
	 01:15:05
     ◼ 
      
     ►  
     Either the company will go out of business or the day will come when they need to have 
     
     
  
 
 
	 01:15:09
     ◼ 
      
     ►  
     this better, higher level thing. 
     
     
  
 
 
	 01:15:11
     ◼ 
      
     ►  
     And they're either going to have arrived at it through a series of small steps and perhaps 
     
     
  
 
 
	 01:15:14
     ◼ 
      
     ►  
     ended up at a destination that's not quite as pretty as if they had made a larger discontinuous 
     
     
  
 
 
 
	 01:15:20
     ◼ 
      
     ►  
     But it's out there, I think. 
     
     
  
 
 
	 01:15:24
     ◼ 
      
     ►  
     I think the only thing I wonder is perhaps we should pay a little more attention to any 
     
     
  
 
 
	 01:15:30
     ◼ 
      
     ►  
     mentions of LLVM and Clang at WWDC because it seems to me if they were going to sneak 
     
     
  
 
 
	 01:15:35
     ◼ 
      
     ►  
     in a new language or a new framework or something like that, I would suppose that we would see 
     
     
  
 
 
	 01:15:40
     ◼ 
      
     ►  
     traces of that there first. Like, Arc, I believe, was, if I'm not mistaken, was built off of 
     
     
  
 
 
	 01:15:47
     ◼ 
      
     ►  
     the static analysis that was in one of the two of these guys. And I'm opening up a 
     
     
  
 
 
	 01:15:51
     ◼ 
      
     ►  
     whole new can of worms that I don't want to open, but I'm just curious to see what 
     
     
  
 
 
	 01:15:55
     ◼ 
      
     ►  
     LLVM and Clang are doing lately and what will be announced that relates to that. 
     
     
  
 
 
	 01:16:00
     ◼ 
      
     ►  
     Well, that's why I'm thinking of type inference, because it's like a natural progression 
     
     
  
 
 
	 01:16:04
     ◼ 
      
     ►  
     of what they're doing, they pretty much almost have the metadata in there for it. 
     
     
  
 
 
	 01:16:09
     ◼ 
      
     ►  
     Static analysis combined with the knowledge required to make ARC work makes it seem like 
     
     
  
 
 
	 01:16:15
     ◼ 
      
     ►  
     they could do some reasonable—maybe it's not enough bang for the buck for them yet. Maybe they 
     
     
  
 
 
	 01:16:20
     ◼ 
      
     ►  
     say, "Okay, yeah, well, we could do type inference, but it's not such a big win to be worth the 
     
     
  
 
 
	 01:16:23
     ◼ 
      
     ►  
     confusion, so we're just going to bail on it." But assuming they actually think it's worthwhile, 
     
     
  
 
 
	 01:16:27
     ◼ 
      
     ►  
     it's an obvious next step of things they can do to make it so you have to type less crap, 
     
     
  
 
 
	 01:16:32
     ◼ 
      
     ►  
     but you're not really changing the language. It's like the fast enumeration crap. It's not a change 
     
     
  
 
 
	 01:16:37
     ◼ 
      
     ►  
     in the language, really. It's just like, "Oh, you don't have to type too much stuff." Also, 
     
     
  
 
 
	 01:16:40
     ◼ 
      
     ►  
     now you can do like auto or var or whatever the hell word they use to indicate, "Look, don't make 
     
     
  
 
 
	 01:16:44
     ◼ 
      
     ►  
     it—you know what type it's going to be. It's clear from the code." And then— 
     
     
  
 
 
	 01:16:47
     ◼ 
      
     ►  
     And also, I think the pace of those improvements has increased dramatically in the last few years. 
     
     
  
 
 
	 01:16:53
     ◼ 
      
     ►  
     Yeah. Once they got totally free of GCC. Right. Now we're seeing this explode. This past year, 
     
     
  
 
 
	 01:16:59
     ◼ 
      
     ►  
     year they added all those little shortcuts and so many little benefits like just in one 
     
     
  
 
 
	 01:17:03
     ◼ 
      
     ►  
     year. You know, and the year before they added more stuff. 
     
     
  
 
 
	 01:17:06
     ◼ 
      
     ►  
     They still have C++11 kind of weighing them down. Like, they got out from under GCC, but 
     
     
  
 
 
	 01:17:10
     ◼ 
      
     ►  
     they still need to do a lot more to like fully support the monster language that is C++. 
     
     
  
 
 
	 01:17:15
     ◼ 
      
     ►  
     So like that probably still absorbs a lot of their time, like finally nailing down all 
     
     
  
 
 
	 01:17:20
     ◼ 
      
     ►  
     the little crazy ass idiosyncrasies of C++. Is that even possible? 
     
     
  
 
 
	 01:17:25
     ◼ 
      
     ►  
     I mean, the point is that GCC-- I don't know, maybe not GCC 
     
     
  
 
 
	 01:17:30
     ◼ 
      
     ►  
     as much, but C++ compilers that have been compiling production 
     
     
  
 
 
	 01:17:35
     ◼ 
      
     ►  
     C++ for a long time are still ahead of where Clang's C++ 
     
     
  
 
 
	 01:17:39
     ◼ 
      
     ►  
     support was as of a year or two ago. 
     
     
  
 
 
	 01:17:41
     ◼ 
      
     ►  
     Maybe they've closed the gap now. 
     
     
  
 
 
	 01:17:42
     ◼ 
      
     ►  
     But it's a lot of work, and it's kind of annoying work, 
     
     
  
 
 
	 01:17:45
     ◼ 
      
     ►  
     because Apple barely uses C++ compared 
     
     
  
 
 
	 01:17:47
     ◼ 
      
     ►  
     to how much Microsoft uses it, for example. 
     
     
  
 
 
	 01:17:50
     ◼ 
      
     ►  
     And so it's like, oh, well, we've 
     
     
  
 
 
	 01:17:52
     ◼ 
      
     ►  
     got to make our stupid compilers support. 
     
     
  
 
 
	 01:17:53
     ◼ 
      
     ►  
     We don't care about this language, really. 
     
     
  
 
 
	 01:17:55
     ◼ 
      
     ►  
     we have enough support for our stuff, what?" And it's like, "Alright." Because if you want 
     
     
  
 
 
	 01:17:58
     ◼ 
      
     ►  
     Clang to be a popular widespread compiler, you have to make it support C++, even if Apple 
     
     
  
 
 
	 01:18:04
     ◼ 
      
     ►  
     doesn't use it that much. And that means all the stupid esoteric features, because if you 
     
     
  
 
 
	 01:18:08
     ◼ 
      
     ►  
     can't build important stupid projects, foo, if you can't build Boost or whatever, they 
     
     
  
 
 
	 01:18:13
     ◼ 
      
     ►  
     don't have that problem now, but they did early on. And if you can't support the new 
     
     
  
 
 
	 01:18:17
     ◼ 
      
     ►  
     new C++11 Lambdas and all this other crap that, you know, that's still in the background 
     
     
  
 
 
	 01:18:25
     ◼ 
      
     ►  
     the catch-up stuff that they have to do before they can totally fly free, you know. 
     
     
  
 
 
	 01:18:30
     ◼ 
      
     ►  
     Is C++ Ox still a thing? What happened with that? 
     
     
  
 
 
	 01:18:34
     ◼ 
      
     ►  
     That's what we came to C++11, didn't it? 
     
     
  
 
 
	 01:18:36
     ◼ 
      
     ►  
     I don't know. I don't follow the C++ world at all. 
     
     
  
 
 
	 01:18:39
     ◼ 
      
     ►  
     Yeah, neither do I. 
     
     
  
 
 
	 01:18:40
     ◼ 
      
     ►  
     I try not to, but it leaks into my worldview occasionally.