PodSearch

Under the Radar

Under the Radar 2: Time for Swift

 

00:00:00   welcome to under the radar a show about

00:00:02   independent app development I'm Marco

00:00:04   Arment and I'm David Smith under the

00:00:06   radar is never longer than 30 minutes so

00:00:08   let's get started so this week we are

00:00:11   talking about Swift do that lovely

00:00:14   language introduced about Isis about a

00:00:16   year and a half ago now two years ago

00:00:17   yeah almost a year and a half yeah if I

00:00:20   have a brief confession to make

00:00:22   I've never written a single line of

00:00:24   Swift in the last year and a half not a

00:00:27   single one I think I can say the same

00:00:30   thing as long as playgrounds don't count

00:00:32   I wrote a few lines in a playground once

00:00:34   and that was it

00:00:37   beyond that I certainly have written no

00:00:39   Swift code that's gone into an app yeah

00:00:42   and that's I gotta say I almost feel

00:00:45   guilty when I say that like it's this

00:00:47   thing that feels like you know I'm a

00:00:50   fairly committed Apple platform person

00:00:52   like I do a lot of development here this

00:00:54   is where I make my livelihood and this

00:00:56   is their whole big fancy new thing that

00:00:58   has in theory a variety of advantages to

00:01:01   the way that I've developed things in

00:01:03   objective-c but I've never really felt

00:01:06   motivated to learn Swift I think that's

00:01:09   because I don't see how it would make my

00:01:12   apps as they are today

00:01:13   any better and that's kind of a strange

00:01:17   place to find myself that I think my

00:01:19   apps would be but you know just the same

00:01:21   using objective-c that I know so well

00:01:22   but there's always in this back of my

00:01:24   mind like hmm I should be learning Swift

00:01:26   that would probably be better but that's

00:01:29   never happened yeah I kind of feel the

00:01:31   same way it's it's something that I'm

00:01:33   not really against I mean there are some

00:01:35   things about it I don't care for but I'm

00:01:37   sure I get over them you know in

00:01:39   practice once I once I was using the

00:01:41   language full-time and I'm sure there

00:01:42   will come a time where we will we will

00:01:44   switch to it and we will start using a

00:01:46   full time and it will just be normal and

00:01:48   we'll just deal with it but I don't

00:01:49   think the time has yet come where you

00:01:52   need to switch to it if you already have

00:01:54   a code base in objective-c that doesn't

00:01:57   really need to be migrated for any

00:01:58   particular reason or if you already have

00:02:00   a lot of objective-c knowledge and and

00:02:03   your primary goal is to to ship apps

00:02:07   quickly and with little overhead then in

00:02:10   those cases I think it does make sense

00:02:11   to do what we're doing so far and it's

00:02:13   just

00:02:13   you know wait and see it's not that

00:02:15   Swift is is never gonna be a part of our

00:02:18   lives it's just that I don't think

00:02:20   there's a lot of compelling reasons for

00:02:21   us to adopt it yet when we you know when

00:02:24   we already have is this experience and

00:02:26   wisdom and and toolchains and everything

00:02:29   all these things everything's built up

00:02:30   around the other language that we've

00:02:32   known forever yeah and it's funny I was

00:02:34   also a things in preparation to what are

00:02:38   the reasons why I haven't and there's

00:02:40   obviously like the obvious ones if just

00:02:41   like the inertia of having do it done

00:02:43   Objective C for so long and knowing it

00:02:44   like inside and out knowing all we're

00:02:46   all the like the quirks are and all the

00:02:48   problems and when I hit a weird bug I'm

00:02:50   pretty good at finding them in Objective

00:02:53   C if they're you know programming

00:02:54   related rather than logically related

00:02:56   but the thing that also makes me so

00:02:58   nervous about Swift is that it keeps

00:03:00   changing like every time a new version

00:03:03   of Xcode comes out it seems like there's

00:03:04   some new thing in Swift there's some new

00:03:08   syntax there's some new ability there's

00:03:10   some new approach for the way it works

00:03:12   and every time I see one of those I

00:03:14   think of it's like I have this moment of

00:03:16   relief that wow I'm glad I haven't

00:03:18   decided to start learning Swift yet

00:03:21   because it seems like what I would have

00:03:23   learned every time seems it's constantly

00:03:25   being like deprecated going forward and

00:03:28   that makes me so nervous about spending

00:03:30   the time because the reality is like I

00:03:32   have so little time to invest into new

