I was sad to see that Gruber couldn't step out of his Apple bubble to tackle this topic (or any topic, ever), so I will:
Everyone who thinks "I should be developing for platform X" is thinking far too small. Take a look around you.. how many of the great companies were formed developing for a particular platform (unless it's their own)? Almost none. In 10 years, do you want to be the old and busted equivalent of the MFC expert whose software was hot in year 2000?
You don't make the Googles, Facebooks, Twitters, of the world by developing just for iOS. Or just for Android. If that's your business plan, tear it up and start over. Because $0.99 a pop doesn't amount to jack-all unless you're Angry Birds. And even they, if they got $1 for each of their 500MM downloads, have still not made as much as Modern Warfare 3 made last week ($738MM in revenue).
Go create a market. Stop being part of Apple's/Google's market for drumming up hardware sales and/or serving ads.
1) You might not want to build the next Facebook. Many developers don't actually plan to start multi-billion-dollar companies. If you are an individual developer, or a small team, you cannot cater to everyone, you must pick the one platform most suitable for you. And then you can go create a niche app and make a decent living from it.
2) Even big and successful companies started on a single platform. A classic example would be Adobe: Photoshop was initially a Macintosh-only application, and has been ported only when it was already hugely successful. But actually Rovio is the best example that the choice of platform is extremely important: They have been hugely successful only when they started selling their iPhone app, and started porting to other platforms only when they were already extremely successful.
Hell, even Facebook, Twitter, Google started on a single platform: the web.
Whatever you create, even if it's for iPhone first, don't get bogged down on it being on "platform X". Photoshop, as you mentioned, is a great example, it didn't need to be on a Mac to be great. It just was developed there first, and now sells more on Windows (I think).
If you focus too much on the platform, once that market wanes, you end up nowhere. This is what I meant by the MFC guy -- maybe an even better example is the VB 6 guy. We know this guy, right? He's an expert with VB 6. He made a damn good VB6 app 10 years ago, which he's supported since then. But he spent too long focused on VB6, so god help him trying to get a job today doing C#.
Your idea doesn't have to be as big as Facebook. All I'm saying is, don't get so focused on the platform that you become that VB6 guy. Focus now, sure, but developers over time should be broad and flexible. And if you are starting something new, your idea should be too.
I totally agree with you here. It's important to see when you should switch. But I think that right now it's a great time to be an Apple developer, and as I understood it that's what Gruber said.
I don't think that everyone should develop for the iPhone or for the Mac. There are plenty of possibilities elsewhere. But if you happen to really like your Macbook, you can actually make a living developing Mac or iOS apps today.
If, as a developer or startup founder, you see yourself as someone capable of creating interesting applications, specializing in one particular client side technology isn't going to get you very far. Apart from games, I don't see many interesting applications built on iOS alone.
But the title of this thread is about "career advice", so if taken to mean "what's going to make me employable in the coming years?", Gruber may have a point. There will be a large number of jobs at ad agencies making cookie cutter "branded experiences" on top of iOS (unless it's swept away by HTML5). It may be a good career choice for people who used to specialize in Flash.
Personally, I don't find it particularly appealing to say the least.
Apple's goal (and every other platform maker's goal) is to commoditize app development. There are already hundreds of thousands of apps in the store. I don't say that developers shouldn't develop for iOS, I just say that Gruber's article generates false hopes for the developer masses.
Modern Warfare 3 runs on the Microsoft (Windows/Xbox) and PS3 platforms. Like Angry Birds run on the Android and iPhone.
Modern Warfare 3 didn't create their own platform, and no sane game studio will create their own platform. They'll follow what people buy. People bought xBox, okay, get that game on Xbox. People bought schelabiza to play games, okay, get that game on schelabiza.
Modern Warfare 3 made much more money because it's not Angry bird. Like GTA, Skyrim... these are games that you pay $30-$50 for and not a buck.
What Gruber meant is this: This platform is going to be huge. Really huge. He is betting on iOS. Investing your time learning/developing on iOS is good for your career because you'll be able later to create apps, work on companies, do consulting...
> Everyone who thinks "I should be developing for platform X" is thinking far too small.
I started to develop for the web and the browser "platform" in the late '90 and it is still going strong. Maybe it is _you_ who are thinking too small? Back in the '90 we knew that the next big thing would be mobile, but it never happened. It was first when Apple introduced the iPhone, iOS SDK and the AppStore that we got a breakthrough and everyone could develop and get their app on a mobile device. Before Apple, only a select few, anointed by telecom operators and for a step price could get their app on a mobile set. I say that Apple paved the way for making development for the mobile platform accessible for "everyone" and now finally, mobile might just be the next big thing. What is interesting is that the browser "platform" still is a strong alternative for mobile and native apps.
The web is not a platform in the sense that we're talking about here. It's a set of open, free, non-proprietary specifications that anyone can implement on top of. iOS is not that. Just like Windows is not that.
fwiw, I realize it's just an example, but Rovio (Angry Birds) has been surprisingly good about building the brand and so forth. They also have a ton of licensed products (stuffed animals, etc...), and there will be an Angry Birds movie from what I understand.
I absolutely agree, I think Grubber has gotten very comfortable in the so called apple bubble environment, I don't blame him though. But you gotta take his advice considering where he's at, and to be honest his advice is informative at least.
At the risk of being a cynical ass, let's not forget that this is basically Gruber playing the modern day equivalent of Levi Strauss: "Come to California/the App Store, you'll get amazingly rich! And while you're here, I am sure you would be interested in some clothing and dry goods/a $6,500 ad on the most influential Apple blog."
I don't want to under-estimate the importance of movable type...but what has Gruber developed? Looking at the list at http://daringfireball.net/projects/ doesn't exactly fill me with shock and awe. I'd imagine with his huge following in the apple community he could put almost anything on the app store and it would sell. Can someone enlighten me? I guess my meta-point is, why am I reading software development career advice from someone who doesn't seem to be a developer?
I've found that [Pandoc](http://johnmacfarlane.net/pandoc/) has picked up the Markdown torch. It's got the most-needed additions using the probably least-controversial markup additions. Works great, is fast, well-documented, and is actively-maintained.
Eh, again, scratching an itch. He could have done more, but that wasn't his main goal. He doesn't make money off Markdown or anything, so his only real concern with it is how it serves his needs. My point was just that developing software, even popular software, isn't entirely foreign to him.
He's a pundit, but he's really close with all of the influential developers in the community. He's more in tune with the Apple community than perhaps any one other person, and his track record of being right is unmatched in the last several years.
Wikipedia (https://en.wikipedia.org/wiki/John_gruber) says he has a BS in compsci and worked at Bare Bones Software and Joyent before he started doing Daring Fireball and writing as a full time thing, so it looks like he has at least some experience in the software developer trenches.
"One simple way to look at it is that there are far more people who've never bought an iPhone and who've never bought an iPad, who will in the next five years than all of us who've already bought at least one to this point."
That's one simple way to look at it. Another slightly less simple way is that the ones that already have Apple devices are the savviest, hippest, and spendiest consumers around, and you can't possibly hope to milk as much money per person from the ones that adopt later.
I disagree, though based on the attitude of your comment I'm not sure if you'll take my point.
Here in Dublin, at least, iPhones are becoming extremely popular, even with the losertechnicians of the world. Businessmen with no tech skills are replacing Blackberries with them, teenagers are flocking to get them, and there are even dodgy-looking iPhone accessory shops in bad neighbourhoods.
Over here, since around the start of this summer, the iPhone 4 has been available for free on a 40 euro per month contract with unlimited data and enough minutes/texts for the vast majority of people, on pretty much every network. That's a really good deal, and a huge number of people bought into it, figuring that they spend at least that on credit anyway.
When the iPad 2 launched over here, there was a period of 8 months where you could not find ANY, at all, even in the authorized resellers that Apple likes the most. At any one time there might have been one for sale in the whole city.
Android is gaining momentum here too, and I don't know figures for any of this, but I definitely haven't seem them on as many non-hackers as I have iPhones.
In conclusion, no, the people who have iPhones are not the Apple-savvy hipsters. At least in this city.
The first wave are the tech enthusiasts, these people are not big app buyers but are interested in finding a good SSH tool, or an mail client that supports PGP. These were the main customers of the first iPhone.
I'd say we've been in the second wave for the last couple years. These people are seeing TV the ads and are curious. Their friends buy iPhones, it makes sense for them too as well. They're not "hackers", just people that are willing to try apps. These are your Angry Birds players, and where the main revenue comes from.
The third and final wave will be moms and general folk who will never sync with iTunes. It's those people that are never going to buy an app because they won't know what an app is. And that's fine, they'll like how their phone talks to them and how they can Facetime to their kids.
I don't mean to say that all iPhone 1 users are "hackers", just that a higher percentage of them were than are now iPhone 4S users. A lot of those people likely went off to Android in the recent years, anyhow.
Good catch, though there were definitely apps on the first iPhone. AppTapp/Installer was introduced around Christmas time if memory serves, and there were apps, utilities, and even a few games available.
Now that I think about it, Android has 3X (or whatever) the market share of iOS, and no one seems to be making a ton of money from Android (except Google), the future for Android developers is pretty grim if you ask me.
It would be interesting to know, why being an Apple developer is favourable to being any other type of a developer? For example, android market share is already larger than Apple devices, and people still spend lots of time in front of traditional web browsers.
You can still make fortunes and/or have an interesting career with other platforms and technologies too.
Gruber's right because the mobile market is expanding. However, his loyalty to Apple keeps him from saying what he really should have said: Get into mobile (Apple AND Android), hard and fast.
About 77 million of the "big two" (60 million Android, 17 million iPhone) smartphones shipped in Q3 2011. Apple has a huge install base, but it's not Apple's game anymore - Android has more than 3x Apple's marketshare, and is on a meteoric rise in contrast to iOS's slow marketshare decline. More and more customers are being introduced to mobile devices, and we're still in the early stages of the mobile landgrab. There's a lot to be won, but it's disingenuous to focus on Apple as the nexus of that growth.
Because this (and several other comments on this submission) appear to attack Gruber for not talking about Android, and I think that is an extremely unfair criticisim given that he was speaking to iOS and Mac developers at an event about iOS and Mac development.
More generally, I have a morbid interest in HN's tendency to flip it's collective shit whenever Gruber's name is mentioned, and have honestly lost faith in my ability to tell when that sort of criticism is intentional or not. So when presented with something that sounds a little dubious, I'd like a clarification. There have been times in this site's past where that was not offensive to anybody.
I hope that answers your question.
You know that's not what he said.
I don't understand why you take issue with my asking a question but then feel permitted to tell me what I know, but I don't care, either, so there's that.
It seems to me that Android is the next Nokia. Large market share but like Nokia their marketshare is almost worthless since Android users dont spend as much money as iOS users. At least that's what everybody's saying.
I think we're taking slightly different lessons from that post.
iOS = $5914, Android and iOS = $10342.08
Between the question of statistical significance and the vagaries of mobile app promotion and discovery, it's hard to say that one clearly pays better. However, both usually pays more if one is paying well, so it would often pay to support both as soon as it is practical to do so.
Given the population numbers presented above it does imply that individual Android users spend considerably less. There is a huge pool of them so the income is similar, but paying customers are harder to find in that huge pool of users. This means that Android devs may encounter the "app store roulette" phenomenon in spades; those apps that have a viable customer acquisition strategy will do well and the long-tail of Android devs will gain far less.
He is completely out of his mind. George Lucas, a Saint? Along with Saint Thomas, Saint John, etc.? Words have no meaning anymore... Even Confucius would be pissed of. (When asked what he would do first if given a prime minister position, he say he would rectify the words.)
Gruber is like a person who really enjoys eating cupcakes. He knows all about cupcakes, and even goes so far as to think he knows how to make them. He's probably baked a few things here and there. Sadly, he also thinks his 'expertise' on all things cupcakes makes him an all round bonafide chef.
I am trying to figure out why don't Gruber himself listen to his own advice and develop iPhone/iPad app already.
I mean, writing good technical reviews and opinions about iOS is a very nice thing. But give advise to mass developers should be done from experience, rather than theory.
As for the advice itself, it is right that in five years from now, mobile devices will be all over the place and today's sales volumes are just the iceberg's tip, yet, a developer should think about the opportunity of "mobile-computing" rather than a particular "mobile device". For me, it is a web developer who decide his web apps are to be working with chrome browsers only, since the number of chrome installations today is nothing comparing to what it will be in 5 years from now, and simply ignoring safari, firefox (and even ie, oops).
For me, it is a web developer who decide his web apps are to be working with chrome browsers only, since the number of chrome installations today is nothing comparing to what it will be in 5 years from now, and simply ignoring safari, firefox (and even ie, oops).
Five years ago, when Chrome didn't even exist, someone could've said the same thing about Firefox. Funny how fast things change, eh?
Someone who calls themselves an Apple developer and who doesn't work for Apple needs to consider expanding their horizons. Mobile developer? That's a little better. Or just, developer. It's a great time to be a developer.
What Gruber is saying is that anyone who is developing for Apple's platforms is about to enjoy an enormous surge of opportunity. As these platforms see even further adoption, their capability will only increase. So if you're in Apple's playground, you're watching it turn into Disneyworld in a way that will never come again once these devices are baked into people's assumptions about how the world works.
I wouldn't have put it so harshly myself, but I did see the article and immediately think "John Gruber is going to tell me to write software for Apple products." I would have been mildly interested to have been wrong.
Much bigger in the developing world which is where the economic center of gravity is shifting to. So better long-term prospects unless trends reverse. But, yes, copycats are likely a bigger problem in Androidland.
There is a lot of that 'climate' that you will never see.
We are developing Android apps that will never see a Market Place. We just put them on the devices directly.
Those apps are used by big companies. They are very specialized apps.
Why Android? Because we don't need Apple to install the apps. And a lot of developers already know Java.
I usually find Gruber's tone to be arrogant and unnecessarily facetious. But I think his analogy is great.."This is like being a Rock and roll musician in the late sixties. This is like being a film maker in the seventies..."
I don't think that analogy really works because there is not much distinction between "Apple developers" and other developers. There is no barrier to start developing on Apple platforms and there probably won't be for the next big platform. Low barrier to entry is one key factor of a platform's success.
Sure there are barriers. A few that come to mind include the $99 per year Apple developer program fee, which is necessary to distribute apps, the Mac OS requirement, and the objective c hurdle. These may seem more like inconvenience barriers, but they do keep people away from the development pool.
I should probably clarify why I think the analogy works; It's an exciting time, it's changing rapidly, there's a lot of opportunity and developers are garnering a lot of focus from a lot of different areas.
This might be true of Apple, but it is definitely true of both the software industry and theoretical CS. The industry is expanding--computers are getting cheaper and more plentiful so we need more and more software. Since we also have more computational power in our hands, we can do more and more interesting things with computers.
Theoretical computer science is also in an exciting time--it is a nascent field with many exciting discoveries and inventions to be made even without gigantic budgets. I think it's something like physics in the early 20th century, before they started needing gigantic particle accelerators and the like (I'm sure physics is still exciting and I'm just showing my ignorance, but I think there's a parallel nonetheless).
Right now is a perfect time to be a developer or computer scientist anywhere, not just at Apple.
I'm just curious (and hope I don't come off as being ignorant), but what kind of exciting theoretical CS developments have occurred in the last few years? If you can list some really groundbreaking papers that aren't too advanced, I'd love to read them.
Most of the stuff I see in academia is incremental improvement. Not that this should ever be downplayed.
All of academic output is an incremental improvement (it may differ for the social sciences. I don't have experience with that.) Newton famously acknowledged it in his letter to Hooke.
We also have the misfortune of struggling with the deep unknowns, as all of the trivial theorems have already been proven before (consider Feynman's definition of trivial in 'Surely You're Joking, Mr. Feynman!', New York: W. W. Norton, pp. 69-72, 1997.)
But some improvements are greater than others. The question is where you draw the line. And I hold that most researchers' line encompass more then yours. Consider, for example, Jiří Matoušek's opinion of Computational Geometry in 2010 (to save you the reading, he called it no less than an annus mirabilis. You can read his reasoning here: http://kam.mff.cuni.cz/~matousek/mor.pdf)
This is like being a Bee Gees clone in the late 1970s!
No disrespect intended to the kings of disco, but being a successful in a fashion bubble doesn't make you cool or give you shelf-life. I hate this sort of talking up. Gruber has been really hard to stomach since iOS took off.
"unless something unbelievable, dramatic changes" - You should expect surprise and drama in a walled garden. Facebook apps have been a lasting source of substantial revenue for only a few companies.
It may sound incredibly frivolous now, but he's right. Irrespective of Apple or iOS, this is the time to be doing something more. I think the message here goes beyond just developing for iOS, but rather, for everything. Build something that you love, work for a company where you feel like you're doing something worthwhile. Whatever you do, make sure you're working on something that makes you say "fuck yeah." Don't neglect what's about to happen. We're about to see a major shift in technology and for those who are truly passionate about it, you'll want to be a part of it.
Well, one coud argue that developing one web app for a selected browsers is faster than developing a few native apps, each for different OS. Especially when you consider the fact that on mobile devices Webkit is a de facto standard and that issues like Android fragmentation doesn't make developing native apps any easier.
In my opinion, the real issues about web apps are: performance, lack of the Device API and a lack of matured tools. Solving first two is, luckily, a question of "when", not "if". The latest phones are already fast enough to handle even the heaviest jQuery monsters; LTE and 4G are getting traction and Device API is a work in progress (eventually, there's a PhoneGap).
Developer Daniel Markham calls iPhone development “App Store Roulette,” and Andy Finnell of the software studio Fortunate Bear cautions against hoping for App Store success. “You’re betting a lot of this on luck, and the odds are stacked against you," Finnell says. "You’d have better odds playing slots at a casino.”
Indeed, as much as app development has been called a gold rush, there is an equally loud theory that it operates more like a casino.
“The closest thing I’ve seen to a ‘business model’ for marketing iPhone apps is to advertise like crazy until you get into the top 50,” says David Barnard of AppCubby. “Once you’re there, the top 50 list will start generating its own buzz...But that’s not a business model, that’s like rolling the dice at a casino.”
It is the same with other industries: Music, Movies, Theater, etc. Nothing is for sure. Not sure why we are singling the AppStore. There have been $100 million (USA) movies that have flopped. Most ventures will flop and only a few will take all the revenue/income in any industry.
The gold rush moniker is really apt when used to describe the app store. Mainly because only a few, very few ended up rich, while most did not. The people that made the most, were the ones providing for the miners, and again, Apple and people making tools for people to make apps are making a killing, while only a few app makers are making anything substantial.
I don't really like this attitude. It strikes me as a built-to-flip style of business. I'm personally not planning to get rich from one app, but rather I want to create a bunch of apps that serve various markets. Hopefully, at some point, I will capture enough market that I can quit my day job. But I don't expect any of my apps to ever be top 50 anything. Rather I'm hoping they're each one of 10 (first page) that come up when you search for a specific task.
Now that I think about it, Android has 3X (or whatever) the market share of iOS, and no one seems to be making a ton of money from Android (except Google), the future for Android developers is pretty grim if you ask me.
It astounds me that there are still jobs for developers. I'm not talking about SV stars, I mean the hundreds of thousands of programmers writing CRUD apps around the country. That is eminently moveable, and if the stereotypical code quality of the stereotypical foreign outsourcing shop is sub par, it's not because they don't have the same brains as we do, it's merely because a) they haven't caught up with us yet (they will), and b) they haven't captured that work as primary developers yet, they're still learning to take that work by being (at the moment) sub contractors.
Japan after World War II, for example, broke into the market by making "cheap plastic crap" and motorcycles. Then better plastic crap and small cars (remember the Honda 600?). Then really good plastic crap and really good cars, and now that pie is divided among many more people around the world, including "our" pie.
Why will software be any different? It takes no resources except a brain, a computer and a connection. The whole world has the same quality of brains and computers as we, and their connection quality is often much better and cheaper than ours.
"Why will software be any different? It takes no resources except a brain, a computer and a connection. The whole world has the same quality of brains and computers as we, and their connection quality is often much better and cheaper than ours."
It takes one more resource: communication. Custom software development is quite different from motorcycles. If you need custom software development, and your business is going to depend on the result, outsourcing that effort to another country, especially across cultural and maybe language barriers, can be a disaster. You need developers who understand your business and the expectations of your customers.
In fact, take your argument and apply it to every other position in a company. Only a few of them, like sales, truly require an in-person presence, yet companies don't outsource most of them. Are they crazy, or are there good reasons for that?
"If you need custom software development, and your business is going to depend on the result, outsourcing that effort to another country, especially across cultural and maybe language barriers, can be a disaster."
For now. Yes, today it often is a disaster. It won't always be so. We didn't used to have an Indian software industry at all, for example. Now there is one. And one day it will be a no brainer to send most CRUD work there. In fact it won't be "sent" there, that function will exist there. And not only because India and other countries catch up on an industrial scale, but because businesses will demand it. Supply and demand has two sides, and demand will be filled, however slowly.
"yet companies don't outsource most of them. Are they crazy, or are there good reasons for that?"
They haven't got good at it yet, but they're trying and learning, and suppliers are getting better.
Large corporations only make one thing, money. Each one happens to do it by selling something different, but what they sell is incidental, what they're good at is making money. Part of making money is not spending money. If you're a bank, your software systems may be crucial to your business, but they're two steps away from the primary business of making money: 1) Make money, by 2) selling bank services, enabled by 3) software and other systems.
If you can get the same or better quality outside your building you'll do it if it's cheaper and good enough. If you have a communication problem between the software department and the investment department, one solution is to send both departments outside the building, and let them communicate with each other in a cheaper venue. If it's possible, it will be done.
I'm not saying don't go into software development. I'm saying that the world changes, and my 13 year old son's career is going to be much different than yours, inevitably. And your career is going to be much different in twenty years than it is today, not only because you'll have changed and grown, but because the world will have changed out from under you. And it gets faster every day.
Here's hoping that we're all rolling in dollars in twenty years. Or rupees.
Since Android is a defensive strategy to keep competitors from controlling the platform below Google's services, you could say that Android secured all of Googles current and future earnings. That's a lot of money.
This sounds like an advertisement to come panning for gold in 1854, years after the gold rush had begun. I think the iTunes app store story is practically over by this point. The app store is long-since saturated with useless gimmicky fart apps, and Apple's force grip on the development process will stifle innovation which is already spilling back into the web via HTML5 and WebGL.
But the gold rush in the mac app store is just beginning. It will be interesting to see whether the mac app store will have a price race to the bottom like te iOS store, or whether prices will remain at 10x the level.
What would be really interesting is microsoft getting in the desktop app store game with windows 8. There's a gigantic potential market, if they manage to unlock it. I doubt they will, but still ... interesting.
Everything he said can pretty much be said about the web, too. Along with that comes the fact that of these millions of news users, hardly anyone will want to pay a dime for anything.
That was the beautiful thing about developing software in the 90's: people were still willing to pay for stuff, you just had to figure out the (often insurmountable) distribution. Now, it seems like the only way to make a meaningful income is to insert yourself between layers of large business.