Why Aren't Android Developers Flocking To The iPhone?
alleyinsider.com
alleyinsider.com
Apple's user-base is attractive, but it's also putting your eggs into a basket that can be taken away from you at any time. I love Apple, but I can understand why people would be hesitant to throw money in that direction.
7-8 years ago I used to develop mobile apps in both Palm OS (closed platform, just one vendor) and J2ME (open, widely adopted). Palm had the more attractive installed base back then, but as their fortunes changed, that investment is now worthless. Compare with J2ME, which kept growing thanks to support by most vendors.
Also: sure, in 8 years the iPhone may be dead and Apple bankrupt, but (1) do you really think so? and (2) do you really need to plan that far in advance?
Regarding advantages to the software developer, having just one place where you distribute, and that place being controlled by Apple, isn't a good thing at all. It may mean that it's easier to start selling, but also that you have no negotiating power if and when your app becomes a success.
The stupid music companies managed to hand over the keys to their distribution to Steve Jobs, but they're not exactly happy about the fact that he now has so much control over their fate. Apple's great at creating consumer electronics that actually appeals to people, but they don't seem to be a very nice company to deal with as a business.
So it's looking pretty good so far, even if no phones are running it just yet heh.
And the more high-brow arguments about lock-in and freedom are true, but obscure the simpler point: sorry, but I'm just not interested in paying $99 and waiting on a list for months just to run a program on my own phone!
Android has the distinct and notable advantage of actually being a working target platform for the people who want to play with it. Apple will no doubt attract a few established developers to the iPhone, but all the cool stuff will be happening on Google's platform.
In any case, both platforms are here to stay for quite some time.
Good programmers don't learn languages, they learn methodologies. You don't learn how to program in Lisp, you learn how to program functionally with flexible syntax. You don't learn Objective-C, you learn how to write good code in a message-passing OO system.
Sure, the libraries can take some time to acclimate too, but this is our job! I just shake my head and sigh where I hear programming language is the barrier. I can never tell if it's a clever excuse for the press, or if people actually believe it.
However, I guess the article refers to a mobile app shop that wants to make money, and that's when economic considerations set in. New language/framework means an investment in re-training your (mostly average) developers. Objective-C vs. Java also means having a tougher time locating experienced developers. In short, it makes less business sense.
Nothing stunning at all.
As long as Android has no paying customers, it's easy for it to be great. There are no tough compromises to be made. There's no battery to be drained by your resource-hungry app, and no customer to complain about that drained battery. There's no need to broker deals with carriers (who, incidentally, have stricter and stupider rules than Apple ever will), no need for effective marketing, no need to worry about market share or competitors or profits or even prices. There isn't even any need to fix your bugs. You can live happily in cloud-cuckoo-land; a place where your apps can do anything they want (take over the phone? use 85% of the available bandwidth? accidentally overwrite other application's databases?) without ethical, legal, or physical constraint; a place in which you don't even have to study anything in order to develop gorgeous, easy-to-use, insanely profitable mobile applications.
Meanwhile, Apple is very, very likely to do to Android what they did to the Linux desktop: Deliver 85% of the features and 175% of the usability in a consistent, beautiful, well-marketed package that will promptly become the platform of choice for users who have any money... who, incidentally, are also the users that are most likely to spend money on third-party software.
Right now, developing for the iPhone seems scarily similar to developing for a game console in the amount of politics and bureaucracy involved.
Other than that, I agree... it's just another programming language, and from my experience spending a little bit of time learning it when I worked for a company that provided me a mac, it's a pretty nice language. (That was v2. I hear v3 is significantly improved.)
Some day I might add a mac to my computer lineup, but for now it's not feasible, largley due to financial constraints... meaning that although I'm not exactly struggling to make the mortgage payments, my budget is finite, and I have other priorities besides yet another computer at the moment :)
The same shift has occurred in gaming with consoles taking over as the development platform of choice. So, I see the best cell phone apps existing on the iPhone for this very reason and furthermore, produced by significantly smaller studios. The iPhone SDK + iTunes distribution is a garage-programmers delight for anyone seeking to capitalize.
The problem with Android is the burden of designing around hundreds upon thousands of hardware combinations that exist in an open market. It also completely ignores the entire experience from distribution to installation on the phone; point A to point B can have a lot of barriers which has prohibited a sizable phone software market in the past. Apple has solved this too.
For many people, that's an opportunity, not a problem. The width and breadth of the current cell phone market indicates that variety is something that the market values, and a one-size-fits-all phone is never going to conquer that large a share of the overall market.
Also, consider the many vertical and niche applications that will only be possible on a platform like Android, where you have more control.
Based on my limited understanding of Objective C, it compiles to native code plus message passing, while Java compiles to bytecode -- which should give both languages similar performance. The Language Shootout bears this out, on PCs, at least:
http://shootout.alioth.debian.org/debian/benchmark.php?test=...
When people who aren't brokers or traders are referring to companies by stock symbol rather than name, sell.
If that's the case, then presumably a lot of the heavy lifting will be done on the back end and writing multiple front ends won't be a huge problem. (i.e. Loopt)
The differences however will be: 1) You do not have to use it. 2) They will take much less than 30% (so they say)
While I agree with you for small-scale apps made by individuals, I think AppStore is a problem for startups looking to monetize their apps on a larger scale. 30% is a huge chuck off your total revenue any way you slice it. And remember, there is no legal alternative to AppStore for the iPhone.