00:03:35   things that aren't just like actually

00:03:37   working that spending time on something

00:03:40   that potentially could be completely

00:03:42   overcome by or not not completely is

00:03:45   probably an extreme but could require me

00:03:47   to go back and change the things that

00:03:49   I've learned or change the code that

00:03:50   I've written is very discouraging yeah

00:03:54   because it seems it seems like churn to

00:03:56   go through this process and you know to

00:03:58   some accessory in our in our profession

00:04:03   you know when when Apple changes the UI

00:04:05   of the entire OS like with iOS 7 and we

00:04:08   have to recreate or redo or

00:04:10   reimplemented unlike it never feels

00:04:13   great to be forced to to repeat work or

00:04:17   to be forced to throw away something

00:04:19   that works perfectly well just to do it

00:04:21   some some new way that you didn't really

00:04:23   want to do on the flip side of that you

00:04:26   know a lot of people

00:04:27   and you know myself included I love

00:04:29   deleting deleting code that that is no

00:04:31   longer necessary or you know like once

00:04:33   there's a new ability to do something

00:04:34   like a new API comes out from Apple and

00:04:36   a new OS release that makes a whole

00:04:39   bunch of my code obsolete

00:04:40   I love deleting that old code and

00:04:42   getting rid of it getting it out of my

00:04:43   life and moving on using the new Apple

00:04:46   API assuming it works which isn't always

00:04:48   the case but usually and having less

00:04:50   code demanding she like that part is

00:04:52   nice a lot of programmers myself

00:04:54   included also frequently get the itch to

00:04:55   rewrite things in a better way and that

00:04:59   sometimes that is a good idea it often

00:05:00   isn't it sometimes it's just a big waste

00:05:02   of time and a way to create all your all

00:05:04   your bugs all over again but it

00:05:05   sometimes it is a good idea but I think

00:05:08   with with Swift coming in for Objective

00:05:10   C programmers the the motivation is is

00:05:14   less there at you know and as you said

00:05:16   it is still changing a lot for most of

00:05:18   its first year the tools were still

00:05:21   really immature and we're still having

00:05:23   lots of crashing and performance issues

00:05:25   and and that seems to be resolved so far

00:05:28   from from people who have written Swift

00:05:29   so far who are really into it more than

00:05:31   us it does seem like I've been kind of

00:05:33   like paying attention to what people say

00:05:35   about it what how people report like oh

00:05:37   we converted a big project or we started

00:05:39   that we started and a new project in

00:05:41   Swift and here's how it went for us and

00:05:43   in the early days those stories were

00:05:45   really rough they were the only things

00:05:47   that were really not compelling because

00:05:49   everything was still so immature or

00:05:50   unstable as time has gone on in just a

00:05:53   year and a half which is pretty quick

00:05:54   that has settled somewhat and and a lot

00:05:57   of people are now saying ok now you can

00:05:59   jump in I've done a project on Swift and

00:06:01   it was fine for us so it really did I

00:06:04   think now would be a safe enough time to

00:06:07   jump in and it wouldn't be too

00:06:09   unreasonable but again it comes back to

00:06:11   you know how do we allocate our limited

00:06:13   time and our limited resources and how

00:06:14   much time are we willing to devote to

00:06:16   messing with something that's still new

00:06:19   and immature and and adapting to it as

00:06:22   it changes like to me like I've always

00:06:25   said in the past and we'll talk about

00:06:26   server-side stuff I'm sure many times

00:06:29   but I've always said in the past that my

00:06:30   server-side stuff I want to be very

00:06:32   conservative with especially as you get

00:06:34   lower down the application level stacks

00:06:36   so if you you know if you want to try

00:06:38   out a new you know Web API

00:06:41   cool whatever you know a new new

00:06:42   application-layer thing as you go down

00:06:44   the stack I don't want to be running a

00:06:46   cutting-edge Linux distribution I want

00:06:48   to be running a very conservative OS I

00:06:50   want to be running a very conservative

00:06:52   database you know all like as you get

00:06:54   that low level with like you know the

00:06:57   data layer and the infrastructure layer

00:06:59   of these things I don't want to be on

00:07:01   the cutting edge of anything there

00:07:03   because the cutting edge is where you

00:07:04   get bugs and instability and and you hit

00:07:07   limitations as you move up the stack I

00:07:09   feel like you have more tolerance for

00:07:10   things like that like for risk in those

