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