Unofficial Accidental Tech Podcast transcripts (generated by computer, so expect errors).

4: The Bridges

The Mac Pro’s future, launch and app considerations for a bigger iPhone, Visual Studio’s ease of use, the future of Objective C, and migrating a platform’s API to a new language.

Episode Description:
  • The role of the Mac Pro today.
  • How Apple might manage the launch of a bigger iPhone.
  • App design and auto-layout if the iPhone moves to multiple sizes and resolutions.
  • Visual Studio's learning curve vs. Xcode and Interface Builder.
  • The future of Objective C and the challenge of migrating a platform's API to a new language.

Transcribed using Whisper large_v2 (transcription) + WAV2VEC2_ASR_LARGE_LV60K_960H (alignment) + Pyannote (speaker diaritization).

Transcript start

⏹️ ▶️ John By doing this podcast tonight, my wife asked me what I was going to do. I said, well, I might be

⏹️ ▶️ John doing a podcast, depending on what Marco, his schedule, whatever. But if not, I have a blog post I want

⏹️ ▶️ John to do. Since Dan Frakes’ thing about the Mac Pro Mini thing,

⏹️ ▶️ John I’m like, all right, I have this week’s blog post. I need to write that. And I still haven’t

⏹️ ▶️ John had a chance to do it. I wrote two or three paragraphs of it while taking my son to swim lessons today

⏹️ ▶️ John while he was in the swimming pool. I actually wrote it on my iPad. I was inspired by Jason Snell to do that. Wow. Actually, it

⏹️ ▶️ John wasn’t that awful.

⏹️ ▶️ John, Marco But anyway,

⏹️ ▶️ John, Casey I came back here,

⏹️ ▶️ John and I started writing again, and then I saw your email. I wrote a podcast tonight. So you are thwarting me from posting to my blog by continually –

⏹️ ▶️ John like, last night I had a podcast, couldn’t blog about it. Tonight I got a podcast, couldn’t blog about it.

⏹️ ▶️ John, Marco Tomorrow I’m going to friggin’ blog. You could

⏹️ ▶️ Marco talk

⏹️ ▶️ John about it.

⏹️ ▶️ Marco Yeah, I actually was hoping

⏹️ ▶️ John we would talk about that particular topic. In the podcast last night that I was on, one of the topics, one of the questions on this

⏹️ ▶️ John topic came up, and I debated saying something, but I said, okay, well, here it is. And I talked for like two and a half minutes,

⏹️ ▶️ John and I said, OK, now just make that coherent and put it in writing, and that’s what my blog post is going to be.

⏹️ ▶️ John That’s always the challenge, you know? So yeah.

⏹️ ▶️ Marco Oh, yeah. I mean, many of my podcast discussions were inadvertently drafts for

⏹️ ▶️ Marco blog posts that were much better considered and

⏹️ ▶️ John much shorter. That’s what my podcast

⏹️ ▶️ John, Marco all

⏹️ ▶️ John is, just talking it out, rambling, and then you distill it down or whatever. But yeah,

⏹️ ▶️ John I said, but you know what? I should do it anyway, because the podcast I was on last night is going up on the 20th or

⏹️ ▶️ John something. So by the time it goes up, my blog post will have been up for weeks.

⏹️ ▶️ Marco Right. We can put this up, you know, tomorrow.

⏹️ ▶️ John But anyway, no, I don’t want to talk about the mini Mac Pro because I have like – every time

⏹️ ▶️ John I think of a blog post, I’m like, you just got to write a blog post. It doesn’t matter if it’s two paragraphs. I’m like, oh, I have a great two paragraph

⏹️ ▶️ John idea and it never comes out as two paragraphs. It’s always like – not that it goes out for pages

⏹️ ▶️ John and pages, but I look back at it and I’m like, that was supposed to be two paragraphs and it’s eight. If it was two paragraphs and it

⏹️ ▶️ John came out as four, I’d be okay. But eight, I feel like there’s something going wrong. So I have one very

⏹️ ▶️ John simple idea that it should be really three sentences. But then I write those three sentences and I say, if you

⏹️ ▶️ John don’t already know what I mean, you won’t understand those three sentences. I expand and I expand and I expand until I feel like I’m bringing

⏹️ ▶️ John until I feel like I’m bringing some new people along who don’t already know what I’m saying and don’t already agree with me.

⏹️ ▶️ Casey So what are we? Are we going to not talk about it?

⏹️ ▶️ John No, I’m not going to talk about the

⏹️ ▶️ John, Casey fine. Marco should

⏹️ ▶️ John already know. I live in in fear of Marco just blogging. This is such an obvious idea that if I mentioned it all

⏹️ ▶️ John of you would just say, yeah, everyone knows that. It’s stupid. Let me write two sentences about it on my blog post.

⏹️ ▶️ Marco I think with this thing everyone has been talking about what they could do with the Mac Pro.

⏹️ ▶️ Marco Every six months there’s a wave of discussion about it. So many people

⏹️ ▶️ Marco think that it’s going to be some kind of weird modular thing where you get a bunch of Mac Minis and connect them via some mystery Thunderbolt

⏹️ ▶️ Marco that’s fast enough to do anything meaningful with

⏹️ ▶️ Marco, John this kind of stuff.

⏹️ ▶️ John the PlayStation 3 is gonna be like with a cell processor. You’ll be able to have multiple ones together to make it

⏹️ ▶️ John to make your games look better. Did you hear about that? Yeah

⏹️ ▶️ Marco and it just like it doesn’t like all these fantasies that people have about this in addition to having

⏹️ ▶️ Marco a lot of technical challenges mostly involving the speed and bandwidth of the

⏹️ ▶️ Marco connectors between the between the individual parts but it’s also just it would just

⏹️ ▶️ Marco be an amazingly complicated, really inelegant setup. Like,

⏹️ ▶️ Marco what I hate about the iMac is that it, once you

⏹️ ▶️ Marco have some kind of powerful demand with an iMac, you usually end up having a desk covered in hard drive enclosures

⏹️ ▶️ Marco and all these like, all these bolt-on things shoved on the outside or connected to it that with the Mac Pro you could just

⏹️ ▶️ Marco put inside and it’s, you know, and with many advantages there. So,

⏹️ ▶️ Marco I feel like any, any move towards less internal storage, less

⏹️ ▶️ Marco internal capacity for expansion, any move in that direction

⏹️ ▶️ Marco really eliminates quite a lot of the Mac Pro’s appeal. And a lot of people just, you know, they

⏹️ ▶️ Marco don’t really distinguish between the Xeon line and the regular consumer CPU line,

⏹️ ▶️ Marco but that’s also a very important distinction because like the Xeon line means you can have two sockets

⏹️ ▶️ Marco and lots of RAM slots and you get all sorts of benefits like ECC RAM, which,

⏹️ ▶️ Marco you know, it just makes your computer a little bit more stable, like a little bit less likely to have some problem down

⏹️ ▶️ Marco the road, or, you know, it’ll crash, it’ll kernel panic like three fewer

⏹️ ▶️ Marco times in its lifespan, but those might really matter to you. Like there’s all sorts of these benefits that you get with this, with

⏹️ ▶️ Marco the server-grade components, with these giant expensive motherboards, with these giant PCI Express

⏹️ ▶️ Marco slots that have really, really high bandwidth that, you know, if you have, if you want to do multiple video cards

⏹️ ▶️ Marco to have six monitors, you can do that with a Mac Pro, you can’t do it with anything else. There’s all these

⏹️ ▶️ Marco edge cases that with the Mac Pro you can do all of them. Most people

⏹️ ▶️ Marco don’t need all of them, but a lot of people need one of them. So I feel like…

⏹️ ▶️ Marco My blog post kind of made it sound like I thought the iMac could solve all these problems, and it can’t.

⏹️ ▶️ Marco My point with the blog post was not that the iMac is good enough

⏹️ ▶️ Marco for most Mac Pro customers necessarily, but that it’s a good enough solution

⏹️ ▶️ Marco for Apple to release to address most of these customers.

⏹️ ▶️ Marco Not saying… And that’s a weird distinction to make, but it’s good enough for Apple to

⏹️ ▶️ Marco deal with them by just releasing this. And

⏹️ ▶️ Marco, Casey as a user, there’s There’s

⏹️ ▶️ Marco lots of, you know, like I as a user can say, I wouldn’t like that as much.

⏹️ ▶️ Marco And almost everybody has responded saying, like, I work in video or I work in science or something

⏹️ ▶️ Marco like that. I work in something where that would suck in some way. And that’s true,

⏹️ ▶️ Marco but there’s already tons of small markets that Apple doesn’t address because usually,

⏹️ ▶️ Marco because they’re too small and they’re relatively unprofitable. You know, if a whole bunch of high-end workstation

⏹️ ▶️ Marco users had to switch to Windows, which many of them already have for different video editing programs since Apple

⏹️ ▶️ Marco pissed off all the video editors with Final Cut Pro X. Like if some of those people

⏹️ ▶️ Marco have to switch to Windows for their video editing needs, I don’t think Apple cares that much. Like

⏹️ ▶️ Marco yeah, if they can avoid it easily they will but like I think that that’s that specialized

⏹️ ▶️ Marco market is something Apple’s willing to lose.

⏹️ ▶️ John I’m gonna be sad to see my tower with filled with server-grade hardware go Because I don’t know if I can attribute

⏹️ ▶️ John it to it having server-grade components in it. But this machine has been so incredibly

⏹️ ▶️ John reliable. My 2008 Mac Pro, it has been the most reliable, probably the most

⏹️ ▶️ John reliable computer I’ve ever owned. Because even my favorite Mac ever, the SE30, that had some reliability problems,

⏹️ ▶️ John mostly related to the fact that I had a color video card shoved in it, which is something Apple never foresaw. So

⏹️ ▶️ John it had some flaky issues there and had a bum power supply early on. But this Mac Pro

⏹️ ▶️ John has just been 100% champ. Like, nothing has gone wrong. I think

⏹️ ▶️ John I had one bad dim that went wrong. And when it went wrong, it was so obvious that it went wrong. Like,

⏹️ ▶️ John the machine booted, but it just had less RAM. And you’d go to the little thing, and it would show which bank wasn’t showing up.

⏹️ ▶️ John It was just like, everything worked exactly the way it’s supposed to. I’ve put a million different

⏹️ ▶️ John hard drives in it. I’ve added to the RAM. Never any problems with noise, heat, no fan

⏹️ ▶️ John bearings have gone bad. You know, just nothing. And I can’t imagine the machine

⏹️ ▶️ John replacing it being more satisfying than this was when it was new. Oh, yeah. Because

⏹️ ▶️ John in 2008, and it was cheap, it was before they were super duper expensive

⏹️ ▶️ John or a crappy thing. And I don’t know if it’s because of the ICC RAM, is it because the

⏹️ ▶️ John CPUs are relatively underclocked to what they could possibly be clocked to? Is it because the cooling is such overkill because

⏹️ ▶️ John the case was designed for the friggin’ G5? Whatever it is about it,

⏹️ ▶️ John I’m going I’m going to be sad to see this thing go, or go into my attic because it’s not going to actually leave my house of course. Yeah.

⏹️ ▶️ Marco Oh man, I sold my version of that computer to Dan and it cost like $140

⏹️ ▶️ Marco to ship it to him. It’s so… That’s nuts. Yeah.

⏹️ ▶️ Marco But yeah, like you know, the Mac Pro is a fantastic computer for these type of users.

⏹️ ▶️ Marco Like I don’t ever see myself going laptop full time and being that happy with it. You know, I did it last year for

⏹️ ▶️ Marco a while and it was okay, but there are just so many downsides to

⏹️ ▶️ Marco it for me and so many little annoyances. Like I mentioned on Neutral that I like everything to be stock and clean. That’s why

⏹️ ▶️ Marco I hate having a desk covered in wires and hard drive enclosures. I don’t want to have to bolt on a million different things

⏹️ ▶️ Marco to make my computer fast and stable and have enough space for what I’m using it for. And uh…

⏹️ ▶️ Casey Yeah, but couldn’t you just get like one of those absurdly overpriced Thunderbolt

⏹️ ▶️ Casey docks? Not

⏹️ ▶️ Casey, Marco dock, but core replicators. Yeah, the big thing

⏹️ ▶️ John, Marco is,

⏹️ ▶️ John well, I could, but… You can’t. You can’t put a video card in it. You

⏹️ ▶️ Marco can’t

⏹️ ▶️ John put a

⏹️ ▶️ Marco high-end video card in it. Right. And, you know, there’s a lot of people for whom that solves their problem. Like

⏹️ ▶️ Marco a lot of video editors don’t use internal storage for their projects. They use external drives with, you know, RAID 0

⏹️ ▶️ Marco and just giant

⏹️ ▶️ John, Marco drives. Well,

⏹️ ▶️ John then they have a Fiber Channel card. Then they have

