Developing Perspective

Show 3


00:00:00   Hello, and welcome to Developing Perspective.

00:00:02   Developing Perspective is a near-daily podcast discussing the news of note in iOS, Apple,

00:00:07   and the like.

00:00:08   I'm your host, David Smith.

00:00:09   I'm an independent iOS developer based in Herndon, Virginia.

00:00:12   This is show number three, and today is Monday, August 1st, 2011.

00:00:18   The format of Developing Perspective is that I will cover a handful of links and articles

00:00:22   that I found interesting roughly the last 24 hours or so, and then move on to a more

00:00:26   general discussion towards the end.

00:00:29   The show will never be longer than 15 minutes.

00:00:31   And without further ado, let's get to it.

00:00:34   The first link I have is to an article called

00:00:37   "Marketing Hacks for iOS-- How We Got 250,000 Downloads

00:00:41   in Four Days."

00:00:42   This is an article that doesn't necessarily

00:00:44   cover a lot of new materials.

00:00:45   So if you've been a developer for any length of time,

00:00:49   most of these things they talk about are fairly old hat.

00:00:51   But it serves as a very good introduction for someone

00:00:54   who is potentially getting started in iOS development.

00:00:57   and it's just kind of trying to understand what it is to market your apps and the things

00:01:02   to consider and things to keep in mind.

00:01:05   It's just an interesting place, especially as an introduction and tutorial.

00:01:11   Next over on BigBucket Software's blog, there's an article called "Making Lion Work Right

00:01:18   for Me."

00:01:19   And this is just a great little sort of one of these little tips and tricks things for

00:01:23   Lion talking about some of the things and settings that he set up, especially as a developer

00:01:28   and especially just as sort of more of a power user. Things to do, definitely just interesting

00:01:34   to get some perspective on that. And the next link I have is just sort of a blog post by

00:01:40   Samuel Snutch talking about sort of the vast difference between programming for iOS and

00:01:46   programming for Android. And not to beat up on Android too much, but essentially what

00:01:51   he talks about here, which I just thought was an interesting angle, is that he's essentially

00:01:56   saying that in many ways, Android's API is actually sort of better in a purity sense

00:02:03   that a lot of what Android does is very design-pattern oriented, very sort of clean and thoughtful

00:02:10   in that regard. But when you actually go to use it, things become incredibly more complicated.

00:02:15   And it's one of those things that you end up with a situation where on iOS you can write

00:02:22   a very little small amount of code that covers 95, 99% of cases that someone's going to use

00:02:28   your application and it'll work great.

00:02:30   There'll be the edge case that it doesn't work quite as well, where in theory on Android

00:02:35   you'll be able to much more effectively handle that edge case.

00:02:38   However, in order to actually make your application work, all the things you have to do and implement

00:02:43   and make happen for that to actually work is so much more complicated that most users

00:02:48   are probably just going to kind of end up doing sort of half of the work they need to

00:02:53   do to get it basically working.

00:02:54   Then you end up in a worse place because their API is assuming that you're going to do all

00:02:58   of the right things, not just half of them.

00:03:00   So just an interesting thing to kind of look at as a developer, kind of walking the line

00:03:07   between those two.

00:03:08   All right.

00:03:10   I have a link to an article over on MacObserver.com, and this is talking about the future of Mac

00:03:15   after Lion.

00:03:17   And a lot of this is just an interesting discussion of, well, okay, so now Lion's out, what does

00:03:21   that mean going forward?

00:03:23   What are we going to be seeing in macOS sort of in the future as we move sort of down the

00:03:30   road, say you look at whatever that next release is, whether that's Big Cat or if they're going

00:03:35   to come out with macOS 11.

00:03:38   And the interesting thing, I think, here is talking a lot about how what the line release

00:03:45   did was, to a large degree, was change the operating system to mirror a lot of what iOS

00:03:52   does.

00:03:53   And some of that's in the way that it does it with UI and user experience and those types

00:03:58   of things.

00:03:59   But really, what this article is talking about, I think, moreover, is in philosophy, where

00:04:04   a lot of what has changed in going from Snow Leopard to Lion is making the system much

00:04:12   more like iOS in the sense that users, it's targeted at a much more simpler user.

00:04:20   So that the average user who uses it, who picks it up in this Apple store, comes home,

00:04:23   works with it, their experience will be much, much better.

00:04:27   However, the power user may be somewhat more frustrated by Lion as a result.

00:04:33   Because what Lion does is kind of crunches you in-- OK,

00:04:37   so as an example, the library directory

00:04:39   is hidden by default on Lion.

00:04:42   Now, if you're a power user, that's easy to get a roof.

00:04:44   There's a little thing you can type in the terminal

00:04:48   to turn that off.

00:04:49   But the fact that that's the default

