Friday, November 11, 2011

What makes Android Programming Simpler and iOS difficult?


I cannot start writing iPhone and iPad software because?

I don't have an Apple... No! don't bring me a KG of fresh red apples please, I am referring to the Apple which is a computer. It's impossible to code stuff up without an Apple machine, even for sake of learning. Apple MUST create a tool chain for people running Windows as we know it's the most widely used operating system, just like the iPhone which is a crazily used "Somewhat Smart" Phone. They could create a development environment, and a few emulators to get new going with iOS development. I believe it would cost less than $100k to develop such a solution, maintenance cost won't go beyond this as well.

I can start writing Android software because?

Because the tool chain is available for Windows, and Linux as well. We got things like Eclipse and ADT, that make producing Android software very easy. Anybody and everybody with little knowledge and some enthusiasm can jump into it.

For fresh grads, Android is easy but iOS is difficult because?

Fresh grads are usually scared of new programming languages, basically the PHD and MPhild wielding "theoretical giants" that are dominating the universities cultivate the fear. They are the people(almost always) not good at programming, but super fast at publishing papers and attempting exams; and that is precisely why they can't find jobs in practical code writing/analysis/management positions in industry and seek refuge(read occupy) universities. These people scare the youth away from real life programming, by over-explanation of simple constructs like if/for/while.
Java-language-androidObjective C is certainly not the most popular academic language, Java on the other hand is being taught in thousands of Universities around the world. C is usually the first programming language and Java comes afterwards, but there are cases when they take directly off from Java.
The point is, adopting to Android platform's Java based program writing is very easy for fresh grads on the other hand Objective-C centric iOS programming is relatively difficult to adapt.

Solutions for developing iPhone apps without a Mac are available but the seem to even complicate the process. We got options like "WebView", JavaScript and HTML 5 based widgets or applications that can run on any mobile platform (Android, iOS, WP7). But if you want to leverage the platform specific benefits, again you must mess with Obective-C or Java.

I deliberately left Windows Phone 7 or 7.5 because this debate is not concerned with Microsoft's lagging smart phone platform. Microsoft VB.Net, C# .Net are being taught in a very little amount of universities, although people learn these languages once they complete graduation. But still Microsoft is far behind from Apple and Google in Smart Phone computing and these two are the real competitors for the throne of Mobile/Tablet computing.

objective-c-ios-appleMicrosoft's like a mammoth right now, it's got a lot of software(Desktop/Server OS, CMS, Databases, Application Framework etc.) in its repertoire, a huge and stable customer base, but still it's unable to produce a truly strong iOS/Android rival. HTC is supposed to offer a smart phone with Quad Core Nvidia Tegra 3 processor by the end of this year or earlier next year, but Windows Phone will not get even a dual core processor by late 2012.
Blackberry is another platform Java coders can head to, but the BB show seems to be coming to an end. And most probably they'll shelve their OS (BB OS7) and cancel QNX program, and move to Windows Phone joining the club Nokia earlier this year joined.


Feel free to talk back...