⏹️ ▶️ Marco a Fiber Channel card inside their Macbook. Well, I mean, a lot of them, not necessarily like the big production houses, but like a lot of smaller

⏹️ ▶️ Marco shops and small and individual video editors will just use those like external, you know, G drives

⏹️ ▶️ Marco or let’s see like all the those the high end enclosures are made of metal and just have to consumer drives and they’ll just use those,

⏹️ ▶️ John you know, I think those people like it’s not so much that they need a Mac Pro is that they need a machine that’s

⏹️ ▶️ John built with the philosophy of the Mac Pro in terms of like reliability, like it’s, you know, it’s

⏹️ ▶️ John not they’re paying for, they’d rather pay more for something that’ll be reliable than pay less

⏹️ ▶️ John for something that’s just as good, but is made sort of to consumer spec.

⏹️ ▶️ Marco Right. And I’m that way, too. If my computer gets

⏹️ ▶️ Marco flaky, that is a severe problem for me in so many ways. It’d be a problem for this podcast

⏹️ ▶️ Marco or any podcast. It’d be a problem with my work, with my coding, if I have to be randomly rebooting every

⏹️ ▶️ Marco few days for some weird issue or some weird reason. That’s a severe disruption. That adds up.

⏹️ ▶️ Marco And for people who that really is disruptive to it is worth it to pay

⏹️ ▶️ Marco more to get a high-end tower especially like and you said these things last forever you

⏹️ ▶️ Marco know your 2008 Mac Pro is still pretty good today by today’s standards my you

⏹️ ▶️ Marco know my 2010 Mac Pro we’ve not just got it last year but my 2010 Mac Pro

⏹️ ▶️ Marco is still the fastest Mac for most single threaded tasks and among the fastest

⏹️ ▶️ Marco Macs for anything parallelizable

⏹️ ▶️ Marco, John you know it’s certainly

⏹️ ▶️ John I’m still playing games that are released this year on my Mac. So even though I have, you know,

⏹️ ▶️ John the 8800 is not an amazingly good video card, it’s still better than what you get on a MacBook,

⏹️ ▶️ John right?

⏹️ ▶️ Marco Maybe not anymore, but certainly

⏹️ ▶️ John, Marco for most of us.

⏹️ ▶️ John Maybe not on a MacBook

⏹️ ▶️ John, Marco Pro, but I’m saying a MacBook. That’s

⏹️ ▶️ John what people buy. When a kid gets a laptop and they go off to college, they get a MacBook because their parents just want

⏹️ ▶️ John to get them a laptop. And you can’t play modern games on that thing. And here I am with my 2008 computer

⏹️ ▶️ John and I can play them in full res. So that’s the kind of investment want to make. I want to, that’s why I always want to get the

⏹️ ▶️ John biggest, hottest, fastest video card they have, stick it in a box with lots of RAM slots, make it reliable,

⏹️ ▶️ John and give me internal storage and I’m happy.

⏹️ ▶️ Marco Oh yeah, and when you, when you do want to get rid of that computer, if you ever, if you, if you, if you sell that computer in the

⏹️ ▶️ Marco next year, you’ll still get like over a thousand dollars for it. I don’t sell my children, Marco.

⏹️ ▶️ Casey But you’ll lease puppies.

⏹️ ▶️ John Right. They go up, they go up into the attic. I’m trying to think of something to do with this

⏹️ ▶️ John, Marco thing. You just leave them there to starve?

⏹️ ▶️ John If it didn’t take so much power, I would put it in the basement and make it a video server or

⏹️ ▶️ John, Marco something. That’s always the

⏹️ ▶️ Marco problem with old hardware, is like it’s not worth the power or heat or

⏹️ ▶️ Marco, John noise.

⏹️ ▶️ John Well, I guess if you if you keep buying Mac minis, like I would I would put an old Mac mini in the basement if I

⏹️ ▶️ John ever had bought a Mac mini. But yeah.

⏹️ ▶️ Casey See, but the problem I have with the Mac Pro having never owned one is that it seems contrary to everything that

⏹️ ▶️ Casey Apple wants. You know, even within the laptop line, now RAM is getting soldered on the board

⏹️ ▶️ Casey and hard drives are getting soldered on the

⏹️ ▶️ Casey, John board. But you don’t carry around a Mac Pro.

⏹️ ▶️ Casey You’re right. But what I’m driving at is everything about all the consumer grade Macs,

⏹️ ▶️ Casey even the MacBook Pros, for the purpose of this conversation, I’m classing that as consumer grade.

⏹️ ▶️ Casey All of those are becoming more and more integrated to use the overly, to cite

⏹️ ▶️ Casey the overly used word. And the Mac Pro is contrary to all

⏹️ ▶️ Casey, John of that.

⏹️ ▶️ John Consumers don’t want crap in their way.

⏹️ ▶️ John, Casey That’s

⏹️ ▶️ John the basic thing. The story I was telling about my sister when I convinced her

⏹️ ▶️ John to finally replace her. She had a Sunflower iMac, another one with

⏹️ ▶️ John, Marco the

⏹️ ▶️ John little stand thingy. And she was all right with that one. And then I convinced her to upgrade

⏹️ ▶️ John to get the flat panel ones. And her favorite thing about that computer was

⏹️ ▶️ John that we put it on our desk and started to get it set up. She says, where’s the computer? And I said, that’s it. That’s all there is. And she’s like, that’s

⏹️ ▶️ John all there is? That’s great, because that’s what I always wanted. I just wanted the screen. I don’t want some other thing

⏹️ ▶️ John in my life that gets in the way of me doing stuff. They recognize that they need a screen because you need something to look at,

⏹️ ▶️ John and you need a mouse, and you need a keyboard. But do I need anything else? No. And so that’s why the

⏹️ ▶️ John iMac, making the iMac go away, consumers love that. And the Mac Pro is the opposite

⏹️ ▶️ John of that because it’s the opposite of going away. It’s humongous. It’s heavy. You can’t even

⏹️ ▶️ John fit it on a desk because it’ll just dominate you. So that’s it’s it’s

⏹️ ▶️ John anti-consumer because consumers do not want to see crap like that Whereas if you’re

⏹️ ▶️ John someone who needs a Mac Pro or someone who wants it for to play games or whatever You are the type of person who

⏹️ ▶️ John is willing to accept that intrusion into your life of this big Space heater

⏹️ ▶️ John, Marco and like so

⏹️ ▶️ Marco much of the Mac Pro commentary that’s that’s out there I’m on from like from tech blog and writers and stuff

⏹️ ▶️ Marco so much of the commentary that focuses on I Want it to get smaller. I wanted to get sleeker that’s

⏹️ ▶️ Marco from people who have never owned one and the people who own them usually love them

⏹️ ▶️ Marco and Usually don’t care how big it is because it’s on the floor It’s like it’s out of sight like you tuck

⏹️ ▶️ Marco it away under the desk And you don’t really like if my Mac Pro got 30% thinner I wouldn’t even notice

⏹️ ▶️ John I could stand for it like I can see like I don’t see it because I want to take up less room, but I’m like you know what

⏹️ ▶️ John once you ditch the optical the space for two optical drives, and you know you convert some of

⏹️ ▶️ John the storage area to be taking SSDs instead of 3.5 inch disks. I’m

⏹️ ▶️ John like, at that point, maybe you’re wasting space, and maybe you can slim it down. And some of it is also like fashion.

⏹️ ▶️ John I would be interested in seeing a new fashion iteration, considering we’ve been with this case for a long time. But

⏹️ ▶️ John it’s not like I’m saying, glom it all to the back of the LCD because I don’t want it in my way. Like, there’s a dedicated spot on

⏹️ ▶️ John the floor where it goes. I could put something slightly smaller there, but I would

⏹️ ▶️ John be fine if they kept it the same. At this point, we’re desperate. It’s like bargaining.

⏹️ ▶️ John, Marco just you get the same case

⏹️ ▶️ John just give us a new one that’s not crap

⏹️ ▶️ Marco but I like and and also like you know a lot of the people who make arguments about it or have theories about

⏹️ ▶️ Marco it or who judge it unfairly don’t realize how expensive Zions are

⏹️ ▶️ Marco so like you know they’ll say oh this thing is overpriced like well actually

⏹️ ▶️ John, Marco I mean it’s

⏹️ ▶️ John overpriced but it’s not Apple’s fault Intel

⏹️ ▶️ John, Marco exactly yeah gouging on that price you know

⏹️ ▶️ Marco exactly like like if you if you look at any other workstation.

⏹️ ▶️ Marco, John But at this point it is Apple’s

⏹️ ▶️ John fault because like they charge so much money for what is like an ancient piece of crap computer at this

⏹️ ▶️ John point. That’s now it’s Apple’s fault.

⏹️ ▶️ Marco Well the funny thing is Intel still charges that much for these processors.

⏹️ ▶️ John I know but like add it up like right so build your own Mac Pro like okay so Intel let’s buy let’s pretend

⏹️ ▶️ John we buy the processors at retail price which Apple doesn’t right and then let’s pretend we buy the RAM at retail price

⏹️ ▶️ John which Apple doesn’t. Pretend you buy all the parts at retail and you’re like boy that case must cost $1,200 to make I guess. Yeah, I

⏹️ ▶️ John, Marco mean certainly

⏹️ ▶️ John it does not add

⏹️ ▶️ Marco up. No it doesn’t add up, but but it isn’t as far off as a lot of people think

⏹️ ▶️ Marco, John And I mean

⏹️ ▶️ Marco, Casey especially

⏹️ ▶️ Marco like the add-ons once you go to like okay Well, I want to bump it up to dual socket with you know 2.66 gigahertz

⏹️ ▶️ Marco Then you look at the difference that costs like fifteen hundred dollars extra what the hell and then you look Oh, well actually

⏹️ ▶️ Marco Intel charges like twelve hundred dollars more for this for the CPUs but you

⏹️ ▶️ Marco know and I think It’s just such a,

⏹️ ▶️ Marco it is such a beast, but if you did anything to really slim it down,

⏹️ ▶️ Marco like if you eliminated a few drive bays, or if you made it single socket only, which would save

⏹️ ▶️ Marco a lot of space in the bottom, then you are limiting who will buy

⏹️ ▶️ Marco it. You are taking people who used to buy Mac Pros, and you are really significantly

⏹️ ▶️ Marco reducing their motivation to buy a Mac Pro again. And that’s why I just think like,

⏹️ ▶️ Marco I do hope that Apple keeps it around. I do hope that the next revision has some kind of solution for

⏹️ ▶️ Marco Retina on the desktop. Hopefully that they will release some kind of Retina Cinema

⏹️ ▶️ Marco Display and then there will be some kind of insane video card in the new Mac Pro that can

⏹️ ▶️ Marco drive it for some insane price premium probably. But I’m hoping that’s where they’re going with this.

⏹️ ▶️ John It’ll be the Apple 15-inch Retina Cinema Display. Oh my god. It’s just

⏹️ ▶️ John what you wanted, right? Oh man. It’s like traveling back in time.

⏹️ ▶️ Casey I know the thing that I just I can’t reconcile it in my head is that to me as a

⏹️ ▶️ Casey non Pro Mac or non Mac Pro user I was gonna say non Pro Mac user

⏹️ ▶️ Casey because I’m a Laptop is sufficient for me. It seems so obvious to me that the

⏹️ ▶️ Casey Mac Pro just cannot continue in any even vaguely Similar

⏹️ ▶️ Casey forms the way it is now because everything Apple is doing is is going in the other direction I know I just said that but it’s

⏹️ ▶️ Casey just the

⏹️ ▶️ Casey, Marco more I hear you guys talking. There’s two

⏹️ ▶️ Marco sides of that though. First of all, it is a very high margin product. They don’t make

⏹️ ▶️ Marco a whole lot of them, but it is high margin. And they could even raise the price premium by another 500

⏹️ ▶️ Marco bucks per case and we’d all still buy them. Most Magpro users would continue to buy them even if

⏹️ ▶️ Marco the price premium was even bigger. So the profitability angle of them I think is

⏹️ ▶️ Marco probably covered. I don’t think if they treated it as a unit of the company, I don’t think it would be losing money.

⏹️ ▶️ Marco But you know a lot of people will say, oh well you know it doesn’t sell very

⏹️ ▶️ Marco many, they should just cut it out. Well they don’t sell very many Macs relative to iPhones and iPads,

⏹️ ▶️ Marco but no one’s saying they should stop selling Macs. Some people say that. Well some, yeah,

⏹️ ▶️ Marco most people don’t say that though. Like it’s not, like that

⏹️ ▶️ Marco people tend to develop these rules in their head about how Apple works and how they

⏹️ ▶️ Marco make decisions. and I listed a whole bunch of these when I wrote about the iPhone plus speculation

⏹️ ▶️ Marco and like so many people are like, oh they’re not gonna add another SKU because that’s not the way they do things. No,