00:07:12   areas for me the programming language

00:07:15   that you're writing your code in is

00:07:17   pretty low level and with Swift you at

00:07:19   least have the benefit of you can mix it

00:07:21   in slowly and that is ver that it was

00:07:23   very wise of Apple to do there are some

00:07:24   downsides to like things like they

00:07:27   couldn't make as clean of a jump as they

00:07:29   as they might have wanted to because

00:07:30   they have maintained backwards

00:07:31   compatibility with Objective C libraries

00:07:33   and stuff but for the most part I think

00:07:35   that was wise because we can kind of

00:07:37   wade in slowly when we decide that's the

00:07:40   right move but at the same time you know

00:07:43   because of my conservatism in in those

00:07:45   low-level things I don't really see a

00:07:49   huge reason to jump in yet because I

00:07:51   don't want to be programming with a

00:07:53   cutting-edge language and not only for

00:07:55   instability reasons and for for having

00:07:58   to relearn things as they change things

00:08:00   over time not only for those reasons but

00:08:02   also right now we don't really know what

00:08:06   will eventually be known as idiomatic

00:08:07   Swift an idiomatic Swift API design we

00:08:10   don't know those things yet those are

00:08:11   still being worked out a lot of people

00:08:13   and and I'm not one and I don't think

00:08:16   you are one either a lot of people love

00:08:18   being a part of that process of figuring

00:08:20   out what the idioms should be and and

00:08:23   creating helping to create them and

00:08:25   helping to work out how things and

00:08:27   helping to experiment with like oh maybe

00:08:28   we should design api's in this way maybe

00:08:30   the right way to use the language is

00:08:31   this I am NOT into that at all for me I

00:08:34   would rather let that let the smarter

00:08:37   people than me who care a lot more about

00:08:38   language design and who are better at it

00:08:40   than I am

00:08:40   let them figure out the idioms and the

00:08:43   language of design and the API design

00:08:44   and then I want to just take the

00:08:47   finished product and master one thing

00:08:49   that they have figured out over time and

00:08:51   apply that into building apps that I

00:08:53   want so it's like you know I want to

00:08:55   closer to the product building side not

00:08:57   the messing with languages side if that

00:08:59   makes sense yeah cuz I mean the process

00:09:02   of it sounds vaguely interesting like

00:09:05   sort of feel oh let's be let's be part

00:09:07   of the process and you know it seems

00:09:09   like this Swift team is very responsive

00:09:11   and that all those things on that side

00:09:13   seem to be very encouraging in that

00:09:15   regard if you that were something you

00:09:16   were interested in but it's just like

00:09:18   effort going into something that isn't

00:09:21   making my apps better isn't making my

00:09:24   customers happier isn't helping me ship

00:09:26   something more impressive it's like it's

00:09:28   going into something that is kind of

00:09:30   intellectually cool but it kind of feels

00:09:32   it's like the difference between someone

00:09:34   who is in academic versus like who has I

00:09:38   think I'll probably make some more

00:09:39   practical living like I'm very glad

00:09:41   there are people who enjoy that a more

00:09:43   academic side of computer science who

00:09:44   come up with the the new things and push

00:09:49   boundaries and go down ten sort of dead

00:09:51   end roads before they find the thing

00:09:52   that is actually the thing that we're

00:09:55   gonna want to use in practice like I'm

00:09:56   really glad those people exist but it's

00:09:59   a very different thing than with the

00:10:01   skills and the experience and the time

00:10:03   allocation that you would want to do if

00:10:05   you actually have to ship something and

00:10:07   ultimately especially if that thing at

00:10:09   the you ship at the end of the day has

00:10:10   to like make your living then the last

00:10:12   thing you want to be doing is playing

00:10:13   around with stuff that isn't quite baked

00:10:16   or isn't quite to the point that it's

00:10:19   like it's this is exactly the way you do

00:10:20   it because I think in Objective C it's

00:10:22   very established at this point it's an

00:10:24   old enough language and it's use has

00:10:26   been so focused in by Apple and its

00:10:30   benefited from the fact that I think

00:10:31   Apple is the only people who sort of

00:10:33   typically use it in a way that like

00:10:34   language like Java or C has so many

00:10:38   different uses that it's doesn't quite

00:10:41   have that same heavy hand that Apple I

00:10:43   think has been able to bring to it where

00:10:44   as they've improved and changed the

00:10:46   syntax and the details of objective-c

00:10:49   like it is now very finely tuned to go

