PodSearch

Hypercritical

14: A Dark Age of Objective-C

 

00:00:00   [Music] [TS]

00:00:01   this is hypercritical it's a weekly [TS]

00:00:04   talkshow ruminating on exactly what is [TS]

00:00:06   wrong the world of Apple and related [TS]

00:00:08   technologies and businesses nothing is [TS]

00:00:10   so perfect that my co-host John siracusa [TS]

00:00:14   could not find something wrong with it [TS]

00:00:16   there's nothing he can't complain hi [TS]

00:00:18   John [TS]

00:00:19   again I'm Dan benjamin and we'd like to [TS]

00:00:22   say thanks to Rackspace calm and Shopify [TS]

00:00:25   comm for making the show possible tell [TS]

00:00:27   you more about them as the program [TS]

00:00:29   continues but you know it's becoming [TS]

00:00:31   it's becoming a little bit of a of a a [TS]

00:00:34   stake of yours almost that the follow up [TS]

00:00:37   is most of the show know that the other [TS]

00:00:40   the other hosts of the other shows are [TS]

00:00:42   now they have something that they will [TS]

00:00:44   refer to as John siracusa mode anytime [TS]

00:00:49   they do follow if I can make them feel [TS]

00:00:52   that it's their responsibility to [TS]

00:00:53   address issues raised by listeners about [TS]

00:00:55   their previous show I feel I will have [TS]

00:00:57   succeeded I found out today you're 6 [TS]

00:01:00   foot 2 that's right [TS]

00:01:02   while I was in my youth now I'm a [TS]

00:01:04   hunched old man with or without the hair [TS]

00:01:06   that's without ok do you wet it down [TS]

00:01:13   when you take measurements to keep it [TS]

00:01:14   flat or one it squishes down you know [TS]

00:01:17   how tall you do you have some sort of a [TS]

00:01:19   Napoleon complex no I don't think so I'm [TS]

00:01:21   you know I'm average height in Korea [TS]

00:01:24   five seven five seven you know five [TS]

00:01:28   eight with a nice pair of shoes on five [TS]

00:01:32   five ten in a podium I'll file that away [TS]

00:01:35   mm-hmm lock lock it up all right so [TS]

00:01:40   you're ready for some fu fu yeah [TS]

00:01:43   what is the fu the follow-up follow-up [TS]

00:01:46   yeah I don't I don't think I want to [TS]

00:01:48   stick with that but it is a convenient [TS]

00:01:51   abbreviation I like it yeah let's do [TS]

00:01:55   that for you all right so uh last week [TS]

00:02:00   we talked about Apple's UI consistency [TS]

00:02:03   over the years and that that topic had [TS]

00:02:06   been our list for a long time and we [TS]

00:02:08   finally got to it because we're running [TS]

00:02:09   out of stuff but I know you wanted it [TS]

00:02:11   for a long time so I only got to it [TS]

00:02:13   and then after we finished recording [TS]

00:02:15   show I was catching up on the Twitter's [TS]

00:02:18   and I saw a tweet from mr. Merlin man [TS]

00:02:20   who was actually reply to me which is [TS]

00:02:23   strange because he normally doesn't [TS]

00:02:24   communicate with me on Twitter but this [TS]

00:02:26   time he did reply and I said hey I [TS]

00:02:27   listened to your UI consistency thing [TS]

00:02:29   and I think you would like this talk by [TS]

00:02:31   this other guy so I followed it and it [TS]

00:02:33   was a link to John Gruber's uh web stock [TS]

00:02:36   mm-hmm talk from this year and I like [TS]

00:02:38   wow I thought that one was in recorded [TS]

00:02:40   because I remember hearing him [TS]

00:02:41   complaining that they didn't record his [TS]

00:02:43   session and he was angry about it and it [TS]

00:02:44   turns out that was South by Southwest [TS]

00:02:45   that he was angry about not recording [TS]

00:02:48   and in fact it turns out that actually [TS]

00:02:49   did record South by Southwest [TS]

00:02:50   unbeknownst to him they only did auto [TS]

00:02:52   audio recording right but anyway so I'm [TS]

00:02:55   like great I'm gonna take a look at this [TS]

00:02:56   this talk now so later that day I [TS]

00:02:58   started watching the talk and he begins [TS]

00:03:00   and I'm like yeah he's kind of starting [TS]

00:03:03   the same place that I would be talking [TS]

00:03:04   about like the Mac is the first GUI and [TS]

00:03:06   what it meant to be a GUI and you know [TS]

00:03:08   that the days before the GUI existed and [TS]

00:03:11   then he starts talking about some [TS]

00:03:14   examples of the early GUI he brings up [TS]

00:03:16   that original Mac control panel so I'm [TS]

00:03:18   watching this thing with like a growing [TS]

00:03:19   sense of horror that every single thing [TS]

00:03:22   he's saying in this talk is something [TS]

00:03:23   that I just recorded in a podcast of [TS]

00:03:25   course the problem is that that web [TS]

00:03:26   stock talk was like months ago is that [TS]

00:03:28   like last month or something [TS]

00:03:30   I said no I'm like yeah I think it was a [TS]

00:03:32   nothing oh my god everybody who listens [TS]

00:03:34   to that episode is going to assume that [TS]

00:03:36   I either went to wyoweb stock or watched [TS]

00:03:38   the web stock talk and then just rehash [TS]

00:03:40   from an odd I don't think so at all and [TS]

00:03:42   but I swear to you I had not seen that [TS]

00:03:44   talk until after I recorded the episode [TS]

00:03:48   almost immediately after which is it was [TS]

00:03:49   just a horrible horrible experience no I [TS]

00:03:51   thought well let me let me chime in here [TS]

00:03:53   for a second I don't think you need to [TS]

00:03:55   worry about this at all because I think [TS]

00:03:57   first of all I didn't watch it either i [TS]

00:03:59   ID my only I only if I'm if John Gruber [TS]

00:04:03   is not talking to me on the talk show I [TS]

00:04:05   don't I don't want to hear his voice [TS]

00:04:06   so I read his stuff but I if I hear him [TS]

00:04:09   I want to talk back so I can't listen to [TS]

00:04:11   him talking in somewhere else it's too [TS]

00:04:13   difficult so I hadn't seen it either [TS]

00:04:16   otherwise I would have stopped you I [TS]

00:04:17   wouldn't let you go I wouldn't let you [TS]

00:04:18   you know I would have said oh it didn't [TS]

00:04:21   you see John Gruber's thing on I didn't [TS]

00:04:24   even know what he was talking about and [TS]

00:04:25   every time I asked him what how was your [TS]

00:04:27   talk he's like [TS]

00:04:27   I was all right so what'd you talk about [TS]

00:04:29   and he kind of you know changes the [TS]

00:04:31   subject yeah so I mean this is not an [TS]

00:04:35   uncommon thing amongst the two of us [TS]

00:04:38   where we will end up having the same [TS]

00:04:41   take on a particular topic to the point [TS]

00:04:44   where some people would think that we [TS]

00:04:45   collaborated beforehand on on various [TS]

00:04:47   things or that we're the same person or [TS]

00:04:49   anything like that but that's not the [TS]

00:04:51   case it just so happens that we end up [TS]

00:04:53   having the same things on this case it [TS]

00:04:54   was particularly spooky because we pick [TS]

00:04:55   like the same examples and stuff but [TS]

00:04:57   it's it's really strange to me [TS]

00:04:58   especially since you know you Gruber's [TS]

00:05:00   history with the Mack started pretty [TS]

00:05:02   late like I think in the past episode [TS]

00:05:04   with you who he talked about his first [TS]

00:05:05   night being an LC right maybe that was [TS]

00:05:08   in the talk but yeah but that's that's a [TS]

00:05:09   late comer right and I was there since [TS]

00:05:10   1984 but we still end up with the same [TS]

00:05:12   take on things but the reason I bring [TS]

00:05:15   this up now is because if you watch the [TS]

00:05:17   whole talk even though there we start [TS]

00:05:21   off the same way and we choose a lot of [TS]

00:05:22   the same examples there is a divergence [TS]

00:05:24   there and I think the point that I was [TS]

00:05:26   making with some of those same examples [TS]

00:05:27   was different than the points that he [TS]

00:05:28   was making so my main point on on the [TS]

00:05:32   topics that we overlapped on was that [TS]

00:05:34   Apple has always sort of worked beyond [TS]

00:05:36   the bounds of its own UI guidelines but [TS]

00:05:41   Gruber's point in the talk was that the [TS]

00:05:45   change in the look of the GUI was a lot [TS]

00:05:47   slower in the beginning and it took a [TS]

00:05:50   bowl a while to feel confident that they [TS]

00:05:52   could start changing look in ways that [TS]

00:05:54   wouldn't confuse people sort of that in [TS]

00:05:56   my example that I was using was that [TS]

00:05:58   from that talk book of multiplex [TS]

00:05:59   meetings where you have the you know 20 [TS]

00:06:01   different versions of a house icon or [TS]

00:06:03   the the the classic Mac OS extension [TS]

00:06:06   puzzle pieces to face in all different [TS]

00:06:07   directions as long as people can tell [TS]

00:06:08   what it is it's ok so we were using that [TS]

00:06:14   we both took that control panel example [TS]

00:06:16   but he was using it as an example of [TS]

00:06:17   like look at this ey doesn't use labels [TS]

00:06:19   look at how different it is that what's [TS]

00:06:20   come before it and I was using it as an [TS]

00:06:22   example of how Apple wasn't beholden to [TS]

00:06:25   its own guidelines from day one and they [TS]

00:06:26   made this window completely filled with [TS]

00:06:28   non-standard controls the only standard [TS]

00:06:29   control on the entire thing was the [TS]

00:06:30   title bar so even though we use the same [TS]

00:06:33   example I think we made very different [TS]

00:06:34   points now in the end you say is a last [TS]

00:06:38   episode in his talk of a contradictory [TS]

00:06:41   are they you know completely at odds I [TS]

00:06:43   don't think they're completely at odds [TS]

00:06:45   they do make a lot of the same points [TS]

00:06:46   especially about how you can change the [TS]

00:06:48   look of something and as long as people [TS]

00:06:50   can still tell what it is it's fine and [TS]

00:06:52   the the role of fashion in design and [TS]

00:06:54   how changing the look actually has has a [TS]

00:06:57   purpose it's not just arbitrary the [TS]

00:07:00   place where I think we would diverge is [TS]

00:07:02   that a Gruber seems to contend that [TS]

00:07:04   Apple followed the Haig to the letter in [TS]

00:07:06   the old days like he's positing a time [TS]

00:07:08   when Apple conformed more strictly to to [TS]

00:07:11   human interface guidelines and I think [TS]

00:07:14   his example has since he used that [TS]

00:07:16   control panel example example from [TS]

00:07:17   earlier in his talk contradicts that [TS]

00:07:18   that you know maybe the look of the [TS]

00:07:21   entire OS didn't changes as quickly but [TS]

00:07:24   certainly Apple was never a slave to the [TS]

00:07:26   Haig and I don't think there was ever a [TS]

00:07:28   time that Apple was like that where I [TS]

00:07:29   think we would agree is that when he [TS]

00:07:31   goes into this the middle time of the [TS]

00:07:33   Mac where there was sort of an [TS]

00:07:35   exuberance of a variation where we had [TS]

00:07:38   kaleidoscope and he talks about be view [TS]

00:07:39   of the thing that made your windows look [TS]

00:07:40   like BOS he trots out the high tech and [TS]

00:07:43   the gizmo and drawing board themes from [TS]

00:07:44   Apple there was that period where they [TS]

00:07:45   were really like there were no rules and [TS]

00:07:47   there was lots of experimentation we [TS]

00:07:49   finally were being removed from the [TS]

00:07:51   bounds of everything looking exactly the [TS]

00:07:52   same so I think we would agree on that [TS]

00:07:55   point but where we differ is that I [TS]

00:07:58   think it was an apple that follow things [TS]

00:08:01   to letter in the old days it was the [TS]

00:08:02   developers did that's what I tried to [TS]

00:08:04   get into a talk of saying how like Apple [TS]

00:08:06   put out these guidelines and the people [TS]

00:08:07   who are enthusiastic for the platform [TS]

00:08:08   felt compelled to treat the guidelines [TS]

00:08:11   as Bible as a way of advancing the [TS]

00:08:13   platform and it wasn't so much Apple it [TS]

00:08:14   was the very enthusiastic supporters and [TS]

00:08:18   advocates of the platform that were you [TS]

00:08:21   know signed up to the Hague is the Bible [TS]

00:08:23   not Apple itself they made some good [TS]

00:08:26   points later but it's just in the [TS]

00:08:27   consistency in uniformity my favorite [TS]

00:08:30   one was where he mentioned that Jobs had [TS]

00:08:33   gotten rid of the idea of everything [TS]

00:08:36   looking exactly the same he wanted [TS]

00:08:38   things to be consistent but then had to [TS]

00:08:39   look exactly the same but then he pulls [TS]

00:08:40   up a slide that he said I think it's [TS]

00:08:42   funny the guy who came up with this is [TS]

00:08:43   known for having a uniform and it shows [TS]

00:08:45   20 different pictures of jobs and he's [TS]

00:08:46   always wearing of course the same outfit [TS]

00:08:47   the black mock turtleneck in the jeans [TS]

00:08:49   if people haven't seen this talk it's in [TS]

00:08:52   the show notes and actually now thanks [TS]

00:08:53   to your website change [TS]

00:08:54   you can see the show notes during the [TS]

00:08:56   show if you go to the or is it five by [TS]

00:08:59   five dot TV slash hypercritical slash [TS]

00:09:01   next net slash next I'll every time will [TS]

00:09:04   take you to whatever the the next show [TS]

00:09:06   is for you and if there is no next show [TS]

00:09:08   yet it means we haven't started [TS]

00:09:09   collecting links but at any point you [TS]

00:09:11   can go there as soon as we start getting [TS]

00:09:14   ready free you can add comments and and [TS]

00:09:17   all that stuff there yeah so I suggest [TS]

00:09:18   uh even even if you have listened the [TS]

00:09:21   last episode I was suggested watching [TS]

00:09:24   his talk anyway even though some of the [TS]

00:09:26   same points are made there are enough [TS]

00:09:27   new points in there that you should [TS]

00:09:28   definitely take a look at it there's [TS]

00:09:29   some good good slides in there alright [TS]

00:09:33   and ants on the same topic last on last [TS]

00:09:36   week's show sort of snuck into the [TS]

00:09:38   follow-up was a topic that was not [TS]

00:09:39   actually a fallout post kind of follow [TS]

00:09:41   up we talked about Facebook's open [TS]

00:09:43   source data center initiative I think [TS]

00:09:45   that was kind of a follow up as to the [TS]

00:09:47   yeah yeah online stuff in this case I [TS]

00:09:50   knew that John Stokes Ars Technica had [TS]

00:09:52   written an article about it [TS]

00:09:53   I think either earlier that day at the [TS]

00:09:55   previous day and I intentionally didn't [TS]

00:09:56   read it so I wouldn't be spoiled so but [TS]

00:09:58   what it turns out is a my take on that [TS]

00:10:00   situation was the same as his I don't [TS]

00:10:02   think that's a big surprise just because [TS]

00:10:04   it's kind of obvious what Facebook is [TS]

00:10:06   doing I don't think there's any [TS]

00:10:07   particular insight that either one of us [TS]

00:10:09   had there but he did a good write-up on [TS]

00:10:10   that and I put that link in the show [TS]

00:10:11   notes so you know that's another example [TS]

00:10:15   of you said if something happens and [TS]

00:10:17   seven people have the same opinion on [TS]

00:10:19   doesn't mean they collaborate it just [TS]

00:10:20   means that there are some obvious [TS]

00:10:21   conclusions that can be drawn from the [TS]

00:10:23   same facts that everyone has available [TS]

00:10:24   to them alright so now for some actual [TS]

00:10:27   follow up a little bit of feedback on [TS]

00:10:30   the the funny look in iCal and lion I [TS]

00:10:33   got some opinions in different [TS]

00:10:36   directions here but someone brought up a [TS]

00:10:37   good point about how making making [TS]

00:10:41   windows look just completely different [TS]

00:10:43   from all the windows regardless of [TS]

00:10:46   whether it's ugly or not there has a [TS]

00:10:47   benefit of making it easy to find on the [TS]

00:10:50   screen so I Cal is this big ugly you [TS]

00:10:53   know brown looking giant toolbar thing [TS]

00:10:56   it's really easy to pick that out on the [TS]

00:10:58   screen [TS]

00:10:58   as opposed to just a giant gray toolbar [TS]

00:11:01   which blends in with all your other or [TS]

00:11:03   anything John great tool box now there's [TS]

00:11:04   a limit to that you know one app gets to [TS]

00:11:05   be like that fine but if every app is a [TS]

00:11:07   different color [TS]

00:11:08   you now lose the ability to pick stuff [TS]

00:11:10   out because it's just like looking at a [TS]

00:11:12   big screen full of plaid you know but I [TS]

00:11:16   think that was a good point where that's [TS]

00:11:18   kind of the advantage of the Apple hats [TS]

00:11:19   of Apple decides to make some super [TS]

00:11:20   important app look weird like the set [TS]

00:11:23   for the finder for instance they decide [TS]

00:11:25   to make the Finder windows green with [TS]

00:11:26   grass on them and nobody else could have [TS]

00:11:28   that look because you know you can't [TS]

00:11:29   theme the OS and you don't want to put [TS]

00:11:31   custom windows on all of your things so [TS]