⏹️ ▶️ Marco that is how they do things when it makes sense. It’s the iPhone math, Marco. Yes, so yeah,

⏹️ ▶️ Marco like you know people have all these theories, they’re like you know armchair Apple commentators, which yes, granted we all

⏹️ ▶️ Marco are, but like the armchair commentators will come up with some rule

⏹️ ▶️ Marco that Apple will always follow. And in practice, there are very few of those rules. Apple breaks its own rules all the time.

⏹️ ▶️ Marco And so many decisions Apple makes are inconsistent with previous

⏹️ ▶️ Marco decisions they’ve made and future decisions they will make that you can’t say, oh, well,

⏹️ ▶️ Marco they’re going to get rid of this line because they hardly sell any of them. That doesn’t necessarily

⏹️ ▶️ Marco mean they should get rid of something or that they

⏹️ ▶️ Marco, John will.

⏹️ ▶️ John Speaking of the iPhone Plus, we should start thinking now of how

⏹️ ▶️ John Apple is going. because we’ve seen enough of these presentations already. What does Apple put up on the slides when they introduce

⏹️ ▶️ John the iPhone with the bigger screen? Like, what’s the, how do you

⏹️ ▶️ John sell that?

⏹️ ▶️ Marco I would say they’re going to put it right between the iPhone and the iPad. When they introduced the iPad

⏹️ ▶️ Marco and they had the iPhone on one side and the laptop on the other, and like, what can go in between these things?

⏹️ ▶️ Marco, Casey I think they’re going to completely

⏹️ ▶️ Marco ignore the competition, which of course is all that size now, and just say, here’s

⏹️ ▶️ Marco an iPhone, here’s an iPad. So we think there’s room for something in the middle. Well,

⏹️ ▶️ John see, the way Steve Jobs would have done it is his jerky way to do it would be kind of like,

⏹️ ▶️ John we made the iPhone, and we thought the size was just perfect. And

⏹️ ▶️ John we decided that a couple of customers said they would like it a little bit bigger, so we made it a little bit

⏹️ ▶️ John taller. And if you want a little bit bigger screen, there you go.

⏹️ ▶️ John And some people said they still wanted it to be bigger. And so every time it’s like, well,

⏹️ ▶️ John What we made was perfect, but you people just kept asking for some other things. So we made it taller.

⏹️ ▶️ John That wasn’t enough for you. So fine. Kind of in a jerky kind of way. That’s one way we’d go with

⏹️ ▶️ John it. The other way to go with it is just pretend you never said all those things in the past about the iPhone size being

⏹️ ▶️ John appropriately sized, and just say, here’s the new iPhone. It’s got a beautiful display.

⏹️ ▶️ John It’s 4.5 inches or whatever the heck it

⏹️ ▶️ John, Marco is. We’ve always been at war with East Asia.

⏹️ ▶️ John And no, don’t even say anything about it. And it’s great. In your own presentation,

⏹️ ▶️ John you are not obliged to address the fact that the previous phones had smaller screens.

⏹️ ▶️ John, Marco Yeah, and that’s how they’re going to do it. If this thing’s real. You just

⏹️ ▶️ John say, it’s a new phone, and it’s great, and here it is. Look at this beautiful display.

⏹️ ▶️ John And they’ll just give you the measurement of the display. They don’t need to mention that that measurement is larger than the other one. Of course, it’ll be

⏹️ ▶️ John the same res, a whole nine yards. If they continue to sell the old size

⏹️ ▶️ John as well, then they might have to mention it. But I don’t know.

⏹️ ▶️ Marco Oh, I think they’d sell both. Because, you know, that’s, like, with the iPhone 5 versus

⏹️ ▶️ Marco the 4S, like, they’re not going to keep both of those sizes around forever. You know, once the

⏹️ ▶️ Marco 4S is out of the cycle of being the cheap phone, you know, they’re not going to keep that size going somehow.

⏹️ ▶️ Marco But I think the iPhone 5 size, that will, like, the primary

⏹️ ▶️ Marco iPhone size or one of the primary iPhone sizes will always be that ballpark. And then

⏹️ ▶️ Marco if they have a bigger one, it’ll always be that ballpark also. Like the, because, you

⏹️ ▶️ Marco know, you could, the 4S to the 5 is such a small difference in the outside dimensions of the phone,

⏹️ ▶️ Marco and the 5 is so much thinner and lighter. I mean, a lot of people with the 4S look at the 5 and

⏹️ ▶️ Marco they’re angry because they bought the 4S, not the 5, or they’re angry that the upgrade would be too expensive

⏹️ ▶️ Marco or something, and they want to justify keeping the 4S and not getting the 5. So they’re like, the 5 sucks, I don’t want something that big,

⏹️ ▶️ Marco I hope Apple keeps these sizes around forever. Most people though who have, who

⏹️ ▶️ Marco have owned the previous phones, who have ever picked up and held a five are like, Oh my God, I can’t

⏹️ ▶️ Marco be how light this is. I want this. And even if they don’t immediately go and upgrade, because not everybody can do that. Uh,

⏹️ ▶️ Marco most people recognize that the five overall is better and that if the forest went away

⏹️ ▶️ Marco and the five was the smallest iPhone you could buy, very few people would say, I want something

⏹️ ▶️ Marco smaller, you know, like it’s, it’s pretty great. So, you know,

⏹️ ▶️ Marco but so that I see them keeping that around, but if they only made the big one, I think you’d have a lot of people

⏹️ ▶️ Marco demanding something smaller.

⏹️ ▶️ John You know, after reading Andy’s Android conversion

⏹️ ▶️ John, Marco story… I

⏹️ ▶️ Marco haven’t read it yet, no, but I’ve seen some quotes and it does sound pretty compelling.

⏹️ ▶️ John So one of the things he brought up, which I hadn’t thought about too much before, I’ve seen

⏹️ ▶️ John Andy’s… Andy’s always got different phones that he’s testing, right? And since they’re not always Apple

⏹️ ▶️ John phones, they’re bigger phones. And one of the things I hadn’t noticed because I’m not actually using them and just sort of playing with

⏹️ ▶️ John them, fiddling around, brought up in the thing is not so much that, like, oh, the bigger screen is nice, which is true. And

⏹️ ▶️ John we know all the people who like bigger screens, people who have vision problems, people who just like it bigger. But that Android

⏹️ ▶️ John in particular does something with larger screens that iOS is probably going to have slightly more difficulty doing,

⏹️ ▶️ John which is it uses the larger screen to actually show more information. So the phones with larger screens

⏹️ ▶️ John have larger resolutions. So the apps are designed to show more stuff,

⏹️ ▶️ John whereas we’re all assuming a bigger iPhone is just simply going to be all right, same res, but just bigger,

⏹️ ▶️ John which is which gives you half of what a big screen can do. But Andy saying what made him go over is

⏹️ ▶️ John not so much just that it’s physically larger because eyesight is fine, right? But that apps

⏹️ ▶️ John on that phone for that bigger screen showed more stuff and were designed to have more

⏹️ ▶️ John stuff on the screen. Not so many like more items in the list view, but just like more context in the side and just

⏹️ ▶️ John more room for information. It wasn’t simply the same image you see on a smaller our Android screen

⏹️ ▶️ John made larger because your vision is bad. So that half of the equation, I’m not sure what

⏹️ ▶️ John Apple can do there. Because all of its user interfaces and all the iPhone apps are designed for a thumb

⏹️ ▶️ John reaching around the screen. And by making it bigger, yeah, it’s easier to see. But you don’t get to take

⏹️ ▶️ John advantage of that extra room because you’re keeping the res the same to keep the developers

⏹️ ▶️ John from freaking out.

⏹️ ▶️ Marco Yeah, I wonder how. Because with iOS 6, they introduced auto layout, which is way more

⏹️ ▶️ Marco capable and mature and flexible than the old auto sizing system they had in place. So

⏹️ ▶️ Marco now, the frameworks are getting in place for

⏹️ ▶️ Marco iOS apps to be more flexible sizes. Android has always

⏹️ ▶️ Marco had that because Android phones have always been a wide variety of sizes. So Android is,

⏹️ ▶️ Marco all the apps are designed, at least the good ones, are designed to be pretty flexible with

⏹️ ▶️ Marco the size that they’re willing to render at and will work at, just because they’ve always had to.

⏹️ ▶️ Marco So that is definitely one advantage. But I wonder how Apple will do this in the future. They’re laying

⏹️ ▶️ Marco the groundwork with auto layout, and by having the iPhone 4 and the 5, these two different sizes,

⏹️ ▶️ Marco they’re laying the groundwork for a future

⏹️ ▶️ Marco where we can more easily support more sizes, and iOS developers expect that and do

⏹️ ▶️ Marco that. But it does add so much complexity, And it is so much harder to design apps that

⏹️ ▶️ Marco way that I wonder if they’re ever going to pull that trigger and make

⏹️ ▶️ Marco things that are a wider

⏹️ ▶️ John variety of sizes. I think they’ll be forced to eventually. And I think the way they’ll get away with it, because the stumbling

⏹️ ▶️ John block is not so much going to be the apps. Because assuming everyone gets on the auto layout train, and everyone’s had a trial

⏹️ ▶️ John run with making their apps taller, which you don’t necessarily need to adopt auto layout to do, it’s pretty easy to do.

⏹️ ▶️ John But the sticking block is always games. And what I think they’re going to do with games, things designed for a

⏹️ ▶️ John fixed screen size. Because they’re not using any real UI. It’s just a big OpenGL view. So

⏹️ ▶️ John what I think they’re going to do there with games is the same thing they did on the Retina

⏹️ ▶️ John MacBook Pros, which is, like, and they did this intent. There was no reason they were forced

⏹️ ▶️ John to do this on the MacBook Pros, but they did. They said, OK, well, so you have native Retina size, but we also have a size that’s

⏹️ ▶️ John even bigger than that, and we’ll just scale your whole freaking screen and put it in Retina. And you’re like, oh, that’s

⏹️ ▶️ John going to look horrible in LCD and non-native res, But it turns out if you make the pixels small enough, it is not as horrible

⏹️ ▶️ John as you might

⏹️ ▶️ John, Marco think.

⏹️ ▶️ John So what do you do with the games that don’t update? On your bigger screen, you just

⏹️ ▶️ John scale them. And you would think it would look hideous, and it doesn’t look as good as it could. But because

⏹️ ▶️ John the pixels are so small, you are not incredibly sore that, you know, like as long as you keep the

⏹️ ▶️ John aspect ratio the same, oh, this game wasn’t updated for the iPhone 7. So it doesn’t show any new

⏹️ ▶️ John information. All it does is scale the one that used to run on the iPhone 6. You know, it scales it

⏹️ ▶️ John horizontally and vertically in proportion, and now it fills my screen, and maybe that game guy never has

⏹️ ▶️ John to go back and port. And going forward, he can make games that work at all the different res’s natively, but he

⏹️ ▶️ John never has to backport that. And then everyone else just deals with the auto layout issues and tries to do something

⏹️ ▶️ John nice.

⏹️ ▶️ Marco I mean, one of the problems with apps, though, is that designers have been accustomed to

⏹️ ▶️ Marco – before the iPhone 5 came out, designers were really accustomed to having, like, pixel-perfect control over the

⏹️ ▶️ Marco whole screen knowing that every iPhone every iPhone slash iPod

⏹️ ▶️ Marco touch app would always have a screen it’s exactly this shape exactly this physical size exactly this resolution

⏹️ ▶️ Marco so they could like they could design the entire app as like one bitmap basically

⏹️ ▶️ Marco, John yeah and

⏹️ ▶️ John web developers used to make web pages out of HTML tables with sliced up images but the world moves

⏹️ ▶️ Marco, John on

⏹️ ▶️ Marco right and so like you know now like now with the iPhone 5 they’ve broken that for a lot

⏹️ ▶️ Marco of apps and games and this does affect games too with with UI. Not necessarily

⏹️ ▶️ Marco like the main viewport of the game into the engine can be different

⏹️ ▶️ Marco sizes in most cases without too much work, but the UI usually can’t.

⏹️ ▶️ Marco So that is challenging for games and apps alike. But

⏹️ ▶️ Marco once they’ve gotten people accustomed to it with the iPhone five and you know maybe now it’ll be easier

⏹️ ▶️ Marco and people will start adapting. Also stylistically like our

⏹️ ▶️ Marco what’s in fashion right now in design is moving out of those extremely detailed

⏹️ ▶️ Marco pixel perfect textures and into flat design which

⏹️ ▶️ Marco scales into different aspect ratios way easier.

⏹️ ▶️ John That fad will probably be over by the time they change the screen size. We’ll cycle back again and we’ll be back to making everything look like it’s made

⏹️ ▶️ John of wood. Yeah. Wow.

