0:00:00welcome to under the radar a show about
0:00:02independent app development I'm Marco
0:00:04Arment and I'm David Smith under the
0:00:06radar is never longer than 30 minutes so
0:00:08let's get started so this week we are
0:00:11talking about Swift do that lovely
0:00:14language introduced about Isis about a
0:00:16year and a half ago now two years ago
0:00:17yeah almost a year and a half yeah if I
0:00:20have a brief confession to make
0:00:22I've never written a single line of
0:00:24Swift in the last year and a half not a
0:00:27single one I think I can say the same
0:00:30thing as long as playgrounds don't count
0:00:32I wrote a few lines in a playground once
0:00:34and that was it
0:00:37beyond that I certainly have written no
0:00:39Swift code that's gone into an app yeah
0:00:42and that's I gotta say I almost feel
0:00:45guilty when I say that like it's this
0:00:47thing that feels like you know I'm a
0:00:50fairly committed Apple platform person
0:00:52like I do a lot of development here this
0:00:54is where I make my livelihood and this
0:00:56is their whole big fancy new thing that
0:00:58has in theory a variety of advantages to
0:01:01the way that I've developed things in
0:01:03objective-c but I've never really felt
0:01:06motivated to learn Swift I think that's
0:01:09because I don't see how it would make my
0:01:12apps as they are today
0:01:13any better and that's kind of a strange
0:01:17place to find myself that I think my
0:01:19apps would be but you know just the same
0:01:21using objective-c that I know so well
0:01:22but there's always in this back of my
0:01:24mind like hmm I should be learning Swift
0:01:26that would probably be better but that's
0:01:29never happened yeah I kind of feel the
0:01:31same way it's it's something that I'm
0:01:33not really against I mean there are some
0:01:35things about it I don't care for but I'm
0:01:37sure I get over them you know in
0:01:39practice once I once I was using the
0:01:41language full-time and I'm sure there
0:01:42will come a time where we will we will
0:01:44switch to it and we will start using a
0:01:46full time and it will just be normal and
0:01:48we'll just deal with it but I don't
0:01:49think the time has yet come where you
0:01:52need to switch to it if you already have
0:01:54a code base in objective-c that doesn't
0:01:57really need to be migrated for any
0:01:58particular reason or if you already have
0:02:00a lot of objective-c knowledge and and
0:02:03your primary goal is to to ship apps
0:02:07quickly and with little overhead then in
0:02:10those cases I think it does make sense
0:02:11to do what we're doing so far and it's
0:02:13just
0:02:13you know wait and see it's not that
0:02:15Swift is is never gonna be a part of our
0:02:18lives it's just that I don't think
0:02:20there's a lot of compelling reasons for
0:02:21us to adopt it yet when we you know when
0:02:24we already have is this experience and
0:02:26wisdom and and toolchains and everything
0:02:29all these things everything's built up
0:02:30around the other language that we've
0:02:32known forever yeah and it's funny I was
0:02:34also a things in preparation to what are
0:02:38the reasons why I haven't and there's
0:02:40obviously like the obvious ones if just
0:02:41like the inertia of having do it done
0:02:43Objective C for so long and knowing it
0:02:44like inside and out knowing all we're
0:02:46all the like the quirks are and all the
0:02:48problems and when I hit a weird bug I'm
0:02:50pretty good at finding them in Objective
0:02:53C if they're you know programming
0:02:54related rather than logically related
0:02:56but the thing that also makes me so
0:02:58nervous about Swift is that it keeps
0:03:00changing like every time a new version
0:03:03of Xcode comes out it seems like there's
0:03:04some new thing in Swift there's some new
0:03:08syntax there's some new ability there's
0:03:10some new approach for the way it works
0:03:12and every time I see one of those I
0:03:14think of it's like I have this moment of
0:03:16relief that wow I'm glad I haven't
0:03:18decided to start learning Swift yet
0:03:21because it seems like what I would have
0:03:23learned every time seems it's constantly
0:03:25being like deprecated going forward and
0:03:28that makes me so nervous about spending
0:03:30the time because the reality is like I
0:03:32have so little time to invest into new
0:03:35things that aren't just like actually
0:03:37working that spending time on something
0:03:40that potentially could be completely
0:03:42overcome by or not not completely is
0:03:45probably an extreme but could require me
0:03:47to go back and change the things that
0:03:49I've learned or change the code that
0:03:50I've written is very discouraging yeah
0:03:54because it seems it seems like churn to
0:03:56go through this process and you know to
0:03:58some accessory in our in our profession
0:04:03you know when when Apple changes the UI
0:04:05of the entire OS like with iOS 7 and we
0:04:08have to recreate or redo or
0:04:10reimplemented unlike it never feels
0:04:13great to be forced to to repeat work or
0:04:17to be forced to throw away something
0:04:19that works perfectly well just to do it
0:04:21some some new way that you didn't really
0:04:23want to do on the flip side of that you
0:04:26know a lot of people
0:04:27and you know myself included I love
0:04:29deleting deleting code that that is no
0:04:31longer necessary or you know like once
0:04:33there's a new ability to do something
0:04:34like a new API comes out from Apple and
0:04:36a new OS release that makes a whole
0:04:39bunch of my code obsolete
0:04:40I love deleting that old code and
0:04:42getting rid of it getting it out of my
0:04:43life and moving on using the new Apple
0:04:46API assuming it works which isn't always
0:04:48the case but usually and having less
0:04:50code demanding she like that part is
0:04:52nice a lot of programmers myself
0:04:54included also frequently get the itch to
0:04:55rewrite things in a better way and that
0:04:59sometimes that is a good idea it often
0:05:00isn't it sometimes it's just a big waste
0:05:02of time and a way to create all your all
0:05:04your bugs all over again but it
0:05:05sometimes it is a good idea but I think
0:05:08with with Swift coming in for Objective
0:05:10C programmers the the motivation is is
0:05:14less there at you know and as you said
0:05:16it is still changing a lot for most of
0:05:18its first year the tools were still
0:05:21really immature and we're still having
0:05:23lots of crashing and performance issues
0:05:25and and that seems to be resolved so far
0:05:28from from people who have written Swift
0:05:29so far who are really into it more than
0:05:31us it does seem like I've been kind of
0:05:33like paying attention to what people say
0:05:35about it what how people report like oh
0:05:37we converted a big project or we started
0:05:39that we started and a new project in
0:05:41Swift and here's how it went for us and
0:05:43in the early days those stories were
0:05:45really rough they were the only things
0:05:47that were really not compelling because
0:05:49everything was still so immature or
0:05:50unstable as time has gone on in just a
0:05:53year and a half which is pretty quick
0:05:54that has settled somewhat and and a lot
0:05:57of people are now saying ok now you can
0:05:59jump in I've done a project on Swift and
0:06:01it was fine for us so it really did I
0:06:04think now would be a safe enough time to
0:06:07jump in and it wouldn't be too
0:06:09unreasonable but again it comes back to
0:06:11you know how do we allocate our limited
0:06:13time and our limited resources and how
0:06:14much time are we willing to devote to
0:06:16messing with something that's still new
0:06:19and immature and and adapting to it as
0:06:22it changes like to me like I've always
0:06:25said in the past and we'll talk about
0:06:26server-side stuff I'm sure many times
0:06:29but I've always said in the past that my
0:06:30server-side stuff I want to be very
0:06:32conservative with especially as you get
0:06:34lower down the application level stacks
0:06:36so if you you know if you want to try
0:06:38out a new you know Web API
0:06:41cool whatever you know a new new
0:06:42application-layer thing as you go down
0:06:44the stack I don't want to be running a
0:06:46cutting-edge Linux distribution I want
0:06:48to be running a very conservative OS I
0:06:50want to be running a very conservative
0:06:52database you know all like as you get
0:06:54that low level with like you know the
0:06:57data layer and the infrastructure layer
0:06:59of these things I don't want to be on
0:07:01the cutting edge of anything there
0:07:03because the cutting edge is where you
0:07:04get bugs and instability and and you hit
0:07:07limitations as you move up the stack I
0:07:09feel like you have more tolerance for
0:07:10things like that like for risk in those
0:07:12areas for me the programming language
0:07:15that you're writing your code in is
0:07:17pretty low level and with Swift you at
0:07:19least have the benefit of you can mix it
0:07:21in slowly and that is ver that it was
0:07:23very wise of Apple to do there are some
0:07:24downsides to like things like they
0:07:27couldn't make as clean of a jump as they
0:07:29as they might have wanted to because
0:07:30they have maintained backwards
0:07:31compatibility with Objective C libraries
0:07:33and stuff but for the most part I think
0:07:35that was wise because we can kind of
0:07:37wade in slowly when we decide that's the
0:07:40right move but at the same time you know
0:07:43because of my conservatism in in those
0:07:45low-level things I don't really see a
0:07:49huge reason to jump in yet because I
0:07:51don't want to be programming with a
0:07:53cutting-edge language and not only for
0:07:55instability reasons and for for having
0:07:58to relearn things as they change things
0:08:00over time not only for those reasons but
0:08:02also right now we don't really know what
0:08:06will eventually be known as idiomatic
0:08:07Swift an idiomatic Swift API design we
0:08:10don't know those things yet those are
0:08:11still being worked out a lot of people
0:08:13and and I'm not one and I don't think
0:08:16you are one either a lot of people love
0:08:18being a part of that process of figuring
0:08:20out what the idioms should be and and
0:08:23creating helping to create them and
0:08:25helping to work out how things and
0:08:27helping to experiment with like oh maybe
0:08:28we should design api's in this way maybe
0:08:30the right way to use the language is
0:08:31this I am NOT into that at all for me I
0:08:34would rather let that let the smarter
0:08:37people than me who care a lot more about
0:08:38language design and who are better at it
0:08:40than I am
0:08:40let them figure out the idioms and the
0:08:43language of design and the API design
0:08:44and then I want to just take the
0:08:47finished product and master one thing
0:08:49that they have figured out over time and
0:08:51apply that into building apps that I
0:08:53want so it's like you know I want to
0:08:55closer to the product building side not
0:08:57the messing with languages side if that
0:08:59makes sense yeah cuz I mean the process
0:09:02of it sounds vaguely interesting like
0:09:05sort of feel oh let's be let's be part
0:09:07of the process and you know it seems
0:09:09like this Swift team is very responsive
0:09:11and that all those things on that side
0:09:13seem to be very encouraging in that
0:09:15regard if you that were something you
0:09:16were interested in but it's just like
0:09:18effort going into something that isn't
0:09:21making my apps better isn't making my
0:09:24customers happier isn't helping me ship
0:09:26something more impressive it's like it's
0:09:28going into something that is kind of
0:09:30intellectually cool but it kind of feels
0:09:32it's like the difference between someone
0:09:34who is in academic versus like who has I
0:09:38think I'll probably make some more
0:09:39practical living like I'm very glad
0:09:41there are people who enjoy that a more
0:09:43academic side of computer science who
0:09:44come up with the the new things and push
0:09:49boundaries and go down ten sort of dead
0:09:51end roads before they find the thing
0:09:52that is actually the thing that we're
0:09:55gonna want to use in practice like I'm
0:09:56really glad those people exist but it's
0:09:59a very different thing than with the
0:10:01skills and the experience and the time
0:10:03allocation that you would want to do if
0:10:05you actually have to ship something and
0:10:07ultimately especially if that thing at
0:10:09the you ship at the end of the day has
0:10:10to like make your living then the last
0:10:12thing you want to be doing is playing
0:10:13around with stuff that isn't quite baked
0:10:16or isn't quite to the point that it's
0:10:19like it's this is exactly the way you do
0:10:20it because I think in Objective C it's
0:10:22very established at this point it's an
0:10:24old enough language and it's use has
0:10:26been so focused in by Apple and its
0:10:30benefited from the fact that I think
0:10:31Apple is the only people who sort of
0:10:33typically use it in a way that like
0:10:34language like Java or C has so many
0:10:38different uses that it's doesn't quite
0:10:41have that same heavy hand that Apple I
0:10:43think has been able to bring to it where
0:10:44as they've improved and changed the
0:10:46syntax and the details of objective-c
0:10:49like it is now very finely tuned to go
0:10:52along with cocoa and it to go along with
0:10:55iOS and to go along with all of the
0:10:56things that go into building for apples
0:10:59platforms that it's very straightforward
0:11:02like there is probably one way to write
0:11:04most you know sort of most functions in
0:11:07most code and once you learn it and once
0:11:09good at it then you know you're doing
0:11:10the right thing and the process of
0:11:12letting that for Swift just sounds like
0:11:14kind of scary until that thing settles
0:11:17down and so I'm not really sure what's
0:11:19ultimately gonna get me to learn Swift
0:11:22like I was thinking about it what could
0:11:24Apple do it obviously are doing all the
0:11:26right things on the marketing side of
0:11:27saying like this is the hot new thing
0:11:28all their sample code is in or most of
0:11:31their samples code is in Swift to WTC
0:11:33all the session videos all the code on
0:11:35the slides is in Swift like they're
0:11:37pushing it as hard as they can from a
0:11:38marketing perspective but my gut says
0:11:41until they come out with something that
0:11:43says you can only interact with this
0:11:45platform or interact with this library
0:11:47in Swift I probably won't learn it
0:11:52that's just so that's just the practical
0:11:54reality like I'd almost wondered if when
0:11:57they were announcing things like the
0:11:59watch or the TV if at some point they
0:12:03would say this is a swift only platform
0:12:05and architect like the runtime for it or
0:12:09the libraries for it - those types of
0:12:10things in such a way that say like this
0:12:12is the only language that it's going to
0:12:14work and if they did that obviously like
0:12:15I'd have to learn I mean it's sort of
0:12:17like with the TV OS where you can write
0:12:19apps natively or in the TV ml like
0:12:21markup language if it said oh we're only
0:12:23gonna do T the TV ml stuff then like
0:12:26okay if I want to do a TV app I would
0:12:28have learned that but it seems like it's
0:12:31probably only going to come out of
0:12:32necessity rather than out of just like
0:12:33the intrinsic desire right yeah I mean
0:12:36at some point they are probably going to
0:12:38have swift only API is in the same way
0:12:40that there are objective-c only api's
0:12:43now and originally you could you know
0:12:46you could write in C if you wanted to
0:12:48you could write a lot of Mac apps only
0:12:49and see it in the olden days that's how
0:12:51all of them were written and you know
0:12:53over time Java C came in and and there
0:12:56are there have been to see only api's so
0:12:59over time there will be Swift only api's
0:13:02eventually you know as Apple add new new
0:13:05api's to things but that doesn't
0:13:06happened yet and even internally Swift
0:13:08is still so young that even internally
0:13:11Apple is hardly using it for anything so
0:13:14if they can't even work it into their
0:13:16workflow in in mass yet then I think
0:13:19that shows that we are not yet to the
0:13:22and we're not close yet to the level
0:13:24where it's a requirement for everybody
0:13:27to use that being said you know I think
0:13:29if you're starting out fresh if you
0:13:31don't know how to program it or if you
0:13:33only have a little bit of programming
0:13:35knowledge so far orbs have C knowledge
0:13:37so far and you and you're looking to
0:13:39expand your knowledge it's starting now
0:13:41by all means do that in Swift like it
0:13:44doesn't I don't think it makes a lot of
0:13:45sense to learn Objective C from scratch
0:13:47now now that Swift is coming up and and
0:13:50being you know being the hotness
0:13:52although that being said I think it's
0:13:53very likely that any any iOS app will
0:13:56probably you will probably need to know
0:13:58some you have to see at some point to do
0:14:01something similar to how Objective C
0:14:03programmers generally like you can get
0:14:05along pretty well most of the time but
0:14:07occasionally you have to call a C
0:14:08function or you have to know how C works
0:14:10enough to use some some API that is C
0:14:13only so new programmers should
0:14:16definitely start with Swift I would say
0:14:17just because you you generally don't
0:14:20want to start with something that is on
0:14:22its way out long term you want to start
0:14:23with something that is going to be as
0:14:26useful as long as possible yeah and I
0:14:28think the funny thing is like I know
0:14:30enough Swift at this point that I can
0:14:33read it but I can't write it because I
0:14:36was like often I'll you know searching
0:14:38on Stack Overflow and I'll find an
0:14:39answer to something that I was
0:14:41struggling with and the answers written
0:14:42in Swift and so I need to work out how
0:14:44it works and so at this point I know it
0:14:47enough to be like the it cert but it's a
0:14:49you know it just enough to be like
0:14:50read-only but I couldn't ever create it
0:14:52out of nothing and I think if you're new
0:14:54to some things like your goal is
0:14:55probably going to be to learn Swift well
0:14:57enough that you can write your programs
0:14:59in it and program in it but then no
0:15:01objective-c at least well enough that
0:15:03you can read it and understand what's
0:15:04going on with all the crazy square
0:15:06brackets and the general kind of
0:15:08structure of it but that's probably all
0:15:10you'll ever need to actually you know in
0:15:12practical use right exactly and and
0:15:15there are certain things about Swift too
0:15:16like it isn't it isn't a guarantee that
0:15:19if you like objective-c that you will
0:15:22like Swift it is it is a different style
0:15:25of language it is not objective-c with
0:15:27pointers removed like that that isn't it
0:15:30it it is not like what all people were
0:15:32saying before Swift was unveiled it was
0:15:34like oh just just making
0:15:35to see without the see and that is even
0:15:37how Apple introduced it on this on the
0:15:39keynote slide but that really isn't what
0:15:41it is at all it really is more like a a
0:15:44modern reinterpretation of C++ and so
0:15:49this is going to mesh better with some
0:15:51people than others for me honestly I
0:15:53don't like a lot of it a lot of what I
0:15:55know of it at least so far and again I
0:15:56haven't used it in a project yet so this
0:15:59could change as I use it but a lot of
0:16:00the things that that are some of its
0:16:01more advanced features like generics I
0:16:03don't think I will ever use most of that
0:16:06stuff you know there's this is going to
0:16:08kind of gel better with some people in
0:16:10others and that might influence what how
0:16:13early you want to jump into it because
0:16:15for me it hasn't done much for me and
0:16:18and it it doesn't really appeal to me as
0:16:21strongly as as some other changes would
0:16:23have or may have then I'm in less of a
0:16:26rush but if you're the kind of person
0:16:28who you enjoy those kind of language
0:16:31features that it's adding or you enjoy
0:16:32the kind of formalism that it that it
0:16:33imposes that wasn't there before then by
0:16:36all means jump in you know it's but
0:16:38that's not going to be true of everybody
0:16:40and I think that's okay yeah and I think
0:16:43it's like I have gradually gotten better
0:16:46about having the gate like the Swift's
0:16:48guilt of having that feeling like oh I
0:16:50really should you'd be learning this and
0:16:52it's likely understand it's like at some
0:16:53point I'm sure it's in my future I don't
0:16:56know when that is it's it's the role
0:16:58it's gonna play and my future is also
0:17:00going to depend on where Apple takes
0:17:01their platforms and what platforms and
0:17:03opportunities make the most sense for my
0:17:05business like you know I don't know like
0:17:08iOS is relatively young and it's also
0:17:10relatively old like seven years or so
0:17:13for a platform is getting to a point
0:17:14that you start to wonder you know is
0:17:16something new coming along that is going
0:17:19to be you know sort of overtake it
0:17:22because you know very few things in
0:17:25technology seem to last more than 10 or
0:17:2715 years and so we're at least sort of
0:17:30towards the middle if not the tail end
0:17:32of except of this you know this way then
0:17:33you sort of keep your eye out for what's
0:17:35which platform and what opportunity is
0:17:37going to be the next big thing because
0:17:39as we were saying last week about yeah
0:17:41but you know market opportunities and
0:17:42and you know how to how you can take
0:17:44advantage of a market that's like on its
0:17:46boom time and then how quickly that
0:17:48window Falls
0:17:49as it gets more crowded it's the same
0:17:51thing with with languages and
0:17:52technologies like if you can get in
0:17:55relatively early two things now again
0:17:57again this is a balance between like
0:17:59conservatism and stability versus you
0:18:01know how cool it is to try new things
0:18:02and whether whether you're the kind of
0:18:04person who loves just trying new
0:18:06languages for the sake of trying them
0:18:07and and you know or whether you're more
0:18:09kind of product focused like me and
0:18:11David here but I think there's a similar
0:18:14kind of window with technologies where
0:18:15like as I said like this is you can tell
0:18:17that this is big this is the beginning
0:18:18of the end of yet to see and it's going
0:18:21to be a long way down it's gonna think
0:18:22we're gonna it's gonna be here for a
0:18:24while yeah we're not talking five years
0:18:27we're talking at least ten that is still
0:18:29gonna be around and still be relevant I
0:18:30mean look at how long I mean look I just
0:18:32said like you know see function still
0:18:34exists that we still call routinely for
0:18:36most efficacy apps and that those have
0:18:37been there since the you know since the
0:18:40beginning of core foundation which was
0:18:42what in the late 80s I mean it's gonna
0:18:44be at least until Apple replaces their
0:18:47fundamental like OS stress structure
0:18:49probably or something like that because
0:18:51the Apple isn't gonna rewrite all their
0:18:52apps unless they absolutely have to
0:18:54right and all the foundation classes I
0:18:56mean Swift is still switch has has its
0:18:59own you know strings and it's it's own
0:19:01arrays but there's so many things in
0:19:04Foundation and networking and IO and
0:19:07graphics all these things that that
0:19:10Swift is still calling the system
0:19:13Objective C and C api's to do those
0:19:16things so it's not like they threw it
0:19:19entire stack in the entire API you're
0:19:21just writing things in a new front-end
0:19:23language it's not like that whole stack
0:19:25is gonna go away in two years or five
0:19:27years or even ten years I think that's
0:19:29unlikely
0:19:29anyway we are sponsored this week by our
0:19:32friends at NS screencast and a
0:19:35screencast features short focused
0:19:37screencasts on iOS development every
0:19:40week you're going to find a new
0:19:41fantastically produced episode that will
0:19:44help you build and enhance your
0:19:45development skills now I've been looking
0:19:47at these for this past week since they
0:19:48came to us with this have you look these
0:19:50to David yeah yeah these are great the
0:19:52production value on these is really
0:19:54really high and they're what I like
0:19:56about them is that they're short like
0:19:58the idea is it's just one short episode
0:20:00a week and you just keep up with it
0:20:02and you you can kind of keep up on new
0:20:04technologies you can learn new things
0:20:05but it's not you don't have to jump in
0:20:07and watch like a 45 minute conference
0:20:08video just to keep up with what's going
0:20:10on or to learn something new it's a nice
0:20:12overview with examples and everything
0:20:14the production quality I think is great
0:20:16have you seen one that that you liked
0:20:17yeah I mean I love I've actually
0:20:19speaking of what we've been talking
0:20:20about it and watching a little bit of
0:20:22the ones about Swift just to kind of
0:20:24keep an eye on what's going on there
0:20:26because like we said it's not something
0:20:28I'm at the level where I want to spend a
0:20:29lot of time on it but it's really
0:20:30helpful to just be able to sit down and
0:20:32watch a short like 10 15 minute video to
0:20:34get a sense of like what are the all
0:20:36these fancy keywords and things I keep
0:20:37hearing people talk about and so I can
0:20:39sit down and watch you know what's new
0:20:40in sort of Swift 2 or Swift new Swift
0:20:43optionals they're all the kind of these
0:20:44things that are totally new and get a
0:20:46very short amount of time understand
0:20:48what's happening without you know sort
0:20:50of sitting there and just going through
0:20:52the documentation myself and so that
0:20:54found that to be really helpful you can
0:20:56watch these videos on the web on iOS or
0:20:59you can even they also have a TV OS app
0:21:01they they're already in the Apple TV you
0:21:03can watch it right there on the NS
0:21:04screencast TV OS app all this costs just
0:21:079 dollars a month or $100 a year with
0:21:10team plans available - you can get 30%
0:21:12off your first month by signing up at NS
0:21:14screencast.com slash first crack and a
0:21:18screencast comm slash first crack thank
0:21:20you so much to enter screencast for
0:21:22supporting this show and all of relay FM
0:21:24all right and the last thing I wanted to
0:21:27talk about briefly with Swift I thought
0:21:28would be kind of an interesting I mean
0:21:31it's the best way to call it as a
0:21:32thought experiment is I was recently
0:21:34trying to think through if in the
0:21:37limited amount of time I have to learn
0:21:38something if I would be better off it's
0:21:41putting that time and energy into
0:21:42learning Swift and in you essentially
0:21:44embracing the future of iOS or
0:21:46diversifying and learning modern Android
0:21:50development and when I've sort of posed
0:21:54that question to myself the answer
0:21:55immediately wasn't obvious because I
0:21:57think about it in Swift I'm like okay
0:21:59it's the future of the platform and
0:22:01that's better
0:22:01you know I've you know I'm very
0:22:03committed to iOS that's where I make the
0:22:05majority of my living but it also means
0:22:07that I'm tied in to like you know one
0:22:09basket like I'm putting all of my apps
0:22:10all my eggs into that one basket and
0:22:13there's part of me that wonders if would
0:22:16I be better off if
0:22:16instead I like took that energy of
0:22:19learning something new and put it into
0:22:21learning Android in the end I'm
0:22:24skeptical if I actually ever would
0:22:26because it's so hard to think about
0:22:28developing for a platform that I don't
0:22:29use on a regular basis but I think my
0:22:34gut says at the end of the day I would
0:22:35actually probably be more prudent for me
0:22:36to know both iOS and Android then to
0:22:40know iOS and then iOS plus Swift and
0:22:44sort of as I know it now yeah I think it
0:22:47really depends I mean obviously I think
0:22:49you can learn Swift more easily than you
0:22:52can learn Android because you are still
0:22:53on the same platform calling it to most
0:22:55of the same api's and everything so I
0:22:56think it's Swift would be an easier
0:22:59transition also Swift would eventually
0:23:01replace your objective-c
0:23:03slot in your mind you know like so it
0:23:06wouldn't you wouldn't it wouldn't be
0:23:07like an additional thing that you that
0:23:08you'd have to decide where to spend your
0:23:10time between on an ongoing basis it
0:23:12would be kind of like a one-time big
0:23:14transition over you know six months or
0:23:16whatever however long it would take you
0:23:17to really like master it and really be
0:23:19doing it full-time but Android of course
0:23:22opens up way more market share I mean if
0:23:24you're if you have a handful of apps
0:23:26well you have more than a handful but
0:23:28suppose somebody has a normal number of
0:23:30apps
0:23:31yep support and and and they have to
0:23:35choose whether to you know convert all
0:23:38their existing apps from Java C to Swift
0:23:40or port them to a new platform obviously
0:23:44that the right move there B to Portland
0:23:46a new platform because the customers
0:23:48don't care what language your app is
0:23:49written in so you wouldn't get any
0:23:50benefit on the customer side by
0:23:52converting to Swift it's more of like an
0:23:54investment in your own long-term ongoing
0:23:56education long term craft you know long
0:24:00term time savings for yourself assuming
0:24:01Swift will save you time in the long run
0:24:03which I think it probably will over time
0:24:05but we don't know that yet really so
0:24:08it's a question I mean these are this is
0:24:11a great thought experiment I this is one
0:24:13reasons why I wanted the podcast with
0:24:14you because I you are so good at coming
0:24:16up with these these crazy ideas because
0:24:18it isn't that crazy like if you think
0:24:19about it going on to a new platform is
0:24:22probably a better idea than relearning
0:24:27the the language on the platform you're
0:24:29already on
0:24:30that being said if you specialize in one
0:24:34of these areas if you specialize and you
0:24:36say you know I'm gonna just be really
0:24:38really good at making iOS apps and I and
0:24:40then and that way you know to do what
0:24:41you do to be able to try out a whole
0:24:43bunch of ideas to be able to make things
0:24:44make new apps quickly and deploy into
0:24:46the store quickly if you if you get
0:24:48really really good at that one thing
0:24:50versus if you if you spread your
0:24:53knowledge out into into a more broad
0:24:55toolset really so you're able to make
0:24:58iOS apps and Android apps and maybe
0:25:01after something else maybe Mac apps
0:25:02maybe web apps and you know if you
0:25:04spread it out and get more wide like
0:25:05that I feel like that might be harder
0:25:08for one person to be very productive and
0:25:11very successful for themselves because
0:25:13they're there's so much overhead
0:25:15involved in in dealing with these
0:25:17different ecosystems different platforms
0:25:19different languages different api's I
0:25:20feel like you can be better specializing
0:25:24in one and being able to just really
0:25:26crank out high volume work on one rather
0:25:29than spreading yourself out very wide to
0:25:31be able to do a wider variety of things
0:25:33does that make sense yeah and I think
0:25:34ultimately that's probably miss the
0:25:36reality if that's where I am that's
0:25:38where I have been for the last year and
0:25:40a half since this was it would even be
0:25:41sort of a thought experiment that could
0:25:43exist is ultimately for me and my
0:25:46business to run I have to be
0:25:47extraordinarily productive in one thing
0:25:52and should be in a true expert and be
0:25:54able to really you know if I have an
0:25:56idea for an app to be able to build it
0:25:58very quickly and for me right now that's
0:26:01be writing you know iOS apps in
0:26:03objective-c like that's something that I
0:26:05can really crank out just from by the
0:26:07virtue of having so much experience with
0:26:09it and I think until such time as doing
0:26:12that thing having that expertise and
0:26:14having that sort of finely honed of a
0:26:17skill
0:26:18ceases to be the thing that I need to do
0:26:20and it becomes like okay now I should I
0:26:22need to diversify I need to go somewhere
0:26:24else like it isn't working on iOS
0:26:25anymore that's probably where I'll
0:26:27continue to go and but in this you know
0:26:30this is for the same reasons that I
0:26:32haven't learned Swift is probably the
0:26:33same reasons that I haven't learned
0:26:34Android it's that same thing of it's
0:26:35like I like and it seems to work well to
0:26:38be a true master of one thing and to
0:26:41drive that you know sort of driving
0:26:43perfect your art in craft of doing that
0:26:46one thing is probably better than
0:26:48becoming a complete generalist but being
0:26:50sort of some more superficial in all the
0:26:53different areas and this is obviously
0:26:54currently coming from the perspective of
0:26:56being independent like if you work in a
0:26:58bigger company you may have to be a
0:27:00generalist and be working in all these
0:27:02different platforms and areas because
0:27:04that's just what your boss tells you to
0:27:06do but because my boss doesn't tell me
0:27:08to do anything
0:27:09I came able to sort of go with whatever
0:27:11makes sense for me right and that's it
0:27:13and I think it makes sense for big
0:27:14companies to diversify because you know
0:27:15when you look at the way big companies
0:27:17structure their engineering departments
0:27:18you don't usually have one person who's
0:27:22in charge of five different platforms of
0:27:24apps and they're the only ones working
0:27:25on them usually you have employees who
0:27:27were specialized and so the whole
0:27:29department might be able to be more
0:27:30broad and have an app for iOS and an app
0:27:33for Android and even look at Windows
0:27:35Phone or Blackberry or whatever else
0:27:36comes along but each individual person
0:27:39to maximize their efficiency is usually
0:27:41only doing one of those things you know
0:27:43it makes sense for companies to be able
0:27:45to afford to be more broad but for
0:27:47individuals to maximize what you can do
0:27:50I think it makes the most sense for
0:27:51individuals to be specialized yeah and I
0:27:54think that's sort of where we're just
0:27:55canned up good end up for today's
0:27:57discussion that I think Swift ism is a
0:27:58powerful useful tool that I'm glad
0:28:02exists and glad Apple is pushing the
0:28:04platform forward on but I don't expect
0:28:06to use it anytime soon I'm sure both of
0:28:08us will use it eventually and it might
0:28:10even be faster than we think it might
0:28:11even be like next year but I'm I'm
0:28:13certainly not in any rush to start doing
0:28:14it right now but that's fine
0:28:16yeah and I think that's probably where
0:28:17we'll end it for today thanks for
0:28:19listening everyone please tell your
0:28:20friends about the show help us spread
0:28:21the word recommend us an overcast and
0:28:23we'll see you next week see you next
0:28:25week