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
◼
►
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
◼
►
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
◼
►
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: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: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: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