⏹️ ▶️ Casey Now, the thing that where I’m not on the same thought train that you guys

⏹️ ▶️ Casey are, is everyone I’ve ever spoken to, which to be fair is a very small

⏹️ ▶️ Casey sample size, but everyone I’ve ever spoken to who has tried auto layout has not had good things to say. And

⏹️ ▶️ Casey I think, was it Brent Simmons that just posted something

⏹️ ▶️ Casey, John saying that? Yeah. I

⏹️ ▶️ John think it’s not auto layout that’s bad, it’s auto layout plus IB. I totally agree with what Brett said, and I’ve seen that in

⏹️ ▶️ John action with people trying to do stuff with auto

⏹️ ▶️ Marco layout. I still don’t use auto layout because I can’t figure out how it works in interface builder. So I just don’t use it. I just use the old system

⏹️ ▶️ Marco because it’s good enough for my needs.

⏹️ ▶️ Casey So and I guess maybe the answer is that we use the, what is it, visual format language or whatever? We all

⏹️ ▶️ Casey start drawing ASCII

⏹️ ▶️ Casey, John art.

⏹️ ▶️ John I think it’s a bit of a learning curve and maybe you bail on that learning curve if you know the old system well enough

⏹️ ▶️ John that it’s not worth it for you to climb it. But like, I mean, what Brent said is like the way it has to be. Like

⏹️ ▶️ John when you lay something out with a GUI tool, like auto layout is not going to leave leave

⏹️ ▶️ John an open-ended question. It’s going to, you have to have sort of, it has to behave in a certain way. It has to be deterministic.

⏹️ ▶️ John So it’s going to add the missing constraint that you have not yet specified. And if you don’t know what all those implicit constraints

⏹️ ▶️ John that it’s adding for you are, you’re like, well, I didn’t add that constraint. It’s like, well, you need something there to balance

⏹️ ▶️ John the equation so the thing knows what it’s supposed to do when you resize, right? And that can be frustrating.

⏹️ ▶️ John But I think if you really, really knew auto layout, it would be obvious to you

⏹️ ▶️ John what implicit constraints interface builder is adding. And you wouldn’t be surprised

⏹️ ▶️ John by when you lay something out without a layout interface builder, add one constraint, and see how it behaves. Because

⏹️ ▶️ John you’d know what all the other ones would have to be to fill that in. I mean, there’s still room for variation there that IB could

⏹️ ▶️ John be adding things that you don’t think should. It should close the equation in a different way or whatever. But

⏹️ ▶️ John I think it’s a solvable problem, and Apple will iterate on it until they get something

⏹️ ▶️ John that works reasonably well.

⏹️ ▶️ Marco Also, it’s kind of a chicken and egg thing. right now, most apps are able to adapt

⏹️ ▶️ Marco to the iPhone 5 without significant changes because it just stretched vertically.

⏹️ ▶️ Marco And any app that has a scrollable, like a vertically scrollable content area in the middle,

⏹️ ▶️ Marco any kind of table view or list app, that was a really easy transition for most of these apps to make.

⏹️ ▶️ Marco So it wasn’t that painful to adapt to the iPhone 5. Once we,

⏹️ ▶️ Marco if they would add a whole new resolution that was wider and taller, you know, that

⏹️ ▶️ Marco different in both dimensions, even if it’s a different aspect ratio, then that adds even more complexity.

⏹️ ▶️ Marco If they do that, then it’s going to be so much work to adapt a lot of these apps to it, then

⏹️ ▶️ Marco maybe it’ll motivate developers to convert to auto layout or to start using it for new projects,

⏹️ ▶️ Marco whereas now the value proposition isn’t that strong for it, because it’s like, well, the old system works

⏹️ ▶️ Marco well enough for so many cases, and we already know it, and we only have to support two devices,

⏹️ ▶️ Marco devices and it’s fairly easy to support them both now so you know it’s it’s it’s a lot less

⏹️ ▶️ Marco compelling now

⏹️ ▶️ John do you remember I’m trying to remember the auto layout demos wwc did you go to those sessions

⏹️ ▶️ John, Marco I did

⏹️ ▶️ John yeah so like I’m trying to think of if they had the ability to do the thing where like

⏹️ ▶️ John okay so now when they were showing it on the Mac but like so now when you’re when your window is a little bit bigger suddenly

⏹️ ▶️ John new information and or UI elements come into existence that weren’t previously there sort of like

⏹️ ▶️ John responsive design when they have parts of the navigation disappear and stuff. I think that’s important. Because that’s what you really

⏹️ ▶️ John need for like, you’re trying to avoid a situation where we have now with like, OK, I make my

⏹️ ▶️ John app for the iPod or for the iPhone, and then I have to, if I’m going to do a good

⏹️ ▶️ John job, I got to do a different UI for the iPad. Because it’s just so different in size, you can’t just take the phone thing and scale it up. Well,

⏹️ ▶️ John if you have a larger iPhone, like getting back to Andy’s point, if you really want to do an awesome job

⏹️ ▶️ John for those people, you’re going to say, OK, now I have more room to put stuff. I shouldn’t really just take my

⏹️ ▶️ John iPhone screen and make sure everything scales correctly. In fact, I have room for another button here. I have room for

⏹️ ▶️ John an ancillary display with some other information. That’s what the AAA guys are going to do. And

⏹️ ▶️ John the question is, if they’re doing that, does auto layout a factor? Or do they just make three different

⏹️ ▶️ John views, the regular iPhone, the bigger iPhone, and then the iPad? And

⏹️ ▶️ John if auto layout has the ability to sanely let people say, OK, well, here’s the iPhone one.

⏹️ ▶️ John If you make it a little bit bigger, another control goes into view and another display thing,

⏹️ ▶️ John and then I’ll still have to do another layout for the iPad, you know?

⏹️ ▶️ Marco Yeah, see, I bet most good developers, or especially good developers and good designers,

⏹️ ▶️ Marco like most good developers will want to code those separately anyway, because a lot of times,

⏹️ ▶️ Marco even if it’s like, okay, we’ll show or hide these controls or rearrange them, even then, a lot of

⏹️ ▶️ Marco times, the iPad interface probably should work even more differently than that. And so

⏹️ ▶️ Marco I think we’re always gonna have people

⏹️ ▶️ John, Marco who-

⏹️ ▶️ John That’s the iPad, of course, what I’m saying, from the small phone to the

⏹️ ▶️ John, Marco big iPhone.

⏹️ ▶️ Marco And that’s a smaller jump, hopefully, in what you want to be different. So auto

⏹️ ▶️ Marco layout could take care of that in a lot of cases, I’m sure. But I still think

⏹️ ▶️ Marco so many people are going to want to custom design things to just be more different

⏹️ ▶️ Marco than what the layout engine is capable

⏹️ ▶️ Marco, John of

⏹️ ▶️ Marco providing.

⏹️ ▶️ John And it is, a car is the old curmudgeon syndrome. if you know how the regular layout works, is

⏹️ ▶️ John it worth it to you to learn how the auto? Because then all you’re doing is you’re going through an abstraction layer that’s preventing

⏹️ ▶️ John you from just setting the things that you know you want to set. In some cases, auto layout can do things that you would have to write code

⏹️ ▶️ John for. And that’s the kind of case where you’re like, am I writing this stupid frigging layout code to recalculate the distances between these

⏹️ ▶️ John things based on the read? It’s like if springs and struts can’t do it, but auto layout can,

⏹️ ▶️ John auto layout is saving you from manually writing that code to do some stupid math on points to figure

⏹️ ▶️ John out how far things are. And that’s the type of thing that probably would demo well at W3C to say,

⏹️ ▶️ John if you didn’t have auto layout, the amount of code you’d have to write for this would make you not want to use this feature

⏹️ ▶️ John and would make you not make your layout act this way. But look how easy it is in auto layout versus like,

⏹️ ▶️ John I could do this in springs and struts. There’s no reason for me to use auto layout. It’s just getting in my way.

⏹️ ▶️ Casey Well, the other thing that I find interesting about auto layout is, although I, like I said earlier, I haven’t heard

⏹️ ▶️ Casey a lot of people sing its praises. I certainly haven’t heard a lot of people say,

⏹️ ▶️ Casey this is supposed to work, but doesn’t, a la iCloud. It doesn’t seem

⏹️ ▶️ Casey like the technology is bad, it’s just a big learning curve like the both of you guys have been saying, whereas

⏹️ ▶️ Casey iCloud seems to have somewhat of a big learning curve and it’s a piece of crap.

⏹️ ▶️ Casey, John Right. So that actually- You can’t learn

⏹️ ▶️ John anything if it doesn’t act in a deterministic way. So

⏹️ ▶️ John, Casey a local API

⏹️ ▶️ John and a framework on your system, you have a fighting chance of figuring out. But when you’re communicating to a black box with

⏹️ ▶️ John a network and you can’t figure out why it works the way it does, it just does not converge

⏹️ ▶️ John on a solution.

⏹️ ▶️ Marco Well, when Apple makes new APIs and frameworks and things like that,

⏹️ ▶️ Marco they’re solving a number of problems with these APIs. Some of them appear to be designed not

⏹️ ▶️ Marco necessarily for everyone to use as their new default of how they build things,

⏹️ ▶️ Marco but for rapid development or for less sophisticated developers to get something

⏹️ ▶️ Marco working well and quickly. So I think one of the The biggest example to this is Arc versus Storyboards.

⏹️ ▶️ Marco Arc is a really great feature that they obviously want everybody to use.

⏹️ ▶️ Marco There’s really very few downsides to it overall. Even power users,

⏹️ ▶️ Marco even very skilled developers will get a lot of value out of using Arc with almost no downsides.

⏹️ ▶️ Marco are a very restrictive and

⏹️ ▶️ Marco limited structure that your app uses. They can save a lot of time

⏹️ ▶️ Marco for rapid development or for less experienced developers. They can save tons of time and provide

⏹️ ▶️ Marco a nicer framework for certain things, but they’re so limited that a lot of high-end

⏹️ ▶️ Marco developers really can’t use them for much. And so

⏹️ ▶️ Marco maybe auto layout is not

⏹️ ▶️ Marco quite to the level of storyboards, but maybe it’s not quite to the level of ARC either.

⏹️ ▶️ Marco It’s there for people to use maybe sometimes, or as they go forward, maybe new developers

⏹️ ▶️ Marco learn this, but maybe it isn’t intended to capture a lot of the older developers quite yet, because

⏹️ ▶️ Marco maybe the value isn’t quite that clear on it. And certainly, once you have

⏹️ ▶️ Marco one of those situations where you’re laying out something with the old system that’s really a pain to do it,

⏹️ ▶️ Marco once you have one of those situations, yeah, maybe then you start learning it, but I think there’s very little reason

⏹️ ▶️ Marco for developers to convert things to auto layout if they’re working fine with springs and struts.

⏹️ ▶️ Marco Or to absolutely use auto layout for everything in the next project. It might not make sense to do that yet.

⏹️ ▶️ John Maybe it’s just the circles that we travel in and the people who read. But the number of people who have a grumpy

⏹️ ▶️ John face about IB, which is not a fancy new technology. It’s come from the next days.

⏹️ ▶️ John They’re like, I’ll just do it in code. It just shows that sometimes,

⏹️ ▶️ John no matter how, that was a big selling point in the next days, was like, look at Interface Builder. It’s amazing.

⏹️ ▶️ John And some people just, I’d rather just do it in code. And that’s

⏹️ ▶️ John just what they would rather do. and you’re not like no matter how nice you make the tool if

⏹️ ▶️ John people don’t want a tool that does that if it’s not solving a problem they think they have it will

⏹️ ▶️ John just sit there so like auto layout even if they make it awesome and perfect they’ll just like interface ability there’ll

⏹️ ▶️ John be some people say yeah I prefer to just do it in code and they

⏹️ ▶️ Marco will

⏹️ ▶️ Marco, John well

⏹️ ▶️ Marco and like interface builder I’ve always thought has been like comically unintuitive and and

⏹️ ▶️ Marco like my background as Casey knows because he was there my my background was visual

⏹️ ▶️ Marco basic And, you know, Microsoft does a lot of things badly.

⏹️ ▶️ Marco I gotta give them credit for that. They do so many things badly, it’s quite impressive. However,

⏹️ ▶️ Marco their development tools are really good. And they’re especially good at

⏹️ ▶️ Marco not having a really huge learning curve to get started on something. And Visual Basic,

⏹️ ▶️ Marco and you know, now of course, it’s way more sophisticated with all their new stuff, but like, I started using Visual Basic with version 1.0,

⏹️ ▶️ Marco literally, Visual Basic 1.0. And even then, it was really easy to use.

⏹️ ▶️ Marco You drag out a control, and you double-click it, and there’s the function. It was so easy

⏹️ ▶️ Marco to use that I could figure it out as an extreme novice in seventh grade.