00:04:51   is starting to indicate, OK, there's all these things

00:04:53   that applications do that the average user should never even

00:04:56   have the opportunity to try and mess with.

00:04:59   And so it's just something that increasingly, I

00:05:01   I think there's this movement in Lion to Apple is sort of unifying not just in the way that

00:05:08   the thing looks and feels in terms of all the gesture support and what they did with

00:05:13   scroll bars and those types of more sort of visual things.

00:05:16   But in philosophy, I wouldn't be surprised if we're ending up into a place where, for

00:05:21   example, launch pad becomes the sort of default view, which at that point, your Mac looks

00:05:28   very much like an iPad.

00:05:30   And then you have some way to get out of that and escape it, but only really if you're a

00:05:34   power user.

00:05:35   So just some interesting things to think about.

00:05:40   And lastly, in the links section today, I'm going to talk about--there's just a great

00:05:45   use of Stack Exchange over on apple.stackexchange.com.

00:05:49   Someone posted a question, "What tiny thing in Lion has made you smile or caught you off

00:05:54   guard?"

00:05:56   And so if you're not familiar, Stack Exchange is a place that you can ask questions and

00:06:00   have them answered.

00:06:01   And so the person who wrote this question essentially just was asking, "What are these

00:06:07   little things?

00:06:08   What's that tiny nugget of functionality or feature that you've discovered in Lion or

00:06:14   been surprised by that's either made you smile or cry?"

00:06:18   And some of these things are just really interesting.

00:06:19   I mean, very few of them are sort of new discoveries to me, but I highly recommend if you're new

00:06:26   to Lion playing with some of these things.

00:06:28   As an example, there's a new thing in Finder where when you select a number of items, right-click,

00:06:32   and instead of saying "new folder," you now have the opportunity to say "new folder with

00:06:37   selection."

00:06:38   So you can very easily start grouping files and things, which is a pretty minor thing

00:06:41   rather than creating the folder and then dragging the contents you want into it.

00:06:46   There's lots and lots of these little things.

00:06:48   Using Terminal Online is now amazing with all of the auto-resume and those types of

00:06:54   things.

00:06:55   does benefit a lot from that, from kind of removing the context, the state things.

00:07:00   So every time I open up terminal, it's opened up in all the same directories, all the places

00:07:04   that I was before.

00:07:06   There's things in preview where you can now do signature import, where you sign on a piece

00:07:10   of paper, hold it up in front of your iSight camera, and then use that to sign PDFs, which

00:07:15   is pretty cool.

00:07:16   It just adds something, you know, just an offhand feature that I don't think I heard

00:07:20   anywhere.

00:07:21   So anyway, it's just a really good article, or certainly an article, I guess.

00:07:24   It's just a collection of comments and things that people have discovered, but definitely

00:07:29   worth checking out over on Stack Exchange.

00:07:32   All right.

00:07:34   Next I was just going to sort of move over to the general discussion.

00:07:37   But before I do that, I was just going to have one quick side note about the show notes.

00:07:41   And when I say, "Oh, all those links are in the show notes," what I mean by that is the

00:07:46   RSS feed for this podcast.

00:07:49   If you're subscribing to inside of something like iTunes, if you look at the description

00:07:53   of the show, you'll see the titles of all the links but not the actual targets for where

00:07:58   you'd go.

00:07:59   So the best place to get that is either to go to the website directly for this podcast,

00:08:05   so that's developingperspective.com, find the show you're interested in, all the links

00:08:08   are linked to there, or if you subscribe to the show via using a nice, for example, iOS

00:08:16   application.

00:08:17   I'm rather partial to SimpleCasts, which is the one that I wrote.

00:08:20   But if you subscribe in something like that, then typically there's a show notes button.

00:08:24   In simple casts, if you're listening to this, there's a little paperclip icon in the bottom

00:08:28   right.

00:08:29   When you're listening to the show, it lets you open up all the links, look at them, add

00:08:32   them to Instapaper, those types of operations.

00:08:35   Or finally, if you're wanting to get them in a more sort of standardized way, you can

00:08:40   subscribe to the podcast feed just in a news reader.

00:08:43   So in Google Reader, NetNewswire, something like that.

00:08:46   And then it'll ignore all of the audio parts of the podcast and instead just show you the

00:08:51   links associated with it.

00:08:53   So those are just some ways to get a hold of that if you were curious what I mean by

00:08:56   "get it up," you know, take a look at them in the show notes.

00:09:00   All right.

00:09:02   So for today's general discussion, I'm going to talk a little bit about tools.

00:09:06   And this discussion is sort of started by a tweet that I heard or I saw over the weekend

00:09:10   by John Cook, who's talking about what originally caught my eyes.