00:10:52   along with cocoa and it to go along with

00:10:55   iOS and to go along with all of the

00:10:56   things that go into building for apples

00:10:59   platforms that it's very straightforward

00:11:02   like there is probably one way to write

00:11:04   most you know sort of most functions in

00:11:07   most code and once you learn it and once

00:11:09   good at it then you know you're doing

00:11:10   the right thing and the process of

00:11:12   letting that for Swift just sounds like

00:11:14   kind of scary until that thing settles

00:11:17   down and so I'm not really sure what's

00:11:19   ultimately gonna get me to learn Swift

00:11:22   like I was thinking about it what could

00:11:24   Apple do it obviously are doing all the

00:11:26   right things on the marketing side of

00:11:27   saying like this is the hot new thing

00:11:28   all their sample code is in or most of

00:11:31   their samples code is in Swift to WTC

00:11:33   all the session videos all the code on

00:11:35   the slides is in Swift like they're

00:11:37   pushing it as hard as they can from a

00:11:38   marketing perspective but my gut says

00:11:41   until they come out with something that

00:11:43   says you can only interact with this

00:11:45   platform or interact with this library

00:11:47   in Swift I probably won't learn it

00:11:52   that's just so that's just the practical

00:11:54   reality like I'd almost wondered if when

00:11:57   they were announcing things like the

00:11:59   watch or the TV if at some point they

00:12:03   would say this is a swift only platform

00:12:05   and architect like the runtime for it or

00:12:09   the libraries for it - those types of

00:12:10   things in such a way that say like this

00:12:12   is the only language that it's going to

00:12:14   work and if they did that obviously like

00:12:15   I'd have to learn I mean it's sort of

00:12:17   like with the TV OS where you can write

00:12:19   apps natively or in the TV ml like

00:12:21   markup language if it said oh we're only

00:12:23   gonna do T the TV ml stuff then like

00:12:26   okay if I want to do a TV app I would

00:12:28   have learned that but it seems like it's

00:12:31   probably only going to come out of

00:12:32   necessity rather than out of just like

00:12:33   the intrinsic desire right yeah I mean

00:12:36   at some point they are probably going to

00:12:38   have swift only API is in the same way

00:12:40   that there are objective-c only api's

00:12:43   now and originally you could you know

00:12:46   you could write in C if you wanted to

00:12:48   you could write a lot of Mac apps only

00:12:49   and see it in the olden days that's how

00:12:51   all of them were written and you know

00:12:53   over time Java C came in and and there

00:12:56   are there have been to see only api's so

00:12:59   over time there will be Swift only api's

00:13:02   eventually you know as Apple add new new

00:13:05   api's to things but that doesn't

00:13:06   happened yet and even internally Swift

00:13:08   is still so young that even internally

00:13:11   Apple is hardly using it for anything so

00:13:14   if they can't even work it into their

00:13:16   workflow in in mass yet then I think

00:13:19   that shows that we are not yet to the

00:13:22   and we're not close yet to the level

00:13:24   where it's a requirement for everybody

00:13:27   to use that being said you know I think

00:13:29   if you're starting out fresh if you

00:13:31   don't know how to program it or if you

00:13:33   only have a little bit of programming

00:13:35   knowledge so far orbs have C knowledge

00:13:37   so far and you and you're looking to

00:13:39   expand your knowledge it's starting now

00:13:41   by all means do that in Swift like it

00:13:44   doesn't I don't think it makes a lot of

00:13:45   sense to learn Objective C from scratch

00:13:47   now now that Swift is coming up and and

00:13:50   being you know being the hotness

00:13:52   although that being said I think it's

00:13:53   very likely that any any iOS app will

00:13:56   probably you will probably need to know

00:13:58   some you have to see at some point to do

00:14:01   something similar to how Objective C

00:14:03   programmers generally like you can get

00:14:05   along pretty well most of the time but

00:14:07   occasionally you have to call a C

00:14:08   function or you have to know how C works

00:14:10   enough to use some some API that is C

00:14:13   only so new programmers should

00:14:16   definitely start with Swift I would say

00:14:17   just because you you generally don't

00:14:20   want to start with something that is on

00:14:22   its way out long term you want to start

00:14:23   with something that is going to be as

00:14:26   useful as long as possible yeah and I

00:14:28   think the funny thing is like I know

00:14:30   enough Swift at this point that I can

00:14:33   read it but I can't write it because I

