SDK Shoot Out, Android Vs. IPhone 413
snydeq writes "Fatal Exception's Neil McAllister delves into the Android and iPhone SDKs to help sort out which will be the best bet for developers now that technical details of the first Android smartphone have been announced. Whereas the iPhone requires an Intel-based Mac running OS X 10.5.4 or later, ADC membership, and familiarity with proprietary Mac OS X dev tools, the standard IDE for Android is Eclipse. And because most tasks can be performed with command-line tools, you can expert third parties to develop Android SDK plug-ins for other IDEs. Objective-C, used almost nowhere outside Apple, is required for iPhone UI development, while app-level Android programming is done in Java. 'By just about any measure, Google's Android is more open and developer-friendly than the iPhone,' McAllister writes, noting Apple's gag order restrictions on documentation, proprietary software requirements to view training videos, and right to reject your finished app from the sole distribution channel for iPhone. This openness is, of course, essential to Android's prospects. 'Based on raw market share alone, the iPhone seems likely to remain the smartphone developer's platform of choice — especially when ISVs can translate that market share into application sales,' McAllister writes. 'Sound familiar? In this race, Apple is taking a page from Microsoft's book, while Google looks suspiciously like Linux.'"
Google looks like Linux?! (Score:5, Informative)
Android runs on Linux....
Re:Google looks like Linux?! (Score:5, Interesting)
Which is wholly irrelevant.
Until I can write apps for it that target the Linux environment underneath, or even replace the kernel, the fact that it is based on Linux is pointless. I can name a LOT of other phones that are Linux based. They're not open either.
Comment removed (Score:5, Insightful)
Biased much? (Score:5, Funny)
So I can run any CPU from any vendor, with any OS, and no familiarity with anything, to develop for Android? Cool!
Re: (Score:3, Insightful)
A cross-platform toolchain is, all things being equal, preferable to a single-platform one, and likely to have a wider already-familiar userbase.
Duh.
Re:Biased much? (Score:5, Interesting)
Ever programmed in Objective C? It's really an elegant design, and most developers seem to have no problem adjusting to it. Rather than thinking that it's unfortunate that Apple chose such an uncommon language for development, I think that it's unfortunate that Objective C hasn't gotten more acceptance outside of Apple.
Re:Biased much? (Score:5, Informative)
newString = [origString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
I've also found the documentation a pain to navigate (which may be why I'm not so keen on it).
OTOH, XCode and it's suite of profiling tools is indeed handy, and the debugging seems to work pretty well.
Re:Biased much? (Score:5, Informative)
NextSTEP created Objective-C for their OS and API (which became Cocoa later on). So, it's not uncommon per se, it's merely created for that purpose. Although you can code on Windows with Objective-C (since gcc supports it on all platforms), without Cocoa it wouldn't be a seamless adventure. TBH I'd be surprise if anyone does any serious works with it outside of anything apple-related.
I develop with iPhone and OSX everyday and I agree Objective-C is a beautiful and well-designed language, but most of the fantastic experience of using it comes from the API part, not the language by itself.
Correction: Brad J. Cox Founder of Productivity Products International created Objective-C.
Object-oriented Programming: An Evolutionary Approach, by Brad J. Cox. [amazon.com]
Brad later co-founded Stepstone and NeXT eventually bought all rights to Objective-C as they developed their own version, based on Brad's works.
Brad J. Cox's current info: http://www.virtualschool.edu/cox/ [virtualschool.edu]
The self-documenting approach to coding that Objective-C inherits from Smalltalk makes for understanding what the hell is going on, by design, more rapidly than traditional C++ jargon. Of course, for every single book on Objective-C/Cocoa there are one hundred C++ or Java tombs. Somehow, the sheer volume of repeated books has helped reinforce in the minds of those never programming in Objective-C that it's some quasi-exotic language that no one ever uses. That's changing in a large way. As the growth of OS X 10.6 and beyond becomes apparent, so will the growth of books published and developers exposure to both help learn and evolve the language where it makes sense.
Quite a bit of Java's design was grafted from ObjC, yet that C++ syntax of Java somehow gives people the notion it's a derivative of C++ alone.
Regarding the Frameworks of Cocoa and without them the language wouldn't be so elogant. The same is true for all programming languages. Without Trolltech Qt's Libraries C++ wouldnt' be so elogant. Without the overkill of solutions within Java the Java language wouldn't have become the Server-side standard. So on and so forth.
Re:Biased much? (Score:5, Insightful)
Yeah, almost all the metrics mentioned in the summary are irrelevant. Objective-C is something you can probably pick up in an afternoon. It's simpler than most modern scripting languages. And if you are unable to do so, as an iPhone owner I'd say please go write your app for Google anyway.
They mention ADC "membership" as if it's anything other than a free web sign-up. It's true that you need to pay $99 to be able to put the app on a real device, though. But in exchange for the $99 you get 2 incident reports in which you can talk to actual Apple engineers and access to a worldwide marketplace tied to the most successful digital media store in history.
And... in the end, there's really no SDK shoot out in the article. Which platform is, in the end, easier to develop for? Yes, Apple does a lot of stuff proprietary-- but is it better? Interface Builder is pretty frikkin awesome. The integration of the debugger and ability to run DTrace with a sweet UI remotely on the device is very nice. There are GL ES performance monitors, database monitors, etc etc etc. Yes, you can use Eclipse with Android and someday some developers might write plugins for it, but does that really make up for all these tools? I'm curious to find out. Someone should write an article...
Re: (Score:3, Interesting)
while I agree with you on most of the apple tools, debugger integration is not really their strongest point.
Now I haven't even looked sideways at the iPhone SDK but I'm still curious. Since xcode is just a UI on top of gcc, couldn't you just as easily do all your development for the SDK on the command line (accepting that you might be better off doing the interface development in interface builder). Sure, your probably still stuck on a mac since the SDK isn't available elsewhere, but it seems like you cou
Re:Biased much? (Score:5, Interesting)
That's a good point and probably true, especially for developing for the Simulator. In fact even the helper apps (like converting to iPhone-preferred audio formats) are all command line tools. However, it seems like it would be a huge amount of work for little gain to unhook it from XCode, but I would be surprised if it couldn't be done once you figure out the zillion-and-one configuration issues.
I know we're all under NDA, but I've had very little problems with debugger integration. There's sometimes the frustrating unexplained BAD_ACCESS, but in general I can see threads, allocations, I/O, memory leaks, locks, allocations, SQL reads/writes/locks, OpenGL monitors, etc etc etc. I thought it was pretty impressive myself. Gotta love DTrace.
Re:Biased much? (Score:5, Informative)
"...debugger integration is not really their strongest point."
You should really take a sideways look at the iPhone SDK. The debugger integration is solid and almost up there with Visual Studio for memory and thread debugging.
While xcode is technically just a wrapper on top of GCC, Apple has done an enormous amount of work to integrate all elements of the toolchain into the environment in a way that enhances developer productivity.
I used xcode when it first came out and was underwhelmed - it was really just a simple gcc wrapper back then. But, it's evolved significantly and makes the GNU tools it's built on actually efficient to use (think using the CLI version of gdb for debugging compiled, multi-threaded code on remote devices... sure, you can do it, but it's a time sink).
-Chris
Re: (Score:2, Informative)
I do prefer Eclipse, and the differences in completion and help are slightly annoying, but I would not say that XCode, or Obj-C are gettin
Re: (Score:3, Insightful)
absolutely. I feel the same way and I would certainly not be opposed to using x-code for iPhone development, but since being tied to x-code was brought up as a negative I thought it would be worth pointing out that your not actually tied to x-code.
I be if someone really watned to they could put together a version of eclipse that was ready to go for iphone development. I dont have the motivation, but maybe its a big issue for other people out there. Then again, maybe most people are like you and I and jus
Re: (Score:3, Insightful)
Sure, but the article tried to make a point that Google uses command-line programs while Apple has a proprietary IDE and thus Google is more open. In that sense, it's worth pointing out that all Apple's tools are also command-line tools running on top of their UNIX OS, and the IDE is just another shell.
Re: (Score:3, Insightful)
And to say ObjC is as easy as Ruby or Python is ludicrous.
It's easier than both of those....... IF you're grounded in C.
What's making me laugh is this aversion to learn another language and it's syntax. Nevermind the dozens of Web languages and syntaxes one "swallows" to learn and be current in the web industry, but to learn a traditional object-oriented language that isn't C++ or Java? OMG I think I'm gonna blow up just thinking about !
Re: (Score:2, Interesting)
This is a bullshit comparison that doesn't go deeper than "NDA bad, Linux good." What about the actual API? The tools available for profiling code and debugging? GUI designer? Simulator? I like Eclipse and Java, but Xcode and the tools in the iPhone SDK are pretty damn awesome, I doubt that Android is anywhere near that.
Re:Biased much? (Score:5, Funny)
Wow, what a treat we have today:
It's a Slashdot user with a 2 digit user ID, they're very rare.
OK, take some photos, but be very quiet in case you startle it. Don't point your flash directly at its eyes since it's probably unaccustomed to bright light and you might blind it.
When you're done, I'll be over there with the rest of the tour group.
Re:Biased much? (Score:5, Funny)
It's a Slashdot user with a 2 digit user ID, they're very rare.
You might say there's less than a hundred of them left in the world today!
Re: (Score:2)
At least when google breaks something they fix it fast.
Tell that to the people who lost all of their gmail!
Every company has technical foul-ups now and again.
I might grab one of these Andriod phones, if only because my contract with T-Mobile is up and I need a new phone anyway.
Re:Biased much? (Score:4, Funny)
Gmail is still in beta.
So, you can complain about having lost email, but then again, you're using a beta product.
No, I don't care that it's in a state of permanent beta. As has been pointed out before:
1. do something better than your competitors
2. call it "beta" forever so you don't have to support anything other than reading bug reports
3. profit!
Re: (Score:3, Funny)
Fuck those toys anyway. They're for sissy boys. You wanna be a sissy bed-wetting limpwrist like a Mac user with no freedom to do what you want? Then get a damn iPhone.
Yeah! Who wants a phone with fucking features on it? Why, a REAL MAN'S phone doesn't even make phone calls! And is covered in barbed wire! And is made of granite, like REAL MEN'S phones should be! REAL MEN should carry around a utility belt full of devices made redundant by phones like these! Fuck that shit, you goddamn SISSIES! Put on your big boy pants and stop the progression of technology already! Fuckers! All of you!
Re:Biased much? (Score:5, Insightful)
Re:Biased much? (Score:5, Informative)
How do you prevent Skype? The same way you enforce SIM locking. The system is open, but you and I can only target the Dalvik engine. Modification at lower levels requires an open platform, and nobody wants to subsidize the price of a phone that you can unlock yourself and take to the cheapest competitor. You don't buy computers from your cable company, stop buying phones from your carrier. Hell, most of the carriers have sold off their networks to third parties to operate on their behalf. It shouldn't be long before Wal-Mart becomes frustrated enough with the carrier cartel and launches their own prepaid phones leasing access from these networks.
That said, I think the source the "no Skype" thing seems to be based on a question about whether Skype was available or not. It could be that Skype is welcome to write such an app but hasn't.
Re: (Score:3, Funny)
Any such apps will, at any rate, be sandboxed into the JAVA tarpit where performance isn't an option.
It's not the 90s anymore. In the 21th century Java is actually fast.
Re:Open for WHO? (Score:4, Informative)
Re: (Score:2)
Re:Biased much? (Score:5, Informative)
Wrong.
Quoted:
For example T-Mobile will not restrict applications providing a work-around to the SIM lock feature or prohibit Voice over Internet Protocol (VoIP) software, such as Skype applications, that come from the Android development community, according to Gartenberg.
"T-Mobile's CTO [Cole Brodman, who also serves as chief innovation officer for T-Mobile USA] told me that he while he can't say he'd like that to happen he isn't going to restrict it or stop it," said Gartenberg. "That's the spirit of how open they are to being an open platform and the fact they understand what it's all about."
The short version: Open != !Open. (Score:2, Funny)
The only thing that matters... (Score:4, Funny)
We buy MACs as conversation starters, PCs because we are depressed and dont like ourselves, and are gluttons for punishment.
Which of these phones is going to make me more attractive? Which phone will increase the size of my- er, um, bank account?
I dont just want a fuckin phone, I want a phone to provide solutions to Global Warming, AIDS and Fat People. THAT is the phone I want, dammit!
Re:The only thing that matters... (Score:4, Funny)
I want a phone to provide solutions to Global Warming, AIDS and Fat People.
You just gave me a great idea for an iPhone app. Look for it soon on the App store!
Re: (Score:2)
You just gave me a great idea for an iPhone app. Look for it soon on the App store!
Actually that's how things will work. Google will innovate with its cool apps, which Apple will HAVE TO copy to retain its market share.
"Mammon awoke, and lo! it was naught but a follower."
- from The Book of Mozilla, 11:9
Re: (Score:3, Funny)
I want a phone to provide solutions to Global Warming, AIDS and Fat People. THAT is the phone I want, dammit!
It must be me here, but I see a "two birds with one stone" statement in there.
Hmmm... (Score:5, Insightful)
In this race, Apple is taking a page from Microsoft's book, while Google looks suspiciously like Linux.
It's more like Apple is taking a page from Apple's book and Google looks suspiciously like Microsoft.
For all their faults, Microsoft have always been more developer friendly than Apple.
Re: (Score:3, Insightful)
Indeed, let us all be glad that Microsoft won the PC war instead of Apple. Jobs would have been worse.
Re:Hmmm... (Score:5, Interesting)
Indeed, let us all be glad that Microsoft won the PC war instead of Apple. Jobs would have been worse.
It's more complicated than that. [zefrank.com] Although I agree with the general sentiment.
It wasn't so much that Microsoft won. It's more along the lines of IBM losing and Apple losing more. Or rather, IBM winning by losing and Apple losing by winning. IBM lost control of its platform which then became a commodity platform to take over the industry. Apple maintained control of their platform(s) and became marginalized players in a market they were a major part in creating.
Microsoft was, of course, a major part of this history. And their role tends to shift over the years. At first they were a key component in allowing Compaq to start the (legal) "IBM clone" market. They then shift to becoming the (or at least one of the very few) common factor to the new commodity market - gatekeepers who in turn begin to influence the direction of that market.
It should be noted that Microsoft's developer-driven focus is part and parcel of the overall market. Proprietary platforms were the old world (something Sun had to re-learn). Microsoft was operating in a commodity world - or at least, riding the wave of commodity hardware. That mindset was in stark contrast to Apple's.
Re:Hmmm... (Score:5, Insightful)
What a stupid thing to say! Nobody had to "win". We had a perfectly good PC ecosystem in the 80s, with at least half a dozen viable platforms. That is what we should have today. Being glad that Microsoft won the PC war would be like being glad that the United States won World War III. Yeah, we won, but the world is still a poisoned nuclear wasteland.
Re: (Score:3, Insightful)
I'm fairly convinced that Microsoft set the state of the art back by at least a decade. That's an awful lot in computer years.
And there's no reason to require a single giant monopoly in order to have compatibility. Sure, all the platforms in the 80s were mutually incompatible, but they could have just as easily grown together to be mutually interoperable rather than being destroyed.
Re: (Score:2)
In the 1990s, Microsoft used its developer mindshare to drive desktop user adoption despite being user-unfriendly.
Now, Apple is using its user mindshare to drive mobile developer adoption despite being developer-unfriendly.
very high level article (Score:5, Informative)
I actually RTFA because I clicked on it before there were comments, got to the end and went looking for the next page link - but there isn't one. It's pretty light on any interesting technical details - mentions some stuff about the IDE, the frameworks ("one is Java and the other is Objective-C") and ends with the same question everyone else is asking, at the moment - which will be better.
If you've payed any attention at all to both Android and iPhone development already there's probably not much in there you won't have picked up from casually reading bits and pieces. Unfortunately. Let me know when there's a nice in-depth article available!
Re:very high level article (Score:5, Insightful)
I read it too. It's a troll.
"Apple makes you use Apple stuff." Boo-hoo. Does that surprise anyone?
Android is more open. That's a given. That was a major design goal.
How about the real question: how well does the iPhone framework work for developing applications? I've heard it's very nice, and very similar to desktop Mac programming so it's an easy transition for Mac developers. How nice is the Android setup? It it easier/harder to make simple applications? More complex things?
How about an SDK shootout actually looks at at least the names of the functions you use and tries to guess if one is easier to develop.
This isn't a "shootout", it's more punditry.
Re:very high level article (Score:5, Insightful)
Well, see, for me it doesn't even make sense get to this part. It doesn't matter how nice the SDK might be when the reward for spending a not that small amount of money on the reqired hardware and the subscription, and weeks or months of my time on development could be having my application removed from the store, and Apple actually forbidding me from telling my customers what happened.
Now when Apple stops being stupid, then I will become interested in comparing them on their technical development merits.
Re: (Score:2)
I mostly agree with the idea that my impression of an SDK shootout was it would give me an idea of the ease of development of a particular type of application given some familiarity with the design flow on each platform. But it is also true that there are a few annoyances on the Apple SDK side. I have access to a Mac, but it is one point behind on the OS - no go. Maybe there is some justification for this, but it still is annoying. If I get the person who owns this Mac to upgrade it, I still am extremel
Re: (Score:2)
I also think an accurate analysis cannot be made unless there are several Android-based devices on the market. That was the other advantage of Android, right? That it could run on many different phones from many different manufacturers without issues? I will be applauding Android if they get _that_ goal right.
Re: (Score:2, Insightful)
How about an SDK shootout actually looks at at least the names of the functions you use and tries to guess if one is easier to develop.
Well, since the Apple NDA on the SDK prevents you from talking about it, you can't write about actual functions on the iPhone.
Re: (Score:3, Insightful)
What strikes me, is the similarity to the Matrix argument. What use is a developer friendly SDK, if you are prevented from running the code on the device you're writing for ?
Sure, $99 (+ Mac) doesn't sound much, but the issue is not money, it's access to the networking api for the apps you want to create. I don't care how fucking bling and shiny the SDK is if I can only write hello world (locally) using it.
Yet again, form over function for apple.
What are you talking about? You can run whatever. (Score:3, Insightful)
What strikes me, is the similarity to the Matrix argument. What use is a developer friendly SDK, if you are prevented from running the code on the device you're writing for ?
Sure, $99 (+ Mac) doesn't sound much, but the issue is not money, it's access to the networking api for the apps you want to create. I don't care how fucking bling and shiny the SDK is if I can only write hello world (locally) using it.
Your post makes no sense. I can't tell if you are complaining about what you can do with the simulato
Re:very high level article (Score:5, Informative)
As a Java programmer who used to program in Objective-C, I can tell you right now Objective-C is easier, cleaner and nicer to program. It's dynamically typed, where Java tries to enforce static typing. GUI-wise, it's a total win for Cocoa. The widgets and controls are an order of magnitude easier to understand and use than Java's swing/awt/swt nightmare. My biggest complaint with OC is garbage collection (which is no longer an issue as of 2.0). Also, Java has a much larger community. For those two reasons alone, Java wins the mindshare, but if you're asking me which one I'd rather program in, it's Objective-C hands down.
Re:very high level article (Score:5, Informative)
Um, you are aware that Android does not use Swing, AWT or SWT?
In fact, as someone who's actually written code for a bunch of different mobile platforms, including some proprietary ones (shudder, shudder, 20 minute build cycles, shudder), Android is an absolute dream to code for.
In essence, Android encourages applications to be data-centric; and the Android UI allows to to hook up a custom View of your choice to a real SQL backend via automatic cross-process IPC (which allows you to export data to other apps) in about 100 lines of well-spaced code. Compared to, say, Symbian, where you have to spend half your time thrashing through their documentation trying to figure out the lunatic memory management model and the other half waiting for it to build, it's simply so nice. Instead of having to spend all your time on trivial data management issues you can simply press ahead to the application logic itself.
(Not to mention that the Android tools work. The debugger just works, and honours breakpoints, which is more than you can say for Symbian's.)
(Also, as the Objective-C object model was blatantly stolen from Smalltalk, and the Java object model was also blatantly stolen from Smalltalk but with C++ syntax, there's actually much less in it than you might think.)
Re:very high level article (Score:5, Informative)
I agree with pretty much everything you say except the garbage collection part. Whilst Objective-C 2.0 does have garbage collection, the iPhone SDK does not support it. You're stuck with the old reference counting mechanism, at least you were in the beta that I tried out.
Re:very high level article (Score:5, Informative)
What? AWT - Depricated, SWT - 3rd party. Swing - Where the fun shit is.
Swing is AWT - or rather, built on top of it. And while Swing fixes a lot of issues with AWT widgets being essentially unusable (mostly by adding missing features - minor things like icon support, toolbars, tables...), it still suffers from the basic flaws that the AWT does.
So AWT most certainly isn't deprecated, even though no one uses it for GUI elements any more due to it's general crapiness.
SWT at least uses native widgets, but it's obvious they did Windows first and "everyone else" second. But it works fairly well and on a good number of platforms.
huh? (Score:5, Informative)
requires a intel mac?
dont tell that to my G5... it's happily working.
Re: (Score:2)
Guess my Classic II is out then...
Re: (Score:2, Interesting)
Not completely true. (Score:4, Interesting)
Re: (Score:3, Informative)
So should I show my computer the article as well because it does not believe you, and it's running the SDK on a dual G5.
I dont give a flying fart what some article says, I care about what works in real life and I have the iPhone SDK working on a G5.
Apple looks like Apple (Score:5, Insightful)
Apple is taking a page from Microsoft's book, while Google looks suspiciously like Linux."
No, Apple looks pretty much like Apple, and Android looks as much like Microsoft as it does Linux.
The big caveat (Score:2, Interesting)
No standard headphone jack = no sale for this consumer. Looking forward to future android offerings though.
Re: (Score:2)
Cycle of Oppression (Score:4, Funny)
We have seen it for thousands of generations, the oppressed/rebel kid/cool dude becomes the oppressor. Apple is the new Microsoft. Pretty soon Google will be the new Microsoft, who knows what next.
What I do know is eventually it'll lead to by the law of natural selection the most oppressive organisation in the form of Skynet and mankind's only hope will be an Austrian Terminator (no no Summer Glau of Sarah Connor Chronicles is NOT a fighter type more like a japanese maid robot)
p.s. we do have to melt the terminator in the end just to be on the safe side
iTraining you to use iTunes (Score:3, Interesting)
Oh, you mean I HAVE to install iTunes to watch the training videos? Bummer.
Re: (Score:2)
Not true. The iPhone works fine without a PC (provided you do the activation in-store, of course). There might be some applications you can't download directly, but there are many you can; I'm not sure about music & video, but I just use a free app to grab stuff from a shared folder on my network, which is great for using it to transfer files.
Re: (Score:2)
You can download them all directly over WiFi...
The phone's the thing... (Score:5, Insightful)
The iPhone is primarily an awesome hand-held phone, GPS, PDA, etc. Pre-loaded 1st-party apps are what make the device sing. The ability to get 3rd-party apps is a secondary benefit. Most people buying this device are using it for what it comes with. This will be the case more and more as the device becomes more mainstream.
I hope that Android phones don't focus on the development aspects first, and the 1st-party applications second. If the device has all the same nice features of an iPhone + is better to develop for, then great. But if it does not have the ease-of-use and functionality of an iPhone right off the bat, then it won't succeed.
Re:The phone's the thing... (Score:4, Insightful)
Re:The phone's the thing... (Score:5, Insightful)
While I absolutely agree with you, it is a lot more important to initially get a phone with first class applications preloaded. Most normal users will not go hunting for "better" version of apps (Think Firefox vs IE). They will use what is installed. From what I am reading, the Android applications are of lower quality to those of the IPhone. This is very disappointing.
Re: (Score:2)
Yeah, "1st-party" is definitely the only way to go. Time has shown that "the community" sucks at making software. This silly OSS fad is no match for paying a crapload of money to Apple.
I thought the point of the open SDK was to *change* this notion that the phone and the software that comes with it are synonymous.
Re: (Score:2)
Somehow I think consumers would not like to download a "phone"-app first (and have to choose between a plethora of not-quite-similar products), before they can use it as a phone. So yes, first-party applications ARE important.
B.
"1st party?" (Score:2)
1st-party applications? You mean you have to program it yourself?
If you want to say that the seller of the phone provides apps, you mean second-party.
What about the market leaders? (Score:5, Informative)
It would be nice to see comparisons of the market leaders with development for iPhone / Android.
Based on raw market share, Symbian is the market leader (57%), followed by Blackberry (17%), Windows Mobile (12%), Linux (7%) and then iPhone (2.8%). Android yet to make a showing!
( Figures from http://en.wikipedia.org/wiki/Smartphone [wikipedia.org] )
I've done Symbian developement and there are lots of ways of doing it. Nokia's C/C++ API, Java or even Python. It isn't 100% open as in you can't have the source code of the OS, but the APIs are all documented and there aren't any restrictions on what your apps can do. If you want your apps signed it can be harder I'm told, but I've never tried that.
Re: (Score:3, Insightful)
Well, Android is actually just google-shininess on top of Linux, so I'd say it adds to the Linux share, rather than warranting its own.
Apple may still have something (Score:4, Insightful)
As a fan of OS X, and Apple in general, I think they are trying to see how far they can push their control over the matter.
On the subject of their NDA, I'm not an insider, but it seems stupid, unnecessary, and harmful to me.
Android may be more open, but that does not always mean it's better. A few things are for certain:
- no one is comparing Android to Blackberry. It seems that the iPhone has become the de-facto one to kill.
- it will sure be interesting to see the battle between iPhone's closed development model on a hot device, and Android's open development on so-so devices.
They may just both win on their own merits.
Hate Apple but don't appreciate Android as much (Score:2, Interesting)
I appreciate Android's open platform. I also appreciate Google's effort.
However, I have my qualms. It is not possible to write native application in C/C++. Everything has to go through the virtual machine. I haven't developed for Android except write a simple Hello World. But, I would like to write my own native application that run on the Linux kernel.
I do not like the iPhone, I hate Apple's brick walls around their platform which is anti to what Apple once stood for. 3rd party apps has made Symbian/WM
Re: (Score:2)
As soon as they open the source code it will be made possible.
The problem is that you may not then be able to upload modified versions to the T-Mobile handset. But that's where open hardware comes in. I hesitate to say openmoko. because I think it's likely a little underpowered, but the principle is there.
Re: (Score:3, Informative)
I hate Apple's brick walls around their platform which is anti to what Apple once stood for.
Funny, I always thought of Apple as a walled off isolationistic company. Where have you been? Granted they make GREAT products in their walled garden, but that was always the barrier to entry.. Apple's way or the highway. Yes I understand you probably mean programming for the desktop, but you could only ever extend so much - you had to work with what was given. IANAMP (I Am Not A Mac Programmer)
Re: (Score:2)
We can hope that someday native apps will be common once there is a robust way of reducing the chance of rogue ones slipping through. Maybe something like what the linux distributions use to control and update apps.
Re: (Score:2, Insightful)
Competition. (Score:4, Insightful)
I don't see how Android can be fairly compared with the iPhone given that the iPhone is already into it's second iteration and Android has just been released.
Everything else aside, I think the competition is great. I do give credit to Apple for helping to invigorate this market. Well, RIM and Palm probably deserve a lot of the credit, but Apple really gave this market a swift kick in the pants.
Here are my first impressions (Score:2)
We know first impressions are important.
I find that Google's Android looks more ancient as compared to the iPhone. In terms of functionality, I would like to be able to tether both gadgets to my computer as a link to the internet for a computer.
This is not possible with either!
Now, whether Android's openness will make this happen faster, is a wait and see issue. On the other hand, I know Apple is a big surprises company too, so I will not rule it out at this time.
Python? (Score:2)
Jython (Score:4, Informative)
Re: (Score:2)
Jython, on the other hand, *can* compile python down to java bytecode, and so could be used to compile python scripts for Andr
*sigh* (Score:2)
Android vs iPhone?
Neither of them compare to Symbian OS, or Java or even Windows Mobile for that matter.
iphone is really only a big deal in America. Outside of the US it is average to sub-par.
Let's put this in perspective.. (Score:2)
If I were developing apps for a phone, I would go Android in a heartbeat. Simple. Right?
At face value, it seems to be the right choice.
But the issue here isn't about which phone offers a better platform to develop, but which phone will be better as a phone!
Will the Google phone be a really good phone?
For the most of us, we want great reception, we want quality transmission and voice. And of course, great rates.
So, if the Google phone is as good or better than the iPhone as an actual phone, and their marke
What? (Score:2)
Your post missed the boat on so many points that you might even ask if there is a boat.
There is an no google phone (yet), google has made a platform and OS if you like. Not a phone.
Reception is hardware and has nothing to do with the software. It is also largely tied into the service provider, not the phone itself. The best phone can't receive a signal were there isn't one.
Rates have nothing whatsoever to do with the phone but are totally dependent on your contract with your service provider.
Furthermore
What about Windows Mobile? (Score:3, Interesting)
It's really weird to read that "Based on raw market share alone, the iPhone seems likely to remain the smartphone developer's platform of choice"... Don't tell me that the iPhone already outselled every single Windows-based PDA/Smartphone sold in the last 10-or-so years...
Now, I see the Android as a much serious threat to Microsoft in the smartphone playground than the iPhone. If the Android devices are polished and slick enough, the public might catch on them, and with the openness regarding the development process, the comunity would surely correct the eventual rough edges. That's simply not the case with the iPhone: why can't I use another email client on the iPhone? Oh, right, it "competes" with the native aplication...
Corrected Requirements (Score:5, Informative)
iPhone SDK requirements to develop an iPhone app:
OS X 10.5.3 or later (Intel or G5)
ADC membership (free but requires registration)
XCode (free bundled with OS X Tiger and above but not installed)
Objective-C language
To distribute iPhone app:
Yearly License: Individual $99 or Enterprise $299
Android: [google.com]
Windows XP or Vista, OS X Tiger or higher, or Linux (tested on Ubuntu Dapper Drake)
Eclipse 3.3 or 3.4 (free download from eclipse.org)
Java JDK 1.5 or 1.6 (free from Sun)
Apache Ant 1.65 (Linux/OS X), 1.7 (Windows) (free from apache.org)
Good chart at engadget. [engadget.com]
OpenMoko (Score:2)
Re:OpenMoko (Score:4, Informative)
Well, I'm playing with my Freerunner right now. :)
SDK comparison wise there's no competition. The openmoko is basically a linux machine with a touchscreen and a GSM chip. Anything you can do with a Linux machine you can do with the Moko, Qt, gtk, shells, perl, python, etc. If you lack it you can port it. Forget special-purpose limited devices, this is the real deal, a full general purpose computer.
However, if you compare them as phones... well, the openmoko is basically a linux machine with a touchscreen and a GSM chip. After you've figured out how to flash it and decided on what distribution to run you get to debug alsa routing to bluetooth headset connections, configure gps daemons, etc. It's a good thing that it's as networked as it is (you can network over gsm, wlan, bluetooth, and what I use mostly, ethernet over USB (you'll want it in an USB port so it's charged anyway)) because you want a computer with multiple ssh sessions connected for many of the things you'll be doing on it.
Personally I'm not the least interested in getting either an Android based phone or the iPhone (or any other locked down proprietary crap), and for me the Freerunner is among the coolest things I've ever played with (and the first phone I've ever wanted to spend a cent of my own money on). The potential is enormous, and the way the base can make it into ubiquitous devices of all kinds makes me think it can become something that influences the future in a serious way. But it's not an end-user product yet, and I think it'll take a while before it's there.
Users vs Developers (Score:5, Insightful)
User interests beat developer interests, assuming that the first doesn't utterly cripple the second. And it does have to utterly cripple them to cause a problem.
* Every Wikipedia story, Slashdot commenters bitch about their experiences of participation. However, the site's still #7 in the world, so what's it doing right? Focusing on the reader [davidgerard.co.uk].
* GPL (a user-rights license) vs BSD. Compare the popularity of Linux versus FreeBSD.
* iPhone vs Android. The best mobile phone interface ever. In this case, Apple is going further than anyone before in trying to utterly cripple developer interest - but if you can work an SDK then that many users is going to be attractive.
Openness will get Android a fabulous ticky-box feature list ... but, y'know, Windows Mobile has a fabulous ticky-box feature list, and no-one picks that instead of an iPhone if they have a choice.
Holy crap! (Score:4, Interesting)
In all seriousness, does the average consumer care about the underlying stuff? The "problem" with iPhone apps is that they look good, they're easy to install and they generally work. That's all the average person cares about. More and more people have iPods and thus iTunes and so are used to having the process of transfering Item A (music) to Item B (their iPod.) Now swap music for application and iPod for iPhone and you've got a something people are familiar with. Granted, that _might_ change if Google does create their own version of the Google store, but it depends how they pimp it. My guess is appropriate apps will show up in search results, the same way as their ads are tied to whatever it is for which you are searching. Now that might tip things toward them. Everybody uses "The Google" and they're all familiar with it....
Developer-friendly versus customer-friendly (Score:5, Insightful)
Sure, Android is more developer-friendly than the iPhone. Has Apple ever pretended otherwise?
Apple goes for something entirely different - being customer-friendly. Apple demands high-quality apps, and rejects substandard ones. Apple requires well-engineered user interfaces. Apple restricts the number of functionally equivalent apps and ways of doing something, to follow the well-known interface guideline of not overwhelming a user with choice.
I can already see how Google's Android is going to end up. Want a sneak peek? Go look at SourceForge today. Maybe 10% of the projects are extremely useful high-quality projects supported by a vibrant community. 90% of the projects are abandoned crap - but they're developer-friendly! You can get the source and fix it!
Being developer-friendly helps by making it easier to create software. That's a double-edged sword, however, because as much as developer-friendliness makes it easier to create good software, it also makes it two or three times easier to create crap software. Witness the plethora of Google apps that have never left beta, witness the gross proliferation of spyware and script-kiddie viruses, witness the rampant proliferation of me-too Linux distributions used by two people and their dog.
The Cathedral and the Bazaar. This is very simple - when I want something fun to play with, when I want to indulge my hobbyist sweet-tooth, I go to the Bazaar. When there's something I need to depend on and I don't have the time to tweak it myself, I go to the Cathedral. Now, in all seriousness, do you see a cell phone more as a fun toy or a necessary, must-work piece of your life? I imagine a lot of Slashdot readers want the cell phone to be a toy, but I also imagine most people in this world would prefer something to Always Just Work, even if it's less fun. It's the difference between driving a fun but high-maintenance sports car on the weekends and driving a reliable commuter car to work every day; everybody wants a sports car, but most people pick the commuter car.
Which means I don't buy the hype around Android. It's a fantastically wonderful toy, but Google's track record is that they do not have the discipline to enforce usability at the expense of their fun toys. And, to my great sorrow, that is Google's great weakness.
Java vs. Obj-C (Score:5, Informative)
1) Safety - Java provides a lot wider safety net than native language can ever.
2) Control - you can enforce the signing requirements in the VM for all code that is run or you can limit it as a requirement to only certain potentially unsafe APIs (RIM does this - you don't need to sign an App with RIM provided keys unless you use the more dangerous APIs.) This arrangement can generally give the user a lot more flexibility and control over what can and cannot run on the phone.
3) Exceptions are non fatal and possible recoverable, memory leaks are harder to induce
4) Verification of software is easier - API usage, control over how much memory is used, what network connections are made etc.
Before people complain Java is ugly and slow - this is J2ME (Java Micro Edition) that we are talking about which is much more lean and has different UI (Android UI doesn't look anything like the ugly Desktop Java and neither does RIMs - both use J2ME) These factors obviously matter a lot in a Cell phone type environment. I am especially happier with my Blackberry that it allows me to control what a Application can do or cannot do - make Wifi connection - No, access my address book - hell no, Access location - yes, Access Device Settings - no etc.
For once, Microsoft ISN'T the evil party (Score:3, Interesting)
> Apple is taking a page from Microsoft's book, while Google looks suspiciously like Linux
Um, in America at least, Linux-based and/or Java-using phones (like Motorola's and the Sidekick, respectively) are some of the most locked-down phones you can buy, requiring certs and signed apps for everything. The last time I checked, anyone with a copy of Visual Studio can build apps for WM6 and deploy them to their phone, their friends' phones, or post them online for anyone else to download and install.
When it comes to real-world PDA phones, HTC's phones running Windows Mobile have been more open than even PALM's phones were. Anyone remember the Samsung SPHi300, i330, and i500 -- all of which were eagerly bought up when introduced, then withered on the vine because Samsung wouldn't release useful SDKs for them -- not even for innocent things like the screen/soft graffiti API, let alone anything related to the phone UI? Compare that to, say, the HTC Apache/PPC-6700, which was probably the most sliced, diced, hacked, and extended phone in history... a phone that was dysfunctional and almost unusable as a phone "out of the box", but had most of its worst problems ultimately solved by independent programmers who wrote their own extensions and enhancements for it.
The battle isn't "Android vs Windows Mobile and iPhone", it's "Android AND Windows Mobile vs iPhone". Windows Mobile devices might be some of the most dysfunctional phones on earth for making voice calls(*), but they ARE an open platform as far as app and extension development is concerned.
(*)I'd like to kill the IDIOT(s) who decided that an incoming call on a Touch whose display is "off" should enable touchscreen input... and leave it enabled... so if you don't hear an incoming call and have the phone in your pocket, you can trigger all kinds of random events without even realizing it. Or "ignore" an incoming call by accidentally touching the wrong place on the screen while trying to fish the ringing phone out of your pocket. Or notify me that I have voicemail, but require me to dismiss the notification to see the notification that I missed a call, then keep dismissing notifications to actually SEE whose call it was that I missed.... (bangs head on wall, fantasizing occasionally about banging the phone instead).
Qt Embedded (aka Qtopia) (Score:3, Informative)
What about Qt? Qt is about the same age and maturity as Linux, with Qtopia having been out there for far longer than iPhone, Android, or OpenMoko. As of August 2006, "there are more than four million Qtopia-based mobile phones in the market including mobile phones from Motorola, ZTE and Cellon" (from the press release announcing the Greenphone [linuxelectrons.com]).
Qt is old as dirt by today's standards, being one of the most stable and robust frameworks out there, including its embedded platform (which implements its own windowing system to compete with X11 or Windows). The main "problem" with it is that it was never pimped out like Sun's Java was, so nobody has ever heard of it.
OpenMoko, written with Linux, GNU, and GTK+ on X11, has its telephony portions mostly written from scratch. It's so horribly immature that the Qtopia telephony software has been back-ported to Qt/X11 and now ships standard on OpenMoko devices. Truly a testament to Qt's robustness.
With Qt 4.4, Trolltech (now Nokia) put Apple's WebKit into the Qt framework (directly!), so making a webkit-based browser in Qt is a pretty trivial pursuit, as is rendering HTML and JavaScript in any standard app. Nobody seems to realize that this puts Qt/Embedded that much further ahead. Prepare to be stunned as Qt/Embedded quickly dominates the arena that everybody currently assumes is in contention between Google Android and Apple iPhone.
Oh, and Qt/Embedded is GPL'd software. Everything is open, your privacy can be assured, and YOU have control of your own phone. The way it should be. Just try and get that from Google or Apple. Hah!
Re: (Score:3, Interesting)
Who says it doesn't end up as native code? Java has had JIT compilers for years now. They even only compile the code to native once, too.
Re:App Level Programming (Score:4, Insightful)
You must be joking. Comparing Javascript to Java in terms of 'nativity' or saying that C++ and Objective-C are 'slightly different' in 'trivial ways' betrays your lack of IT experience right off the bat, sorry ;-)
It's true that neither Java nor Javascript are 'native' compiled code in the traditional sense, but it's still not a fair comparison. Javascript's runtime environment is the browser which is (by design) very limited in the amount of access it can have to the underlying system, hardware, etc. Java's runtime environment, the JVM, on the other hand, can be arbitrarily privleged, and depending on how the OS is laid out, can do just about anything any native app can do (at a perhaps minor performance penalty). Seeing as they plan to have Android running on a bunch of different phones, the choice of Java is pretty much a 'must' if they want to have any sort of ubiquity as a 'platform'.
Also, Objective-C and C++ are quite, quite different. It would be easier to list their similarities than their differences -- they both have the basic goal of providing object-oriented facilities to C. That's about where the similarities end; C++ goes the route we've all come to know and love (hate), while Objective-C goes for a more pure "Smalltalk"-style message-passing paradigm. The similarities between the approaches are cosmetic -- the kinds of problems you run into in these two languages are quite different.
Besides, the main difficulty in writing apps for the iPhone is learning Cocoa, not Objective-C. Most programmers can pick up new languages (even fairly unique ones) in a matter of days or weeks (at least to a passable level of competence), but a giant framework like Cocoa is hugely intimidating and often changing and much harder to find resources for.
Re: (Score:2)
Re: (Score:3, Insightful)
most of us geeks have made a choice for the next 3 years.
Speak for yourself. Being a geek and hating to be told how to use my gadgets are exactly the reasons I wouldn't touch an Iphone with a 10-foot pole.
Re: (Score:3, Interesting)
There is no excuse however for Java's longer method names.
ProTip: Nobody types those method names out anymore. Enter the mid-90s and get an IDE with autocomplete.
Yes, vi and EMACS are awesome monuments to 1970s technology, and I also love them. But I'd no more use them for professional coding than I would wear a 1970s polyester leisure suit to a funeral. The tools have moved on, and so should you. I use IntelliJ's IDEA, but Eclipse is an acceptable second best, and it's free.