Analyzing Apple's iPhone Strategy
Galen Gruman submitted infoworld's summary of Apple's grand strategy for the iPhone. He points out that the real important part of the new iPhone is the software, not the hardware. He talks about the new SDK stuff, the ad-hoc app distribution, and other stuff. It's a reasonable read if you have been ignoring the iPhone and want to know what the hype is about over this release, but doesn't break any new ground if you've been paying attention.
But this shift has only happened recently, and we needed something like the iPhone to show us that the hardware is actually darn good enough!
This is also why I'm so fascinated by Android, which is a powerful software platform (ok, for a given set of hardware).
Misleading titles? Inflammatory blurbs? Keep in mind that Slashdot is a tabloid.
Thanks. That was truly one of the first useful summaries I have read in a while. Now I can skip TFA
"Doubt your doubts and believe your beliefs." -- Switchfoot, Ode to Chin
Really? The only developers I can think of that it would be a problem for are those guys who learned Java or VB at their trade school and have never learned anything else. Pretty much everyone else has picked up C at some point and Objective C is just a superset.
I'd also note that from what I've read developers are raving about the ease of use of the iPhone dev kit. From the development forums I see a lot of happy people, with the occasional clueless person asking if they can develop for the iPhone using Visual Basic 6. I've seen some complaints about the slow rate at which people are letting developers into the program, but not about objective C.
Because today's programmers don't learn programming or engineering, but instead a language. A real programmer should be able to program regardless of a language. In fact they should be able to pick a language based on the problem at hand and not the other way around.
I guess you missed the part where nearly 85% of iPhone users regularly use the web from their phone.
You forgot to include the value of your time to develop the application, any time it might take to market it (e.g., even if it's just posting to Slashdot), any support costs, taxes, etc. Also, if 10K people might buy your app for their iPhone, there might be 100K people who might buy it if had a wider cell phone base, or 1000K people who might buy it if it was available for PCs, etc., so you might be chasing a tiny "profit pool" anyway if you only target the iPhone.
Microsoft has a similar model going with MSDN and lesser licenses and so do thousands of other vendors with a proprietary platform and a paid SDK/API/dev environment.
The $99 is there basically to protect Apple from the total time-wasters; Apple would otherwise give this away free so they can get developers, developers, developers.
From a geek's standpoint, you don't want a smartphone without open source options. For an average consumer, do they really care? They just want things to work. When the iPod came out there was a lot of griping about technically inferior the iPod was, and that it would never flourish. Hundreds of millions of iPods later, I would say that it's been a success. Really, my grandma didn't/doesn't care that the iPod can't play ogg-vorbis. All she knows is that when she puts her new CD into her computer in iTunes and then plugs in her iPod, she gets her music. If she got an iPhone she'd only care about getting on eBay to see if she won that cute figurine. She doesn't need to see the source code.
Well, there's spam egg sausage and spam, that's not got much spam in it.
Yeah, I've actually been surprised - every single person I've known with an iPhone, I've seen using its non-phone features. Getting directions via Google maps, using Twitter, using the calendar, whatever. Usually you do see people paying way too much and then only using the most basic features, but people seem to actually be using iPhone as more than a standard phone.
Warning: Apple/Nintendo fangirl. Likes her electronics cute & cuddly. May be rabid.
You know, I started developing in Objective-C back in 1990/91 on NeXTstep (yes, it was lc 'step' at that time...) - Coming from Pascal, C, Forth (and some Basic dialects), I found it a bit weird at the beginning (the first 4-6 months). Then, one day, it made "click" - as we say in German. And from that day on, I couldn't really imagine doing it in a different way than MVC & Objective-C.
... - they didn't exist in NeXTstep those days).
In order to fully grasp it, I started experiments with Smalltalk (great), Eiffel (great, but ugly syntax), and some other languages I forgot.
Remember: those times were the times when we wrote our frameworks ourselves (I remember writing objects like "Float", "Integer", "String",
You have to switch from "Calling a Function" or "Calling a Member of an Object" to "Sending a Message to an Object" and get used to the idea that everything is an Object (even classes are instances of the class class and so on) and then you are set.
The syntax may turn you off a bit - that's what happens with Python for me (the indentation is still a psychological issue for me) - but you surely get used to it quickly.
Now, after having developed in Objective-C for such a long time (including having learned Smalltalk and Eiffel), I can't actually look at the "ugly" C++ or Java syntax - and I (more or less) believe the worst thing that could happen to the world in programming languages was C++ (my two EUR 0.01, which, by the way, results in 3.14 UScents by a strange coincidence today).
Anyway, try it out and you'll either hate it or love it.
Also, for me, a good programmer is someone who is personally, privately, and passionately interested in Esoteric Programming Languages - which brings us to the "Indifference to Syntax" - or "Being amazed by Syntax" (some people should probably take this with a grain of salt).
It's not just the language that matters. Yes any decent programmers can pick up a language in no time but the real issue is the libraries and frameworks and patterns that often go with a language and its environment. Re-learning the APIs for the environment takes time. Good documentation helps a lot and so does being open source (or use the Lutz reflector if you're doing .Net). Even then there are still certain conventions for different environments. Python programmers talk about code being "Pythonic". While there are many ways to do something in Python, there is usually a few good ways or patterns for a problem. So, it's not just the language but everything else that goes around the language that also matters.
EvilCON - Made Famous by
Their strategy is pretty easy to decode:
1. make money.
2. make money.
3. make money, so that we can
4. make even more money.
I think they are doing great. Just for kicks (and to kick myself), I looked at how much I could have made if I had just invested $1000 in Apple in 1985. Taking the stock splits into account, that stock would be worth more than $500,000.
Apple is a great example of how you can take a fanatical fan base, show them nothing but contempt, charge outrageous amounts of money for everything connected with your products... and be adored all the more for it. THAT'S the kind of stock worth investing in, but it's a shame that setup is so difficult to replicate.
And... best of all, they are eating Linux's lunch. If someone hates Microsoft SO much, they aren't going to get Linux. They are going to buy a Mac, of course, and get locked in to that money sink (at least $150 in El Jobso's pocket every time they make a point release is great for Apple's bottom line!).
While Linux likewise has the fanatical user base... they just have no way of monetizing it. Linux users like being locked into that platform, but not enough to actually pay for anything. They are happy to use hardware two generations out of date, happy with being completely locked into FOSS (since extremely few companies will write for Linux), etc, but not happy enough to actually spend any money supporting what they supposedly believe in. Look at Red Hat- they've been doing poorly for years now, and that's not going to change (although their dropping the failed "Linux on the Desktop" project will undoubtedly help them a great deal).
While Apple has been gaining market share (up to 4-5%)... Linux's has remained flat for the past ten years (always around 0.65%, even as the size of the market has virtually exploded). Meaning... every Apple sold is coming from Linux's share of the market (either actual or potential). Which is good, since Linux has no chance of succeeding in competition with Microsoft, while Apple can do quite well with a tiny market share.
Hmm - I have to assume you've not used ObjC much or at all - you have to take it with its class library (Cocoa), similar to Java, but it's ridiculously easy to use once you've spent a week or so learning it. Literally, it took me a week to be proficient in this "new" language.
Applications don't need namespaces - frameworks do, but applications should be perfectly happy being run in their own (default) namespace. I think most people will be writing applications on the iPhone, not frameworks.
As for tools, XCode comes with data-modelling tools to create entity relationship diagrams/models that integrate with your code, it comes with fantastic dtrace-driven graphical performance monitoring tools, and an excellent integrated gdb-based debugger which does things like fix-and-continue, step back, etc.
Just putting some context into place,
Simon
Physicists get Hadrons!
The iPhone is my 6th cell phone and the first that is an honest pleasure to use and powerful enough to accomplish more than playing 10 second ring tones. The iPhone literally represents the FIRST TIME I have been able to have a good phone, my iPod, email, calendar, contacts, maps, camera, web, etc in a single device that seamlessly syncs to my Mac computer. Period.
If you don't want to buy one, fine, but for me, having an iPhone is about having aall that stuff, and more, in a single device that elegantly works. The fact that it might look nice or 'cool' is merely icing.
Usability and functionally are not 'playing with a cool toy.' Getting things/work done in an intuitive way on your phone is still getting things/work done. Whether or not it was 'cool' or even fun to do it shouldn't take away from the fact that it was accomplished.
I am at a loss to understand why it is so hard for people to understand that futzing with poor UI is not fun for 99% of the people who use computers. The average user hates 'tinkering with their' tools (har!). They just want to USE them to Get Stuff Done. For you, perhaps menu-*-9-5-1-4-2 might be a fast way to access your pictures on your phone but for most people, myself included, it sucks way more than swipe-tap-tap-swipe.