00:14:36   was like often I'll you know searching

00:14:38   on Stack Overflow and I'll find an

00:14:39   answer to something that I was

00:14:41   struggling with and the answers written

00:14:42   in Swift and so I need to work out how

00:14:44   it works and so at this point I know it

00:14:47   enough to be like the it cert but it's a

00:14:49   you know it just enough to be like

00:14:50   read-only but I couldn't ever create it

00:14:52   out of nothing and I think if you're new

00:14:54   to some things like your goal is

00:14:55   probably going to be to learn Swift well

00:14:57   enough that you can write your programs

00:14:59   in it and program in it but then no

00:15:01   objective-c at least well enough that

00:15:03   you can read it and understand what's

00:15:04   going on with all the crazy square

00:15:06   brackets and the general kind of

00:15:08   structure of it but that's probably all

00:15:10   you'll ever need to actually you know in

00:15:12   practical use right exactly and and

00:15:15   there are certain things about Swift too

00:15:16   like it isn't it isn't a guarantee that

00:15:19   if you like objective-c that you will

00:15:22   like Swift it is it is a different style

00:15:25   of language it is not objective-c with

00:15:27   pointers removed like that that isn't it

00:15:30   it it is not like what all people were

00:15:32   saying before Swift was unveiled it was

00:15:34   like oh just just making

00:15:35   to see without the see and that is even

00:15:37   how Apple introduced it on this on the

00:15:39   keynote slide but that really isn't what

00:15:41   it is at all it really is more like a a

00:15:44   modern reinterpretation of C++ and so

00:15:49   this is going to mesh better with some

00:15:51   people than others for me honestly I

00:15:53   don't like a lot of it a lot of what I

00:15:55   know of it at least so far and again I

00:15:56   haven't used it in a project yet so this

00:15:59   could change as I use it but a lot of

00:16:00   the things that that are some of its

00:16:01   more advanced features like generics I

00:16:03   don't think I will ever use most of that

00:16:06   stuff you know there's this is going to

00:16:08   kind of gel better with some people in

00:16:10   others and that might influence what how

00:16:13   early you want to jump into it because

00:16:15   for me it hasn't done much for me and

00:16:18   and it it doesn't really appeal to me as

00:16:21   strongly as as some other changes would

00:16:23   have or may have then I'm in less of a

00:16:26   rush but if you're the kind of person

00:16:28   who you enjoy those kind of language

00:16:31   features that it's adding or you enjoy

00:16:32   the kind of formalism that it that it

00:16:33   imposes that wasn't there before then by

00:16:36   all means jump in you know it's but

00:16:38   that's not going to be true of everybody

00:16:40   and I think that's okay yeah and I think

00:16:43   it's like I have gradually gotten better

00:16:46   about having the gate like the Swift's

00:16:48   guilt of having that feeling like oh I

00:16:50   really should you'd be learning this and

00:16:52   it's likely understand it's like at some

00:16:53   point I'm sure it's in my future I don't

00:16:56   know when that is it's it's the role

00:16:58   it's gonna play and my future is also

00:17:00   going to depend on where Apple takes

00:17:01   their platforms and what platforms and

00:17:03   opportunities make the most sense for my

00:17:05   business like you know I don't know like

00:17:08   iOS is relatively young and it's also

00:17:10   relatively old like seven years or so

00:17:13   for a platform is getting to a point

00:17:14   that you start to wonder you know is

00:17:16   something new coming along that is going

00:17:19   to be you know sort of overtake it

00:17:22   because you know very few things in

00:17:25   technology seem to last more than 10 or

00:17:27   15 years and so we're at least sort of

00:17:30   towards the middle if not the tail end

00:17:32   of except of this you know this way then

00:17:33   you sort of keep your eye out for what's

00:17:35   which platform and what opportunity is

00:17:37   going to be the next big thing because

00:17:39   as we were saying last week about yeah

00:17:41   but you know market opportunities and

00:17:42   and you know how to how you can take

00:17:44   advantage of a market that's like on its

00:17:46   boom time and then how quickly that

00:17:48   window Falls

00:17:49   as it gets more crowded it's the same

00:17:51   thing with with languages and

00:17:52   technologies like if you can get in

00:17:55   relatively early two things now again

00:17:57   again this is a balance between like

00:17:59   conservatism and stability versus you

00:18:01   know how cool it is to try new things

00:18:02   and whether whether you're the kind of

00:18:04   person who loves just trying new

