Quite a lot has changed since my last post on these pages! Google’s Android has matured considerably, with Android 6.0 Marshmallow ready to burst through the gate on the Nexus 5X and 6P. Apple’s iOS continues to evolve in version 9, and with the release of new, larger, faster, iPhones, Apple’s dominance in the mobile space has roared back to life. And don’t count Microsoft out of the race just yet! Windows 10 has proven to be a success on the desktop and Microsoft has sweetened the deal with slick new Surface hardware and Lumina phones.
It’s a great time to be a developer on any of these platforms. The only limit is your imagination, and of course, development time!
The last few months I’ve been working almost exclusively on an Android app which has afforded me the opportunity to see some of the differences between developing for Android versus developing for iOS. I’m not going to provide a laundry list of differences here, only general impressions.
Developing for Android is largely a DIY or roll your own affair. Android development is done using the Android SDK and the Android Development Toolkit (ADT) plugin for Eclipse. Eclipse itself is a popular IDE platform and there are some great tools that have been built on it. Unfortunately, ADT is not one of them. It is adequate, but decidedly primitive compared to XCode for iOS development and that gold standard of development tools, Visual Studio for Windows.
To make matters worse, implementing and using various widgets in Android is a more difficult affair than the equivalents in iOS. In short, XCode builds out a lot more stuff for the developer than the Android tools. Again, I haven’t done a bullet by bullet comparison. These are just my general impressions having worked with both.
Outside of the tools, the other thing I found daunting about Android was the lack of a strong set of design guidelines. When I first started learning iOS development, I was immediately indoctrinated with Apple’s design guidelines in form of print and WWDC videos. When I started Android development, there didn’t seem to be an equivalent transmission of design DNA.
With the release of Android 4, aka Ice Cream Sandwich, Google is finally speaking with a strong Android design voice. The Android Design site provides very clear guidance for Android app design. And I’ve seen great improvement in the overall Android Developers site as well. Given the great heterogeneity of the Android ecosystem, speaking with a strong unified voice is essential.
As a developer, I’ll be much less reluctant to embarking upon new Android projects if I can easily learn the Android way of doing things straight from the source, rather than having learn it by trial and error. Now if they’d just improve the ADT and drag its antiquated GUI designer into the 21st Century, they just might get some happy googly eyes from me!
Apache Hadoop reached a major milestone yesterday in the life cycle of any kind of software, its 1.0 release. While Hadoop has already rocketed to the top of the charts in the world of Big Data counting the likes of Yahoo, Facebook, and LinkedIn among its contributors and customers, it has also picked up some interesting new fans in the form of erstwhile competitors Microsoft and Teradata.
Late last year Microsoft announced support for Hadoop in their cloud computing platform Windows Azure. And earlier, Big Data titan, Teradata, announced Hadoop support as well. So clearly the handwriting is on the wall and Hadoop stands ready to take a top position in world of Big Data just as Apache has already taken in the world of web servers. Happy 1.0 Hadoop!