00:11:32   you'd see the finder window stand out [TS]

00:11:34   this it look green well Apple can do [TS]

00:11:36   that with the app that it knows [TS]

00:11:38   everybody has to run because it launches [TS]

00:11:39   when you log in and it can kind of be [TS]

00:11:41   the only one to do it but if it becomes [TS]

00:11:43   a trend then it just you know it stops [TS]

00:11:46   being an advantage so I would not hold [TS]

00:11:49   that up as a reason to justify I can't [TS]

00:11:51   looking funny in lyon but it may be a [TS]

00:11:55   practical result of iCal looking funny [TS]

00:11:57   is that it'll be a lot easier to find [TS]

00:11:58   that iCal window [TS]

00:11:59   assuming every other Apple app doesn't [TS]

00:12:00   also have some crazy new look I think [TS]

00:12:04   but I think that's what we're going to [TS]

00:12:05   anticipate is that every amp is going to [TS]

00:12:07   have a weird new look they can't do it [TS]

00:12:09   with everyone - and they don't care [TS]

00:12:11   enough like what are they gonna make [TS]

00:12:12   terminal look different now it's gonna [TS]

00:12:14   be great windows everywhere [TS]

00:12:15   I don't expect there were some pictures [TS]

00:12:17   of address book looking different - but [TS]

00:12:19   those are kind of a piece you know it's [TS]

00:12:21   like if there's an if there's an iPad [TS]

00:12:23   equivalent of the app maybe they'll try [TS]

00:12:25   to sync up the look among them on the [TS]

00:12:26   iCal versions all have some sort of [TS]

00:12:27   strange look on them so we'll see but I [TS]

00:12:30   really don't expect like Safari to get [TS]

00:12:32   all weird the Finder terminal activity [TS]

00:12:35   viewer I mean there's a limit you know [TS]

00:12:38   so I related this as someone brought up [TS]

00:12:41   the reverse of this where Apple takes a [TS]

00:12:44   UI element that previously had a [TS]

00:12:46   distinct look and makes it all the same [TS]

00:12:47   and they're doing that a lot with [TS]

00:12:49   toolbar buttons making them look sort of [TS]

00:12:51   like they do when the iPad apps where [TS]

00:12:53   it's just kind of like a gray silhouette [TS]

00:12:55   like it's stamped into the toolbar right [TS]

00:12:57   all monochrome right and that makes them [TS]

00:13:00   much less distinct than when they were [TS]

00:13:01   colorful photographic looking yeah [TS]

00:13:04   icons and so now when you look at the [TS]

00:13:06   tight the title bar the toolbar of an [TS]

00:13:08   app and you want to find the button for [TS]

00:13:10   like you know reply to email or you know [TS]

00:13:12   for word or whatever now you're just [TS]

00:13:13   looking based on shape instead of color [TS]

00:13:15   you know you still got position but it [TS]

00:13:17   seems it seems though like for a long [TS]

00:13:20   time one of the [TS]

00:13:22   I don't know if I would call it a [TS]

00:13:25   feature but I mean even the term aqua I [TS]

00:13:28   mean everything about Mac os10 was [TS]

00:13:31   colorful and poppin and shiny and and [TS]

00:13:34   they've just have gone continuously more [TS]

00:13:36   and more and more toward a monochrome [TS]

00:13:39   kind of a look now they have been [TS]

00:13:42   leeching the color out a lot I mean you [TS]

00:13:43   saw them do it with iTunes most recently [TS]

00:13:45   right and the i io s apps tend to have a [TS]

00:13:48   lot of color leached out of them too but [TS]

00:13:49   they go off another direct light I mean [TS]

00:13:51   you would definitely not say that the [TS]

00:13:53   new the Lion I Cal has the color leech [TS]

00:13:54   data but its exact opposite sorry they [TS]

00:13:57   pick their battles but it seems like [TS]

00:13:59   this is this is a look they're [TS]

00:14:00   cultivating for like the serious kind of [TS]

00:14:04   application it's monochrome look at [TS]

00:14:05   Final Cut Pro 10 which was revealed this [TS]

00:14:07   week that interface looks like looks [TS]

00:14:10   like the high-tech theme practically [TS]

00:14:11   from from very Copeland [TS]

00:14:13   you know it's all jet black with like [TS]

00:14:15   light gray stuff on it and maybe some [TS]

00:14:17   like blinky fake looking LED things so I [TS]

00:14:24   don't know I think they're just [TS]

00:14:26   cultivating many different looks and [TS]

00:14:28   deciding where each one is appropriate I [TS]

00:14:29   think they're back into experimentation [TS]

00:14:31   I think it was the quiet period was a [TS]

00:14:33   leopard and Snow Leopard where [TS]

00:14:34   everything went gray and they finally [TS]

00:14:35   got rid of brush mail and everything [TS]

00:14:37   else and they just had like a reset time [TS]

00:14:38   and now I think they're experimenting [TS]

00:14:39   again one more one more follow-up item I [TS]

00:14:44   think we can fit in here okay [TS]

00:14:46   so there was a link that went around [TS]

00:14:48   that's in the show notes about how TiVo [TS]

00:14:50   was sending out surveys to its customers [TS]

00:14:52   and it was like you you had a hundred [TS]

00:14:55   points to to spread on the survey among [TS]

00:14:58   a big list of features and you were [TS]

00:15:00   supposed to distribute your points [TS]

00:15:01   according to how much you wanted the [TS]

00:15:04   particular feature so Engadget posted [TS]

00:15:06   this and they posted the entire list of [TS]

00:15:07   features that you were allowed to spread [TS]

00:15:08   them along and it's a big list like 30 [TS]

00:15:10   features or something like that I mean [TS]

00:15:11   so I read through the whole thing I [TS]

00:15:13   don't know why I'm bothered by cooking [TS]

00:15:14   before I read it I knew the types of [TS]

00:15:16   features that they would be asking about [TS]

00:15:17   would not make me happy so they asked [TS]

00:15:20   about features like a multi-room viewing [TS]

00:15:21   which a lot of the DVRs that you get [TS]

00:15:24   from your cable company can do or use [TS]

00:15:26   that you pay for one DVR and then the [TS]

00:15:27   second room you have another little [TS]

00:15:28   smaller cheaper box that lets you see [TS]

00:15:30   stuff on the other DVR so you don't have [TS]

00:15:32   these islands of content in your house [TS]

00:15:34   then you can just have one DVR that [TS]

00:15:35   requires a bunch of [TS]

00:15:36   stuff you can watch it anywhere and [TS]

00:15:39   they're talking about a Fortuner model [TS]

00:15:41   and a whole bunch of a whole bunch of [TS]

00:15:43   obvious software features that they [TS]

00:15:44   should have had years ago that I don't [TS]

00:15:45   know why they're asking about would you [TS]

00:15:46   like it if you have a HD version of the [TS]

00:15:48   channel that we give you the ability to [TS]

00:15:50   hide the SD version yes of course why [TS]

00:15:51   would I ever watch the SD version ever I [TS]

00:15:54   don't even want to see it but no they [TS]

00:15:55   have to survey about this this drives me [TS]

00:15:57   nuts so reading this is making me angry [TS]

00:15:58   especially since the key features that I [TS]

00:16:00   think are most important are not listed [TS]

00:16:01   for the same reason they usually not [TS]

00:16:03   listed and it's like a sickness that [TS]

00:16:05   companies have where they they start [TS]

00:16:07   seeing things in terms of feature bullet [TS]

00:16:09   points and they can't they can't [TS]

00:16:10   understand what's actually wrong with [TS]

00:16:12   their product what's actually wrong with [TS]

00:16:13   TiVo is the freaking box is slow slow [TS]

00:16:15   and ugly and just you know things should [TS]

00:16:18   not take that long and they get slower [TS]

00:16:19   with time and this is nowhere on the [TS]

00:16:21   list I'm not going to say would you like [TS]

00:16:22   it if the menus came out faster because [TS]

00:16:23   people are gonna be like yeah maybe [TS]

00:16:24   maybe not people will not ask for this [TS]

00:16:26   but you have to give it to them they [TS]

00:16:27   don't this you know they don't [TS]

00:16:29   understand they can say well we want to [TS]

00:16:30   spend X millions of dollars to make our [TS]

00:16:31   user interface faster it's faster what [TS]

00:16:33   do you mean people don't complain about [TS]

00:16:34   it being slow it's fine they don't [TS]

00:16:36   understand that you know people are not [TS]

00:16:37   going to ask for it if if iOS never [TS]

00:16:39   existed and it was just Android tablets [TS]

00:16:41   and stuff like that [TS]

00:16:42   it'll be like a look at the zoom tablet [TS]

00:16:44   it's amazing and I can zoom and look at [TS]

00:16:46   these Android things they're awesome if [TS]

00:16:47   you've never seen ILS and how it sticks [TS]

00:16:48   to your fingers when you move in stuff [TS]

00:16:50   you don't know you're missing it users [TS]

00:16:51   will not ask you for a more responsive [TS]

00:16:53   interface but when you give them more [TS]

00:16:54   responsive interface they will prefer [TS]

00:16:56   that over the less responsive one even [TS]

00:16:58   if they don't know why it is that they [TS]

00:16:59   prefer it I think you know the [TS]

00:17:01   experience of iOS is born then out and [TS]

00:17:02   the fact that TiVo is getting slower [TS]

00:17:04   with time and instead of even just [TS]

00:17:05   staying the same let alone getting [TS]

00:17:06   faster as it should with the huge [TS]

00:17:08   advances in technology we've had since [TS]

00:17:09   like 2000 just frustrating so I'm I did [TS]

00:17:14   not like that feature list if I had if I [TS]

00:17:17   had gotten that server I would have [TS]

00:17:18   written a new option put all hundred [TS]

00:17:19   points on it said make your user [TS]

00:17:21   interface faster ah all right now I love [TS]

00:17:25   when you go off on a rant like that I [TS]

00:17:27   can't I can't take it I feel like hey [TS]

00:17:29   dude six more shows just about TiVo like [TS]

00:17:31   we should just have you know guests in [TS]

00:17:34   the show and say do you own a TiVo name [TS]

00:17:35   the seven thing obvious things that TiVo [TS]

00:17:37   could do to be better that I've driven [TS]

00:17:38   you crazy for the past decade that they [TS]

00:17:40   had refused to do so a real a roundtable [TS]

00:17:45   everybody takes a turn it's just you [TS]

00:17:47   know I still feel like if you took ten [TS]

00:17:49   people off the street who [TS]

00:17:50   you see though they would get you a list [TS]

00:17:52   of features implement you don't need to [TS]

00:17:53   survey people and have them distribute a [TS]

00:17:55   hundred points and all these ridiculous [TS]

00:17:56   esoteric features yeah people should [TS]

00:18:00   follow the link and read the features [TS]

00:18:02   like there they're picking it the these [TS]

00:18:05   little you know fringes around the edges [TS]

00:18:08   when the entire carpet is on fire I [TS]

00:18:09   don't then now I can't think of a good [TS]

00:18:11   one you're too upset yeah all right so [TS]

00:18:17   do we have a topic for today's show we [TS]

00:18:19   do you didn't you're not even looking at [TS]

00:18:21   the I don't look anymore I just want I [TS]

00:18:23   just I'm on autopilot I'm doing it [TS]

00:18:25   myself I like you so you're surprised [TS]

00:18:27   when you come in the show you want to [TS]

00:18:28   guess what the topic is didn't look at [TS]

00:18:30   all [TS]

00:18:31   well let me look at the look at these [TS]

00:18:33   notes here I I put it on the yeah did [TS]

00:18:38   you you put it in Big O in the top now I [TS]

00:18:41   haven't gone on the topics page but I [TS]

00:18:42   can look at these links yeah and you can [TS]

00:18:45   guess I see the word Copeland about five [TS]

00:18:48   or six times yeah and speaking of words [TS]

00:18:50   that like you know you pronounce in your [TS]

00:18:52   head it for a long time before you have [TS]

00:18:54   to say them out loud so I read about [TS]

00:18:55   this operating system for years and [TS]

00:18:57   years in my in my youth and I always [TS]

00:19:00   pronounced it in my head Copland comp [TS]

00:19:02   which is not how you pronounce it [TS]

00:19:03   because is named after the composer was [TS]

00:19:05   it Aaron Aaron Copland so I'm working [TS]

00:19:07   really hard in the past decade or so to [TS]

00:19:09   say Copeland Copeland it's just a very [TS]

00:19:11   with just a straightforward variable [TS]

00:19:13   substitution you just need to run yeah [TS]

00:19:15   it's working pretty well so far we'll [TS]

00:19:17   see if I can get through this without [TS]

00:19:18   slipping up so this is this is a great [TS]

00:19:20   topic this is an awesome topic and let [TS]

00:19:22   actually before we dive in because I [TS]

00:19:23   have a feeling that you're going to [TS]

00:19:24   you've got a lot to say about this one [TS]

00:19:26   so before we start it let's do the first [TS]

00:19:29   sponsor is that okay yeah all right so [TS]

00:19:32   we want to thank Rackspace do you [TS]

00:19:34   remember John back in February Rackspace [TS]

00:19:36   asked if if listeners of this show and [TS]

00:19:39   other shows had what it takes to be king [TS]

00:19:42   of the apps you remember that contest [TS]

00:19:44   king of the apps vaguely okay so a whole [TS]

00:19:46   bunch of people took up the challenge [TS]

00:19:48   and basically was to create an [TS]

00:19:50   application on top of Rackspace cloud [TS]

00:19:52   files didn't matter what your [TS]

00:19:53   application was and they're going to [TS]

00:19:56   give you $10,000 oh yeah now I remember [TS]

00:19:58   okay did you apply did you do this I did [TS]

00:20:00   not that would be conflict of interest [TS]

00:20:02   I'd say go for it this time because it's [TS]

00:20:04   as round too anyway they announced it [TS]

00:20:06   snap appointments they were crowned king [TS]

00:20:08   of the apps in at South by Southwest now [TS]

00:20:11   round two you have to submit your app by [TS]

00:20:13   May 2nd all you need to do is build an [TS]

00:20:16   app that works on cloud files Rackspace [TS]

00:20:18   cloud files it anything you can imagine [TS]

00:20:20   as long as it uses that you could win [TS]

00:20:22   10,000 bucks [TS]

00:20:24   and the the winner will be announced [TS]

00:20:25   dead Interop Las Vegas are you gonna be [TS]

00:20:27   there not me no you're not going to as a [TS]

00:20:30   representative no ok that's your choice [TS]

00:20:34   so anyway you can find out all the [TS]

00:20:35   details and find out how you could win [TS]

00:20:37   $10,000 at Rackspace comm slash king of [TS]

00:20:41   the apps and their slogan for this is [TS]

00:20:44   showcase triumph defend I like that [TS]

00:20:50   10,000 but what would you do with 10,000 [TS]

00:20:52   bucks if you just built you wrote a [TS]

00:20:54   little app and got 10 grand you know [TS]

00:20:57   what I would do with it it's the most [TS]

00:20:59   boring answer ever but it's true [TS]

00:21:01   buy more TiVo's no it goes right into [TS]

00:21:03   the kids college fund that's a good [TS]

00:21:05   thing to do with it better than TiVo [TS]

00:21:07   yeah boring though so Copeland was I'll [TS]

00:21:10   close the Wikipedia page Copeland was a [TS]

00:21:12   project at Apple computer to create an [TS]

00:21:14   updated version of the Macintosh [TS]

00:21:16   operating system was to have introduced [TS]

00:21:19   protected memory pre-emptive [TS]

00:21:21   multitasking and a number of new [TS]

00:21:22   underlying operating system features yet [TS]

00:21:25   still be compatible with existing Mac [TS]

00:21:27   software you know this is not where I [TS]

00:21:30   that's not how I start things though I [TS]

00:21:31   know I always have to go back let's go [TS]

00:21:34   back further but there's people who are [TS]

00:21:36   going to say Copeland what do I care [TS]

00:21:37   about Copeland for now at least I know [TS]

00:21:38   you're talking about there's a lot of [TS]

00:21:41   people that they dare their introduction [TS]

00:21:43   even know what cup 1 to Mac OS 10 is [TS]

00:21:46   10.2 a lot of people just got their [TS]

00:21:50   first MacBook you know I know well so I [TS]

00:21:53   mean it's so you don't want to take some [TS]

00:21:55   back in now 1969 a Woodstock when you [TS]

00:21:59   know was was you know tripping out and [TS]

00:22:01   had an idea for something you know let [TS]

00:22:02   give him a framework well I mean it's [TS]

00:22:05   alright so we'll come back to Copeland [TS]

00:22:07   but I'll start from this is a talk [TS]

00:22:10   that's about a series of articles I [TS]

00:22:11   wrote many years ago in 2005 and the [TS]

00:22:15   tight [TS]

00:22:15   the article series was avoiding copeland [TS]

00:22:17   2010 and it was written in 2005 so the [TS]

00:22:22   premise underlying this entire series of [TS]

00:22:25   arc was his articles is article was like [TS]

00:22:27   at a point it was trying to say you know [TS]

00:22:30   to predict the future and warned about [TS]

00:22:31   something that can happen right so the [TS]

00:22:34   premise which i'm going to lay out now [TS]

00:22:35   most people if you just give them the [TS]

00:22:37   premise in isolation agree with and you [TS]

00:22:39   know without even thinking about like [TS]

00:22:41   it's obviously everybody knows that it's [TS]

00:22:43   you know it's not worth even discussing [TS]

00:22:45   though we don't need to be explicit [TS]

00:22:47   about this premise we all agree but when [TS]