00:18:06   languages for the sake of trying them

00:18:07   and and you know or whether you're more

00:18:09   kind of product focused like me and

00:18:11   David here but I think there's a similar

00:18:14   kind of window with technologies where

00:18:15   like as I said like this is you can tell

00:18:17   that this is big this is the beginning

00:18:18   of the end of yet to see and it's going

00:18:21   to be a long way down it's gonna think

00:18:22   we're gonna it's gonna be here for a

00:18:24   while yeah we're not talking five years

00:18:27   we're talking at least ten that is still

00:18:29   gonna be around and still be relevant I

00:18:30   mean look at how long I mean look I just

00:18:32   said like you know see function still

00:18:34   exists that we still call routinely for

00:18:36   most efficacy apps and that those have

00:18:37   been there since the you know since the

00:18:40   beginning of core foundation which was

00:18:42   what in the late 80s I mean it's gonna

00:18:44   be at least until Apple replaces their

00:18:47   fundamental like OS stress structure

00:18:49   probably or something like that because

00:18:51   the Apple isn't gonna rewrite all their

00:18:52   apps unless they absolutely have to

00:18:54   right and all the foundation classes I

00:18:56   mean Swift is still switch has has its

00:18:59   own you know strings and it's it's own

00:19:01   arrays but there's so many things in

00:19:04   Foundation and networking and IO and

00:19:07   graphics all these things that that

00:19:10   Swift is still calling the system

00:19:13   Objective C and C api's to do those

00:19:16   things so it's not like they threw it

00:19:19   entire stack in the entire API you're

00:19:21   just writing things in a new front-end

00:19:23   language it's not like that whole stack

00:19:25   is gonna go away in two years or five

00:19:27   years or even ten years I think that's

00:19:29   unlikely

00:19:29   anyway we are sponsored this week by our

00:19:32   friends at NS screencast and a

00:19:35   screencast features short focused

00:19:37   screencasts on iOS development every

00:19:40   week you're going to find a new

00:19:41   fantastically produced episode that will

00:19:44   help you build and enhance your

00:19:45   development skills now I've been looking

00:19:47   at these for this past week since they

00:19:48   came to us with this have you look these

00:19:50   to David yeah yeah these are great the

00:19:52   production value on these is really

00:19:54   really high and they're what I like

00:19:56   about them is that they're short like

00:19:58   the idea is it's just one short episode

00:20:00   a week and you just keep up with it

00:20:02   and you you can kind of keep up on new

00:20:04   technologies you can learn new things

00:20:05   but it's not you don't have to jump in

00:20:07   and watch like a 45 minute conference

00:20:08   video just to keep up with what's going

00:20:10   on or to learn something new it's a nice

00:20:12   overview with examples and everything

00:20:14   the production quality I think is great

00:20:16   have you seen one that that you liked

00:20:17   yeah I mean I love I've actually

00:20:19   speaking of what we've been talking

00:20:20   about it and watching a little bit of

00:20:22   the ones about Swift just to kind of

00:20:24   keep an eye on what's going on there

00:20:26   because like we said it's not something

00:20:28   I'm at the level where I want to spend a

00:20:29   lot of time on it but it's really

00:20:30   helpful to just be able to sit down and

00:20:32   watch a short like 10 15 minute video to

00:20:34   get a sense of like what are the all

00:20:36   these fancy keywords and things I keep

00:20:37   hearing people talk about and so I can

00:20:39   sit down and watch you know what's new

00:20:40   in sort of Swift 2 or Swift new Swift

00:20:43   optionals they're all the kind of these

00:20:44   things that are totally new and get a

00:20:46   very short amount of time understand

00:20:48   what's happening without you know sort

00:20:50   of sitting there and just going through

00:20:52   the documentation myself and so that

00:20:54   found that to be really helpful you can

00:20:56   watch these videos on the web on iOS or

00:20:59   you can even they also have a TV OS app

00:21:01   they they're already in the Apple TV you

00:21:03   can watch it right there on the NS

00:21:04   screencast TV OS app all this costs just

00:21:07   9 dollars a month or $100 a year with

00:21:10   team plans available - you can get 30%

00:21:12   off your first month by signing up at NS

00:21:14   screencast.com slash first crack and a

00:21:18   screencast comm slash first crack thank

00:21:20   you so much to enter screencast for

00:21:22   supporting this show and all of relay FM

00:21:24   all right and the last thing I wanted to

