This week Apple held its annual WWDC conference in San Francisco. WWDC is a developer’s conference, and it’s aimed at introducing them to changes to the iOS and OS X platforms as well as allow them access to the people who wrote the frameworks they are using and possibly having issues with or just trying to understand. Apple kicks off the week with a keynote on the first day, which is where they announce the upcoming good stuff they’ve been working on all year. In the case of the 2014 keynote, they introduced things they’ve clearly been working on for longer than that. One of them was Swift, a new programming language designed to take iOS and OS X development into the future without some of the overhead baggage of Objective-C.
Swift looks great. It’s been designed with modern programming language considerations in mind, and yet it allows all the same Cocoa frameworks to be used. It can be used in combination with Objective-C and C, so programmers can change over their apps a little at a time rather than having to toss everything and start from scratch. And most importantly for some people, it looks much more accessible for newer programmers or those new to the platform. Modern, cleaner syntax, and live, interactive playgrounds for immediately seeing the effects of code changes seem likely to help lower the barriers to people getting into iOS programming. It’s good news. At least to most people.
I couldn’t believe it when I started seeing tweets appear in my timeline expressing concern that now more people would be able to start writing apps. I’m not picking on any specific person; I saw a bit of this from various different people (all who should have known better, in my opinion). I’ll admit to being a bit gobsmacked and irritated with this attitude.
When I started working in the tech industry 21 years ago, I joined a group of people that had not hired any new people in my particular job for quite some time. There were a bunch of old, experienced guys who knew what they were doing and could be very instructive to learn from. When they were willing to share their knowledge, that is. I cannot tell you how many times I would point out a problem to someone and have them say “don’t worry, I’ll take care of that,” and then wait until I’d left to fix it. Or the number of times someone would give me a partial explanation of something I needed to know, but hold back a key part of the information so that they could retain their domain expert status at my expense. It happened a lot, and I hated it.
Fortunately for me, I was the first of a tidal wave of younger, new people coming in, and there was nothing the oldies could do to stop it. We broke things and learned things, and pretty soon some of the experienced guys trusted us enough to talk to us, and we didn’t really need or care about the ones that wouldn’t anymore. It’s how the world works. If you have been doing something a long time and you’re good at it, you may as well share the knowledge with people who want to learn, because it’s the only way you’re going to keep remaining useful and relevant. If you don’t help them, they’re going to figure it out and then you’ll just be that person who they have zero respect for and no need of anymore.
The same is true of programming. We WANT kids and anyone else with passion for learning to start writing applications and experimenting and learning with code. We WANT people to understand their iPhones are not mysterious black boxes that come with magic installed. Developers who are scared and who want to hoard their knowledge and domain expertise for themselves have no right to get upset when their customers don’t understand the value of their apps. If you don’t want more people to try programming, then those people are never going to understand the sheer effort involved in writing really good iOS apps. If you are one of those developers who wants an exclusive programmer’s club, congratulations, you’re part of the problem.
Anyone can learn to drive a car. That doesn’t intimidate racing drivers. Anyone can learn to paint. That doesn’t cause master artists to lobby for massive paintbrushes that most people can’t pick up, lest the newbies somehow usurp the self-appointed inner circle of canvas masters. Anyone can fire up a text editor and write into it just as I’m doing here, and yet no one who is a skillful and well-known author has anything to fear from me, as I’m fully aware.
Do you believe in yourself? Are you good at what you do? Then what are you worried about?
This isn’t actually about you, by the way. You don’t have the right to decide who gets to program. You don’t have the right to decide who is fit for app creation on your beloved platform. The market will decide that. And even if a million new programmers suddenly sprung out of nowhere today, all using Swift and playing with Xcode 6, you don’t even get to determine if they’re a threat to you or not. Maybe they just want to play and learn and have no intention of selling anything. And even if they do, that’s not your problem. Your problem is your code, and YOU figuring out how to make something other people are willing to pay for. Focus on that.
I have a daughter who is in first grade, who does fall prey to the magical black box thinking at times. I want her to learn that Steve Jobs was right, all of this stuff was built by people no smarter than she is and will be as she grows up. I want her to learn to program. I want her to learn to program on iOS. Even if she doesn’t enjoy it enough to stick with it, she’ll understand what goes on inside the device. She’ll understand that she could do that too, if she wants.
You don’t have the right to keep that knowledge from other people. And guess what? You can’t. If you are a programmer, you’re living proof of that.