00:22:49   i'm done and i start trying to use that [TS]

00:22:53   premise to extrapolate and draw [TS]

00:22:54   conclusions then people will come back [TS]

00:22:56   and challenge the premise so we'll see [TS]

00:22:57   if that happens with you here or any of [TS]

00:23:00   the listeners so the premise is that [TS]

00:23:04   abstraction increases over time in the [TS]

00:23:07   computer industry you could take off the [TS]

00:23:09   computer interesting qualifier just say [TS]

00:23:10   abstract can increases over time period [TS]

00:23:12   because it's sort of the basis of all [TS]

00:23:14   human progress where it's systems built [TS]

00:23:16   upon systems where someone figures after [TS]

00:23:18   to do some small thing and then the next [TS]

00:23:20   generation comes along and they figure [TS]

00:23:21   out how to do something built on the [TS]

00:23:23   previous system because i don't have to [TS]

00:23:25   worry about that one it's been figured [TS]

00:23:26   out so they could build something more [TS]

00:23:27   complicated on top of it well in [TS]

00:23:29   computers that has sort of played out [TS]

00:23:31   very very quickly much more quickly than [TS]

00:23:33   just like all of human history where [TS]

00:23:36   computers just came into existence you [TS]

00:23:38   know within a human lifetime or two and [TS]

00:23:41   we've gone so far since then so I'm [TS]

00:23:44   going to speak specifically about [TS]

00:23:45   programming computers what do you have [TS]

00:23:47   to do to tell a computer what to do and [TS]

00:23:50   and this sort of briefly go through the [TS]

00:23:52   progression that's made so in the [TS]

00:23:53   beginning ignoring the phase where you [TS]

00:23:56   had just toggle switches and people were [TS]

00:23:57   just you know flipping switches on and [TS]

00:23:58   off to enter binary in the beginning [TS]

00:24:00   when you had program programmable [TS]

00:24:01   computers people were programming with [TS]

00:24:02   machine code which means you would enter [TS]

00:24:05   basically just a series of ones and [TS]

00:24:06   zeros that would the computer would [TS]

00:24:09   interpret as instructions you know this [TS]

00:24:11   this particular number means this [TS]

00:24:13   instruction and the next number is an [TS]

00:24:15   address in the next number is a value is [TS]

00:24:17   so on and so forth that's how is it von [TS]

00:24:20   Neumann machines am i pronouncing that [TS]

00:24:21   correctly I think so you see there von [TS]

00:24:23   Neumann or no I'm on I don't know why go [TS]

00:24:27   with Norman let's go with Norman anyway [TS]

00:24:29   it's the idea [TS]

00:24:29   of you have a big set of memory that [TS]

00:24:31   contains both your data and your [TS]

00:24:33   instructions then you have a CPU that [TS]

00:24:34   reads from the program from memory and [TS]

00:24:37   excuse these instructions and back in [TS]

00:24:39   the day when people made the first [TS]

00:24:40   computers that's how you would program [TS]

00:24:42   it you have to put in the numbers that [TS]

00:24:43   the CPU would eat and perform the actual [TS]

00:24:46   task now no one wants to just enter in [TS]

00:24:47   long strings of binary or hexadecimal or [TS]

00:24:49   anything numbers because it's ridiculous [TS]

00:24:51   so the next phase was assembly code [TS]

00:24:53   where they gave you symbolic [TS]

00:24:55   representations of these numbers where [TS]

00:24:56   the instruction for you know moving a [TS]

00:24:59   value from one register to another we're [TS]

00:25:01   just going to call that mov and you [TS]

00:25:02   don't have to remember that access on [TS]

00:25:03   the number four and then your addresses [TS]

00:25:05   you just you make up names for them and [TS]

00:25:07   then you prefer to those names in the [TS]

00:25:08   program and then an assembler would come [TS]

00:25:10   in later and take your text [TS]

00:25:11   representation and say okay mov that's [TS]

00:25:13   this instruction and you know this [TS]

00:25:15   symbolic name you know ax okay that's [TS]

00:25:17   the register this this is the value for [TS]

00:25:20   that register and you made up this name [TS]

00:25:22   for this new memory address so I'll [TS]

00:25:23   substitute that memory address for the [TS]

00:25:24   name um that was called assembly code [TS]

00:25:26   and the assembler was the thing that [TS]

00:25:28   turned it into a machine code and then [TS]

00:25:30   the CPU executed the machine code so [TS]

00:25:31   that's the first layer of abstraction [TS]

00:25:32   where you didn't have to write the [TS]

00:25:34   machine code you wrote in this thing it [TS]

00:25:36   was little bit nicer humans then another [TS]

00:25:37   program that someone wrote before you [TS]

00:25:39   would come and turn it into machine code [TS]

00:25:41   um but that was still stuck run on a [TS]

00:25:44   single CPU because machine code only [TS]

00:25:46   works on one particular CPU and assembly [TS]

00:25:48   code turns into machine code that only [TS]

00:25:49   works on one CPU so the next layer layer [TS]

00:25:52   abstraction was portable languages where [TS]

00:25:54   you could write a program and have it [TS]

00:25:55   execute on different CPUs because your [TS]

00:25:58   compiler can pilot for them the most [TS]

00:25:59   popular one of those is C where you [TS]

00:26:01   would write in the language C was called [TS]

00:26:03   portable assembler is kind of a a [TS]

00:26:05   derogatory term but basically you write [TS]

00:26:08   and you write in a more abstract form [TS]

00:26:09   that the compiler compiles into [TS]

00:26:12   basically machine code sometimes passing [TS]

00:26:15   through assembly on its way down for a [TS]

00:26:17   particular CPU so the same C program you [TS]

00:26:19   could compile for two different CPUs and [TS]

00:26:21   executed on two different CPUs in a wood [TS]

00:26:23   run but in the end it was like [TS]

00:26:26   higher-level concepts or stuff that the [TS]

00:26:29   machine would understand so I had this [TS]

00:26:31   the concept of types where you know [TS]

00:26:34   you'd have integer types and character [TS]

00:26:36   types and stuff like that they're all [TS]

00:26:36   end up being numbers behind the scenes [TS]

00:26:38   but these types would add constraints to [TS]

00:26:40   your program to make it make sure you're [TS]

00:26:41   doing what you thought you were doing [TS]

00:26:43   and you had much more complicated [TS]

00:26:44   statements where you'd have a single [TS]

00:26:46   line of code that would result in many [TS]

00:26:48   many many lines of assembly many many [TS]

00:26:50   many lines of machine code in the end [TS]

00:26:52   but you didn't have to write all those [TS]

00:26:53   lines it would figure it out for you and [TS]

00:26:55   that phase lasted a long time where [TS]

00:26:58   you're writing and see pascal those type [TS]

00:26:59   of compiled languages there were various [TS]

00:27:02   forms of you know portable assembly [TS]

00:27:04   language where you'd write something [TS]

00:27:06   that can run the many different [TS]

00:27:07   architectures maybe that lasted until [TS]

00:27:09   the nine user so that's that's a pretty [TS]

00:27:11   long time we've gone from the first [TS]

00:27:12   computer in the 60s all up the nineties [TS]

00:27:14   and we haven't gotten that much farther [TS]

00:27:15   along in abstraction but then around the [TS]

00:27:18   late 80s early 90s a lot of the research [TS]

00:27:21   progress to accept done this before but [TS]

00:27:23   this was the first time that popular [TS]

00:27:24   languages started being memory managed [TS]

00:27:27   where they would move even farther away [TS]

00:27:29   from assembly where they would basically [TS]

00:27:31   write a little program called a virtual [TS]

00:27:34   machine that would represent a computer [TS]

00:27:36   didn't actually exist but that was much [TS]

00:27:37   nicer to deal with than a CPU and then [TS]

00:27:40   you would write programs to that virtual [TS]

00:27:41   machine a virtual machine would compile [TS]

00:27:43   those programs down to machine code in [TS]

00:27:44   the machine code would execute on the [TS]

00:27:45   actual CPU so one more layer up there [TS]

00:27:49   the big the big difference and this is [TS]

00:27:50   there was no more a need for the [TS]

00:27:52   programmer to manage memory manually [TS]

00:27:54   sometimes didn't have to deal with it at [TS]

00:27:56   all they would just make variables they [TS]

00:27:57   were pop into existence and disappear [TS]

00:27:59   when they went out of scope you didn't [TS]

00:28:00   have to worry about where the memory [TS]

00:28:01   came from where I was going or who still [TS]

00:28:03   had references to it the virtual machine [TS]

00:28:04   would take care of that for you and with [TS]

00:28:08   that came the the ability for you to not [TS]

00:28:11   worry about accidentally writing over [TS]

00:28:13   arbitrary memory so with all the old [TS]

00:28:15   models since all this got turned into it [TS]

00:28:17   eventually a memory address or whatever [TS]

00:28:19   who if you ended up with a bad value [TS]

00:28:21   when you do reference that it as an [TS]

00:28:22   address then you just start scribbling [TS]

00:28:23   wherever the heck you wanted in memory [TS]

00:28:25   it was in your memory image anyway and [TS]

00:28:28   that would cause your program to crash [TS]

00:28:30   while the virtual machine once it said [TS]

00:28:32   no we're not going to give you any any [TS]

00:28:33   facility in the programming language to [TS]

00:28:35   grab an address to memory based on some [TS]

00:28:37   number and just start writing over it [TS]

00:28:38   it's just you're not able to do that [TS]

00:28:40   period of course the virtual machine [TS]

00:28:42   itself was usually written in a language [TS]

00:28:43   like C and eventually would take your [TS]

00:28:46   program and convert it into machine code [TS]

00:28:48   for the particular CPU that it's running [TS]

00:28:50   on sometimes they would do that at [TS]

00:28:51   runtime in fact and then [TS]

00:28:52   execute so now we're like three layers [TS]

00:28:54   up from maybe three or four layers up [TS]

00:28:56   from the actual CPU and then around that [TS]

00:28:59   same time maybe a little bit later the [TS]

00:29:01   dynamic language started to become [TS]

00:29:03   popular that that word really means [TS]

00:29:04   nothing but what it really means is [TS]

00:29:06   languages that are memory managed but [TS]

00:29:10   have even fewer constraints than the [TS]

00:29:14   memory manage languages like Java or C [TS]

00:29:16   sharp or anything like that one of the [TS]

00:29:18   things they threw away was that having [TS]

00:29:20   to deal with types they said well it [TS]

00:29:21   will just figure that out for use [TS]

00:29:23   there's no like integer types or you [TS]

00:29:25   know string types or anything you just [TS]

00:29:27   have variables and we'll figure out what [TS]

00:29:29   the type is for you we'll also figure [TS]

00:29:30   out all the memory for you we'll build [TS]

00:29:31   in some more nice stuff for you that [TS]

00:29:33   everybody wants to do anyway like [TS]

00:29:34   regular expressions and stuff like that [TS]

00:29:36   and we'll make it so that a lot of these [TS]

00:29:39   things compiled when you ran them so you [TS]

00:29:41   didn't have to compile different [TS]

00:29:42   executable and run the executable when [TS]

00:29:43   you ran the thing it would compile it at [TS]

00:29:45   that point and executed immediately [TS]

00:29:46   and JavaScript is another example of [TS]

00:29:49   this and so this has been a long long [TS]

00:29:53   road from like for example from [TS]

00:29:54   JavaScript to machine code because now [TS]

00:29:56   think about a modern JavaScript engine [TS]

00:29:59   in a web browser right so you've got [TS]

00:30:01   this language that doesn't have anything [TS]

00:30:03   to do with memory or pointers or [TS]

00:30:04   anything like that and that gets [TS]

00:30:07   compiled on to usually some sort of [TS]

00:30:09   virtual machine in your browser which is [TS]

00:30:11   itself written in the language like C or [TS]

00:30:13   C++ which ends up being compiled and [TS]

00:30:17   executing in machine code and sometimes [TS]

00:30:19   even assembly on you know for the tight [TS]

00:30:21   loops inside the JavaScript engines on [TS]

00:30:23   your CPU so that's the big trail through [TS]

00:30:27   what has happened to two programming [TS]

00:30:29   languages over the years and how [TS]

00:30:32   abstraction has increased over time I [TS]

00:30:33   don't think people would disagree with [TS]

00:30:34   that you say to people writing assembly [TS]

00:30:36   today yeah some people still write in [TS]

00:30:37   assembly sometimes like that guy who's [TS]

00:30:38   writing the JavaScript engine for your [TS]

00:30:41   browser sometimes it is some particular [TS]

00:30:42   tight loop inside the virtual machine [TS]

00:30:45   that runs JavaScript you wanted to be [TS]

00:30:46   super fasty baby you do it and assembly [TS]

00:30:48   you know but the vast majority people [TS]

00:30:51   are not writing an assembly versus you [TS]

00:30:52   know in the 60s and 70s you know you're [TS]

00:30:55   writing an assembly if you were writing [TS]

00:30:57   you know like the original Mac operating [TS]

00:30:58   system for example is mostly written in [TS]

00:30:59   assembly hard to believe but like the [TS]

00:31:01   first GUI operating system which were [TS]

00:31:02   thinking I'm a super modern everything [TS]

00:31:03   is absolutely filled with assembly [TS]

00:31:05   especially for the apartment [TS]

00:31:06   whereas nowadays very very small parts [TS]

00:31:09   of the operating system are in assembly [TS]

00:31:10   just a few keys tiny parts and most of [TS]

00:31:13   it or in a higher-level language and [TS]

00:31:15   things like websites no one's writing [TS]

00:31:16   websites and assembly you know no one's [TS]

00:31:18   writing websites in C++ unless they're [TS]

00:31:20   crazy [TS]

00:31:20   I guess think there's one or two people [TS]

00:31:21   out there still doing that but uh but [TS]

00:31:23   the trend line is clear what are they [TS]

00:31:25   teaching in in the universities these [TS]

00:31:27   days what's the if you decide you want [TS]

00:31:29   to do computer jobs man I mean it makes [TS]

00:31:31   sense when I was when to date myself a [TS]

00:31:33   lot here when I was in college its [TS]

00:31:36   Pascal you know they were switching from [TS]

00:31:38   modular to Pascal and and like one of [TS]

00:31:41   the teachers was only doing Pascal and [TS]

00:31:44   to stay I guess to keep kosher with the [TS]

00:31:48   rest of the staff you could turn your [TS]

00:31:50   assignments in in modular and he would [TS]

00:31:52   allow that but only for the rest of the [TS]

00:31:54   semester [TS]

00:31:55   well computer as the saying goes [TS]

00:31:57   computer science has about as much to do [TS]

00:31:58   with computers as astronomy has to do [TS]

00:32:00   with telescopes so a lot of the things [TS]

00:32:02   they're using using and teaching are to [TS]

00:32:05   teach you concepts of computer science [TS]

00:32:07   which are more mathematical in nature [TS]

00:32:08   and the fact that they have to use an [TS]

00:32:10   actual language to teach you this is [TS]

00:32:11   almost like it's a kind of a shame [TS]

00:32:13   because they would rather just you know [TS]

00:32:15   talk about it conceptually but I guess [TS]

00:32:17   you got to write some sort of code that [TS]

00:32:18   excuse I'm not teaching you to be a [TS]

00:32:19   programmer as in as a trade they're [TS]

00:32:21   trying to teach you [TS]

00:32:22   concepts the concepts of computer [TS]

00:32:24   science and the particular language they [TS]

00:32:26   use to do that it's not important but [TS]

00:32:27   within the industry that the trend line [TS]

00:32:31   has been clear most working programmers [TS]

00:32:32   are not working in assembly they're not [TS]

00:32:34   working in machine code they're not even [TS]

00:32:35   working and see like these days they're [TS]

00:32:36   working in c-sharp Java you know took [TS]

00:32:39   over a lot of the the bulk of the [TS]

00:32:41   programming market when it came out I [TS]

00:32:43   and lots of people now working in [TS]

00:32:44   dynamic languages like Ruby JavaScript [TS]

00:32:46   Python stuff like that what are you work [TS]

00:32:47   in most days can you say that because I [TS]

00:32:49   know you're soakin girl which will flip [TS]

00:32:51   people out but believe it or not people [TS]

00:32:53   still do that and I'll talk about my [TS]

00:32:55   talk more about that at the end if I [TS]

00:32:56   have time Wow [TS]

00:32:57   so no we're going to make time for that [TS]

00:32:58   yeah we can do a whole episode on that [TS]

00:33:00   you know actually helps probably have [TS]

00:33:01   some good rants about that um can you [TS]

00:33:04   read your own Perl once you write it [TS]

00:33:05   of course I can okay yes most most [TS]

00:33:08   people can't it's not true all right [TS]

00:33:10   so that that is the premise and you [TS]

00:33:13   agree with it right but absolutely [TS]

00:33:15   gotten more abstract absolutely and I [TS]

00:33:17   think this is a trend that's going to [TS]

00:33:19   reverse [TS]

00:33:19   or level off or not continue I would say [TS]

00:33:23   it's either going to it's interesting [TS]

00:33:26   because you the choices you gave me are [TS]

00:33:28   is it going to to level off reverse or [TS]

00:33:32   not continue my I think it's going to [TS]

00:33:35   continue I think it's going to maybe [TS]

00:33:38   level off or continue keep continuing [TS]

00:33:40   alright so finally getting back to this [TS]

00:33:43   avoiding Copelan 2010 thing I'd be one [TS]

00:33:45   more quick history oh my god so yeah I [TS]

00:33:48   know I was tough so back in the 90s [TS]