00:21:27   talk about briefly with Swift I thought

00:21:28   would be kind of an interesting I mean

00:21:31   it's the best way to call it as a

00:21:32   thought experiment is I was recently

00:21:34   trying to think through if in the

00:21:37   limited amount of time I have to learn

00:21:38   something if I would be better off it's

00:21:41   putting that time and energy into

00:21:42   learning Swift and in you essentially

00:21:44   embracing the future of iOS or

00:21:46   diversifying and learning modern Android

00:21:50   development and when I've sort of posed

00:21:54   that question to myself the answer

00:21:55   immediately wasn't obvious because I

00:21:57   think about it in Swift I'm like okay

00:21:59   it's the future of the platform and

00:22:01   that's better

00:22:01   you know I've you know I'm very

00:22:03   committed to iOS that's where I make the

00:22:05   majority of my living but it also means

00:22:07   that I'm tied in to like you know one

00:22:09   basket like I'm putting all of my apps

00:22:10   all my eggs into that one basket and

00:22:13   there's part of me that wonders if would

00:22:16   I be better off if

00:22:16   instead I like took that energy of

00:22:19   learning something new and put it into

00:22:21   learning Android in the end I'm

00:22:24   skeptical if I actually ever would

00:22:26   because it's so hard to think about

00:22:28   developing for a platform that I don't

00:22:29   use on a regular basis but I think my

00:22:34   gut says at the end of the day I would

00:22:35   actually probably be more prudent for me

00:22:36   to know both iOS and Android then to

00:22:40   know iOS and then iOS plus Swift and

00:22:44   sort of as I know it now yeah I think it

00:22:47   really depends I mean obviously I think

00:22:49   you can learn Swift more easily than you

00:22:52   can learn Android because you are still

00:22:53   on the same platform calling it to most

00:22:55   of the same api's and everything so I

00:22:56   think it's Swift would be an easier

00:22:59   transition also Swift would eventually

00:23:01   replace your objective-c

00:23:03   slot in your mind you know like so it

00:23:06   wouldn't you wouldn't it wouldn't be

00:23:07   like an additional thing that you that

00:23:08   you'd have to decide where to spend your

00:23:10   time between on an ongoing basis it

00:23:12   would be kind of like a one-time big

00:23:14   transition over you know six months or

00:23:16   whatever however long it would take you

00:23:17   to really like master it and really be

00:23:19   doing it full-time but Android of course

00:23:22   opens up way more market share I mean if

00:23:24   you're if you have a handful of apps

00:23:26   well you have more than a handful but

00:23:28   suppose somebody has a normal number of

00:23:30   apps

00:23:31   yep support and and and they have to

00:23:35   choose whether to you know convert all

00:23:38   their existing apps from Java C to Swift

00:23:40   or port them to a new platform obviously

00:23:44   that the right move there B to Portland

00:23:46   a new platform because the customers

00:23:48   don't care what language your app is

00:23:49   written in so you wouldn't get any

00:23:50   benefit on the customer side by

00:23:52   converting to Swift it's more of like an

00:23:54   investment in your own long-term ongoing

00:23:56   education long term craft you know long

00:24:00   term time savings for yourself assuming

00:24:01   Swift will save you time in the long run

00:24:03   which I think it probably will over time

00:24:05   but we don't know that yet really so

00:24:08   it's a question I mean these are this is

00:24:11   a great thought experiment I this is one

00:24:13   reasons why I wanted the podcast with

00:24:14   you because I you are so good at coming

00:24:16   up with these these crazy ideas because

00:24:18   it isn't that crazy like if you think

00:24:19   about it going on to a new platform is

00:24:22   probably a better idea than relearning

00:24:27   the the language on the platform you're

00:24:29   already on

00:24:30   that being said if you specialize in one

00:24:34   of these areas if you specialize and you

00:24:36   say you know I'm gonna just be really

00:24:38   really good at making iOS apps and I and

00:24:40   then and that way you know to do what

00:24:41   you do to be able to try out a whole

00:24:43   bunch of ideas to be able to make things

00:24:44   make new apps quickly and deploy into

00:24:46   the store quickly if you if you get

00:24:48   really really good at that one thing

00:24:50   versus if you if you spread your

00:24:53   knowledge out into into a more broad

00:24:55   toolset really so you're able to make

00:24:58   iOS apps and Android apps and maybe

00:25:01   after something else maybe Mac apps