⏹️ ▶️ Marco It was really easy to figure out. Interface Builder has so many weird little things about it,

⏹️ ▶️ Marco weird behaviors that aren’t necessary. It’s not like,

⏹️ ▶️ Marco oh, you’re going to have some advanced need at some point and you might need to know this. No, it’s like if you’re going to

⏹️ ▶️ Marco use this to do anything at all, you need to know these weird things about it that aren’t very intuitive.

⏹️ ▶️ Marco And it’s always been that way. And they keep saying it’s getting better, and in some ways it gets better, and then it adds

⏹️ ▶️ Marco new weird things that you need to learn in some weird way. So interface builder

⏹️ ▶️ Marco has never been particularly easy to use. Casey, I’m

⏹️ ▶️ Marco curious, because you’ve come to this way more recently than John and I have. What do you think of Interface

⏹️ ▶️ Marco Builder? Have you had those problems? And you have used all the Microsoft stuff more recently, because you

⏹️ ▶️ Marco were a Windows guy for so long at work, and you still are, kind of. What do you think about this

⏹️ ▶️ Marco comparison?

⏹️ ▶️ Casey I think for the most part I agree with what you said. I don’t have any hate for

⏹️ ▶️ Casey Interface Builder, and I think that largely comes from the fact that A, I haven’t

⏹️ ▶️ Casey done years upon years of iOS development, and B, all the iOS

⏹️ ▶️ Casey development I’ve done has tended to be with reasonably simple and straightforward user

⏹️ ▶️ Casey interfaces. I do agree though that it is not intuitive. Like

⏹️ ▶️ Casey when you were talking about how you drag a button onto a form in current Windows

⏹️ ▶️ Casey Forms parlance, or however you pronounce that word, esoteric.

⏹️ ▶️ Casey Regardless, you just drop it on a form, you double-click and there’s your method just like you were saying. Whereas with

⏹️ ▶️ Casey Interface Builder, as you’re describing this, I’m thinking, well, how does that work in Interface Builder? Well, you have to have

⏹️ ▶️ Casey something on the header or perhaps the M file that

⏹️ ▶️ Casey is an IB action or an IB outlet. Well, wait, what’s the difference between the two? Oh, well, you see an IB action is

⏹️ ▶️ Casey for a function or message and an IB outlet is where you just want to have a reference. It’s already,

⏹️ ▶️ Casey it’s like, oh my God, just shut up. So I don’t think it’s terrible. I don’t have a problem

⏹️ ▶️ Casey with interface builder, but I would agree with everything you said about the Microsoft developer tools really are good. And

⏹️ ▶️ Casey it’s funny because I’ve been teaching a co-worker Objective-C and Cocoa and whatnot, and

⏹️ ▶️ Casey he’s really enjoyed it and got over the ugly, ugly, ugly syntax a lot quicker

⏹️ ▶️ Casey than I did. But one of the things that it’s hysterical to watch is when he’s

⏹️ ▶️ Casey trying to figure out what the right method is to do something. Like for example to make a string

⏹️ ▶️ Casey lowercase. Rather than go to the documentation, what does he

⏹️ ▶️ Casey, John do? He tries to auto-complete it. Yeah,

⏹️ ▶️ John, Marco he uses it. He uses the Windows developer for you. Because Windows is so

⏹️ ▶️ Marco, Casey good at that.

⏹️ ▶️ Marco That’s the thing, it’s

⏹️ ▶️ Marco, Casey so good at it. When you’re

⏹️ ▶️ Marco programming in for the first time, all you need to know is the first word,

⏹️ ▶️ Marco system. Is it still system? Is it? Yep. So yeah, like you can know nothing

⏹️ ▶️ Marco about the language you’re programming or the API that you’re programming against, at least language, of course, there’s always things, but

⏹️ ▶️ Marco you can do nothing about the API you’re programming against and just type in system dot and just start there

⏹️ ▶️ Marco and you

⏹️ ▶️ Marco, Casey will probably find what you need.

⏹️ ▶️ Casey Yeah, you’re absolutely right. And that’s the funny thing is watching him use X codes, crummy

⏹️ ▶️ Casey IntelliSense. I know it’s not called IntelliSense, but whatever they call it,

⏹️ ▶️ Casey, John and it’s

⏹️ ▶️ Casey gotten better. Like I remember everyone freaking out at WWDC. They were so excited when they,

⏹️ ▶️ Casey when somebody announced that when you start typing nss rather

⏹️ ▶️ Casey than

⏹️ ▶️ Casey, Marco what was it? Streams.

⏹️ ▶️ Casey, John Yeah, or whatever it was. I was just trying to

⏹️ ▶️ John remember what the bad match was.

⏹️ ▶️ John, Casey It was nsstream, right?

⏹️ ▶️ Casey Or set, maybe?

⏹️ ▶️ John I was trying to formulate a Google query for it. I was going to type nsstring,

⏹️ ▶️ John, Marco auto-complete, annoying.

⏹️ ▶️ John Yeah, it was probably nsstream.

⏹️ ▶️ Casey Whatever it was. Everyone went berserk because they finally got the auto-complete to

⏹️ ▶️ Casey the point that it sort of made sense. But it’s not a great documentation browser, whereas

⏹️ ▶️ Casey in.NET, you really never need to kick open any documentation. You can just sit there

⏹️ ▶️ Casey with IntelliSense and you’ll find what

⏹️ ▶️ Casey, Marco you need.

⏹️ ▶️ Marco Whereas, if I’m working in Xcode, I have to have that organizer window open, and I have to have it to the documentation

⏹️ ▶️ Marco tab, and I’m going over there and searching in a search field every five minutes for something.

⏹️ ▶️ Marco Any kind of built-in, pop-up automatic documentation is usually not enough for what I’m

⏹️ ▶️ Marco looking for. Right,

⏹️ ▶️ Marco, Casey exactly. I’m

⏹️ ▶️ Marco looking for exactly and I can’t auto-complete it. Or the auto-complete is freaking out because

⏹️ ▶️ Marco of something that it choked on a hundred lines up that I don’t know about yet and

⏹️ ▶️ Marco it’s just not working.

⏹️ ▶️ John It’s a… You whippersnappers, I’m writing all my code the old-fashioned way. I don’t have auto-completion,

⏹️ ▶️ John I just memorize every single freaking function, its name and the arguments

⏹️ ▶️ John, Marco and the return values. That’s how I write

⏹️ ▶️ Marco PHP, because… which all my backends are still in PHP. That’s why I write that, because I’m writing it

⏹️ ▶️ Marco all in TextMate, which doesn’t really have IntelliSense type features,

⏹️ ▶️ Marco or if it does, I don’t know how to activate them, and please don’t email me, I really don’t care. I can

⏹️ ▶️ Marco write that way, but it’s so nice when you don’t have to, and it really is a major productivity

⏹️ ▶️ Marco booster to have things like IntelliSense. Doing that well

⏹️ ▶️ Marco makes a really big difference to coding, especially when you’re new to a language or an API.

⏹️ ▶️ Marco, Casey You’re absolutely right.

⏹️ ▶️ Casey And I think part of the problem might be that Objective-C is such a verbose language

⏹️ ▶️ Casey and method names are string by replacing occurrences of string with string with

⏹️ ▶️ Casey options or whatever the hell it is. I forget what

⏹️ ▶️ Casey, John it is off the top of my

⏹️ ▶️ John head. That’s one letter in Perl, S.

⏹️ ▶️ John, Casey Exactly. And then delimiters. Well,

⏹️ ▶️ Casey let’s be honest, all of Perl

⏹️ ▶️ Casey, John is just regular expressions anyway.

⏹️ ▶️ Casey You

⏹️ ▶️ John, Casey can read one of them.

⏹️ ▶️ John I think we should get, we can talk about that on some future podcast. At a certain point, The verbose

⏹️ ▶️ John names do not help understanding your reading.

⏹️ ▶️ Marco Well, except once you do get familiar with Apple’s crazy API naming style,

⏹️ ▶️ Marco then you can start guessing the names of things before you know them. And you can usually guess correctly, at least to the point where

⏹️ ▶️ Marco, John then autocorrect will help you. That’s so true.

⏹️ ▶️ John You know it to begin with, because once you learn the words for the event handlers for will and did

⏹️ ▶️ John and finish and all that stuff, then at least you have a fighting chance on the prefixes.

⏹️ ▶️ John But the words that come after the prefixes, that’s kind of like people writing little

⏹️ ▶️ John essays in their parameter names. And the order that they put the adjectives and verbs

⏹️ ▶️ John and where the width comes and the option and error and all that. So there’s

⏹️ ▶️ John a rich history of scrambling up the fake name parameter things. That’s what they should do.

⏹️ ▶️ John They’ll never do this, but give object to see real name parameters so the order doesn’t matter anymore.

⏹️ ▶️ John That’d be great.

⏹️ ▶️ Casey Oh, God. That

⏹️ ▶️ Casey, John would be a different language.

⏹️ ▶️ Casey That would be a

⏹️ ▶️ Casey, John different language.

⏹️ ▶️ Casey That would be Ruby. It’s funny though, Marco, because just today, I was trying

⏹️ ▶️ Casey to remember for the, I was working with my coworker who’s learning the language and the API, and I was trying to remember,

⏹️ ▶️ Casey wait, how do you get a lowercase string? It’s not too lower, that’s.NET. No, that’s

⏹️ ▶️ Casey not how Apple would do

⏹️ ▶️ Casey, Marco it. It’s

⏹️ ▶️ Casey just lowercase string. No, you know what? I bet Apple would do lowercase string, and sure enough,

⏹️ ▶️ Casey, Marco that’s what they would do. Or like string by converting

⏹️ ▶️ Marco to lowercase. Yeah, so that’s what I’m saying.

⏹️ ▶️ Casey That’s true.

⏹️ ▶️ Marco Yeah, well, like earlier today, I had an array that I wanted to join with a string,

⏹️ ▶️ Marco and, you know, join all the components with a string. And so I had the array, and I just started, from

⏹️ ▶️ Marco the array, I started typing string by, and I’m pretty sure that was correct. It’s string by joining components

⏹️ ▶️ Marco with string, or something like that. And because I’m familiar enough with Apple’s style, I was

⏹️ ▶️ Marco able to guess that method without looking it up, and I was right. And so

⏹️ ▶️ Marco once you, it’s, an interface builder is actually very similar, like, once you get it,

⏹️ ▶️ Marco then you can see, oh, okay, I can see why they thought that made

⏹️ ▶️ Marco sense, and now it makes sense to me, and now I’m past it.

⏹️ ▶️ Marco, John But the learning curve is just

⏹️ ▶️ Marco ridiculous for a

⏹️ ▶️ Marco, John lot of stuff.

⏹️ ▶️ Marco I

⏹️ ▶️ John understand the verbose naming thing, that someone who has never seen Objective-C before

⏹️ ▶️ John can look at that and guess that you are taking a string and joining

⏹️ ▶️ John a bunch of other strings with some other string, and they can tell which is which. But the

⏹️ ▶️ John mental and visual space that that call takes up, as compared to like s equals

⏹️ ▶️ John a.join and then single quotes the joining string, maybe someone doesn’t know what that means.

⏹️ ▶️ John But once you know the language and know a little bit about the basics of the API, that’s

⏹️ ▶️ John That’s why people are alerted to verbose things. Not because verbose is so much bad, but because there’s

⏹️ ▶️ John a limited common vocabulary that people feel like should not be that verbose because it happens so often.

⏹️ ▶️ John That’s why a lot of Objective-C code looks like a lot of visual stuff like squint, a lot of black

⏹️ ▶️ John on the page for doing operations that in some higher level, more dynamic

⏹️ ▶️ John language like JavaScript even, or Perl, or Ruby, or Python, would just

⏹️ ▶️ John take up so much less room and be so much faster to scan because you wouldn’t have to

⏹️ ▶️ John read. You know what I mean? It’s just join map grep filter, replace substitute,

⏹️ ▶️ John instead of the big English sentences with stuff hanging off of it.

⏹️ ▶️ Marco Although, the

⏹️ ▶️ Marco, Casey big

⏹️ ▶️ Marco English sentences are substantially easier to read if you aren’t familiar

⏹️ ▶️ Marco with the API that they’re calling.

⏹️ ▶️ John That’s true. But I’m saying there’s a subset of really super common functionality. So I

⏹️ ▶️ John guess maybe it’d be weird to have a language where the, I don’t know if it’s weird. I think it’s reasonable. They call it in Pearl

⏹️ ▶️ John Huffman coding, where you take the things that are common and make them concise.

⏹️ ▶️ John And as you get more esoteric, you get more verbose. So the built-in stuff is super duper short,

⏹️ ▶️ John lowercase is LC. But the really more esoteric things, like creating

⏹️ ▶️ John a socket with timeouts and a binding port and stuff, that is verbose and has big name parameters, and everything’s long