00:33:51   Apple found itself kind of behind [TS]

00:33:54   technically Steve Jobs wasn't there at [TS]

00:33:56   this point he'd been kicked out into [TS]

00:33:58   85-86 the company made a lot of money [TS]

00:34:00   and in the late 80s early 90s by [TS]

00:34:03   charging a lot for its hardware but as a [TS]

00:34:05   nineties started and Windows 95 was [TS]

00:34:07   looming and stuff their operating system [TS]

00:34:09   was behind and it was behind technically [TS]

00:34:12   and the two big things that had missed [TS]

00:34:13   if you were nerd in his period of time [TS]

00:34:14   you knew what Mac the classic Mac OS was [TS]

00:34:17   missing but the two big things that [TS]

00:34:18   admit that didn't have our memory [TS]

00:34:20   protection and pre-emptive multitasking [TS]

00:34:21   and those were super super important [TS]

00:34:23   because people were tired of their Mac's [TS]

00:34:25   crashing memory protection is the thing [TS]

00:34:26   that prevented one program from [TS]

00:34:27   scribbling over the memory of another [TS]

00:34:29   program or over the memory of the [TS]

00:34:30   operating system and that was important [TS]

00:34:32   because if you got a badly behaved [TS]

00:34:33   application it would take out your whole [TS]

00:34:34   Mac and you need to reboot and this was [TS]

00:34:36   increasingly common situation no it's [TS]

00:34:39   just fine but fine when you had 128k [TS]

00:34:41   because what that can you do you got 128 [TS]

00:34:43   k it's a miracle you can even get a GUI [TS]

00:34:44   on the screen with 128 kilobytes of RAM [TS]

00:34:47   an entire machine right but as the [TS]

00:34:49   machines got bigger and faster it became [TS]

00:34:52   unacceptable to have this limitation and [TS]

00:34:54   the second one was pre-emptive [TS]

00:34:55   multitasking pre-emptive multitasking [TS]

00:34:56   allows the operating system to say all [TS]

00:34:58   right program B you're done I'm going to [TS]

00:35:00   let program a run for a little while now [TS]

00:35:01   okay now you can run again program being [TS]

00:35:03   back and forth the operating system [TS]

00:35:05   could preempt you could say you know get [TS]

00:35:07   off the cpu it's time it's someone [TS]

00:35:08   else's turn Mac OS again when you had [TS]

00:35:11   128 kilobytes of RAM you didn't expect [TS]

00:35:15   pre-emptive multitasking they just had [TS]

00:35:17   it's an amazingly get it to run at all [TS]

00:35:19   but they have what we called cooperative [TS]

00:35:21   multitasking which is kind of like the [TS]

00:35:23   Patriot Act's one of those nice names [TS]

00:35:24   who doesn't like to cooperate [TS]

00:35:25   cooperative multitasking isn't that the [TS]

00:35:27   kinder and gentler kind of no it's not [TS]

00:35:29   good because what it means is that if a [TS]

00:35:30   process gets the CPU it can only give [TS]

00:35:33   voluntary [TS]

00:35:33   gives the CPU up to another process [TS]

00:35:35   which meant that any process could hog [TS]

00:35:37   the entire CPU and no one else get any [TS]

00:35:39   time and programs are notoriously bad [TS]

00:35:42   about deciding that they don't need the [TS]

00:35:43   CPU anymore because that you're you're [TS]

00:35:45   relying on them to share to say oh you [TS]

00:35:47   know that everyone should behave when [TS]

00:35:48   you don't need to CPU give it up and [TS]

00:35:49   like do I need to see for you well and I [TS]

00:35:52   might need it I really want to give it [TS]

00:35:53   up right now let me just have one more [TS]

00:35:55   loop and check for events okay and I'll [TS]

00:35:56   give it up in a second you know it was a [TS]

00:35:57   bad situation that wasted the resources [TS]

00:35:59   that you had there so programs would hog [TS]

00:36:01   the CPU just in case they needed it or [TS]

00:36:03   being some sort of busy loop burning [TS]

00:36:05   through CPU cycles do they thought they [TS]

00:36:06   were the only one running and other [TS]

00:36:07   programs were out there starving because [TS]

00:36:08   they're not being given cycles anymore [TS]

00:36:10   alright so by the 90s it was clear that [TS]

00:36:14   you needed this stuff you didn't have [TS]

00:36:16   this stuff you started to look like [TS]

00:36:17   creaky old crappy technology and for [TS]

00:36:19   reference or people who don't know every [TS]

00:36:20   single modern operating system anywhere [TS]

00:36:22   probably on wristwatches today has both [TS]

00:36:23   of these speech they're super important [TS]

00:36:25   but back then the Mac didn't have them [TS]

00:36:27   and and so Apple's trying to figure out [TS]

00:36:30   how do we get these we know we need to [TS]

00:36:32   have these and like every year that [TS]

00:36:33   passes it's getting more and more [TS]

00:36:34   embarrassing that we don't have them [TS]

00:36:36   every time someone has to reboot their [TS]

00:36:37   Mac and we get those little chimes going [TS]

00:36:38   off during in the office and people are [TS]

00:36:40   complaining because things are freezing [TS]

00:36:42   you know we got to do this so they tried [TS]

00:36:45   like seven different plans about how [TS]

00:36:46   we're gonna get these things to our [TS]

00:36:48   operating system so the problem is to [TS]

00:36:50   add them you didn't want to like make it [TS]

00:36:53   so none of your existing apps worked [TS]

00:36:55   anymore [TS]

00:36:56   you can't like here's a brand new [TS]

00:36:57   operating system and none year old apps [TS]

00:36:58   work but hey guys you'll you'll come [TS]

00:37:00   onboard right we won't lose any [TS]

00:37:02   customers because of this now that was a [TS]

00:37:04   bad scene they needed to bring existing [TS]

00:37:07   customers along and make sure their apps [TS]

00:37:08   still ran otherwise it's like you're [TS]

00:37:09   starting a whole new company from [TS]

00:37:10   scratch and just leaving your old [TS]

00:37:11   customers behind that that was not going [TS]

00:37:14   to fly but retrofitting can we take [TS]

00:37:16   existing Mac operating system and add [TS]

00:37:17   these features well the problem was [TS]

00:37:20   every single existing iMac application [TS]

00:37:22   including the operating system itself [TS]

00:37:24   expected to be able to read any memory [TS]

00:37:26   wanted and they were all you know in one [TS]

00:37:27   big giant stoop together they expected [TS]

00:37:30   to be able to hog the CPU they just you [TS]

00:37:31   know they ran in this type of [TS]

00:37:33   environment and if you change the [TS]

00:37:35   environment on them every single app [TS]

00:37:36   would break so how do we let these guys [TS]

00:37:37   think that they can actually scribble [TS]

00:37:38   all over memory and read memory from [TS]

00:37:40   other applications one of my favorite [TS]

00:37:42   classic Mac applications was uh so if I [TS]

00:37:45   had a document or so [TS]

00:37:47   that I was editing and accidentally [TS]

00:37:48   closed the window without saving there [TS]

00:37:50   was an application that would search [TS]

00:37:52   through all memory in the entire machine [TS]

00:37:54   for uh you know a string or something [TS]

00:37:57   and so if I accidentally closed a [TS]

00:37:59   program or something and I wanted text [TS]

00:38:01   back that was in that I could use this [TS]

00:38:02   thing to sort of scram really all memory [TS]

00:38:04   in the entire machine and find the [TS]

00:38:05   document that was previously in memory [TS]

00:38:07   because those pages still hadn't been [TS]

00:38:08   overwritten well and this was not a [TS]

00:38:10   special privilege program this is a [TS]

00:38:12   program that any person can run so [TS]

00:38:13   really memory was just an open green [TS]

00:38:15   field that any any person any program [TS]

00:38:17   any anything could just go rummaging [TS]

00:38:19   through and this is what applications [TS]

00:38:21   expected and some of them actually took [TS]

00:38:22   advantage of it so you couldn't just [TS]

00:38:24   apply these strictures because literally [TS]

00:38:26   every single program would break and so [TS]

00:38:28   they had many failed efforts to try to [TS]

00:38:30   do this that this talent effort with IBM [TS]

00:38:32   like let's make a brand-new operating [TS]

00:38:34   system will partner with IBM and it'll [TS]

00:38:35   be so awesome people won't care they'll [TS]

00:38:37   jump ship from the Mac and leave all [TS]

00:38:38   their all the apps behinds and come with [TS]

00:38:39   us the Copeland project we just talked [TS]

00:38:44   about which is like well we'll make a [TS]

00:38:45   new operating system that kind of like [TS]

00:38:47   the old one and we'll try to get most of [TS]

00:38:49   the benefits of memory protection [TS]

00:38:50   programs email - but will have the other [TS]

00:38:52   mode where the old apps can run in the [TS]

00:38:54   old apps will still be able to crash the [TS]

00:38:55   whole operating system because they have [TS]

00:38:56   to be able to because they need to see a [TS]

00:38:57   whole memory but we the new apps [TS]

00:38:59   wouldn't and we try to gradually bring [TS]

00:39:01   people over to the new apps they never [TS]

00:39:02   shipped that it didn't work out it was a [TS]

00:39:04   big mess and at the point where they [TS]

00:39:07   were killing that project or it's like [TS]

00:39:09   look we spent all these years on this [TS]

00:39:10   thing it's still not panning out they're [TS]

00:39:11   like fine we just had to buy something [TS]

00:39:12   we gotta like we got to find something [TS]

00:39:14   out there and buy it so they look they [TS]

00:39:16   were gonna buy a company being [TS]

00:39:18   cooperated just started by an X Apple [TS]

00:39:20   guy because they had this great new [TS]

00:39:22   operating system that was if you ran B [TS]

00:39:25   OS on on the existing Apple Harbor the [TS]

00:39:26   day would make the Apple hardware look [TS]

00:39:27   amazingly fast you're like yeah that's [TS]

00:39:29   like their operating system already runs [TS]

00:39:31   on our hardware and it's way faster than [TS]

00:39:32   ours and it's way cooler and it's got a [TS]

00:39:33   lot of buzz let's buy them but they [TS]

00:39:35   wanted like six hundred million dollars [TS]

00:39:36   and Apple didn't want to pay it they [TS]

00:39:38   looked everywhere they considered [TS]

00:39:40   licensing the Windows NT kernel I think [TS]

00:39:41   one of the history books that I read on [TS]

00:39:43   this was talking about talking to the [TS]

00:39:45   executives who were at Apple the time [TS]

00:39:46   can you imagine that that was that was [TS]

00:39:48   one of Apple's plans and it wasn't just [TS]

00:39:49   like an outlier that was like of the top [TS]

00:39:52   three choices that was up there like [TS]

00:39:54   let's license the Windows NT kernel from [TS]

00:39:55   Microsoft and use that as a next [TS]

00:39:57   generation hopping system and who knows [TS]

00:39:58   maybe we'll be able to run Windows apps [TS]

00:40:00   to that [TS]

00:40:00   could be a benefit for a company right [TS]

00:40:02   in the end we know what they actually [TS]

00:40:04   did they ended up buying a next and [TS]

00:40:06   Steve Jobs and the rest is history they [TS]

00:40:08   got you know two great things there but [TS]

00:40:12   the reason I bring this up is I'm going [TS]

00:40:13   to compare it to what Microsoft did [TS]

00:40:14   Microsoft had the same exact problem [TS]

00:40:16   because they had a crappy operating [TS]

00:40:17   system with you know they even worse [TS]

00:40:19   problems I had segmented memory and all [TS]

00:40:20   sorts of crazy x86 Intel stuff to deal [TS]

00:40:23   with and their programs expected to be [TS]

00:40:25   able to read all over the place too so [TS]

00:40:26   but what they did is they had a plan [TS]

00:40:28   that was a long long multi-year plan and [TS]

00:40:31   they executed on it much better than [TS]

00:40:33   Apple they didn't go in 20 different [TS]

00:40:34   directions they went in one direction [TS]

00:40:35   and did it slowly so they introduced [TS]

00:40:37   Windows NT in like 1993 and it wasn't a [TS]

00:40:41   replacement for the existing Windows it [TS]

00:40:42   was this other thing that was like it [TS]

00:40:44   was a modern OS it had lost all those [TS]

00:40:46   modern features that you expected to [TS]

00:40:48   have and it had a backward compatibility [TS]

00:40:49   layer actually had a layer where you can [TS]

00:40:51   run POSIX programs order like UNIX [TS]

00:40:53   programs it had a layer where you can [TS]

00:40:54   run os/2 programs because I hear os/2 is [TS]

00:40:56   the next big thing and IBM is backing [TS]

00:40:57   even there they're a giant in the [TS]

00:40:58   industry and you could run win32 and win [TS]

00:41:01   16 programs on it - and what was nice [TS]

00:41:03   about this was that it they never gave [TS]

00:41:05   you this promise that everything was [TS]

00:41:07   going to work perfectly because it was a [TS]

00:41:09   different operating system and it was [TS]

00:41:10   intended for different audiences a whole [TS]

00:41:13   different user base was going to be [TS]

00:41:14   using NT so they weren't it wasn't like [TS]

00:41:16   the consumer operating system released [TS]

00:41:18   going from you know 95 to 98 ME or [TS]

00:41:21   whatever they could do things they could [TS]

00:41:23   afford to do things a little bit [TS]

00:41:24   differently yeah so for example the the [TS]

00:41:27   hardware requirements of NT were way [TS]

00:41:28   higher than the consumer OS and and it [TS]

00:41:30   was slower and it would run most your [TS]

00:41:32   apps slower if you had legacy apps and [TS]

00:41:33   it was just this big complicated bloated [TS]

00:41:36   enterprise-e thing that they were not [TS]

00:41:37   selling to the average pcs were not [TS]

00:41:39   shipping with Windows NT U in them but [TS]

00:41:40   it slowly started to filter its way into [TS]

00:41:42   corporations for like servers another [TS]

00:41:43   serious Hardware right but this was [TS]

00:41:45   important because it gave Microsoft's [TS]

00:41:47   next-generation operating system a place [TS]

00:41:49   to grow up a place to say alright this [TS]

00:41:51   is gonna be a little bit creepy and [TS]

00:41:52   weird at first and it might be bugging [TS]

00:41:53   we can't quite figure it out and it's [TS]

00:41:55   got these really high hardware [TS]

00:41:56   requirements and it's slow and [TS]

00:41:57   everything but you know enterprise [TS]

00:41:59   developers enterprise customers can deal [TS]

00:42:01   with that and they have servers they're [TS]

00:42:03   going to spend the money on good [TS]

00:42:03   hardware anyway so you know they figured [TS]

00:42:07   let's let's let's go with this and let [TS]

00:42:09   it sort of grow there someone when the [TS]

00:42:12   chat rooms bring up the whole os/2 thing [TS]

00:42:13   with IBM and how Windows [TS]

00:42:14   he was a sort of betrayal of that plan [TS]

00:42:16   this I don't want to get too far into [TS]

00:42:17   the history there's a lot of intrigue [TS]

00:42:19   involving this but I said we're just [TS]

00:42:20   going to pick them up the horses that we [TS]

00:42:21   know eventually won so what happened is [TS]

00:42:25   that Windows NT grew in that little [TS]

00:42:27   protected environment of the enterprise [TS]

00:42:29   through several versions and eventually [TS]

00:42:31   when the time was right [TS]

00:42:32   Microsoft did the big switcheroo and [TS]

00:42:34   they said okay our next version of [TS]

00:42:35   Windows you know the one that comes on [TS]

00:42:36   your PC that you buy in the store that [TS]

00:42:38   the kind of windows our next version of [TS]

00:42:40   real Windows is going to have windows NT [TS]

00:42:42   at the core and Windows 2000 was the [TS]

00:42:44   first one to do that it was still kind [TS]

00:42:46   of like a corporate type operating [TS]

00:42:47   system but home users were running [TS]

00:42:49   Windows 2000 eventually where you buy a [TS]

00:42:51   PC and it would say hey this comes with [TS]

00:42:52   the great new Windows 2000 and by that [TS]

00:42:54   point they had wrung out most of the [TS]

00:42:56   issues in terms of 132 and 116 [TS]

00:42:58   compatibility and stuff like that and [TS]

00:42:59   most applications had been updated to be [TS]

00:43:01   you know when NT savvy or whatever you [TS]

00:43:03   want to call it so it was it was time [TS]

00:43:05   for the transition and Windows XP was [TS]

00:43:08   the the Big Bang where like even if you [TS]

00:43:09   had an upgraded Windows 2000 by the time [TS]

00:43:11   XP came along which was also based in [TS]

00:43:12   the Windows NT core everybody had [TS]

00:43:14   Windows XP in fact it's probably still [TS]

00:43:16   on your PC right now if you didn't [TS]

00:43:17   upgrade to Windows 7 because nobody used [TS]

00:43:19   Vista so that was their transition [TS]

00:43:22   strategy was very different than apples [TS]

00:43:24   it was a really long term plan where [TS]

00:43:25   they had this thing on the back burner [TS]

00:43:26   for a long time but it took them that [TS]

00:43:28   long to get you know the issues sorted [TS]

00:43:29   out now [TS]

00:43:31   I bring this up because this this [TS]

00:43:33   struggle to modernize that Mac operating [TS]

00:43:35   system almost killed Apple it almost [TS]

00:43:36   killed the entire company there are many [TS]

00:43:38   things that almost killed it you know in [TS]

00:43:40   terms of pricing and hardware and just [TS]

00:43:43   bad lack of leadership and too many [TS]

00:43:45   products and stuff like that but the [TS]

