Analyzing Apple's iPhone Strategy 270
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.
it's the apps, stupid! (Score:5, Interesting)
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).
ATT Contract (Score:2, Interesting)
Re:Objective C (Score:5, Interesting)
To get and keep jobs in almost all companies you need to know a current mainstream language or two. I haven't seen a job that listed objective-c as a requirement in, um, well ever.
I certainly wouldn't touch it.
We'll see how well apps catch on (Score:3, Interesting)
Avoiding malware and crapware (Score:5, Interesting)
Time will tell whether restricting software distribution for the iPhone is a net positive or negative in either creating a stable, easy-to-use, secure environment for mobile computing or in stifling development for a subset of developers.
Re:Objective C (Score:5, Interesting)
Re:Objective C (Score:5, Interesting)
I'm not trying to slander Java, but I've never used a Java app that doesn't take up a disproportionate amount of processor and memory when compared to the same type of program written in some flavor of C.
I want to reiterate that I'm not a programer and I'm not trying to be contrary. I'm just a little confused is all.
Re:Objective C (Score:5, Interesting)
It takes getting used to, but I find it very elegant and powerful. I think the biggest turn off for most is "it's something new". It's C, but then it's not. I find myself having to think much more "MVC" and "object-oriented" than I'm used to (my brain is wired old-school procedural), but I also find that I can get an amazing amount done with fewer lines of code. The trade-off is that I don't feel I have the deep level of control I should. This is nonsense, of course, I can write any functionality and subclass all I want, but with the API's I usually don't find I need to, so I come away from a project feeling a little guilty - like I didn't *really* do any hard-core coding. Combine that with Interface-builder and it feels more like building with Legos than "programming". It's just that you find yourself getting so much functionality for free.
All that, combined with the fact that the syntax is different from C++ and you get a bit of a turn-off, but give it a chance. It's like transitioning to any new thing. You like what you know. It takes stepping out of your comfort zone for a while (which is hard for a lot of programmers who tend to be control freaks to begin with). Once you are used to it though you find going back a bit clumsy. At least that's been my experience.
Re:Strategy? (Score:5, Interesting)
Question (Score:4, Interesting)
Re:it's the apps, stupid! (Score:5, Interesting)
Google is much stronger than Apple with web services, but weaker with respect to hardware. I don't think hardware is inconsequential. The more diverse the hardware your system is on, the more likely there may be compatibility problems.
Maybe it will be different this time. Mac shareware developers must be salivating. The quality of Mac shareware is excellent for the most part (and some of it is much more polished, better designed and more mac-like than software from major companies), but crippled by the fact that it's shareware and people have to find it and buy a license off a website, if they buy it at all. I imagine that respected Mac shareware developers like Panic will thrive when their software is on the same store as the stuff from the big guys and is pay per download.
Re:Objective C (Score:5, Interesting)
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).
foreign language bindings (Score:3, Interesting)
One
There's a grain of through there.
Obj-C as pointed by a
iPhone developers will have to learn yet another C variant, to which they are most probably not used. Some of those developer may even never learned C or C++ in the first place.
Java is the platform attracting the most mindshare currently for embed platform (keep in mind it was initially designed for it) and the MIDP platform you find on lot of embed device is quite efficient. Java is a popular language for programming embed software.
Python is also a very popular platform for fast development. Lots of developers are singing it praises (see xkcd [google.com] for a caricature).
Perl and Ruby are other scripting language that have some momentum too.
All those language have way to use native C and C++ APIs. (SWIG [swig.org] is an example of tool to automate such C/C++-to-scripting-language-of-choice bridges)
Had Apple gone for a C/C++ SDK, they would made it available to C and C++ developers (both are maybe the world's most popular language, even if not the most high level or efficient) but also for Java developers (very popular on embed platforms), for Perl/Python/Ruby (hello young motivate university students) for C# and other
By going for Obj-C Apple made their SDK available to Obj-C developers. All 2 of them.
(and the third one who's motivated enough to learn Obj-C).
Re:Software upgrade = new hardware? (Score:2, Interesting)
And out of curiosity how do you know they could port new features back to older models? I'd guess it had as much to with hardware as anything. For instance, I suspect playing video on a first gen nano simply wasn't possible.
More disk space! (Score:2, Interesting)
-Lars
Re:foreign language bindings (Score:3, Interesting)
Re:Apple's grand strategy? Lock-in. (Score:3, Interesting)
Equally yikes - yes, let's keep you away from the OSS developers side of the house. This is about not losing money just because of wanting to play around with the platform.
This kind of app (the <=$100 expected return one) is made for fun, as a hobby.
If you were going on a holiday in the Bahamas with your family and you somehow managed to offload some ancient Trolls pencil sharpeners (or whatever) that paid for the flight and hotel, would you argue that the trip was a loss because it didn't pay for time lost at work?
I won't, so no cost
OK, but again that's in the fun basket, not in the work one.
I will support not support it at all, or only at my leisure
Good point. I will report revenue and pay taxes and so will have to sell 20 copies instead of 14. Many won't since this whole scheme seems to be a tax-evasion mechanism, at least for non-American developers.
If a million people want a better app based on this little thing I wrote, I would expect one of two things to happen
Re:Objective C (Score:1, Interesting)
After learning the very basic stuff of Obj-C (@interface, @implementation) and learning that objects pass "messages" to each other with a syntax [object method] or [object methodWithVariable:var1 andAnotherVariable:var2 andYetAnotherVariable:var2], I was ready to go. It beats object.method(var1, var2) syntax IMHO. Other ideas like protocols, delegates make sense once you see an example and others like inheritance is similar to C++. InterfaceBuilder was a piece of cake. In short, I was quickly having fun writing stupid little apps. I hadn't had as much fun writing apps with any other languages. The only complaint I have is the abundance of classes and their methods. I can't remember all of them (I don't make a living as a developer), so I am forced to look them up on the web-based reference now and then. It slows me down a bit.
So, the first step is to take a plunge, and don't always compare it to the language you've used to then complain they are not the same. They are not. If someone who does it for fun can do it, shouldn't professional developers who make a living understanding and writing codes be able to do it more easily? If you are afraid or not intrigued of new things, I am surprised you can last long as a developer because being a developer means you've got to learn to adapt.
Re:Meta-summary: apple is still a software company (Score:2, Interesting)
http://www.appleinsider.com/print.php?id=4190 [appleinsider.com]
Seems like a good idea, to be able to separate from the herd. I think Apple has the resources to do it, too, what with their latest, greatest marketshare-gobbling product.
Re:Apple's strategy... unchanged (Score:3, Interesting)
On a side note, as a relatively recent Mac adopter, I have played with GNUStep on Linux. It's actually ok to develop in, and has a decent GUI designer, but the widgets look like they're straight out of 1996. I'd like GNUStep to become the defacto UI for desktop Linux, but there's a mountain of work to be done there.