⏹️ ▶️ John and spelled out. Whereas in Objective-C, and not the language, but the API and the Cocoa and Foundation

⏹️ ▶️ John APIs, Everything is verbose, even basic string functions, even things dealing with

⏹️ ▶️ John numbers and formatting. Everything is verbose. They don’t say, OK, people are going to

⏹️ ▶️ John change a string to lowercase way more often than they’re going to set up some sort

⏹️ ▶️ John of handler for some event or whatever, set up an NSNotificationCenter. So shouldn’t one of

⏹️ ▶️ John those be shorter because it’s going to be more common?

⏹️ ▶️ Marco To be fair, the lowercase string method is one of the shortest method names that

⏹️ ▶️ John I know. It’s not two letters long. And

⏹️ ▶️ John, Casey substitution,

⏹️ ▶️ John like running regular expressions matches and substituting, like, you know, Perl thought it

⏹️ ▶️ John was important enough to put syntax in the language for it. So did sort of JavaScript kind

⏹️ ▶️ John of put syntax in the language for it and a couple of other things too. But, you know, OK, so fine. An objector state, it’s not a syntax

⏹️ ▶️ John in the language. But the API for things that deal with strings don’t have any recognition of how common

⏹️ ▶️ John they are. Like, they are just as verbose as everything else.

⏹️ ▶️ Casey Although, Well, and then a string is monolithic as hell as well. And it has so many different weirdo

⏹️ ▶️ Casey methods, like for paths.

⏹️ ▶️ John Can’t you do, like, doesn’t it have data type things related to URLs? And it’s like, I thought you were a string. What

⏹️ ▶️ John do you have methods that have to do with URLs? Well, I kind of know about those too.

⏹️ ▶️ Marco Yeah, there’s a

⏹️ ▶️ Marco, John whole bunch of things.

⏹️ ▶️ John Why? Why do you

⏹️ ▶️ Marco, John know about URLs? You’re a string

⏹️ ▶️ Marco class. The core useful foundation class is NSString, NSData,

⏹️ ▶️ Marco NSArray. There’s so much weird, like, OK, I want to convert this to this

⏹️ ▶️ Marco which which object has that class or has that method which class has that method and and a lot of times

⏹️ ▶️ Marco it’s not the one you expected to be

⏹️ ▶️ John it’s not you got to do like it you know init with and then you pass the NS string or do you call it method on NS string that returns

⏹️ ▶️ John, Marco the string from data

⏹️ ▶️ Marco yeah yeah it’s

⏹️ ▶️ Casey yeah string to data gets me every time I always assume the wrong one has the method I need and I

⏹️ ▶️ Casey always have to spend two minutes looking through documentation

⏹️ ▶️ Casey, Marco I actually I have a

⏹️ ▶️ Marco macro So IP string to data, that’s it. Or no, IP

⏹️ ▶️ Marco data to string, which is also a very common one. Like when dealing with web services, you get back data.

⏹️ ▶️ Marco I use those constantly. I also have a whole string category that I stuck

⏹️ ▶️ Marco on my strings. I stole XPath’s string functions,

⏹️ ▶️ Marco so I have substring before, substring after, contains, and a few other little things like

⏹️ ▶️ Marco that. like to just parse strings and check them because it’s just even contains it’s

⏹️ ▶️ Marco like a way more compact syntax

⏹️ ▶️ Marco, Casey than like yes

⏹️ ▶️ Marco and it’s not found does not equal string by range of string and yeah it’s so much more

⏹️ ▶️ Marco, Casey compact

⏹️ ▶️ Marco so like I’ll definitely add helpers for things like that that I do very commonly URL

⏹️ ▶️ Marco encoding the the default method of like string with by replacing

⏹️ ▶️ Marco percent escapes using like that that big long method that converts a string to URL encoding

⏹️ ▶️ Marco doesn’t do it right for OAuth. There’s a few characters

⏹️ ▶️ Marco that that method doesn’t encode that whatever RFC OAuth requires does

⏹️ ▶️ Marco require them to be encoded. So I have my own IP URL encode string methods.

⏹️ ▶️ Marco So I have weird add-ons like that that just save me time. And the whole idea of

⏹️ ▶️ Marco having categories on classes is awesome, that you can extend the built-in system classes.

⏹️ ▶️ Marco You think

⏹️ ▶️ John that’s awesome? Yeah, you love Ruby. Monkey

⏹️ ▶️ John, Marco patching your brains out. Certainly, it can be done badly. And also, haven’t

⏹️ ▶️ Marco you heard?

⏹️ ▶️ John It’s three letters, please, for third-party code. Yeah, that’s crap. In the prefixes. You’re just going to

⏹️ ▶️ John stick with IP, because that will never conflict with anything having to do with the technology stack, right? Yeah, exactly.

⏹️ ▶️ Casey I don’t understand why there are no namespaces. I mean, I understand, because it’s

⏹️ ▶️ Casey, John all C. It’s just C with the runtime.

⏹️ ▶️ Casey I know, I know. But, God, namespaces would be so

⏹️ ▶️ Casey, John nice. You

⏹️ ▶️ John know, like baby steps. Like all these problems you’re talking about would be solved if they just had a better, nicer, higher level language. But

⏹️ ▶️ John you know,

⏹️ ▶️ John, Casey not. You know, there’s this guy. It’ll never happen,

⏹️ ▶️ Casey John. He’s been bitching about that for

⏹️ ▶️ Casey, John years.

⏹️ ▶️ John This year is going to be type inference, right? So. Yeah. Well, we’re lurching towards

⏹️ ▶️ John something. But like all that crap with the strings and the data and like dealing with stuff like that,

⏹️ ▶️ John it’s just it completely goes away if you have a language that has, I don’t know, native strings and

⏹️ ▶️ John a little more laissez-faire attitude about data types where you can just sling things around

⏹️ ▶️ John and not worry about if it’s a float or an integer or a number. Oh, no, you can’t do that. That language is useless. I know it. I know

⏹️ ▶️ John all the reasons why Objective-C is living on and it’s way more efficient and so on.

⏹️ ▶️ John Everyone wants to have their cake and eat it too. So right now, at least Apple has its cake.

⏹️ ▶️ Marco I

⏹️ ▶️ John honestly

⏹️ ▶️ John, Marco like it.

⏹️ ▶️ John I don’t understand

⏹️ ▶️ Marco how that analogy works. I like Objective-C and all

⏹️ ▶️ Marco, Casey of Apple’s

⏹️ ▶️ Marco recent stuff with it. I do too. Yeah, it’s not perfect. But I think if you think

⏹️ ▶️ Marco any language is perfect, you don’t know it well enough yet or you don’t have enough experience as a programmer,

⏹️ ▶️ Marco honestly. And so every language has problems and shortcomings, and

⏹️ ▶️ Marco just by the nature of these things, it’s not really possible to design a perfect language. And certainly, there

⏹️ ▶️ Marco are, you know, Objective-C has a lot of ancient baggage that it’s still carrying that

⏹️ ▶️ Marco it can probably never get rid of because of the kind of language it is. But Apple’s doing

⏹️ ▶️ Marco some pretty awesome stuff with it. Like, you know, even simple things, they did reduce a whole

⏹️ ▶️ Marco lot of that boilerplate last year when they introduced compact syntax for

⏹️ ▶️ Marco array access, dictionaries, stuff like that, the compact primitives. They

⏹️ ▶️ Marco introduced a lot of that stuff that they are making real progress, making

⏹️ ▶️ Marco synthesize optional, stuff like that.

⏹️ ▶️ John And they’ll get rid of the double name stuff with the type inference, where you don’t have to declare

⏹️ ▶️ John the variable being of type whatever, and then call the class method

⏹️ ▶️ John to give you a new one of those. Didn’t I just write that name?

⏹️ ▶️ John, Marco Exactly. Well, that’s

⏹️ ▶️ John the one. Of course, that’s the class that I’m going to call the method on to instantiate one of those, because that’s the type of

⏹️ ▶️ John the variable. Why can’t you fit? So that’s my next guess for what they’re going to

⏹️ ▶️ John add. But I still feel like at a certain point, you can’t. It’s like HFS+. At a certain

⏹️ ▶️ John point, you can’t just keep adding crap or fixing crap or trying to make it better. At a certain point, you need a new bug.

⏹️ ▶️ Marco Oh, right. As long as it’s like a C-based language, you’re always going to have, there’s going to

⏹️ ▶️ Marco be a pretty hard limit on a lot of these modern niceties that you can add to it.

⏹️ ▶️ John I mean, the transition I see, I’ll keep predicting this until I’m dead, or until Apple goes out of

⏹️ ▶️ John business, is that you know how now you have Core Foundation, which is just straight C, and you’ve got the Objective-C

⏹️ ▶️ John APIs, and everyone’s like, oh, I’ve got to deal with Core Foundation APIs, like lower level, and it doesn’t have all this stuff, whatever.

⏹️ ▶️ John If they come up with something higher level than Objective-C, which I think a higher level language is much more appropriate

⏹️ ▶️ John for most of the stuff you do. Catching events, figuring out when they click this button, bring this view

⏹️ ▶️ John into view, that crap does not need to be in a C-based language. It’s just monkey work of connecting

⏹️ ▶️ John up things in the UI. But there will always be parts of it that need to be in a lower level language. So then you have a continuum

⏹️ ▶️ John of, all right, I wrote most of my code in whatever this higher level language is. And then some portions of it are in Objective-C because

⏹️ ▶️ John it’s so much more efficient. And then presumably some portions are still in core foundation. It’s a layer cake of,

⏹️ ▶️ John all right, well, The OpenGL crap is still a straight C API, because that’s really performance sensitive.

⏹️ ▶️ John And then somewhere in the middle is something that’s like, it’s not high-level UI dealing with it, but

⏹️ ▶️ John it’s a little bit lower level. And then at the top, you’d be right, overall structure of your app, most of the time you’re writing this very high-level

⏹️ ▶️ John language. I could see them going to something like

⏹️ ▶️ Marco that. I think though, I think this served them very well though, in these early years

⏹️ ▶️ Marco of mobile computers, because

⏹️ ▶️ Marco, John they

⏹️ ▶️ Marco have gained so well. They’ve benefited so much from just the sheer

⏹️ ▶️ Marco efficiency of the C-based

⏹️ ▶️ Marco, John language. The things

⏹️ ▶️ John that benefit them early suddenly become disadvantages later. Exactly. Because then suddenly

⏹️ ▶️ John everyone else’s less efficient language, the CPUs catch up. And it’s like, oh, that was the great advantage

⏹️ ▶️ John for you back then, but now not so much. Now that advantage is insignificant.

⏹️ ▶️ Marco If webOS came out five years from now, it would stand a way better chance in

⏹️ ▶️ Marco the market. because it wouldn’t be complaining

⏹️ ▶️ Marco about its terrible battery life and terrible performance. It wouldn’t be that big of a difference from anything else that

⏹️ ▶️ Marco was out there.

⏹️ ▶️ John I mean, it’s kind of like Android. I mean, Java is disgusting, right? But Android, like

⏹️ ▶️ John it is using a high-level language, and it was slower for a long time.

⏹️ ▶️ John And arguably, iOS still has the performance advantage there, but the gap has really closed.

⏹️ ▶️ John Hardware is getting better. There’s more memory. There’s more stuff to indulge Java’s foibles.

⏹️ ▶️ John And if you believe that the things you don’t have to worry about in Java, like segmentation

⏹️ ▶️ John faults and crap like that, are an advantage, then suddenly Android’s

⏹️ ▶️ John platform in this particular respect becomes more attractive to doing new developments. You don’t have to learn about ARC. You

⏹️ ▶️ John don’t have to learn about pointers, for crying out loud. You know what I mean? Right.

⏹️ ▶️ John You don’t

⏹️ ▶️ John, Marco have all

⏹️ ▶️ Marco these weird stars before your variable names that new programmers have no idea what they’re there for. Yeah. Why it

⏹️ ▶️ Marco weirdly breaks when they forget one?

⏹️ ▶️ John Luckily for Apple, any continuum of things that make someone go on a platform or not, the crappiness

⏹️ ▶️ John of the language is very low on the list, as evidenced by the fact of all these bazillion people suddenly learning Objective-C,

⏹️ ▶️ John because that’s where the money is. Exactly. So, all right, we’ll learn your crazy-ass language with square brackets. Just get out

⏹️ ▶️ John of my way.

⏹️ ▶️ Marco And that’s always how it’s been, except on the web. On the web, you can write in pretty much anything, as long as you can find

⏹️ ▶️ Marco some server software to run it. has tons of great languages to choose from, and it doesn’t

⏹️ ▶️ Marco really matter which one you write in. But on native platforms, there’s always been one

⏹️ ▶️ Marco language and one framework on every major native platform where

⏹️ ▶️ Marco you really should be writing things in that. And Windows for a long time has been C++,