00:43:46   technical issues especially for a [TS]

00:43:47   computer company I would say are at [TS]

00:43:48   least 50% of what almost killed Apple [TS]

00:43:50   they did not have a competitive product [TS]

00:43:52   and they didn't know how to fix it and [TS]

00:43:53   the markets saw that and saw that them [TS]

00:43:55   saw them drowning and waving their hands [TS]

00:43:57   in the air and saying we have a [TS]

00:43:58   technical problem we are not competent [TS]

00:44:00   to fix it it every year announced a new [TS]

00:44:01   plan and then we canceled the plan then [TS]

00:44:03   we try another plan and we canceled that [TS]

00:44:04   one and investors don't like that and [TS]

00:44:05   investors tanked that the stock everyone [TS]

00:44:07   else at Apple I think they're going [TS]

00:44:09   under I mean even if you didn't know why [TS]

00:44:10   even if you didn't know anything about [TS]

00:44:12   Apple doesn't have memory protection and [TS]

00:44:14   pre-emptive multitasking you knew they [TS]

00:44:15   were flailing you knew they were trying [TS]

00:44:17   to look for some next generation thing [TS]

00:44:18   to do and they were not figuring it out [TS]

00:44:20   and you know they almost died the only [TS]

00:44:22   thing that saved them was getting that [TS]

00:44:24   that trio of things a jobs next in [TS]

00:44:26   Moore's law because I got the man job [TS]

00:44:28   who's going to be their leader for the [TS]

00:44:29   future they got a software our UNIX you [TS]

00:44:31   know the next base the operating system [TS]

00:44:33   which would have UNIX underneath it and [TS]

00:44:34   all what modern stuff in it and they got [TS]

00:44:37   the hardware to run at all Moore's law [TS]

00:44:38   eventually made max fast enough where [TS]

00:44:39   they could take that UNIX operating [TS]

00:44:41   system and run it on their hardware with [TS]

00:44:44   these you know the blue blocks for [TS]

00:44:45   backward compatibility with Mac [TS]

00:44:46   applications and you finally have enough [TS]

00:44:48   RAM to do all that stuff these are [TS]

00:44:49   solutions that maybe weren't feasible in [TS]

00:44:51   the early days but became feasible when [TS]

00:44:53   the harbor caught up with it and then in [TS]

00:44:54   the end you know Mac OS 10 10.0 was slow [TS]

00:44:57   as molasses anyway and still was a tough [TS]

00:44:59   sell if it wasn't for jobs you know [TS]

00:45:00   pressing it and saying well you know [TS]

00:45:01   this Mac OS 10 thing is pretty crappy [TS]

00:45:03   but look shiny and Steve Jobs is pretty [TS]

00:45:06   cool you know took years to get that up [TS]

00:45:08   speed but this crisis did almost kill [TS]

00:45:10   the company now the point of the [TS]

00:45:13   avoiding Copeland 2010 article was is [TS]

00:45:16   there another crisis like this this [TS]

00:45:18   Copeland crisis I called the köppen [TS]

00:45:20   crisis because Copeland was the you know [TS]

00:45:23   the most well known project that was [TS]

00:45:25   going to save apple from its crappy [TS]

00:45:27   operating system and it's the one that [TS]

00:45:28   cratered right so is there some sort of [TS]

00:45:31   crisis like this looming in Apple's [TS]

00:45:32   future now the new apples on its feet [TS]

00:45:34   it's got Mac OS 10 everything settled [TS]

00:45:37   doesn't have to worry about that [TS]

00:45:37   pre-emptive multitasking memory [TS]

00:45:39   protection stuff anymore it's it's got [TS]

00:45:40   all these other you know great things [TS]

00:45:42   going on but is there another crisis [TS]

00:45:44   like this a technical crisis in Apple's [TS]

00:45:46   future that that they have to worry [TS]

00:45:49   about and my conclusion in the article [TS]

00:45:51   was that yes there is a problem like [TS]

00:45:53   that lurking out in Apple's future and [TS]

00:45:55   it's a type of problem where just like [TS]

00:45:58   the operating system problem it doesn't [TS]

00:45:59   seem to be a good solution for and the [TS]

00:46:00   problem is that what Apple lacks now [TS]

00:46:03   that they will eventually need is a [TS]

00:46:05   memory managed language and API for [TS]

00:46:07   programming Mac applications because as [TS]

00:46:10   we all know Mac applications today are [TS]

00:46:11   written Objective C which is a C based [TS]

00:46:14   language which uses pointers and all [TS]

00:46:15   that good stuff and the API is built for [TS]

00:46:18   Objective C and it links to a lot of C [TS]

00:46:20   libraries and your programming and C [TS]

00:46:23   basically and the reason I think this is [TS]

00:46:24   a problem is because like we just went [TS]

00:46:26   through the abstraction of programming [TS]

00:46:29   languages increases over time and I [TS]

00:46:31   don't think that's going to stop I don't [TS]

00:46:33   think that's ever going to stop and so [TS]

00:46:34   you're in a situation where Apple is [TS]

00:46:36   using a C based language but everybody [TS]

00:46:38   else on the desktop platforms is not [TS]

00:46:40   everybody else too [TS]

00:46:41   because some you know took a look at [TS]

00:46:43   what they had and executed on a plan to [TS]

00:46:45   change so you had Java which sort of [TS]

00:46:47   came out of nowhere for set-top boxes [TS]

00:46:48   and took over the entire enterprise [TS]

00:46:50   software industry that was you know hey [TS]

00:46:52   everybody stop programming C++ with [TS]

00:46:54   pointers start programming job and no [TS]

00:46:55   pointers right and that just swept [TS]

00:46:57   through like crazy and you had Microsoft [TS]

00:46:59   which again [TS]

00:47:00   to to its credit had a multi-year really [TS]

00:47:03   complicated plan to to get away from [TS]

00:47:05   what they were programming which was C [TS]

00:47:06   and C++ they came up with this common [TS]

00:47:08   language runtime which was like a [TS]

00:47:09   virtual machine that sort of learned [TS]

00:47:11   from the mistakes of the Java Virtual [TS]

00:47:12   Machine or if you want to be less [TS]

00:47:14   charitable copy the Java Virtual Machine [TS]

00:47:16   and made a few tweaks here in there and [TS]

00:47:18   change the letters but either way I [TS]

00:47:19   think they learn from mistakes of the [TS]

00:47:21   JVM and did something better than they [TS]

00:47:23   did c-sharp which again if you want to [TS]

00:47:25   be unkind say it's just a bad clone of [TS]

00:47:26   Java but they took what Java had done [TS]

00:47:29   learned from Javas mistakes made a new [TS]

00:47:31   language called C sharp that looked a [TS]

00:47:32   little more like C and had its own [TS]

00:47:34   unique features and then they revised [TS]

00:47:35   like crazy they made C sharp they [TS]

00:47:37   version the language and just kept [TS]

00:47:38   coming out with new versions of XI sharp [TS]

00:47:40   that were better and better and had more [TS]

00:47:41   and more features tutor try to make them [TS]

00:47:42   you know more palatable to programmers [TS]

00:47:45   and c-sharp ran on the common language [TS]

00:47:47   runtime and then finally they have a [TS]

00:47:48   dotnet api's which were a new set of API [TS]

00:47:51   is not the old one 32 80s but a brand [TS]

00:47:53   new set of API is tailored for a modern [TS]

00:47:55   memory managed language to run on a [TS]

00:47:56   common language runtime that was going [TS]

00:47:58   to replace you know every part of their [TS]

00:48:01   old thing their old c c++ base 132 win [TS]

00:48:03   16 MFC all those things were going to [TS]

00:48:05   replace relays not net api's and this [TS]

00:48:07   this process has tooken has taken many [TS]

00:48:10   many many years and tons of Rd and lots [TS]

00:48:12   of money and lots of really smart people [TS]

00:48:13   because you can't just flip a switch and [TS]

00:48:15   get this stuff like they invented a [TS]

00:48:16   virtual machine a language and a new API [TS]

00:48:18   for their platform and they're still [TS]

00:48:20   doing it they're still in the process of [TS]

00:48:21   trying to transition people away from [TS]

00:48:22   1:32 and stuff like that so it you know [TS]

00:48:24   it's not like you can't just start this [TS]

00:48:27   and then be done within a year this this [TS]

00:48:29   initiative from Microsoft is taking [TS]

00:48:30   about five years seven ten it's a long [TS]

00:48:34   time this point they're still not done [TS]

00:48:35   with it so what I was looking for is how [TS]

00:48:39   is Apple going to match this because [TS]

00:48:41   they're still back on a sea-based [TS]

00:48:42   language and as far as I knew at the [TS]

00:48:44   time in 2005 they didn't have a plan to [TS]

00:48:47   say here's how we're going to move away [TS]

00:48:48   from objective-c [TS]

00:48:49   you know here's our next language in [TS]

00:48:52   runtime so in back in 2005 I considered [TS]

00:48:54   the alternatives [TS]

00:48:55   so what are the possibilities what can [TS]

00:48:57   they do one of the possibilities is all [TS]

00:49:00   right so pick one of those other [TS]

00:49:01   languages pick Java or C sharp or some [TS]

00:49:03   well you know there's plenty of [TS]

00:49:03   languages out there that are memory [TS]

00:49:04   manage languages why don't you just use [TS]

00:49:06   one of those you don't need to invent [TS]

00:49:07   your own language even back then it was [TS]

00:49:10   kind of clear to me that Apple really [TS]

00:49:13   was not into using some depending on [TS]

00:49:15   someone for something that important [TS]

00:49:16   this was even before it was this before [TS]

00:49:19   Safari I don't know but it is before [TS]

00:49:21   Apple had decided not to use GCC anymore [TS]

00:49:23   and it wanted its own compiler before [TS]

00:49:25   Apple didn't want flash on its platform [TS]

00:49:26   you know before all of these things it [TS]

00:49:29   was already clear that Apple did not [TS]

00:49:30   want to be dependent on someone else [TS]

00:49:32   they wouldn't want to pick Java for [TS]

00:49:33   example because now like you're holding [TS]

00:49:34   to Sun and I sure as hell would want to [TS]

00:49:36   pick c-sharp because now you're [TS]

00:49:37   beholding the Microsoft report that one [TS]

00:49:39   range you know and maybe they could do [TS]

00:49:41   an embrace and extend where they just [TS]

00:49:42   take Java or C sharp and extend it and [TS]

00:49:45   give it a new name and just start [TS]

00:49:46   developing on their own but Apple the [TS]

00:49:48   apple of 2005 was not yet ready to do [TS]

00:49:50   that type of thing like where they just [TS]

00:49:52   said great that's an open source thing [TS]

00:49:53   or that's an open standard we're just [TS]

00:49:54   going to take that and you know rename [TS]

00:49:58   it call it you know Apple something or [TS]

00:50:00   other and just go off in our own [TS]

00:50:01   direction and we will take full [TS]

00:50:02   responsibility for development of it [TS]

00:50:05   the other possibility I thought of was a [TS]

00:50:08   objective-c with garbage collection at [TS]

00:50:10   that point garbage collection was [TS]

00:50:11   clearly telegraphed as something Apple [TS]

00:50:13   was looking into it right I kind of [TS]

00:50:16   rejected that one as well just because [TS]

00:50:17   garbage collection means you don't have [TS]

00:50:19   to deal with manual memory management [TS]

00:50:20   but it still means that when you're [TS]

00:50:23   programming you're like one bad pointer [TS]

00:50:24   dereference away from scribbling all [TS]

00:50:26   over memory like it doesn't change the [TS]

00:50:27   nature of the language it just makes it [TS]

00:50:29   so you probably don't have to deal with [TS]

00:50:30   the memory management yourself but [TS]

00:50:31   you're still like down there at the Bell [TS]

00:50:33   net bare metal and you're still writing [TS]

00:50:34   and portable assembly and you still have [TS]

00:50:37   all those things that make CC you know [TS]

00:50:39   you've got all that the casting and [TS]

00:50:41   there's the node that to their type [TS]

00:50:43   system and there's no native strings in [TS]

00:50:46   the native collection classes it's [TS]

00:50:47   portable assembly and garbage collection [TS]

00:50:48   doesn't change that about the language [TS]

00:50:50   and the final thing was bridges so you [TS]

00:50:55   had things where you could take some [TS]

00:50:56   other higher-level language and Bridget [TS]

00:50:59   to objective-c so spy Objective C Ruby [TS]

00:51:01   cocoa JRuby yeah [TS]

00:51:04   camel bones no one knows what camel [TS]

00:51:06   bones that was a pearl bridge to gogo I [TS]

00:51:08   think slowly but there [TS]

00:51:09   bridges all it's not like I mentioned [TS]

00:51:10   Jerry that's that's one of the big ones [TS]

00:51:12   now and they're actually in some cases [TS]

00:51:13   getting better performance out of the [TS]

00:51:15   bridges than they are but do use bridges [TS]

00:51:17   well so here's what I say about bridges [TS]

00:51:19   or what I said back then in my opinion [TS]

00:51:21   really hasn't changed I even if you are [TS]

00:51:23   writing in a higher-level language the [TS]

00:51:26   API that you're writing to is still [TS]

00:51:27   built for a lower-level language so you [TS]

00:51:30   spend a lot of time building up [TS]

00:51:31   structures that make absolutely no sense [TS]

00:51:33   in the higher-level language just to [TS]

00:51:34   appease the API that was written for the [TS]

00:51:36   lower-level language and and you're not [TS]

00:51:38   using any of the unique features of the [TS]

00:51:40   higher-level language you know what I [TS]

00:51:42   mean [TS]

00:51:42   where if your high-level language [TS]

00:51:43   supports you know arbitrary collections [TS]

00:51:46   of stuff because it's got a native array [TS]

00:51:47   class or it's got you know a native [TS]

00:51:49   associative array structure you're still [TS]

00:51:51   building NS dictionaries to pass down to [TS]

00:51:53   some function or whatever which is [TS]

00:51:54   ridiculous because that's all its entire [TS]

00:51:56   other layer of abstraction that you [TS]

00:51:58   don't need because I look I've already [TS]

00:52:00   got I've already got something that's [TS]

00:52:01   like a dictionary it's part of my [TS]

00:52:02   language why are you making me build [TS]

00:52:03   this object to pet all it's because your [TS]

00:52:05   API is written for Objective C not for [TS]

00:52:07   my thing um [TS]

00:52:08   and the unique features of the language [TS]

00:52:09   like the most least high level languages [TS]

00:52:11   have support for closures and especially [TS]

00:52:13   in a time of you before blocks or [TS]

00:52:14   whatever it's like well can I pass you a [TS]

00:52:17   closure and you can oh no none of our [TS]

00:52:18   api's will ever expect expect to be [TS]

00:52:20   passed the closure because we don't have [TS]

00:52:21   closures because you're writing [TS]

00:52:22   something that's written in Objective C [TS]

00:52:23   and I don't care if you have a closure [TS]

00:52:25   and you know Ruby or Python or something [TS]

00:52:27   like this we're not going to take your [TS]

00:52:28   lamb doesn't do anything with them [TS]

00:52:29   because we have no idea what they are so [TS]

00:52:30   even though you're using a high-level [TS]

00:52:32   language you're not using a higher-level [TS]

00:52:33   language and the final thing is that [TS]

00:52:35   it's not perceived as native you know [TS]

00:52:37   writing programs in this you're just not [TS]

00:52:39   writing to the native API so you'd [TS]

00:52:41   always have these people like oh that's [TS]

00:52:42   fine and good you want to write your [TS]

00:52:43   thing in PI Objective C but I'm writing [TS]

00:52:45   in the native language of the of the [TS]

00:52:46   platform and online will always be [TS]

00:52:48   better and faster now you know even if [TS]

00:52:50   you win some minor benchmarks I'm [TS]

00:52:52   writing real live native cocoa [TS]

00:52:53   applications and you're using a bridge [TS]

00:52:55   so it's got that stigma attached to it [TS]

00:53:01   Copland yes so you want to sponsor [TS]

00:53:05   before yeah yeah yeah because here are [TS]

00:53:06   you ready to get to the meat of this yes [TS]

00:53:09   finally it's only been you know an hour [TS]

00:53:12   I try to go as fast as I can all right [TS]

00:53:14   all right so we'd also like to thank [TS]

00:53:15   Shopify dot-com now we've sold the [TS]

00:53:17   t-shirts for 5x5 but there's a whole lot [TS]

00:53:21   more that you can sell [TS]

00:53:23   Shopify we barely scratched the surface [TS]

00:53:25   of what it can do it's it's really the [TS]

00:53:27   absolute best way to sell anything [TS]

00:53:29   online it's got a super clean design [TS]

00:53:31   makes setting up the store incredibly [TS]

00:53:34   easy every single store from from square [TS]

00:53:36   one no matter what level what plan [TS]

00:53:38   you're on they all come with beautiful [TS]

00:53:40   themes to choose from or you can design [TS]

00:53:42   your own 100% customizable you want to [TS]

00:53:44   use your own HTML and CSS and make it [TS]

00:53:46   look exactly like the rest of your site [TS]

00:53:48   you can do that or you can pick one of [TS]

00:53:51   their designs and spend zero time and [TS]

00:53:53   their designs are pretty awesome there's [TS]

00:53:56   a 30 day free trial which is nice but if [TS]

00:53:59   you use the code five by five you'll get [TS]

00:54:02   three months for free [TS]

00:54:04   that's pretty nice so anyway these guys [TS]

00:54:07   are the absolute best and people say oh [TS]