00:09:15   He has a quote from Donald Knuth, which if you're not familiar with Donald Knuth, you

00:09:20   could probably safely call him the grandfather of modern computer science.

00:09:26   He famously has the art of computer programming books.

00:09:32   He's just very, very smart.

00:09:34   He's one of those people who wrote tech, which if you're familiar with that, is quite an

00:09:40   impressive thing.

00:09:41   He's famous for, if you find bugs in his code, he'll write you a check for an amount of money.

00:09:49   It's often things like for powers of two, so you get $2.56 for finding a bug in something

00:09:54   he did.

00:09:55   He's a great character, but really it's just an interesting thing.

00:09:59   And if you've never read The Art of Computer Programming, it's definitely a tough thing

00:10:03   to get through, and I can't say I've done it myself, but I've definitely browsed it

00:10:05   and perused it, and it's just kind of one of those.

00:10:07   If you want some instant geek cred, it's a book series to put up on your shelf.

00:10:11   But one of the things, there's a quote that he had from Donald Knuth saying, "The enjoyment

00:10:16   of one's tools is an essential ingredient of successful work."

00:10:20   Let me read that again.

00:10:23   "The enjoyment of one's tools is an essential ingredient of successful work."

00:10:29   And what I thought about, I was just very struck by how honest and true that actually

00:10:33   is in my own experience.

00:10:35   Whether that be while I'm developing software or while I'm doing hard labor in the back

00:10:40   digging a ditch, the enjoyment and the ability to which a tool makes your job easier is almost

00:10:49   directly related to how much you are able to have success in your work.

00:10:56   If you're constantly feeling like you're fighting your tools, then you're almost inevitably

00:11:00   not going to be able to be successful.

00:11:04   For a developer, this comes into play with things like where you spend most of your time.

00:11:11   As a developer, for example, this is what text editor you use, what version control

00:11:17   system you use.

00:11:18   I think that's even one that I think, moreover, recently I've been struck by where using the

00:11:24   right version control system can make your project so much more successful because it

00:11:28   allows you to do things with such an easier way.

00:11:31   If you think back, my first version control system was CVS, which is probably still in

00:11:37   use in some places, or Perforce, or one of those kind of more old school version control

00:11:43   systems, versus something, say for example like Mercurial or Git.

00:11:47   You have all of these differences that make your, the tool itself so much more enjoyable

00:11:53   that makes you so much more successful in what you do, because a good tool will feel

00:11:59   like an extension of yourself.

00:12:01   It will feel like something that just makes sense and it just works, rather than being

00:12:05   something that you're actually fighting.

00:12:06   The tool becomes invisible to you in your operation of it.

00:12:11   And so I just couldn't agree more with Donald Knuth in saying that.

00:12:16   And if you read through some of this article here, that's John Cook's article where this

00:12:23   quote originally came to my attention, the thing that's interesting is it's a discussion

00:12:27   about whether things are getting more and more--having more and more sophisticated IDEs

00:12:33   is actually hurting development by making that process more complicated.

00:12:38   And the thing that I found is I would say the opposite.

00:12:40   I think having a really well-designed, well-written piece of sort of development environment is

00:12:48   very, very conducive to increasing productivity for a developer.

00:12:51   Things that just sort of get out of your way, then things like, you know, IntelliSense or

00:12:56   code sense or whatever they call it these days where you don't have to remember all

00:12:59   the nuances of your API.

00:13:01   Those types of things, once you get good at them, really improve your productivity.

00:13:08   It's doing it in such a way that you're not necessarily losing the granularity and the

00:13:15   -- I'm trying to think of the right way to say that.

00:13:19   It's dangerous if a tool takes away your ability to change and tweak things.

00:13:24   But it's good if a tool makes it easier for you to do the things that you do often.

00:13:29   So it's bad if you have something that completely takes away, puts all of this code into a black

00:13:34   box.

00:13:35   It's good when it makes creating that box in the first place much easier.

00:13:39   So anyway, just sort of a little, some thoughts I was having about how important it is.

00:13:45   And it also kind of makes you understand why developers get so fanatical about their tools.

00:13:49   why the classic Emacs versus Vim war has been going on for so long.

00:13:55   Because people really care, and it's not just a, "Oh, this one's better than that one, this

00:14:00   one's better than this."

00:14:01   There's actually a difference there in terms of one of them makes that individual coder

00:14:06   much more successful, much more productive at his job, and the other one doesn't.

00:14:10   And so it's important to understand that and to recognize it.

00:14:13   All right, that's it for today's show.

00:14:15   If you have any questions, concerns, comments, hit me up on Twitter.

00:14:20   I'm @_DavidSmith.

00:14:22   And have a good day.

00:14:24   Otherwise, happy coding and I'll talk to you tomorrow.