SDK Shoot Out, Android Vs. IPhone
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.'"
Android runs on Linux....
So I can run any CPU from any vendor, with any OS, and no familiarity with anything, to develop for Android? Cool!
No need for a message when the subject line says it all.
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!
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.
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!
requires a intel mac?
dont tell that to my G5... it's happily working.
Do not look at laser with remaining good eye.
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.
No standard headphone jack = no sale for this consumer. Looking forward to future android offerings though.
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
And before you can view the training videos, you must first download them (for free) from the iTunes Store. Windows users, that means you'll need to install QuickTime and iTunes --
Oh, you mean I HAVE to install iTunes to watch the training videos? Bummer.
He who knows best knows how little he knows. - Thomas Jefferson
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.
Developers weren't happy when Apple told them to go write their programs as Javascript webapps instead of native code with the first iPhoneOS, why would they be any happier being told to write applications in Java? Thankfully it's not as limited as Javascript, but it's still not native code. I think this will be the Achilles Heel for Android, just like it was for iPhoneOS 1.x.
And what's with the complaining about Objective-C? If you can write in C++, you can write in Objective-C. It's slightly different from everything else in some fairly trivial ways, some better and some worse but none of them a significant change. It's not as if Apple is forcing everyone to write in Fortran.
Perhaps if Google had come out with this a year or so before the iPhone but unfortunately most of us geeks have made a choice for the next 3 years.
I may be naive, but wouldn't a innovative application that isn't available or barred on iPhone propel Android to the front? I'm at a loss for what this could be, but are there any good ideas from the slash-dot community as to what this could be and/or if it's already in the works?
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 )
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.
Every man for himself, all in favour say "I"
From TFA:
the iPhone seems likely to remain the smartphone developer's platform of choice
I'd love to see some numbers behind the assertion that it is now!
I suspect that the application marketshare for phones is more likely to be something like:
1) Nokia S60
2) Windows Mobile
3) Blackberry
4) Apple
5) Other
Blackberry might be higher simply because there are a few large organisations deploying high-value apps there (Bloomberg, that sort of thing). Don't underestimate the sheer volume of S60 stuff, either.
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.
If you don't know what AltaVista is (was), get off my lawn.
Apple's policies are. The iPhone would be a much better platform to develop on if a developer didn't find out after spending his time programming that his application was going to be thrown out. It would help if Apple's policies were more open. It's unfortunate and frustrating that this is the case.
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 the most popular mobile platforms and you cannot expect a long term growth with such iron fist.
I think the difference is that if something about your iPhone sucks then Apple is willing to take the blame because they had the power to prevent it. You get an integrated user experience, and keeping up a good universal interface requires an enforcer.
Google's attitude is just like the web. They provide search but don't blame them for the crap you find once you follow a link. Sure, they try to give relevant results but it's an arms race with web developers and they don't make any promises. Android sounds like the same philosophy.
I use Linux on my desktop, but for any kind of portable device, even a laptop, I want it designed by Apple so it just works.
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.
If I was developing for smartphones that would be the deal breaker for me. Invest a lot of time and effort into some great app and then Apple just up and decides to reject it, because they want to sell theirs with no competition (or they just don't like it)? No way I would work on that platform.
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.
I've been disappointed with the lack of Python on these smartphone devices. Android might be a suitable platform for python scripting, but little work has been done to enable it that I've seen. Nokia's N810 is pretty much a perfect environment for python, with fairly strong support for making portable apps with just a little bit of extra work to use their standard maemo skins and widgets. Even if it didn't come with python stock, I was able to get python, pygame, and pymaemo going within a couple hours of unboxing my device. But of course, the N810 isn't a phone. Android looks like it would be really really close to the N810 developmentwise, but I will not go back to the cumbersome and complicated Java development world to make a few simple apps.
[
Obviously they should be naturally hairless.
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.
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 marketing makes it more appealing to users than the iPhone, then, anyone wanting to develop apps for a phone, would be getting a better chance at success with the Google phone.
This is where Android kicks ass, because of it's open sourceness and the fact that if Google phone is to be more popular, it will mean a larger client based to sell these apps.
Jython: "A compiler to compile Python source code down to Java bytecode which can run directly on a JVM".
What's purple and commutes? An Abelian grape.
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.
-- Ed Avis ed@membled.com
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 if all you are intrested is a good phone, you really don't need either as far simpler and cheaper phone that don't have to subsidised with high rates are easily available.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
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...
"A sysadmin is a cross between a detective, a police officer, a gardener, a doctor and a fireman"
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:
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.
Well, there's spam egg sausage and spam, that's not got much spam in it.
Out of curiosity has anyone tried openMoko? If so, how does it compare to Android and iPhone SDK? I like the fact that it supports Qt 3
Trying to install linux on my microwave, but keep getting a kernel panic...
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.
* 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.
http://rocknerd.co.uk
Yeah, I don't get the comparison of the iphone model to Microsoft. Windows has always had alot of 3rd party applications and devices running on their platform. This seems to be what google is going for with android. They want to make it easy for the development community to come up with the applications to fill out their platform. I don't see any reason to defend Apple here. It IS harder to publish applications for the iphone. It's the same model as all of the Apple OSes.
A story mentioning Google without a "donoevil" tag?? Someone must be falling asleep at the switch.
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....
Bark less. Wag more.
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.
A witty [sig] proves nothing. --Voltaire
Most of the article compares subjective/non-concrete things such as how many people use Obj-C and how many use Java. It misses on one significant aspect of the choice of language. Java opens up numerous possibilities for Android. In my opinion that was an obviously good move from google. Here is why -
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.
Not true... It can be made to work on PPC macs with a few minor tweaks and the assistance of Pacifist. What you can't do is sign apps so that they can be run on an external device(the app signer isn't a universal binary). I use the sdk at home on my PPC powerbook, and check the code into my subversion repository, then when on an intel based Mac, sign the apps and test on the iPhone. Not ideal, but its better than nothing.
Seems to me, due to Android's fairly high quality, and developer openness, that it will eventually become the OS of choice for most smart phone companies/manufactures. The iPhone will always be the iPhone, and either you can get one, or you cannot. As a Verizon customer who isn't too big on cell phones anyway, I'll most likely end up with an Android phone before too long by sheer default when the hardware is free/reduced. Apple can't beat that with their model. Nor would they want to! Apples and Googles (the new oranges)
-Buddy of DoQ
Both are restrictive, in varying ways. Openmoko is the way to go.
The largest prime factor of my UID is 263267.
Fatal Exception's Neil McAllister wrote up a shitty article and submitted it to /. to get more ad revenue. Whereas his bias against the iPhone will cloud any kind of real comparison, his love for Google, Java, and the Android will ensure he has his lips firmly planted on Brin and Page's collective ass. And because writing a real article would require time and thought, you can expect that I will just spew a bunch of FUD and speculate on what MIGHT come out for the Android. 'By just about any measure, I am talking out of my ass,' McAllister writes, noting his severe distaste for anything Apple. His Google love 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, I am going to pander to the /. crowd by comparing Apple to MSFT and let Google massage my prostate with the Android.'
Turn off AdBlocker Plus when you go that article. It has a full page click-thru ad, and 4 or 5 other ads jumping out all over the page. It's a worthless article with no real comparisons. It was basically written to cash in on the Android announcement and the flurry of comparisons to the iPhone that are already being made.
We may actually be able to buy one...Twice I was looking to buy a iphone with cash in hand and could not
get one due to unavailability....screw apple they are not getting a dime of my money.
Also 90% of the worlds computers can me used as a android development platform, no need to buy a mac for development.
I can hear the old monkey boy chant now developers!, developers!, developers! Android lowers the cost of entry to near zero, good luck iphone.
Got Code?
you can expert third parties
I think you mean "expect" or "expect expert".
Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
I think the parent is way off base.
Many of the killer apps that defined the personal computing revolution were authored authored and nurtured independently on Jobs' platforms. There is the spreadsheet (Visicalc on Apple II), desktop publishing (Quark and Adobe on MacOS), and the web browser (WorldWideWeb on NeXT aka OS X). Although not creating the image editing category on the desktop, Photoshop was born on the Mac. Apple later gained a knack for video editing, forcing Adobe to get off their behind and improve Premiere.
Now is today's Apple taking a page from Microsoft? Yes... Any OS vendor that regularly forces members of its own developer base out of the market is displaying MS-like behavior. But overall Apple's track record for enabling 3rd party development is (or was) very good indeed.
The carriers dictate whether tethering is allowed, but only apple enforce it through code.
"Any app on the mobile device can be replaced or extended -- even core components such as the dialer or home."
Read it and learn.
Android Features
Any chance of a world day without apple being mentioned ?
Comment removed based on user account deletion
Does anyone not see the obvious here? An IPhone is a single static device, whereas Android can work on any phone.
I mean in Japan they already have phones that can pwn the Iphone hands down. They laugh at our weak little features and wussy touch screen interface (Oh, cute, that came out 2 years ago!)
Android will probably not dominate market share just because Google doesn't have some kind of ridiculous ad-campaign, and it plans on spreading the OS through the market; what it will create are a bunch of strong smart phone competitors, like we see in an MP3 vs Ipod market today.
Ipods win because of sheer marketing, but there are -much- better devices out there that definitely compete.
> 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).
Linux! Linux! Linux! Linux! Linux! Linux! Linux! Linux!
Slashdot = -1 Redundant, Asperger, kdawson FUD, Libertarian, and Linux
The answer to "what is the best SDK for mobile developers" has nothing to do with technology. The answer lies in which phone wins in the marketplace.
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.
I'm not sure what you mean. If you mean that Microsoft was/is less likely to screw their developers, then I think I disagree. If you mean that Microsoft supplies better [free] tools to their developers, then I'm sure I disagree.
'Sound familiar? In this race, Apple is taking a page from Microsoft's book, while Google looks suspiciously like Linux.'"
No, Apple is worse than Microsoft. MS might be heavy handed with their vendors - but they have typically supported their developer base throughout their history. They understood, I think, that fundamentally, developers are a major asset to any "platform". Apple has never had this attitude. It still shows, from time to time they will just shamelessly rebuild someone's idea instead of at least offering that person or company some compensation for their ideas. Apple makes brash changes to their API's forcing developers to fix their software. Microsoft, is still support VB (for better or worse).
What's worse, Apple is squashing competition from indiviudals and companies alike. Not only are they trying to stifle competition in a MSesq way - but now they are killing the little guy too. I would arge that the individual can be far more innovate than an entire team of coders working day and night. It is the indiviudal's singular understanding of a problem, and vision for a solution that makes the work of one so special. Instead of embracing the potential innovations of the individual, and acknowleding the ideas and learning from them - they simply refuse to let them see the light of day.
I guess then, this makes Apple more like the 10th century Catholic church.
> This is a bullshit comparison that doesn't go deeper than "NDA bad, Linux good."
Well what were you expecting? You can't actually talk about the iPhone SDK because of the aformentioned NDA. I'm just amazed His Steveness didn't think to add a clause forbidding ANY reviews or comparisions without written permission.
Democrat delenda est
Comment removed based on user account deletion
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.
Reply to That ||
> Either the machine is open, or it isn't. If it's not, then Google has been deceiving us.
Google has been deceiving you. YOu have also been deceiving yourself. It depends on what your definition of Open is and who you are talking too. Google was talking to handset makers and carriers and Android is indeed Open to them. They were NOT talking to you, the end user. Android is 100% closed to you. It will be SIM locked. Apps will be signed and T-Mobile and perhaps Google will have an absolute veto that isn't subject to appeal over any apps loaded into the device. Any such apps will, at any rate, be sandboxed into the JAVA tarpit where performance isn't an option.
The only question is whether they can lock a phone better than Apple?
Democrat delenda est
We're a software development company with a well known product. We have it running on iPhone.
We had an all-hands meeting this morning. After considering iPhone's technical limitations AND the administrative hassles of dealing with Apple (Microsoft is a breath of fresh air by comparison), we pulled the plug today. Effective immediately, all our efforts are going into Android development.
Only one of our developers was unhappy with the decision, but she's willing to give Android a shot. The rest of the team is quite enthusiastic.
We haven't made a public announcement yet (hence the anonymous posting). Maybe we won't, since we really don't want to get hate mail from the Apple fanatics.
"Apple is taking a page from Microsoft's book, while Google looks suspiciously like Linux"
Which is to say, will fail in the marketplace just "like Linux". iPhone/Android pale in comparsion to REAL SDK power; they are toys compared to WinMob !! Play in your sandboxes and your web browsers - we who like REAL POWER are out of the first grade a long, long time ago.
Pull your head out of your ass and recognize that Windows Mobile SDK is a decade or more ahead of the newbies.
Yes, Apple do vet submissions to the only distribution channel but they DO have a vested interest in keeping applications that run on their phone above a certain watermark of quality.
Yes, it means a lot of apps will not get there, but, would you rather have a distribution channel with thousands of great apps where most of them do something unique, or MILLIONS of absolutely loathesome apps where most of them do nothing the other apps don't do, most of them are buggy as hell and most of them have been written because the author doesn't like X way or Y method that another existing app is licensed or developed?
The "open" Linux development model really has a lot to answer for when it can produce Exchange Server replacements that go GPL, and nobody has an exchange *client* for Linux that runs off it (see a couple past stories). Move this to the Android phones and you will have an HTC Dream which has 15 AOL messenger apps, none of which fucking work, all of which will get equal usage from the customer base, so no developer can ever get the userbase they want out of it.
Alternatively on the iPhone you have 3, which almost work (up to the point that the official AIM client is as bad as you'd expect from AOL).
As for Java being a nicer development environment than Objective C, give me a fucking break. I hate Objective C but I would sell my grandmother before being forced to develop every application in Java. Have you ever tried writing for a mobile device using a desktop system? It's just not the same platform in Java.
Apple really have done iPhone developers a service here by making the iPhone run the same Cocoa apps as the desktop system does with very few restrictions and damn near 90% of the same APIs (functionality restrictions for not having a 24" Cinema Display, keyboard, mouse or nVidia's latest juice-monster, notwithstanding).
If it all comes down to whether Google's open model is better than Apple's closed model, then you have to do it from the position where you are NOT an existing Java developer or Apple developer fully conversant in Objective C. You have to do it from the point of view of what you would like to see running, and not from the purely philosophical basis that you should be able to run anything you like (if you have an iPhone developer kit, you CAN run anything you like!). In all these respects, the article is one big failure to say anything relevant.
What I want to see is a phone based on Qt/Embedded - like the Trolltech Greenphone was supposed to be. Then I get to write in C++ or Java or Python or Ruby (not that I would touch the last 3, but if you have a language binding installed you can go right ahead and start) using a common toolkit, the same kinds of features Apple placed on the iPhone, and all the middleware APIs and abstractions for Bluetooth, OBEX, networking, media playback (be it Phonon or Helix) and web browsing (yay WebKit!) or whatever else. And it has the same advantage as Apple's toolkit; it's the same set of APIs as you use on the desktop, maybe in KDE or maybe a more embedded solution.
Imagine developing KDE Plasmoids which you can dump on your phone. Imagine a KDE Plasmoid on your phone and one on your desktop, which talk to each other (peer to peer communication protocol could mean they are the SAME plasmoid, just on different devices!). This is exactly where the market needs to bloody go.
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).
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!
Use my userscript to add story images to Slashdot. There's no going back.
What about the lack of supplying the world with the SDK? I guess that never happened according to the author...
i don't think that's being very nice to beavers. they use that hair to keep warm in the winter
iPhone is a hardware device, Android is software.
Android is designed to do everything a device can do, and just be locked down by the phone manufacturer.
This is like comparing Windows to Mac. It makes no sense.
Even comparing the iPhone software to Android make little sense since the iPhone software is designed for one manufacturer.
The Kruger Dunning explains most post on
That's a bit of speculation. I mean, you're right...but you're overlooking a few things, Android contains a lot of code that truly is open (Apache, GPL) is maintained by a company that remains fairly open and it's chief selling point against an entrenched competitor is...that its open.
So really, unless this turns out to be some kind of massive business blunder I don't see how you can possibly compare Android, Apple and the iPhone.
I mean, what percentage of the iPhone platform is open?
Anyway, as a (US) T-Mobile customer using what is a considerably less open platform (Blackberry OS) the availability or even the 'openness' of applications has never been an issue. There are no restrictions on what goes onto my phone, and if this was the case with the iPhone, I'd already be using it.
Quack, quack.
I don't think so. Java is a rather primitive language and only it's huge standart library makes usefull.
AFAIK Apple just took kHTML and renamed it to Webkit - So Nokia did not need to put "Apples Webkit" into the Qt framework - it has allways been there. Qt had "Webkit" aka kHTML before Apple had it.
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.
According to one of the articles, the way T-Mobile is going to prevent tethering (using the phone as a bluetooth modem) is at the dataplan level :
if you cross the monthly 1GB limit (which according to T-Mobile should be plenty enough for PDA surfing, but will be quickly reached with a PC surfing), the connection speeds drops and you could be subjected to drops of signal and/or temporary drop of service.
So, everyone could write a net-to-bluetooth bridge, but T-Mobile is going to screw you if they notice you're surfing with it.
(But that doesn't technically stop the users to build Bluetooth-to-Wlan bridges, etc. for the fun of it. And if the phone is unlocked, as in "I live in Europe and here locked phones are forbidden except under specific circumstances and no sane carrier would try to restrict you from tethering" nobody will screw you if you try to use the bridge with 3G).
Probably that the SIM lock it self won't be in the OS running on the main ARM cpu, but in the firmware running inside the 3G/2G chip (the same way most GPS locks are implemented)
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
How do you prevent Skype?
According to the articles most applications are forbidden at the data-plan level :
- You can write them
- You can run them
- But your data-plan is limited in such way that you can't use them in a useful manner.
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
Well, not exactly. You can target the OS running on the main ARM CPU. A lot of 2G & 3G chips have embed RISC processors, running embed firmwares.
Everything network related is taken care inside, and the whole thing behave lick a closed magic box which speak simple "AT" commands with the rest of the phone. As long as that firmware's chip is closed, you won't be able to unlock-it.
Usually GPS is locked the same way (can still information give either above a certain altitude, or above a certain speed, but not above both at the same time, to avoid eeeevil terrist using it to build missiles. this lock is done by the GPS chip itselfs and the chips only speaks NMEA with the outside).
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
Or, you can move to another country, for example one in Europe. Here around SIM-lock is rare (and forbidden by some local laws, see /. articles about iPhone in France).
Subsidizing unlocked phones is the standard practice. You sign a phone contract, you get a rebate for whichever phone you want that the shop where you sign the contract is selling. Then the two are NOT linked onto another.
You can give away the phone as a present to you S/O, and keep the contract for your previous phone. Only if you cancel the contract before a given amount of time, you must pay back a corresponding amount of money proportional to how early you did cancel the contract. But nothing forces you to use this contract in the phone you got together.
(The only rare SIM-locks I've seen are pre-paid SIM sold together with subsidized phones).
(And FYI, yes, I've seen some xDSL & cable providers trying to use subsidizing scheme to sell computers.
Hasn't worked as well as subsidized modem/routers, because most of the people already have computers.
Whereas a lot of them are interested in upgrading their router to better WiFi, etc.
I've seen some quite cool router/modem boxes at some French friends.
Also some providers have announced planning to sell subsidized eee-like cheap linux PCs together with the internet contracts).
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
Simple things like trimming whitespace from string requires goofy convoluted code.
newString = [origString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
The elegance comes in when you create your own NSString category so your call ends up looking like:
newString = [origString trimWhitespace];
The above call seems more complex to you but also offers more flexibility as to exactly what you want to consider whitespace to trim... and as noted you can simplify yourself something you use heavily.
I've also found the documentation a pain to navigate (which may be why I'm not so keen on it).
Actually I've found the documentation pretty good once I got used to the Research Assistant and Cmd-double clicking on things in XCode. I really like that (at least for the iPhone) they sometimes reference sample projects for some class and method descriptions...
OTOH, XCode and it's suite of profiling tools is indeed handy, and the debugging seems to work pretty well.
I'm really happy that it's all based on GDB and thus has even more power you can use than is exposed by the UI (which quite a bit already is). And as you mentioned the performance tools are pretty good. When using the simulator, you can even use DTrace for debugging!
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Apple is taking a page from Microsoft's book
Really? If Microsoft ever did anything like Apple is doing with the iPhone, they would have been dragged into court and publically bashed for even attempting such insane business practices.
Do people not remember Windows Mobile? I won't argue that it is superior to Android, as I haven't done enough research on Android, but in comparison to the iPhone SDK, the 'old' Microsoft Mobile SDK is light years ahead of what Apple offers, without restrictions.
Android's 'limitied' openness is more like Microsoft, is it not, as I have never seen any restrictions on a Windows Mobile application, and considering any newb can use VB or C# or C++ or whatever to delvelop for Windows Mobile, it even has more devleopment options, and more hardware acceleration support, including a DirectX subset.
The only thing I see Windows Mobile missing is a good WPF implementation, but considering the progress of WPF, it is not crucial to the market yet.
And is Android Java only? Why even have a Linux kernel if this is their approach? Java? Ouch...
Seriously; the main problem is getting a decent package so I can develop :) OpenMoko is like $400, and the greenphone was similar. It seems qtopia is marketed to phone makers, not to normal developers.
Well what were you expecting? You can't actually talk about the iPhone SDK because of the aformentioned NDA.
If that were true you might have a point.
While the NDA is silly, most people simply ignore it. People discuss iPhone programming on Apple's own forums, not to mention there are already a number of other develop forums, and code on Google Code and other places.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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 simulator (free version) or the abilities you have with the $99 program.
With the free SDK you can develop all day long against all the API's - the only thing the simulator will not give you is accelerometer data, or a good idea of how your app might perform on the phone.
With the $99 program you can deploy anything you like to your own phone. You never even have to submit to the app store, just keep running your own stuff or other code you download.
Yet again, form over function for apple.
Yet again, posting before understanding from an Apple Hater. What a shock.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
A few points you made are not quite correct (I'm an iPhone developer currently and have also done a lot of Java including some J2ME, though only have an academic understanding of Android currently):
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
The iPhone does this today already, your application is sandboxed and there are also watchdog processes. Java might make that easier for the OS designer but the end effect to the developer and your application is the same.
3) Exceptions are non fatal and possible recoverable, memory leaks are harder to induce
Only a null pointer is fatal, there are many exceptions in ObjC that you can catch that are really more common (like doesNotRecognizeSelector). You are arguing really about a small degree of difference here.
4) Verification of software is easier - API usage, control over how much memory is used, what network connections are made etc.
Again, the iPhone SDK does this today - they can verify some API usage through static analyisis, and also have watchdog processes that can see if you are trying to do some things you should not - plus of course the underlying BSD security subsystem preventing access to things you should not be able to reach.
Also what you are discounting, is that Java VM's can have holes in them you can exploit through Java to get to the native side. Remember that nothing offers perfect security.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
It both surprises and disappoints me. When the iPhone came out with their new location-aware APIs, I was very excited. I had some things I wanted to build. But a decent Mac development box was at least $2k
You can quite easily us a Mac mini - even an older used one (Intel) will do. A few hundred at most.
and then I'd have to sign a $2k contract to get ahold of an iPhone
I'm sorry you have no phone today.
Then I'd have to sign yet more absurd contracts to get the apps to users,
And you think you'll have to sign nothing to get in on the Google app store?
With Google, on the other hand, I can use hardware and tools I already have and like. T-Mobile has already said they'll sell a contractless version of the phone
There's also supposed to be a contractless iPhone out sometime soon, you could always go with that. Or buy an older iPhone from someone, the older phones can use a month to month contract you can cancel.
Or buy a Touch!
All of them can use Location Services.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
In what way is Objective-C dynamically typed?
Well since I can pass any type of object I like at runtime to a method, and either type check it there or use it via protocol (informal or formal) I can't see where it's not. if you call a method with an object of a different known type that's only a warning instead of an error...
In what sense are you thinking it's not dynamically typed? It's one of the more dynamic languages around as far as simply letting type choices be made at runtime and not locking you into type too much at compile time.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
FWIW, I recently discovered that the Android SDK requires an intel Mac. I am now scrounging friends for an old wintel box and CRT to run Linux because my G5 Powerbook is insufficient.
By that measure, slightly more restrictive than iPhone SDK.
illegitimii non ingravare
Burning Question:
Is this about "assimilation" or "ass immolation"? (hehehe)
A link that might interest some:
In Depth: 11 ways Android will kick the iPhone's ass
http://www.pcanswers.co.uk/node/4675
Google's business model is about selling adverts. If Google can sell these Android-based phones via ads via third parties or even give them away (not that they need to be in boxes of Cheerios, or TOTAL), Google could suddenly find herself ("her" (hehehe), cuz she'll likely become a "state" entity) subsuming most of the cell phone market.
Previously: "Linux... Toward the Sunrise..." Now: "Linux... Toward the-- No, now, part of Every Sunrise"
I disagree wholeheartedly with your comment: "Apple is taking a page from Microsoft's book, while Google looks suspiciously like Linux". IMO Apple has always produced the most proprietary devices and software. You can't build a machine and run Mac OS on it (and be inline with Apple's licensing agreement).
Standards based programming has been a hit for businesses, but not for hobbyists. The Goog is saying it can finally make standards based programming a hit for hobbyists. The standards are gigantic. If you ever fully wrap your mind around the JMF or the MHP standards to program something useful on them, your output looks like everyone else's output. Anything which the standard doesn't support requires a huge investment in a native implementation + Java implementation.
By that definition any language that allows downcast checking is "dynamically typed".
That depends.
Most languages nowadays have some degree of dynamic typing supported. While Objective-C is not way on the end of the scale, it's far more a dynamically typed system than Java or C++.
Too bad you seem unable to provide your own definition that excludes Objective-C... but I think it's because you don't understand Objective-C well enough to know if it is or not.
I've done Lisp and Scheme and Java and a range of other languages, so I have some basis for comparison...
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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.
Not if you are a developer thinking of what to develop an application for.
I can't do an Android application and do anything but a full port to run on other Linux platforms. Therefore it does not count.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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.
They can be because Google/T-Mobile have the benefit of having the iPhone around for some time before they shipped - they were able to see where the problems were, what design choices worked, etc.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Most of what you describe are or can be factors of the SDK/API/environment, not the language.
1) A bold claim that is not exactly true ... unless you define your terms in a very specific way to make it true.
2) JAVA has this, true, but the idea is not limited to JAVA. It is up to the entity making the platform and development tools. Could Apple do this? Absolutely. Could RedHat do this on Linux? Absolutely. A nice little kernel mod and some userland code would do that if you want. You can then get down to the system call level, file access level, etc. This is a good feature set, but entirely doable in most languages. In a way this is merely the extension of user/group/etc permissions into a programming language - and these concepts and implementations predate JAVA by a long shot. BTW I would classify this a safety feature, not a "control" feature. After all signed code can still do bad things to your computer/platform/data.
Also, there is a down side to the code-signing as you describe it. As I said, signing the code means getting access to "things that can do harm". What is Joe Q. Public going to do? Well he is going to click "Approve" of course! So what did code signing get you here? Nothing, because that app still can (and might) do Bad Things. IMO code signing's best use is to prevent the app from being silently "altered". That is what I care about the most.
3) Exceptions being safe and non-fatal and possibly recoverable. This again depends on implementation. Not everyone uses exceptions. In Python exceptions are the norm, not the err exception. What you say about exceptions is also true for C. They can be safe, they can be possibly recoverable as well. Indeed most of the time they are recoverable - depending on how/why the programmer uses them.
4) Again, implementation of the environment, API, Library, SDK.
I'm not saying Obj-C HAS this things, just pointing out that what you assert to be a language feature is really an implementation feature and choice. There are kits that provide parts of these. Yes there need to be more and a mor ehtorough implementation of additional features.
My Suburban burns less gasoline than your Prius.
Those kinds of statements are the typical phrases people with an agenda use to try to influence people and sneak fabricated facts into their language.
There is no evidence that the iPhone is "the smartphone developer's platform of choice". Given the number of applications and the number of developers, one of J2ME, Symbian, or Windows Mobile is likely on top.
Given the limitations of the iPhone, it's questionable whether it should even be called a "smart phone".
"With the $99 program you can deploy anything you like to your own phone"
I fail to see who could find this desirable or even reasonable.
Oh wait, the adjective fanboy was invented for a reason.
IANAL but write like a drunk one.
Uhm? What is their market share again?
IANAL but write like a drunk one.
Google should probably decide the section of consumers that it wants to target and then decide the developer's platform...If it is targeting the programmers, developers section, those who would be interested in customizing their applications and so on....yes it makes sense in having a slightly complicated version of interface at the cost of losing its user friendliness....But if they want to focus more on the average consumer with no more interest in developing customized applications than to maybe customize their MP3/MP4 playlist....well....they should keep it simple...users get frustrated when they discover that the devices that they are using are more complicated then their own system, and especially when they store more info than their brains....
Comment removed based on user account deletion
Comment removed based on user account deletion
Apple does not do runtime sandboxing as far as I can see - they statically check if the Application accesses things it should not and deny App store entry to the applications that do. That is lot different than say what is possible with JVM based phones as RIM has demonstrated. RIM does not prevent users from any application they want - they still keep it safe by run time sandboxing. That is way more flexible than static checking - application flaws can cause it to execute unsafe code _at runtime_ , after static checks - this is not possible with runtime sand boxing unless the JVM has a hole - which is possible but way less likely than the possibility of having a hole in the Applications it runs.
Yet
All that is well and good if you want to talk about potential growth.
But the primary poster was stating we should consider all Linux phones TODAY in terms of marketshare, and that is obviously a mistake.
Plus the SDK is available, it could be put on other systems, surely?
Possible but very unlikely I think, because very few phones would have the specs needed to run Android very well, or some of the key systems that would make the phone useful (like an accelerometer or gps)
"There is more worth loving than we have strength to love." - Brian Jay Stanley