00:54:10   well that's great if you want to sell [TS]

00:54:11   t-shirts you want to sell physical goods [TS]

00:54:13   and things like that but I just want to [TS]

00:54:15   do electronic stuff I want to sell [TS]

00:54:16   licenses or I want to sell you know [TS]

00:54:18   something that's a purely digital well [TS]

00:54:21   they can do that there there are plugins [TS]

00:54:23   there are add-ons there are features for [TS]

00:54:25   this and you can even write your own if [TS]

00:54:27   you're if you are a software developer [TS]

00:54:28   you can write your own add-on some [TS]

00:54:30   plugins and fully-integrated customize [TS]

00:54:32   it do whatever you want to do see a [TS]

00:54:34   really great stuff so shopping minutes [TS]

00:54:36   of business for life check them out [TS]

00:54:38   Shopify com use code 5x5 three months [TS]

00:54:42   for free check out fig here's what I [TS]

00:54:46   would do John I would say if you don't [TS]

00:54:48   have something that you think of that [TS]

00:54:49   you want to sell today go sign up and by [TS]

00:54:53   the time you're through the sign up [TS]

00:54:54   you'll be building a store and you'll [TS]

00:54:55   just figure it out you'll figure out [TS]

00:54:56   something to sell love these guys there [TS]

00:55:02   did you unplug and replug I did okay I [TS]

00:55:05   always do my new system so it seems like [TS]

00:55:09   finally we can talk about the topic of [TS]

00:55:12   the show well that was part of it was [TS]

00:55:14   the warning that there was this this [TS]

00:55:15   this Coplin like crisis looming and that [TS]

00:55:18   I didn't feel in 2005 that Apple had any [TS]

00:55:21   answer to it like what the heck were [TS]

00:55:23   they going to do right um so I had that [TS]

00:55:26   when I had to think of a title for that [TS]

00:55:27   series it was it was going to be [TS]

00:55:29   avoiding Copeland and then I was going [TS]

00:55:30   to put in a year which was going to say [TS]

00:55:32   like avoiding a Copeland like situation [TS]

00:55:34   coming in the year X [TS]

00:55:36   and this was 2005 and 2007 it was a [TS]

00:55:40   round number you know because of the [TS]

00:55:41   arthur c clarke angle and everything [TS]

00:55:43   like that in part two of the series I [TS]

00:55:44   actually said that I thought 2010 was a [TS]

00:55:46   bit early but I didn't want to use a [TS]

00:55:48   date that was really far off in the [TS]

00:55:49   future because people brains just switch [TS]

00:55:51   off when you when you hear really [TS]

00:55:52   distant dates like if I called it [TS]

00:55:54   avoiding Copeland 2010 or 2020 or [TS]

00:55:56   something through like 2020 that's so [TS]

00:55:57   far away who cares about that you know I [TS]

00:55:59   had to use a year that was close enough [TS]

00:56:01   that people felt people felt that it was [TS]

00:56:04   a pressing issue so I couldn't pick [TS]

00:56:06   something really far away all right but [TS]

00:56:08   so 2010 rolls around and I thought it [TS]

00:56:11   was time for me to revisit the topic [TS]

00:56:12   because I wrote this series of articles [TS]

00:56:14   that was warning about something bad [TS]

00:56:15   that was going to happen I use 2010 in [TS]

00:56:17   the title and here we are in 2010 so how [TS]

00:56:20   did it turn out it's time so I hold [TS]

00:56:21   myself accountable for these you know [TS]

00:56:23   these dire predictions about horrible [TS]

00:56:24   things so so what happened well here's I [TS]

00:56:29   started out that what happened the [TS]

00:56:30   article which is in the show notes with [TS]

00:56:33   recapping the assumptions from the [TS]

00:56:35   original series and the assumptions were [TS]

00:56:36   just three of them one that fully [TS]

00:56:38   automatic memory management will [TS]

00:56:39   eventually be an expected feature of [TS]

00:56:41   desktop application development that [TS]

00:56:44   like this is something that everyone [TS]

00:56:45   just can expect to have when they're [TS]

00:56:46   writing desktop apps too is that the [TS]

00:56:48   rest of the energy will have that will [TS]

00:56:49   have this by 2010 ever the rest of you [TS]

00:56:52   industry will have memory management API [TS]

00:56:54   is in fully automatic memory management [TS]

00:56:55   in their in their development [TS]

00:56:57   environment and the third one was that [TS]

00:56:59   existing technologies in 2005 and any [TS]

00:57:01   sort of obvious evolutions of them [TS]

00:57:03   didn't fit the bill for what Apple [TS]

00:57:05   needed to fix their problem so those are [TS]

00:57:08   my three premises ok so here's what [TS]

00:57:11   happened first premise that that [TS]

00:57:14   everyone is going to have automatic [TS]

00:57:16   memory management for the desktop OS [TS]

00:57:17   applications I think that's pretty much [TS]

00:57:18   panned out there's not too many [TS]

00:57:22   platforms it's just Windows and Apple [TS]

00:57:23   and a couple other esoteric things but [TS]

00:57:25   for the most part yet if you ask [TS]

00:57:26   Microsoft I'm going to write a Windows [TS]

00:57:28   application what should I write with [TS]

00:57:29   they're going to say you see sharp [TS]

00:57:30   Usenet use our new API use a new memory [TS]

00:57:32   manage language that's how you write one [TS]

00:57:33   to other applications so that that one [TS]

00:57:35   panned out I and you know and I think [TS]

00:57:40   it's in a kind of an expected feature [TS]

00:57:41   like you're writing an application [TS]

00:57:42   that's kind of what you expect I think [TS]

00:57:44   when when developers new to iOS come [TS]

00:57:46   along and they realize this in this [TS]

00:57:47   funky language like objective-c I'll try [TS]

00:57:49   that out and they realize [TS]

00:57:49   they got a retaining release their own [TS]

00:57:51   memory a lot of them are like huh you [TS]

00:57:52   know I'm coming off years as a Java [TS]

00:57:54   developer or whatever and this is kind [TS]

00:57:56   of like going backwards to me but [TS]

00:57:57   whatever you know I'll keep going you [TS]

00:57:59   know developer iOS because that's where [TS]

00:58:01   the money is or whatever but I think [TS]

00:58:02   that expectation is in there for most [TS]

00:58:04   developers who have who have lived [TS]

00:58:06   elsewhere who have not been in the Apple [TS]

00:58:08   camp forever and just accepted as the [TS]

00:58:10   way it is is that if you're writing a [TS]

00:58:12   GUI application at this point in time [TS]

00:58:14   people just don't expect to be having to [TS]

00:58:16   deal with with memory manually they just [TS]

00:58:18   you know and I think Java is the big one [TS]

00:58:21   to change that because so many [TS]

00:58:22   developers use Java for so long and it [TS]

00:58:25   really just got everybody out of the C++ [TS]

00:58:26   thing and the only people using C were [TS]

00:58:27   like device driver writers and stuff and [TS]

00:58:30   then the final thing was that there were [TS]

00:58:32   no existing technologies that Apple [TS]

00:58:33   could sort of latch on to to get them [TS]

00:58:35   out of their rut and I don't know if [TS]

00:58:36   there were or not but the bottom line is [TS]

00:58:38   that here we are in 2010 and when you [TS]

00:58:39   want to write a Mac OS 10 application [TS]

00:58:41   Apple says use Objective C and Objective [TS]

00:58:43   C is still objective-c and they've [TS]

00:58:45   enhanced it in many ways but it's still [TS]

00:58:46   C based language it's still sort of the [TS]

00:58:48   same as it ever was in terms of you know [TS]

00:58:52   memory safety and the API that's that's [TS]

00:58:54   tailored to it but the important thing [TS]

00:58:57   that happened that it was not accounted [TS]

00:58:59   for in 2005 series is a little thing [TS]

00:59:01   called the iPhone in iOS [TS]

00:59:02   mmm 2005 maybe that was a glimmer in [TS]

00:59:05   somebody's eye and I remember I'm uh [TS]

00:59:07   back at an old job we used to have a [TS]

00:59:09   whiteboard where we were predict what [TS]

00:59:11   was going to be announced at witc or mac [TS]

00:59:13   world where we'd all put our predictions [TS]

00:59:15   then we get points for you know who got [TS]

00:59:16   what right and I was writing iPhone on [TS]

00:59:18   that board for years before you know [TS]

00:59:19   years before Apple had a phone or even [TS]

00:59:21   talked about a phone or whatever I just [TS]

00:59:23   wrote the word iPhone on there and every [TS]

00:59:24   year was disappoint that there for years [TS]

00:59:26   like nope no iPhone this year you know [TS]

00:59:27   then they came out with it and I [TS]

00:59:29   actually called it iPhone which was [TS]

00:59:30   something that nobody expected I thought [TS]

00:59:31   was just that placeholder but but back [TS]

00:59:33   then no one was thinking about that so [TS]

00:59:35   now iOS came along and mobile [TS]

00:59:39   development developing for these little [TS]

00:59:40   tiny dinky things has sort of pushed [TS]

00:59:42   back the the urgency of this problem [TS]

00:59:46   because basically the hardware regressed [TS]

00:59:47   now we have these amazing Mac's now that [TS]

00:59:49   are just ridiculously fast enough huge [TS]

00:59:52   amounts of memory but people are writing [TS]

00:59:54   applications for iOS devices which have [TS]

00:59:56   a fraction of the memory in a tiny [TS]

00:59:58   fraction of the CPU power and [TS]

00:59:58   fraction of the CPU power and [TS]

01:00:00   you know you know the they don't want to [TS]

01:00:01   use all the CPU carbs that burns your [TS]

01:00:03   battery too much you know so you can't [TS]

01:00:05   like flash for example if a flash ran [TS]

01:00:07   fast enough on a desktop or on an iOS [TS]

01:00:10   device but like I find it runs fast [TS]

01:00:11   enough but if it burns your battery down [TS]

01:00:12   you're like no no stop running I don't [TS]

01:00:14   care that you run fast enough you I [TS]

01:00:15   don't want flash on this device because [TS]

01:00:16   it burns my battery down so there's all [TS]

01:00:17   these new constraints that make it so [TS]

01:00:19   that all the advantages of objective-c [TS]

01:00:22   which people in a chat room I'm sure [TS]

01:00:24   then talking about while we've been [TS]

01:00:27   chatting here all the advantages of [TS]

01:00:28   objective-c are suddenly given a new [TS]

01:00:29   lease on life Objective C is faster than [TS]

01:00:31   these virtual machine-based language is [TS]

01:00:33   closer to the metal there's less [TS]

01:00:35   overhead there's no virtual machine [TS]

01:00:36   running in the background you can you [TS]

01:00:38   can you know manage your memory manually [TS]

01:00:40   down to the byte so you you know you're [TS]

01:00:41   using exactly what you want and all of [TS]

01:00:43   these advantages which became much less [TS]

01:00:45   important on a Mac with 4 gigabytes of [TS]

01:00:46   RAM and a 3 gigahertz 8 core CPU [TS]

01:00:49   suddenly become really important on a [TS]

01:00:50   tiny little iOS device with in the [TS]

01:00:52   beginning was it a 128 megabytes ram 512 [TS]

01:00:56   megabytes some religious as well but to [TS]

01:00:59   the original the original iPhone I think [TS]

01:01:01   the original iPhone was 128 128 no [TS]

01:01:03   kidding something like that I don't know [TS]

01:01:05   what Kapiti would know but and then so [TS]

01:01:06   the CPU is like less than a gigahertz [TS]

01:01:08   dinky little in order or cores that just [TS]

01:01:10   you know have no cpu power compared to [TS]

01:01:13   what was available on a desktop and so [TS]

01:01:15   that was like hey you know we're using [TS]

01:01:16   reusing objective-c and guess what it's [TS]

01:01:18   awesome that's why we're faster than [TS]

01:01:19   everybody that's why we're bettering and [TS]

01:01:21   if we had changed your memory manage [TS]

01:01:22   language there's no way we'd be getting [TS]

01:01:23   like c-sharp or net on here and even [TS]

01:01:25   Android trying to bring Java onto it [TS]

01:01:27   like well we're gonna have a native SDK [TS]

01:01:28   too if you want to do games and stuff [TS]

01:01:30   because we know those are too slow and [TS]

01:01:31   Java so suddenly this this thing it was [TS]

01:01:34   a problem for Apple it's got a new lease [TS]

01:01:35   on life hey you know everyone's happy [TS]

01:01:37   again don't worry about it guys you know [TS]

01:01:38   we the subject you see turned out to be [TS]

01:01:40   great move didn't it well I don't think [TS]

01:01:42   I don't think that was a strategy I [TS]

01:01:43   think they had no alternative but what [TS]

01:01:45   you know what I'm going to say is I [TS]

01:01:47   that's that's all well and good but [TS]

01:01:48   they're kind of back in the same [TS]

01:01:50   situation they or maybe they reset the [TS]

01:01:52   clock a little bit but that trend line [TS]

01:01:54   of more abstraction over time is not [TS]

01:01:56   going away even though there's a little [TS]

01:01:57   bump in the road here that trend line [TS]

01:01:58   keeps going and at this point they're [TS]

01:02:00   kind of in the same situation on the [TS]

01:02:02   mobile platform because don't all the [TS]

01:02:03   other mobile platforms such as they are [TS]

01:02:05   offering manage memory manage language [TS]

01:02:08   and API I could be right for Android you [TS]

01:02:09   right in their little you know Java [TS]

01:02:11   dalvik VM thing I don't call [TS]

01:02:12   for licensing reasons but you write your [TS]

01:02:15   applications in Java and Windows Phone I [TS]

01:02:17   think they want you to write in c-sharp [TS]

01:02:18   or maybe they'll let you write in [TS]

01:02:20   Silverlight even or whatever then you [TS]

01:02:21   have things like palm with the webOS [TS]

01:02:22   where you're writing in like JavaScript [TS]

01:02:24   and web technologies all those are [TS]

01:02:26   memory manage language and API so here's [TS]

01:02:27   apple without a memory manage language [TS]

01:02:29   an API on the mobile platform and right [TS]

01:02:32   now I think it's still an advantage for [TS]

01:02:34   them because their devices are faster [TS]

01:02:35   better have better battery life and [TS]

01:02:36   everything like that but everyone else [TS]

01:02:38   has not it chosen to go with that like [TS]

01:02:40   they have some sort of native SDK where [TS]

01:02:42   you can do games and stuff but they're [TS]

01:02:43   trying to say no if you're right if [TS]

01:02:44   you're writing a GUI application for our [TS]

01:02:46   mobile OS use this memory manage [TS]

01:02:48   language used as memory manage API and [TS]

01:02:50   is that why they're slower now maybe but [TS]

01:02:53   you know sometimes being slower pays off [TS]

01:02:56   in the long run like Mac OS 10 in courts [TS]

01:02:59   where their their display layer was much [TS]

01:03:00   lower than everybody else especially in [TS]

01:03:01   the early days but it pays off when the [TS]

01:03:03   hardware finally caught up to it now [TS]

01:03:04   they don't have to do it through this [TS]

01:03:05   painful revision of the display layer [TS]

01:03:07   like Microsoft has been going through [TS]

01:03:08   you know getting rid of GDI and [TS]

01:03:09   replacing it with whatever the heck [TS]

01:03:10   their acronyms is that replaces GDI so [TS]

01:03:13   when FX I know maybe some of the chat [TS]

01:03:15   room knows but this if they're having a [TS]

01:03:18   long painful process of changing their [TS]

01:03:19   display layer from the old version to [TS]

01:03:21   the new version whereas Apple shipped [TS]

01:03:23   Mac OS 10 with a sort of next-generation [TS]

01:03:24   display layer from day one it was slow [TS]

01:03:26   as molasses but eventually the Arbour [TS]

01:03:29   caught up and now Apple sitting pretty [TS]

01:03:30   and Microsoft still struggling the chat [TS]

01:03:32   room says WPF will windows presentation [TS]

01:03:34   foundation I think that's a multiple use [TS]

01:03:37   acronym where it applies to both the API [TS]

01:03:38   and the and the API layer and the driver [TS]

01:03:42   layer really right so I think this is [TS]

01:03:47   still a problem and that's what more or [TS]

01:03:49   less what I said in the revisit article [TS]

01:03:51   is that okay so you you delayed this [TS]

01:03:53   problem somewhat but the scary thing is [TS]

01:03:56   that in 2010 I looked again at what what [TS]

01:03:58   are the alternatives what are you going [TS]

01:04:00   to do about this and there are don't [TS]

01:04:02   seem to be many more choices the only [TS]

01:04:04   thing I would say about Apple's choices [TS]

01:04:06   now is that Apple has proven itself to [TS]

01:04:09   be competent enough to have more options [TS]

01:04:12   like it's we've seen where it can take a [TS]

01:04:15   technology from somebody else like KHTML [TS]

01:04:17   from the KDE initiative and make WebKit [TS]

01:04:21   out of it and just saying oh we're going [TS]

01:04:22   to own this from now on we're going to [TS]

01:04:23   drive it we're going to fork your thing [TS]

01:04:24   I don't know if they consider it a fork [TS]

01:04:25   we're going to take your code [TS]

01:04:26   and we're going to be the driving force [TS]

01:04:28   behind development from it from now on [TS]

01:04:30   and we're going to build it into a [TS]

01:04:31   world-class browser engine called WebKit [TS]

01:04:33   we're going to give it a name we're [TS]

01:04:35   going to rebrand it we're still going to [TS]

01:04:36   be open source but still share with you [TS]

01:04:37   or whatever but we're not waiting for [TS]