⏹️ ▶️ Marco and then more recently it’s moving into.NET stuff. OS X has always been

⏹️ ▶️ Marco Objective-C. iOS has always been Objective-C. They’re adding stuff the framework. So, you know, like, there’s always there’s

⏹️ ▶️ Marco always like, that that that push that if you want to develop on this platform, you should really be doing

⏹️ ▶️ Marco it in this language everywhere except the web.

⏹️ ▶️ Casey So if I agree with that, that is a very interesting point. My question for the two of you

⏹️ ▶️ Casey gentlemen is if you pick the one if you were to pick the language today that would

⏹️ ▶️ Casey replace or, or supplement objective C, what is it?

⏹️ ▶️ Marco John, this is all you.

⏹️ ▶️ John What are my criteria? What realistic bounds do I have to stick

⏹️ ▶️ John, Casey within?

⏹️ ▶️ Casey It has to be language that exists today, which by the way, I don’t think Apple would necessarily play by that rule.

⏹️ ▶️ Casey, Marco No, they definitely

⏹️ ▶️ Casey wouldn’t. And it has to prevent John Syracuse from continuing to bitch

⏹️ ▶️ Casey about what languages

⏹️ ▶️ Casey, John are available for use on Apple platforms.

⏹️ ▶️ John That’s impossible. No, no choices to build those criteria.

⏹️ ▶️ John, Casey Okay,

⏹️ ▶️ Casey it will get him to complain as little as possible, which is a extremely

⏹️ ▶️ Casey lofty but theoretically plausible

⏹️ ▶️ John This is a good question because it makes me realize all this time. I’ve been talking to this. I’ve never Been

⏹️ ▶️ John pushing for Apple to adopt any existing languages I’ve always been thinking that they will do their own thing

⏹️ ▶️ John Like pretty much as they have been like objective C at this point is their own thing Like it may have started out as the old

⏹️ ▶️ John but like at this point or whatever that whatever crazy Fake version number they apply to the language. They’ve changed it

⏹️ ▶️ John so much. They’re completely fearless about changing So I always imagined what everything replaced it would also be of

⏹️ ▶️ John their own invention exactly tailored to what they need the language to do And no

⏹️ ▶️ John language like there’s no language out there that I like Well enough to say they should

⏹️ ▶️ John just do that one like

⏹️ ▶️ Casey and I and I think you’re right and I think they would do their Own thing but then that John Syracuse a guy

⏹️ ▶️ Casey would continue to complain about the fact that everyone has to learn this

⏹️ ▶️ Casey, John No, I never

⏹️ ▶️ John complained about learning. I’ve never made a single complaint about, oh, you’ve got to learn this new language. Never.

⏹️ ▶️ Marco, John Well, here’s an idea.

⏹️ ▶️ Marco What if they are doing it already? What if, so similarly how Objective-C,

⏹️ ▶️ Marco in its first implementations, was basically a macro language on top of C.

⏹️ ▶️ Marco Is that accurate? I’ve always heard that. You’re thinking of C++. OK. No, I don’t think so. I think it was C.

⏹️ ▶️ Marco Anyway.

⏹️ ▶️ Marco, John Oh, well, C++ was C with classes, and it was

⏹️ ▶️ John a series of. Yes, that is also true. But I think

⏹️ ▶️ John, Marco Objective-C started out the same way.

⏹️ ▶️ Marco But it always had to have a runtime, right?

⏹️ ▶️ John I mean, it wasn’t just macros. It had to have a runtime. It had to have

⏹️ ▶️ John, Marco a library of code to, you know,

⏹️ ▶️ John somewhere Objective-C message then had to be written. And you had to call into that library to call a method. Right.

⏹️ ▶️ Marco Anyway, so Objective-C started out as like a bolt-on on top of C.

⏹️ ▶️ Marco And it has matured a lot since then. And you know, the C roots are still all there. But now,

⏹️ ▶️ Marco like, you know, the tools are all native Objective-C. The compilers are all native Objective-C that Apple’s

⏹️ ▶️ Marco writing. like, you know, they’re doing, you know, that is the language now. What if

⏹️ ▶️ Marco their next big language is what they’re doing with Objective-C now, like, that’s moving

⏹️ ▶️ Marco towards it, and then at some point in the future, they enable some kind of new

⏹️ ▶️ Marco syntax mode where it adds a lot of the stuff that we want, it adds a lot of the complex

⏹️ ▶️ Marco stuff, it hides pointers and things like that.

⏹️ ▶️ Marco, John Yeah, it’s

⏹️ ▶️ Marco, Casey Objective-C, not the C. Built

⏹️ ▶️ Marco on top of, yeah, built on top of Objective-C temporarily, or, you know, in version 1, and And then

⏹️ ▶️ Marco over time, and exactly what you said, you’ll have to drop into that syntax to

⏹️ ▶️ Marco use some low-level APIs, but most of everything will be available right there.

⏹️ ▶️ Marco Because if they were going to replace this language in five years,

⏹️ ▶️ Marco I don’t think they’d be putting this much effort into it now. They’re doing radical changes to it

⏹️ ▶️ John now. I know. The Objective-C without the C thing seems to be the path they’re going on, but that’s just not entirely

⏹️ ▶️ John satisfying me. I’m sure they’re taking this into account with their plans. They are, totally.

⏹️ ▶️ John, Marco They’re listening right now, somehow.

⏹️ ▶️ John You know, the people who are making decisions about what to do disagree with me about

⏹️ ▶️ John what the ideal situation would be. I think they would be perfectly happy to slowly

⏹️ ▶️ John evolve the objective C to eventually bifurcated into objective C without the C part where

⏹️ ▶️ John safety is much more guaranteed than it is and you could have an unsafe sort of realm. And

⏹️ ▶️ John then most people eventually get most people doing their coding in the safe part, where you can’t scribble

⏹️ ▶️ John all over your own memory, where you just call into Objective-C APIs and just use the escape hatch for the other

⏹️ ▶️ John stuff. But I really, like I mentioned, I really think that, ideally, and of course

⏹️ ▶️ John you can’t have the ideal, but ideally, a higher level language with more safety guarantees

⏹️ ▶️ John and less fussiness about types, wouldn’t just mean, oh, well, we’ve got that language, we’re all set. It

⏹️ ▶️ John would also necessarily imply different APIs, Like in a language with built-in

⏹️ ▶️ John strings, and a string doesn’t exist. You don’t instantiate a class to get a string in a language

⏹️ ▶️ John that has native strings. In a language that has language level

⏹️ ▶️ John support for regular expressions, that’s not like a library you call.

⏹️ ▶️ John As things get pulled into the language, you necessarily change the way API works. Whole concepts

⏹️ ▶️ John of API is changed based on what the language supports. That’s why these bridges are so terrible.

⏹️ ▶️ John Like if you have Python, you’re like, oh, I have this amazing Python, it’s high level language. But you’re just

⏹️ ▶️ John calling the same freaking APIs, and they don’t mesh, it seems like. Boy, no one would ever write a Python API

⏹️ ▶️ John like this. It’s so clear that I’m calling into an Objective-C API, not just because of the naming conventions, but

⏹️ ▶️ John just because of write out error parameters, where you pass in an error, and it’s going to write

⏹️ ▶️ John back to it, and crap like that. That doesn’t happen in high level languages, because you could. You could

⏹️ ▶️ John pass references in languages as references, but it just doesn’t. It’s not how you design the API. And like I said, the whole

⏹️ ▶️ John NSString wing of the language just disappears. And then

⏹️ ▶️ John maybe like Ruby, you have all the strings be objects and you have methods on them, which is isn’t that the same thing? Well, not really,

⏹️ ▶️ John because it’s not like you’re saying new string and putting. I just feel like the

⏹️ ▶️ John language and the API are a match set. And you can’t change one without changing the

⏹️ ▶️ John other. And if you change the language sufficiently, if you keep evolving this language to the point where it starts becoming

⏹️ ▶️ John higher level and more safe and less work for the developer, it will be a shame

⏹️ ▶️ John if the API still looks like, oh, why does the API look like this? Well, it used to be it was just the C-based

⏹️ ▶️ John language, and this is the way everything was.

⏹️ ▶️ Casey Well, see, I’m not sure I agree, though, because everything you just described is.NET,

⏹️ ▶️ Casey or at least to my ears. And it’s weird, because I have no love for Microsoft, but I do think.NET

⏹️ ▶️ Casey is actually a pretty cool language. And to a.NET developer, you,

⏹️ ▶️ Casey generally speaking, can use the Win32 API without ever touching C++ or C,

⏹️ ▶️ Casey because.NET consumes all of that and acts as the bridge.

⏹️ ▶️ Casey Even when I’m calling into these APIs, I don’t need to worry about pointers. I can, but

⏹️ ▶️ Casey I don’t need to. Generally speaking, I don’t need to worry about any of that crap because.NET has encapsulated all of it

⏹️ ▶️ Casey and is putting a facade in front of it, so I don’t have to worry about that. That being said, if I have an old C

⏹️ ▶️ Casey API that I want to call, or C++ API I want to call, I can P invoke into it and I can say, hey, there’s DLL

⏹️ ▶️ Casey here, here’s the structure of the method I need to call, and I can even do it

⏹️ ▶️ Casey unsafely, and I have an unsafe keyword where I can manage my own memory and do all that crap. So everything you just described, believe

⏹️ ▶️ Casey it or not, is.NET.

⏹️ ▶️ Casey, John I’m not necessarily saying – I know

⏹️ ▶️ John about.NET. I think.NET is way far ahead of where Apple is technologically speaking,

⏹️ ▶️ John maybe not necessarily API-wise because Microsoft seems to have more trouble figuring out

⏹️ ▶️ John what it wants out of an API and sticking to it. I don’t remember what iteration of, no, you should

⏹️ ▶️ John use this toolkit for UIs.

⏹️ ▶️ John, Marco No, I’ve changed it for five years.

⏹️ ▶️ John, Casey No, seriously.

⏹️ ▶️ John Yeah, they have problems. But the CLR and that whole idea behind it,

⏹️ ▶️ John that is a foundation. That if Apple had that foundation now and it was performant and they’d put as much time into it as Windows

⏹️ ▶️ John had, they would be in a much stronger position to say, look, everything is common language runtime. And we have

⏹️ ▶️ John all these escape hatches for unsafe. And we can put new languages on it. And Python on the CLR

⏹️ ▶️ John is just straight up Python. and you write your Python functions, and we can provide a Python API,

⏹️ ▶️ John you write, they have to do bridges, but hopefully they don’t just do straight bridges. They do, you know, wrappers are different than bridges. A wrapper

⏹️ ▶️ John is like, I want to use a convenient API that hides all the stuff that’s irrelevant to me because I’m in a high-level language.

⏹️ ▶️ John And wrappers have a cost in terms of performance, but they’re a better semantic fit

⏹️ ▶️ John than bridges

⏹️ ▶️ John, Casey are.

⏹️ ▶️ John Yes,

⏹️ ▶️ Casey absolutely. And that’s what I’m used to, is seeing a bunch of wrappers and facades that under the hood are doing

⏹️ ▶️ Casey p invokes and all the nasty crappy things that I don’t want to have to do. But to me, I’m just calling

⏹️ ▶️ Casey system dot whatever dot whatever.

⏹️ ▶️ John Yeah. Well, the thing, my disadvantage that Microsoft has is that the API that it’s wrapping is much more disgusting

⏹️ ▶️ John than, you know what I mean? Like when 32 is compared to like core foundation, it’s not

⏹️ ▶️ John, Casey really. Oh, it’s awful. Yeah.

⏹️ ▶️ John So they they’re just wrapping wrappers of wrappers because in the very bottom is just this terrible

⏹️ ▶️ John slime that no one wants to touch.

⏹️ ▶️ Casey It’s true. But you still haven’t answered my question. And if you were to pick a language today, what would you pick?

⏹️ ▶️ John Do I get to pick Perl 6 even though it doesn’t really exist? Kind of, sort of?

⏹️ ▶️ Marco That’s

⏹️ ▶️ Marco, John kind of a cop out, I

⏹️ ▶️ Marco mean, because you don’t really

⏹️ ▶️ Marco, John know

⏹️ ▶️ Marco what’s so bad about it yet.

⏹️ ▶️ John Well, I mean, I know what’s so bad about the language, I just don’t know what’s so bad about the implementation. The language exists as a

⏹️ ▶️ John spec, it’s just no one has implemented it, so does it really exist?

⏹️ ▶️ John, Marco Right, that’s kind of a question there.

⏹️ ▶️ John A half implementation or whatever. But like, language-wise, I think Perl 6 is the most exciting

⏹️ ▶️ John language that sort of kind of almost exists.

⏹️ ▶️ John I dislike Python more than I dislike Ruby. So I would probably

⏹️ ▶️ John, Marco have to go with Ruby.