00:25:02   maybe web apps and you know if you

00:25:04   spread it out and get more wide like

00:25:05   that I feel like that might be harder

00:25:08   for one person to be very productive and

00:25:11   very successful for themselves because

00:25:13   they're there's so much overhead

00:25:15   involved in in dealing with these

00:25:17   different ecosystems different platforms

00:25:19   different languages different api's I

00:25:20   feel like you can be better specializing

00:25:24   in one and being able to just really

00:25:26   crank out high volume work on one rather

00:25:29   than spreading yourself out very wide to

00:25:31   be able to do a wider variety of things

00:25:33   does that make sense yeah and I think

00:25:34   ultimately that's probably miss the

00:25:36   reality if that's where I am that's

00:25:38   where I have been for the last year and

00:25:40   a half since this was it would even be

00:25:41   sort of a thought experiment that could

00:25:43   exist is ultimately for me and my

00:25:46   business to run I have to be

00:25:47   extraordinarily productive in one thing

00:25:52   and should be in a true expert and be

00:25:54   able to really you know if I have an

00:25:56   idea for an app to be able to build it

00:25:58   very quickly and for me right now that's

00:26:01   be writing you know iOS apps in

00:26:03   objective-c like that's something that I

00:26:05   can really crank out just from by the

00:26:07   virtue of having so much experience with

00:26:09   it and I think until such time as doing

00:26:12   that thing having that expertise and

00:26:14   having that sort of finely honed of a

00:26:17   skill

00:26:18   ceases to be the thing that I need to do

00:26:20   and it becomes like okay now I should I

00:26:22   need to diversify I need to go somewhere

00:26:24   else like it isn't working on iOS

00:26:25   anymore that's probably where I'll

00:26:27   continue to go and but in this you know

00:26:30   this is for the same reasons that I

00:26:32   haven't learned Swift is probably the

00:26:33   same reasons that I haven't learned

00:26:34   Android it's that same thing of it's

00:26:35   like I like and it seems to work well to

00:26:38   be a true master of one thing and to

00:26:41   drive that you know sort of driving

00:26:43   perfect your art in craft of doing that

00:26:46   one thing is probably better than

00:26:48   becoming a complete generalist but being

00:26:50   sort of some more superficial in all the

00:26:53   different areas and this is obviously

00:26:54   currently coming from the perspective of

00:26:56   being independent like if you work in a

00:26:58   bigger company you may have to be a

00:27:00   generalist and be working in all these

00:27:02   different platforms and areas because

00:27:04   that's just what your boss tells you to

00:27:06   do but because my boss doesn't tell me

00:27:08   to do anything

00:27:09   I came able to sort of go with whatever

00:27:11   makes sense for me right and that's it

00:27:13   and I think it makes sense for big

00:27:14   companies to diversify because you know

00:27:15   when you look at the way big companies

00:27:17   structure their engineering departments

00:27:18   you don't usually have one person who's

00:27:22   in charge of five different platforms of

00:27:24   apps and they're the only ones working

00:27:25   on them usually you have employees who

00:27:27   were specialized and so the whole

00:27:29   department might be able to be more

00:27:30   broad and have an app for iOS and an app

00:27:33   for Android and even look at Windows

00:27:35   Phone or Blackberry or whatever else

00:27:36   comes along but each individual person

00:27:39   to maximize their efficiency is usually

00:27:41   only doing one of those things you know

00:27:43   it makes sense for companies to be able

00:27:45   to afford to be more broad but for

00:27:47   individuals to maximize what you can do

00:27:50   I think it makes the most sense for

00:27:51   individuals to be specialized yeah and I

00:27:54   think that's sort of where we're just

00:27:55   canned up good end up for today's

00:27:57   discussion that I think Swift ism is a

00:27:58   powerful useful tool that I'm glad

00:28:02   exists and glad Apple is pushing the

00:28:04   platform forward on but I don't expect

00:28:06   to use it anytime soon I'm sure both of

00:28:08   us will use it eventually and it might

00:28:10   even be faster than we think it might

00:28:11   even be like next year but I'm I'm

00:28:13   certainly not in any rush to start doing

00:28:14   it right now but that's fine

00:28:16   yeah and I think that's probably where

00:28:17   we'll end it for today thanks for

00:28:19   listening everyone please tell your

00:28:20   friends about the show help us spread

00:28:21   the word recommend us an overcast and

00:28:23   we'll see you next week see you next

00:28:25   week