01:04:39   you we're not waiting for KDE people you [TS]

01:04:40   know oh is it okay if we put this [TS]

01:04:41   pageant no we're just plowing ahead as [TS]

01:04:43   fast as we possibly can and we're going [TS]

01:04:45   to do our thing and they decided to do [TS]

01:04:47   with their compiler too they said well [TS]

01:04:48   GCC you know it's nice that we had that [TS]

01:04:51   for all those years but you guys aren't [TS]

01:04:53   as receptive for the kind of changes [TS]

01:04:55   that Apple needs and so we're just going [TS]

01:04:57   to you know say thanks but no thanks [TS]

01:04:58   we're gonna make our own compiler will [TS]

01:05:00   make our compiler you know command-line [TS]

01:05:01   compatible the GCC so we can build all [TS]

01:05:03   our old programs with it but we're just [TS]

01:05:04   going to go off in our own direction so [TS]

01:05:06   they made you know they took the LLVM [TS]

01:05:07   guys and made a new compiler based on [TS]

01:05:09   that and they're you know it's a long [TS]

01:05:12   difficult process to do that but all [TS]

01:05:14   these technologies have to do with C [TS]

01:05:16   based things and not memory manage [TS]

01:05:18   languages but it does show that they can [TS]

01:05:19   take someone else's project and just [TS]

01:05:21   take it over a hundred percent say we're [TS]

01:05:23   gonna we can hey we got it from here so [TS]

01:05:25   now maybe they have more options in [TS]

01:05:28   terms of all right so can Apple take [TS]

01:05:31   c-sharp and just say thanks Microsoft [TS]

01:05:32   but we're gonna go on our own direction [TS]

01:05:34   with this thanks for giving us a good [TS]

01:05:35   start you figured out a lot of the [TS]

01:05:36   problems we're just going to make a new [TS]

01:05:37   language and called you know Apple P [TS]

01:05:39   sharp or something like that right and [TS]

01:05:41   and make our own language alright so but [TS]

01:05:44   the language is just one part of the [TS]

01:05:46   equation I think if they make a new [TS]

01:05:47   language it doesn't buy you anything you [TS]

01:05:48   need a new API a new API that's built [TS]

01:05:51   for that language right so that your [TS]

01:05:53   programs become shorter that you need [TS]

01:05:55   fewer API calls fewer instructions that [TS]

01:05:57   you take advantage of all the native [TS]

01:05:58   aspects of this fancy new high-level [TS]

01:06:00   language that you've got to make [TS]

01:06:01   programmers lives easier and and the [TS]

01:06:04   final difficult bit is even after you've [TS]

01:06:07   done those two things even if you pick a [TS]

01:06:09   language is the most awesome language [TS]

01:06:10   everyone everybody loves it [TS]

01:06:11   and you you know you own it you control [TS]

01:06:13   and you made it so great that just [TS]

01:06:14   people can't even believe how awesome it [TS]

01:06:15   is you make a new API built on like wow [TS]

01:06:17   I could write a program in this let this [TS]

01:06:19   API there's like a hundred times shorter [TS]

01:06:21   than the cocoa application because all [TS]

01:06:23   this stuff that you had to do in cocoa [TS]

01:06:24   is just not it's just noise you know [TS]

01:06:25   what stuff disappears all that [TS]

01:06:27   marshalling of arguments and and [TS]

01:06:28   creating those NS dictionaries and [TS]

01:06:30   making any string objects and like no [TS]

01:06:32   it's all of it doesn't language you get [TS]

01:06:33   native strings we got native collection [TS]

01:06:35   classes we got regular expressions built [TS]

01:06:36   into the syntax we just got everything [TS]

01:06:38   you know forget about that stuff [TS]

01:06:40   making objects and classes everything is [TS]

01:06:41   great then you need to say okay well [TS]

01:06:45   you've got these great things but you've [TS]

01:06:46   got a bunch of developers who are [TS]

01:06:47   writing objective-c cocoa apps who know [TS]

01:06:49   Objective C really well and like cocoa [TS]

01:06:50   how you can get them to say okay well we [TS]

01:06:54   would like you to write your programs in [TS]

01:06:56   a different language now using a [TS]

01:06:57   different API that you've never heard of [TS]

01:06:59   and you can't really port your old [TS]

01:07:01   programs to it so we really kind of like [TS]

01:07:03   you just like rewrite them so maybe for [TS]

01:07:05   the next version just do it in this [TS]

01:07:07   different language and start over from [TS]

01:07:08   scratch it is really really difficult to [TS]

01:07:10   transition developers and to keep all [TS]

01:07:12   your existing applications running and [TS]

01:07:14   keep everybody happy just ask Microsoft [TS]

01:07:15   Microsoft is spending I think it's got [TS]

01:07:17   to be at least a decade at this point [TS]

01:07:18   they built this infrastructure they're [TS]

01:07:21   saying okay please people stop writing [TS]

01:07:23   to the win32 API stop writing MFC [TS]

01:07:25   application to stop writing whatever you [TS]

01:07:27   know please use our new API is they're [TS]

01:07:28   really good I swear [TS]

01:07:29   you should use them and then they would [TS]

01:07:31   say but of course well when we ship [TS]

01:07:32   Windows or Windows applications are [TS]

01:07:34   still going to be written with the old [TS]

01:07:35   api's but no you should use them because [TS]

01:07:37   they'll be really good for you we can't [TS]

01:07:39   write into an Explorer using them [TS]

01:07:40   because you know they just wouldn't work [TS]

01:07:41   and yet Windows Explorer won't be [TS]

01:07:43   written using them and ya know none of [TS]

01:07:44   the applications in the operating system [TS]

01:07:45   were written using them but now you [TS]

01:07:46   should use them because they're really [TS]

01:07:48   great and you don't have to worry about [TS]

01:07:49   memory and it's just been a terrible [TS]

01:07:51   terrible slog to try to get their [TS]

01:07:53   developers onto this new API which at [TS]

01:07:55   this point is like pretty darn mature [TS]

01:07:57   and has some great new API is that have [TS]

01:07:59   advantages yeah over over those other [TS]

01:08:02   things with it like yeah but I have a [TS]

01:08:03   working application it uses the old API [TS]

01:08:05   and as long as you don't make the old [TS]

01:08:06   API stop I'm going to keep using that so [TS]

01:08:09   I think Apple has gotten a little [TS]

01:08:12   reprieve here but they the problem still [TS]

01:08:17   exists and this is where people start [TS]

01:08:20   flipping out if they're not already [TS]

01:08:21   flipping out in the chatroom is that [TS]

01:08:23   they're gonna there we will swear up and [TS]

01:08:24   down that what I'm saying is nonsense [TS]

01:08:27   that Objective C is perfectly fine in [TS]

01:08:29   fact it's awesome in fact objective-c is [TS]

01:08:30   the reason why writing for a Mac OS 10 [TS]

01:08:32   is better than writing for other [TS]

01:08:33   platforms or that the Koki API is are [TS]

01:08:35   the reason for writing you know [TS]

01:08:36   objective-c all those faults you talked [TS]

01:08:39   about they seem theoretically important [TS]

01:08:41   but really in practice they're they're [TS]

01:08:44   you know they're not a problem if our [TS]

01:08:45   experience Objective C developers and [TS]

01:08:47   Apple has been revising the languages [TS]

01:08:48   and they added blocks down at the sea [TS]

01:08:50   level and everything and they added you [TS]

01:08:51   know synthesized properties and all [TS]

01:08:52   these awesome things and fast [TS]

01:08:53   raishin is just it's actually [TS]

01:08:55   progressing we've got a lot of great [TS]

01:08:56   features that you're talking about those [TS]

01:08:57   high level angers we don't need it [TS]

01:08:59   really it's kind of like that Winston [TS]

01:09:02   Churchill joke where the woman I forget [TS]

01:09:04   that I can scrub this joke but he talks [TS]

01:09:06   some woman and offers her money for sex [TS]

01:09:09   and and she refuses oh you know the show [TS]

01:09:13   saved me for myself I don't I don't you [TS]

01:09:15   don't know this joke no song at Rome [TS]

01:09:17   really right [TS]

01:09:18   the punch line is that madam I've [TS]

01:09:21   already we've already established what [TS]

01:09:22   you are now we're just haggling over [TS]

01:09:23   price so go google that and find a joke [TS]

01:09:26   part of it you can make your own joke [TS]

01:09:28   someone says that George Bernard Shaw [TS]

01:09:30   and not Churchill that's probably [TS]

01:09:31   correct um but at any rate if you agree [TS]

01:09:35   with the premise that we talked about [TS]

01:09:36   earlier about abstraction increasing all [TS]

01:09:38   we're arguing about here is a timeline [TS]

01:09:39   no one is arguing that objective-c is [TS]

01:09:42   going to be it forever or at least I [TS]

01:09:44   don't think any sane people because you [TS]

01:09:46   can't especially in the computer so you [TS]

01:09:47   can't say Objective C will last forever [TS]

01:09:49   our grandchildren's grandchildren will [TS]

01:09:51   be doing writing an objective-c there [TS]

01:09:53   will be dereferencing pointers well they [TS]

01:09:56   will not it's just a matter of the [TS]

01:09:57   timeline and this is the type of thing [TS]

01:09:59   you can't just decide well looks like [TS]

01:10:01   Objective C is kind of spent alone we [TS]

01:10:03   pick something else new it takes [TS]

01:10:05   literally decades or more to build up a [TS]

01:10:08   foundation you can transition to and and [TS]

01:10:11   you can't cheat by making bridges and [TS]

01:10:13   you can't cheat by keeping the old ABI [TS]

01:10:14   I'm putting a new language you just have [TS]

01:10:16   to put in the work to figure out what is [TS]

01:10:18   the next generation of developing for [TS]

01:10:20   our platform going to be like and if [TS]

01:10:22   Apple has some secret answer that [TS]

01:10:23   they're that they're working on inside [TS]

01:10:25   the the corporation I don't know about [TS]

01:10:27   it I didn't know about in 2005 I still [TS]

01:10:29   don't know about it maybe they have a [TS]

01:10:30   skunkworks project that's been going on [TS]

01:10:31   for 5-10 years that I don't know about [TS]

01:10:33   but I seriously doubt it and I'm really [TS]

01:10:36   concerned that they're not going to have [TS]

01:10:38   an answer and I'm concerned because all [TS]

01:10:39   their competitors have you already paid [TS]

01:10:42   this price or are starting from scratch [TS]

01:10:43   like palm with webOS and don't have to [TS]

01:10:45   deal with this transition you know all [TS]

01:10:47   their competitors are starting at a [TS]

01:10:49   higher level of abstraction in them and [TS]

01:10:51   Apple has tremendous advantages over [TS]

01:10:53   them right now but if they don't you [TS]

01:10:55   know if they do completely squash [TS]

01:10:57   everybody else then everyone for like a [TS]

01:10:58   Dark Age of objective-c where we can off [TS]

01:11:00   this friggin language to a higher-level [TS]

01:11:02   language but if they don't squash [TS]

01:11:03   everybody else eventually they're going [TS]

01:11:05   to be in that Coppola Mike situation [TS]

01:11:06   where everybody else has [TS]

01:11:07   and they're looking crappy and [TS]

01:11:08   developers like ya iOS I was making a [TS]

01:11:11   lot of money on that back and you know [TS]

01:11:12   the first decade of the 2000s but [TS]

01:11:14   nowadays just I can't deal with this [TS]

01:11:16   this whole memory thing is just so much [TS]

01:11:17   easier to write you know programs in [TS]

01:11:20   these other languages and api's I have [TS]

01:11:21   to ride half as many lines of code then [TS]

01:11:23   I have to deal with all those argument [TS]

01:11:24   marshalling and all this ridiculous you [TS]

01:11:25   know strange objective-c stuff is just [TS]

01:11:28   BS these days I shouldn't have to deal [TS]

01:11:30   with that uh and that's what I'm worried [TS]

01:11:32   about with it with the Copeland 2010 [TS]

01:11:34   thing apparently I was way off on a [TS]

01:11:36   timeline I didn't see iOS coming I [TS]

01:11:37   didn't see how that was going to give [TS]

01:11:38   them a new lease on life but I think [TS]

01:11:39   it's the problem and no one I have [TS]

01:11:41   talked to has said here's what Apple's [TS]

01:11:46   going to do to get out of it they either [TS]

01:11:47   say this is not a problem or I'll be [TS]

01:11:48   retired by the time it's a problem so I [TS]

01:11:50   don't care which is a valid argument you [TS]

01:11:51   know say hey I'll be retired on an [TS]

01:11:53   island I don't really care what Apple [TS]

01:11:54   does it's not my problem and same thing [TS]

01:11:56   for the people who are running Apple [TS]

01:11:58   they could say that's not going to [TS]

01:11:59   happen on my watch because I'll be [TS]

01:12:01   retired by then but if anyone is looking [TS]

01:12:03   out for the long-term health of the [TS]

01:12:05   company in the flat form I think you [TS]

01:12:07   have to have an answer to this and 2005 [TS]

01:12:10   maybe it was too early to be worrying [TS]

01:12:11   about it but I would say now in 2010 [TS]

01:12:13   despite this iOS diversion someone needs [TS]

01:12:16   to be thinking about this and I have no [TS]

01:12:18   idea what they're going to do and I have [TS]

01:12:19   never heard from anybody something that [TS]

01:12:22   they're going to do that has convinced [TS]

01:12:23   me that they're all set um so that's [TS]

01:12:27   about it I had a whole other section [TS]

01:12:28   here that we just simply do not have [TS]

01:12:30   time for I'm I guess I'll make it into a [TS]

01:12:31   whole other show topic but then that's [TS]

01:12:33   where I mean you can argue about [TS]

01:12:34   programming languages oh so you don't [TS]

01:12:36   even want to go into Perl here that's I [TS]

01:12:39   have a whole section on dynamic [TS]

01:12:41   programming language this is I always [TS]

01:12:44   start my my blog ideas with a title [TS]

01:12:46   because once I have a title that I like [TS]

01:12:49   I will eventually write something about [TS]

01:12:50   it this is my longest-running title ever [TS]

01:12:52   that you have or have not written about [TS]

01:12:54   that I have not written about are you [TS]

01:12:55   going to give it away [TS]

01:12:57   I should just cuz I'm never gonna [TS]

01:12:58   freakin write about it this is kind of [TS]

01:13:01   the imarco thing where I don't want to [TS]

01:13:02   talk about programming languages on like [TS]

01:13:03   our technical article because people get [TS]

01:13:06   too antsy about it and it's not my usual [TS]

01:13:07   thing but the title which no one should [TS]

01:13:09   steal because I swear I'll write about [TS]

01:13:10   this in at least the next decade or two [TS]

01:13:12   is General Dynamics which is a pun that [TS]

01:13:14   normally even get unless you know about [TS]

01:13:15   like defense contractors from the 80s [TS]

01:13:17   but anyway General Dynamics isn't is the [TS]

01:13:19   article [TS]

01:13:20   title and it's about dynamic languages [TS]

01:13:22   and the sad situation of therein but I [TS]

01:13:24   think that should be a separate show top [TS]

01:13:26   okay wait we can do that can do that [TS]

01:13:31   someone's got a General Dynamics made [TS]

01:13:34   the f16 that's right who doesn't know [TS]

01:13:35   General Dynamics children of the 80s [TS]

01:13:37   fans of jet fighter planes and defense [TS]

01:13:40   contractors do you ever make models when [TS]

01:13:42   you were a little kid I did you ever do [TS]

01:13:45   an f-16 and f-18 all Ryu's to be able to [TS]

01:13:48   identify any US military fighter [TS]

01:13:50   aircraft from my lifetime or several [TS]

01:13:53   decades prior why does that not surprise [TS]

01:13:54   me that models of them all in my room I [TS]

01:13:57   wish actually do a whole show on the [TS]

01:13:59   Joint Strike Fighter [TS]

01:14:00   that is a great gosh I can't wait for [TS]

01:14:02   that one yeah that's a great example of [TS]

01:14:04   it it's a great analogy to Apple and the [TS]

01:14:06   technology market now here come the [TS]

01:14:09   emails from the people who say you [TS]

01:14:10   should totally do a show you know or the [TS]

01:14:14   Osprey a couple of the military wonks [TS]

01:14:16   print out the Osprey that gets more into [TS]

01:14:18   like that's more show about government [TS]

01:14:19   waste I think then about military here [TS]

01:14:22   so let's wrap this up with it something [TS]

01:14:25   positive for change why would we do that [TS]

01:14:28   because I think I think there are a lot [TS]

01:14:30   of people out there now here's my take [TS]

01:14:32   on on objective-c [TS]

01:14:34   I could never get used to the syntax of [TS]

01:14:37   it I just don't like it I don't like the [TS]

01:14:39   way it looks and this is weird this is [TS]

01:14:41   really weird because say well who cares [TS]

01:14:44   how it looks it's how does it feel any [TS]

01:14:45   program etre you didn't give it enough [TS]

01:14:47   time or you didn't give it a chance well [TS]

01:14:48   I did I've written a bunch of absent [TS]

01:14:51   objective-c and I you know you just at [TS]

01:14:55   least in my case you know I'm the kind [TS]

01:14:57   of person where if I don't like the the [TS]

01:15:01   look of the IDE or I don't like the text [TS]

01:15:03   editing window or I don't like the color [TS]

01:15:05   of the terminal and the fonts I I won't [TS]

01:15:07   be able to do anything I'll have to get [TS]

01:15:09   them go can't do this is this is [TS]