⏹️ ▶️ John A

⏹️ ▶️ John, Marco ring endorsement. I really

⏹️ ▶️ John do dislike several things about Ruby pretty vehemently, because I feel like they should have

⏹️ ▶️ John known better. But I dislike Python more, and I definitely dislike JavaScript

⏹️ ▶️ John more. So I guess I would have to go with Ruby, as much as it pains me to say that, as much as I am not a fan of

⏹️ ▶️ John Ruby, really. Python is just totally distasteful to me, and

⏹️ ▶️ John JavaScript is just too primitive.

⏹️ ▶️ Marco You know, nothing about Apple modernizing Objective-C and eventually adding

⏹️ ▶️ Marco this new syntax layer on top of it, if that’s what their plan is, that doesn’t preclude them from also

⏹️ ▶️ Marco modernizing the APIs along with that. Well,

⏹️ ▶️ John I mean, they would have to wrap them.

⏹️ ▶️ Marco Well, temporarily, but compare it with a bridge. A bridge, when it wraps things… I agree with

⏹️ ▶️ Marco everything you said. A bridge sucks because you get these weird APIs that

⏹️ ▶️ Marco obviously are not written with that new language in mind. But that’s

⏹️ ▶️ Marco because bridges are usually written by people who aren’t the API platform owners. Like if Apple

⏹️ ▶️ Marco would make a new bridge, and you know, the Java bridge was its own thing. That was doomed. But if Apple

⏹️ ▶️ Marco decided this is the new thing, this new language layer we built on top of Objective-C now,

⏹️ ▶️ Marco or that’s backed by Objective-C that’s now this whole different language layer on top, this is our new

⏹️ ▶️ Marco thing, this is the way forward. Then within a few years, they could have all their APIs

⏹️ ▶️ Marco modernized to it, or at least all the ones people actually use on a regular basis.

⏹️ ▶️ John Or some of them. I mean, what you would hope is that, I guess, you would hope that the bottom layers

⏹️ ▶️ John roll up eventually, like kind of like the assembly. Assembly has been basically completely rolled up. Like

⏹️ ▶️ John the original Mac operating system, tremendous amount of assembly. And the amount of assembly

⏹️ ▶️ John in operation that anyone has to write or deal with or call or anything has just shrunk up to the point where now it’s like

⏹️ ▶️ John a couple of device drivers and the kernel and some libraries for doing math, right? Like, that’s it. Like, it’s

⏹️ ▶️ John a low end curls up. And it’s just gone from the operation of the operating system, the things dealing with

⏹️ ▶️ John the GUI. You know, like, and you would hope that eventually the C part of things starts

⏹️ ▶️ John to roll up too. Not the objective C part, but let’s just start with the C part. That like, OK, well, now the C is only like

⏹️ ▶️ John in the kernel and in device drivers or whatever. Like, and it used to be everywhere. Everything used to be C. You know,

⏹️ ▶️ John everything is, you know, if you can object or see as it like, I would like to see

⏹️ ▶️ John progress at the high end, but also rolling up a lot. Because if you’re not, if you don’t do that, all you’re doing is making putting more layers on layer

⏹️ ▶️ John cake. And that, you know, at a certain point, like, no matter what kind of

⏹️ ▶️ John performance you get, this is a great article that someone should put in our non existent show notes. But at a certain point, no matter what

⏹️ ▶️ John kind of performance you get from the hardware, if you keep putting layers on layer cake, performance won’t

⏹️ ▶️ John be your problem. It’ll be like latency. Did you read that article from john Carmack talking about latency of VR headsets.

⏹️ ▶️ John No, but that’s that sounds good.

⏹️ ▶️ John, Marco Because it’s like

⏹️ ▶️ John it’s like we have amazing technology with GPUs and we can do like amazing texture fills and,

⏹️ ▶️ John you know, shader operations operating on like millions and millions of pixels like 15 times per frame. And we can do these amazing

⏹️ ▶️ John frame rates. And none of that matters because if you can’t react to me turning my head within 20

⏹️ ▶️ John milliseconds and get a new image in front of my eyes, it’s like motion sickness inducing. And so all this great technology

⏹️ ▶️ John we have actually impairs the ability because there’s so many layers in the layer cake of like this goes through this stack

⏹️ ▶️ John and goes through the USB thing and converted there and then goes through

⏹️ ▶️ John the input system and then goes through the OpenGL and out to the graphics card and comes back out and has to be displayed.

⏹️ ▶️ John All the layers we’ve added to the layer cake for this amazing performance kills latency.

⏹️ ▶️ John This is not a direct analogy because it’s not like this latency of the API stack, but it’s the same idea that we can’t just keep adding layers on a layer

⏹️ ▶️ John cake. You have to curl up the lower ones too. You have to pop ones off the bottom as you add ones to the top.

⏹️ ▶️ John That’s the kind of progress I’m looking for in my lifetime if anyone’s listening you get on that

⏹️ ▶️ Marco but I think they’re doing that you know like we haven’t really seen the next big step yet

⏹️ ▶️ Marco but it looks like like based on what the actions that we have seen I think

⏹️ ▶️ Marco that’s a plausible prediction of where they’re actually heading

⏹️ ▶️ John I mean they’re not going in the wrong direction it’s not like we’re you know it’s just it’s just like quibbling about the details

⏹️ ▶️ John like and the end the pace you know mobile set everything back you know a decade or two

⏹️ ▶️ John so fine I understand that you know, it makes perfect sense, right? But I

⏹️ ▶️ John would like to see more advancement in the high end and more curling

⏹️ ▶️ John up in the low end. It’s just like the road they’re taking to it is perhaps more circuitous and slower than

⏹️ ▶️ John I would like, especially when I see things like CLR existing for such a long time. And it’s like, the technology

⏹️ ▶️ John was there. And yeah, your entire stack is still better than Microsoft’s

⏹️ ▶️ John now. But my whole thing with this is it’s not It’s not something you can do overnight.

⏹️ ▶️ John And if you’re going to try to do incrementally in pieces, I think you will end up running into a barrier where there

⏹️ ▶️ John has to be discontinuity somewhere. And if there isn’t, you’re going to end up with a sort of mongrel at the end of it, like HFS

⏹️ ▶️ John Plus, where you just took this old thing and slowly modified it a bit at a time, but never sat down to say, OK,

⏹️ ▶️ John what is this new thing that we want? You know what I mean? It’s like if iOS was just an incremental revision of slowly adding mobile-savvy

⏹️ ▶️ John features to Mac OS X. It wasn’t. They started over conceptually from the UI perspective, Right?

⏹️ ▶️ John I’m a fan of that kind of clean break. And I worry that slowly creeping up on Objective-C without

⏹️ ▶️ John the C will result in a language that no one can really love. And maybe that won’t ever hurt Apple,

⏹️ ▶️ John because like we said, it’s not a big deal as long as you’re doing great in the market and everything. But that’s what

⏹️ ▶️ John appeals to me. So I think it’s like a philosophical difference. And obviously, I’m probably

⏹️ ▶️ John more idealistic in not being the person whose job it is to make the decision for the biggest

⏹️ ▶️ John company in the world or whatever.

⏹️ ▶️ Marco And you could also question, I think it’s worth considering, is it too late to do something

⏹️ ▶️ Marco like that? Are these systems so complex? Are these devices and APIs

⏹️ ▶️ Marco so feature-rich and so mature? Would it be too big of an

⏹️ ▶️ Marco undertaking

⏹️ ▶️ Marco, John for them to do this now?

⏹️ ▶️ John It’s never too late. Never too late. I mean,

⏹️ ▶️ John, Marco if anything,

⏹️ ▶️ John I would say, when is the time that you should be thinking about this? It’s when you’re at the height of your

⏹️ ▶️ John power. Because if you try to do it on your way down, Tom was like, wait a second, did you know our OS sucks?

⏹️ ▶️ John We should make an all new one. Like, too little, too late. Like, RIM. RIM, you know what I mean?

⏹️ ▶️ John So whatever their plan is, like, they have a plan. Like, if it takes them longer and they do it in a smaller series of

⏹️ ▶️ John steps or whatever, but either the company will go out of business or the day will

⏹️ ▶️ John come when they need to have this better, higher level thing. And they either will have arrived at it through a series

⏹️ ▶️ John of small steps and perhaps ended up at a destination that’s not quite as pretty as if they had made a larger discontinuous

⏹️ ▶️ John jump. But it’s out there, I think.

⏹️ ▶️ Casey And I think the only thing I wonder is perhaps we should pay a little

⏹️ ▶️ Casey more attention to any mentions of LLVM and Clang at WWDC, because it seems

⏹️ ▶️ Casey to me if they were going to sneak in a new language or a new framework or something like that, I would suppose

⏹️ ▶️ Casey that we would see traces of that there first. Like ARC, I believe, was,

⏹️ ▶️ Casey if I’m not mistaken, was a build built off of the static analysis that was in one of the two

⏹️ ▶️ Casey of these guys. And I’m opening up a whole new can of worms that I don’t want to open. But I’m just curious to see

⏹️ ▶️ Casey what LLVM and Clang are doing lately and what will be announced that relates

⏹️ ▶️ Casey, John to that. That’s why

⏹️ ▶️ John I’m thinking of type inference, because it’s like a natural

⏹️ ▶️ John, Casey progression

⏹️ ▶️ John of what they’re doing. They pretty much almost have the metadata in there for it.

⏹️ ▶️ John Static analysis combined with the knowledge required to make ARC work

⏹️ ▶️ John makes it seem like they could do some reasonable… I mean, maybe it’s not enough bang for

⏹️ ▶️ John the buck for them yet. Maybe they say, okay, yeah, well, we could do type inference, but it’s not such a big win to be worth the confusion, so we’re

⏹️ ▶️ John just going to bail on it. But assuming they actually think it’s worthwhile, it’s an obvious next step

⏹️ ▶️ John of things they can do to make it so you have to type less crap, but you’re not really changing the language. It’s like, you know, the fast

⏹️ ▶️ John enumeration crap, you know? It’s not a change in language, really. It’s just like, oh, you don’t have to type too much stuff. So now you can do

⏹️ ▶️ John like auto or var or whatever the hell word they use to indicate, look, don’t mind me. You know what type it’s going to be. It’s

⏹️ ▶️ John clear from the code. Just, you know, and then

⏹️ ▶️ Marco, Casey figure

⏹️ ▶️ Marco it out. And also, I think the pace of those improvements has increased dramatically in the last few years.

⏹️ ▶️ John Yeah, once they got totally free of GCC.

⏹️ ▶️ Marco Right, now we’re seeing this explode. Like, we’re seeing, like, this past year, they added all those little shortcuts

⏹️ ▶️ Marco and so many little benefits, like, just in one year. And

⏹️ ▶️ Marco, John the year before, they added more stuff.

⏹️ ▶️ John They still have C++ 11 kind of weighing them down. They got out from under GCC, but they

⏹️ ▶️ John still need to do a lot more to fully support the monster language that is C++. That

⏹️ ▶️ John probably still absorbs a lot of their time, finally nailing down all the little crazy-ass idiosyncrasies

⏹️ ▶️ John of C++. Is that even possible?

⏹️ ▶️ John The point is that GCC, I don’t know, maybe not GCC as much, but

⏹️ ▶️ John C++ compilers that have have been compiling production C++ for a long time are

⏹️ ▶️ John still ahead of what Clang C++ support was as of a year or two ago. Maybe they’ve closed the gap now.

⏹️ ▶️ John But it’s a lot of work. And it’s kind of annoying work, because Apple barely uses C++ compared to

⏹️ ▶️ John how much Microsoft uses it, for example. And so it’s like, oh, well, we’ve got to make our stupid compiler support.

⏹️ ▶️ John We don’t care about this language, really. We have enough support for our stuff. And it’s like, all right. Because if you want Clang

⏹️ ▶️ John to be a popular widespread compiler, you have to make it support

⏹️ ▶️ John C++, even if Apple doesn’t use it that much. And that means all the stupid esoteric features, because if you can’t build

⏹️ ▶️ John important, stupid projects, foo, if you can’t build Boost or whatever, they don’t have that problem now, but they

⏹️ ▶️ John did early on. And if you can’t support the new C++11 lambdas and all this other crap,

⏹️ ▶️ John that’s still in the background, the catch-up stuff that they have to do before they can totally

⏹️ ▶️ John fly free.

⏹️ ▶️ Marco Is C++ Ox still a thing? What happened with that?

⏹️ ▶️ John That’s what became C++11, didn’t it? I

⏹️ ▶️ Marco don’t know. I don’t follow the C++ world at all.

⏹️ ▶️ Casey Yeah, neither do

⏹️ ▶️ Casey, John I.

⏹️ ▶️ John I try not to, but it leaks into my worldview occasionally.

⏹️ ▶️ Casey And we’re done.