01:15:11   actually a Joint Strike Fighter [TS]

01:15:12   connection I'm not will not explain it [TS]

01:15:14   but people knit in the chat room Joint [TS]

01:15:16   Strike Fighter not liking how something [TS]

01:15:19   looks yes I will add that to the show [TS]

01:15:21   non-school do it and follow up okay so [TS]

01:15:24   in that situation for me that the way [TS]

01:15:26   something looks the way the interaction [TS]

01:15:28   all of that's very important and [TS]

01:15:31   although I certainly understand the [TS]

01:15:33   value of [TS]

01:15:34   programming language like Perl it's it's [TS]

01:15:37   not something that's enjoyable to read I [TS]

01:15:38   was just sitting down with with the guru [TS]

01:15:40   the guy who is the biggest mentor in my [TS]

01:15:44   programming life I was just having lunch [TS]

01:15:48   with him it's like our goodbye lunch [TS]

01:15:50   because I won't see him again because [TS]

01:15:51   we're moving to Austin I'll probably [TS]

01:15:52   never see him again [TS]

01:15:53   I mean Nevers a long time this person [TS]

01:15:54   have a name or is it like secret that's [TS]

01:15:56   why we have to calm the goo he's known [TS]

01:15:57   as the Guru and to you or worldwide as [TS]

01:16:03   if that's either of those do things have [TS]

01:16:05   a different meaning and both alright [TS]

01:16:08   I mean worldwide the the only I'm I am [TS]

01:16:12   the only way that people would know [TS]

01:16:13   about him [TS]

01:16:14   so therefore worldwide known as the Guru [TS]

01:16:17   I thought he was one of the very first [TS]

01:16:19   picture of him that I'll add to the show [TS]

01:16:21   notes there's a picture of him in my [TS]

01:16:24   Flickr so he's taught me tons of [TS]

01:16:29   information Tom to Ed so much so we were [TS]

01:16:31   having lunch at Chipotle and we were we [TS]

01:16:35   were talking about something sort of [TS]

01:16:37   sideways related to this and you know [TS]

01:16:40   for him he excels at all programming [TS]

01:16:45   languages at you know he operates it [TS]

01:16:47   very much a genius level and for him [TS]

01:16:50   it's simply it's more like a different [TS]

01:16:52   kind of muscle memory he types one way [TS]

01:16:54   in one app another programming language [TS]

01:16:57   rather a different way in another it's [TS]

01:16:59   just the minor differences just okay [TS]

01:17:01   that's how I do it here I I can't I [TS]

01:17:03   don't get into I like I want to like the [TS]

01:17:06   language that I'm using visually as well [TS]

01:17:08   I want to like the way it looks on the [TS]

01:17:10   screen I want to enjoy reading it is [TS]

01:17:12   that weird maybe so for me when I look [TS]

01:17:15   at a language like Objective C my first [TS]

01:17:17   response is that it's ugly and they'll [TS]

01:17:20   use something else [TS]

01:17:23   is that weird that's not weird I mean [TS]

01:17:26   that that also explains very neatly why [TS]

01:17:29   you like Ruby yeah that's the main [TS]

01:17:32   reason I like Ruby this is definitely an [TS]

01:17:34   aesthetic appeal that I I don't I I [TS]

01:17:38   actually might like the language or not [TS]

01:17:40   I admire people who can deal with it I [TS]

01:17:43   think they're they should be applauded [TS]

01:17:44   to deal with something as [TS]

01:17:46   ugliest objective-c because its if you [TS]

01:17:49   if you're willing to do that if you're [TS]

01:17:50   willing to to set aside everything that [TS]

01:17:53   that your heart and and soul will tell [TS]

01:17:56   you it's a very powerful language you [TS]

01:17:58   could do amazing things like make a fart [TS]

01:18:00   AB for you know million dollars among [TS]

01:18:04   other really good apps I mean you know [TS]

01:18:05   obviously the the amazing apps that are [TS]

01:18:08   out there I think John are a testament [TS]

01:18:10   to what can be done with Objective C [TS]

01:18:12   first so forget the syntax part forget [TS]

01:18:15   that it's a a rough language to to get [TS]

01:18:17   into if you can get over that hurdle [TS]

01:18:20   which admittedly I would never quite did [TS]

01:18:23   if you can do that the whole world is is [TS]

01:18:27   right there at your fingertips you can [TS]

01:18:29   make apps you can make apps that help [TS]

01:18:32   people apps that are just make you money [TS]

01:18:34   apps that are useful educational great [TS]

01:18:36   games what's wrong with that who cares [TS]

01:18:40   if you if you get a deal with this all [TS]

01:18:42   these things you pointed out who cares [TS]

01:18:43   it just so what it says par for the [TS]

01:18:46   course and so what if this is all we [TS]

01:18:48   ever have why is that so mad well who [TS]

01:18:49   cares now but what I'm saying is [TS]

01:18:51   eventually people will care and to think [TS]

01:18:53   otherwise it's just absolutely [TS]

01:18:54   ridiculous on its face it eventually you [TS]

01:18:56   know maybe in the people who are live [TS]

01:18:58   today won't care is all be dead but [TS]

01:18:59   eventually it will be ridiculous it'll [TS]

01:19:01   be ridiculous as today if you say well [TS]

01:19:03   if you want to write an application for [TS]

01:19:04   the iPhone you got to do it in machine [TS]

01:19:05   code so get out your hex out that would [TS]

01:19:07   be very ridiculous that would be a sir [TS]

01:19:09   or Eve or even assembly right but if you [TS]

01:19:12   if we were having this conversation back [TS]

01:19:13   in the 60s when you know computers were [TS]

01:19:15   just coming online or whatever and I [TS]

01:19:17   said well you know of course we write [TS]

01:19:18   all our programs here assembly here in [TS]

01:19:19   the military for this targeting computer [TS]

01:19:21   or whatever and yeah assembly is a pain [TS]

01:19:24   but if you can get past it boy you can [TS]

01:19:25   do some great things and it's just you [TS]

01:19:26   can really get down to the bare metal [TS]

01:19:27   and it of assemblies all we ever have I [TS]

01:19:30   think that'll be fine in 2010 we're [TS]

01:19:31   still writing an assembly everybody will [TS]

01:19:33   be fine with it that's not how progress [TS]

01:19:34   works that's not how humanity works [TS]

01:19:36   people will not be fine with Objective C [TS]

01:19:38   forever so do you do you then suspect [TS]

01:19:40   that at some point it's Apple that's [TS]

01:19:43   going to take charge of this or do you [TS]

01:19:44   think it'll come you know remember what [TS]

01:19:46   was the name of that development [TS]

01:19:48   language there's a full-on IDE was a [TS]

01:19:50   code warrior code word I knew people [TS]

01:19:52   that were using code warrior swore by [TS]

01:19:54   code warrior and really resisted [TS]

01:19:57   everything that came out when Xcode came [TS]

01:19:59   out because [TS]

01:20:00   a new matter they didn't have a new [TS]

01:20:01   language but they had a new API API and [TS]

01:20:04   new and used this uses our power plant [TS]

01:20:06   API instead of writing to the Mac [TS]

01:20:08   toolbox which had that line the Mac [TS]

01:20:09   toolbox with ridiculously creaky and [TS]

01:20:11   they built a higher level API on top of [TS]

01:20:13   the same language I think it all depends [TS]

01:20:15   on who's steering Apple at the point [TS]

01:20:18   that the crisis starts till doom I think [TS]

01:20:20   it's irresponsible for the company not [TS]

01:20:21   to have a project about this already [TS]

01:20:23   maybe they do I can't say that they [TS]

01:20:24   don't because if they did it's not like [TS]

01:20:26   they're going to tell people that they [TS]

01:20:26   do maybe they've tried seven different [TS]

01:20:28   directions and they're still [TS]

01:20:29   experimenting internally but I'm going [TS]

01:20:31   to say that if at this point Apple does [TS]

01:20:33   not have some sort of plan in motion [TS]

01:20:35   with people doing actual work to [TS]

01:20:37   figuring out what's after objective-c [TS]

01:20:39   and cocoa they're being irresponsible as [TS]

01:20:41   a corporation despite the fact that all [TS]

01:20:43   the leadership who are there now will [TS]

01:20:44   likely be retired when it's time to [TS]

01:20:46   execute in that plan they need to be [TS]

01:20:47   thinking about it now I certainly hope [TS]

01:20:49   to be alive at the point where I think [TS]

01:20:51   it will be embarrassing to ask people to [TS]

01:20:54   write an objective-c in cocoa for iOS [TS]

01:20:57   and the only way that's not going to be [TS]

01:20:58   embarrassing is if Apple comes to [TS]

01:21:00   dominate so thoroughly that like I said [TS]

01:21:02   it's the I think this will definitely be [TS]

01:21:04   the show title the Dark Age of [TS]

01:21:05   objective-c starts to rain sort of like [TS]

01:21:07   a Dark Age of Windows when there was no [TS]

01:21:08   progress in you know web technology [TS]

01:21:11   because ie was dominant and not a lot of [TS]

01:21:13   progress on desktop applications because [TS]

01:21:15   they were just you know increasingly [TS]

01:21:17   complicated Windows applications I just [TS]

01:21:19   every version they had a ten new buttons [TS]

01:21:20   to the toolbar and it took Apple to come [TS]

01:21:22   along and sort of wipe the slate clean [TS]

01:21:23   and say here's what you can do with [TS]

01:21:25   application design that's different and [TS]

01:21:26   you know here's what you can do with web [TS]

01:21:28   browser design with uh with Mozilla and [TS]

01:21:30   everything what technologies can [TS]

01:21:32   actually be cool if you're not stuck in [TS]

01:21:33   IE forever I don't want to see a Dark [TS]

01:21:35   Age of objective-c but it's the only way [TS]

01:21:37   that Objective C is not going to hit a [TS]

01:21:39   crisis point in my lifetime assuming I [TS]

01:21:41   live to a ripe old age and so I think [TS]

01:21:44   there needs to be a plan and I have no [TS]

01:21:46   idea what that good it should be but it [TS]

01:21:48   needs to be something hopefully uh [TS]

01:21:51   hopefully they're on the ball do you [TS]

01:21:54   think you think when they do do it that [TS]

01:21:56   it will be a universal transition the [TS]

01:21:59   way that it was with Xcode in the past [TS]

01:22:01   like this is the way to build it or do [TS]

01:22:03   you think that they'll have [TS]

01:22:04   complementary tools maybe or [TS]

01:22:06   complementary compatibility so that so [TS]

01:22:09   that when you want to make this [TS]

01:22:10   transition it's your choice you can use [TS]

01:22:12   whatever in [TS]

01:22:14   structure coding infrastructure you'd [TS]

01:22:16   like to use so if if I am the most [TS]

01:22:19   optimistic and I say let's imagine that [TS]

01:22:20   the most competent incarnation of Apple [TS]

01:22:23   is the one executing this plan it's [TS]

01:22:24   because the most competent Carnation of [TS]

01:22:26   Apple is really really good at [TS]

01:22:28   everything you need to be good at to do [TS]

01:22:30   this they're really good at transitions [TS]

01:22:32   that's how many transitions they've done [TS]

01:22:33   from different CPUs at different [TS]

01:22:35   languages different IDs they are really [TS]

01:22:37   good at transitions at their best they [TS]

01:22:38   can pull off amazing things and no one [TS]

01:22:40   imagined like changing the entire CPU [TS]

01:22:41   architecture of their entire line of [TS]

01:22:43   products like without a little bump even [TS]

01:22:45   that was just pretty amazing like they [TS]

01:22:47   can pull it off they can do those types [TS]

01:22:49   of things if that is the crew running [TS]

01:22:51   the show and if they have a good plan [TS]

01:22:53   the big you know because it's going to [TS]

01:22:54   take years and years to do this no [TS]

01:22:55   matter what if they start early enough [TS]

01:22:57   and have a good plan and aren't acting [TS]

01:22:59   out of panic or desperation and have [TS]

01:23:00   good leadership I think they can pull it [TS]

01:23:02   off with it with a complete transition [TS]

01:23:04   sort of the way they put everyone on [TS]

01:23:05   decks code right it was a little bit [TS]

01:23:07   bumpy in the beginning right but they [TS]

01:23:09   just they were slow and methodical and [TS]

01:23:10   you know it Xcode didn't even exist they [TS]

01:23:12   said stop using power plant we will [TS]

01:23:15   support you with carbon for a little [TS]

01:23:16   while but like seriously guys stop using [TS]

01:23:18   power plant you should really use [TS]

01:23:19   project builder we don't want you to [TS]

01:23:21   build your application with metro works [TS]

01:23:22   but it will still work for a little [TS]

01:23:23   while and eventually like no seriously [TS]

01:23:24   forget about that Metro work stop no [TS]

01:23:26   more power plant I'm serious go on to [TS]

01:23:28   project builder and byways there's [TS]

01:23:29   nothing called Xcode forget about [TS]

01:23:30   project builder I know you neckties are [TS]

01:23:32   cranky but we're making a new app called [TS]

01:23:33   Xcode and it'll be cool and you know [TS]

01:23:35   they go with that for a few years and [TS]

01:23:36   they say that Carbon thing we need to go [TS]

01:23:38   you need to cut that out besides legacy [TS]

01:23:40   crap or moving away from it [TS]

01:23:41   Carbon guys sorry you know your apps [TS]

01:23:43   will still work but you're not getting [TS]

01:23:44   on the 64 bit train with us and Xcode [TS]

01:23:46   we're going to do it as a single indoor [TS]

01:23:47   interface it looks like iTunes and [TS]

01:23:48   you're going to deal with it and we're [TS]

01:23:49   just all in the Train everybody on the [TS]

01:23:51   Xcode Train now and by the way that [TS]

01:23:53   compiled that you like GCC we've got a [TS]

01:23:54   new one forget about that ECC thing [TS]

01:23:55   we're going to transition to a new one [TS]

01:23:57   takes years and years and years in [TS]

01:23:59   incremental steps but everybody gets [TS]

01:24:01   funneled into it so I think when they do [TS]

01:24:02   undertake this procedure it's going to [TS]

01:24:05   be a big giant funnel and it's going to [TS]

01:24:06   be like alright guys let's start you [TS]

01:24:07   know start turning off the lights on [TS]

01:24:09   that old stuff but you're going to be [TS]

01:24:10   around for years and years but it's just [TS]

01:24:12   going to be like powerplant and carbon [TS]

01:24:14   and you know project builder and all the [TS]

01:24:17   other stuff that you like and GCC it's [TS]

01:24:19   not going to go away today it's not [TS]

01:24:20   going to go away tomorrow but we're [TS]

01:24:21   telling you it's a big long funnel and [TS]

01:24:23   we're all going down the chute to the [TS]

01:24:24   slaughter or wherever you want to think [TS]

01:24:26   about these are all bad analogies [TS]

01:24:27   and everyone together in a line and [TS]

01:24:30   we're all going to transition to you [TS]

01:24:31   know Apple basic or the hell they're [TS]

01:24:32   going to come up with them is going to [TS]

01:24:34   be a new API and Coco's great and [TS]

01:24:36   everything and we'll still do bug fixes [TS]

01:24:37   but I'm sorry but coco is not making the [TS]

01:24:39   transition to 128 bit which is [TS]

01:24:42   ridiculous yeah people think I'm serious [TS]

01:24:44   about hundred twenty but but anyway [TS]

01:24:46   that's the type of thing you're gonna [TS]

01:24:47   but that's Apple at its best where they [TS]

01:24:49   have a plan takes many years to execute [TS]

01:24:51   and they do it in incremental steps and [TS]

01:24:53   people grumble along the way but in the [TS]

01:24:54   end everyone comes out the other side [TS]

01:24:55   happier that is the best case scenario [TS]

01:24:58   and I think they need to be working on [TS]

01:25:01   that now [TS]

01:25:02   all right I can't disagree I really [TS]

01:25:06   can't disagree with you I like doing it [TS]

01:25:09   when I can I try no I I want to I can't [TS]

01:25:12   you can disagree with me on that then [TS]

01:25:14   iMac languages yeah well will will have [TS]

01:25:15   a lot to say then that's that's not say [TS]

01:25:18   you're using Perl it's not nuts must be [TS]

01:25:22   golden handcuffs thing we'll get to that [TS]

01:25:23   the faintest thing ever [TS]

01:25:25   alright let's wrap this up thanks [TS]

01:25:27   everybody for tuning in thanks to [TS]

01:25:29   Shopify dot-com remember use code 5x5 [TS]

01:25:32   and you'll get three months free thanks [TS]

01:25:34   to Rackspace comm slash king of the apps [TS]

01:25:36   you could win ten we do a lot we give [TS]

01:25:38   you we give you $10,000 in three months [TS]

01:25:40   free do as much as we can here and [TS]

01:25:42   thanks to John siracusa there's no Z and [TS]

01:25:45   last time you said that follow-up you [TS]

01:25:47   said could you spell my name instead of [TS]

01:25:51   just saying there's no Z it's s IRAs IRA [TS]

01:25:55   see us on Twitter I'm Dan benjamin on [TS]

01:26:00   twitter and we appreciate you listening [TS]

01:26:02   you can check out 5x5 TV here a whole [TS]

01:26:05   bunch of other shows we've just got a [TS]

01:26:07   new show just premiered today with Mike [TS]

01:26:10   Montero it's called let's make mistakes [TS]

01:26:13   so go check that out at 5x5 dot TV [TS]

01:26:15   subscribe and have a good week thanks [TS]

01:26:18   John [TS]

01:26:28   you [TS]