Someone sent me a link at work saying how poor Android is. I had to respond.
Update: Silly me, forgot to include the original link.
This is my email:
> Android OS (whilst hidden behind the beauty that is HTC Sense) is an inherently geeky, inconsistent, temperamental and beta-like OS.
- geeky: yes (and in my opinion, that’s a good thing. not everyone is an apple fanboy)
- temperamentaland beta-like: to some degree, yes. give it time to mature a bit more. every iteration it improves drastically. Google isn’t sitting still
> It responds inconsistently to what should be basic functions of a phone
- Agreed. That is sometimes annoying. Slow to load the phone dialer. Easily fixed via software update.
> Exchange sync having random hiccups.
- Never noticed any problems with this. I use the exchange sync for work email and have always had my email there when i wanted it.
> The limitation of the OS not allowing you to install applications onto the microSD card
- 100% agree with this one. It’s SUPER annoying and aggravating. It limits how many apps i can have, how large and complex apps can be. Google has said they’re working on this and with a future software update this will no longer be an issue.
> Auto memory management is poor at best.
- Not sure i agree with this. There is an excellent article here by a Google engineer involved in this that details how and why they did things the way they did. http://android-developers.blogspot.com/2010/04/multitasking-android-way.html . That being said, there are a few poorly designed apps that don’t play nice with Google’s best practices for memory management. My response: Don’t use those apps. They will get low market ratings and bad comments so you can easily avoid them. And there are always a dozen alternatives that don’t have the problem.
> Android is not and can not be an “iPhone Killer”, nor really even a competitor.
- I’m always annoyed when someone says “Android is an iPhone killer. It’s not. But i do think it’s a valid competitor. Especially with the newer versions of the OS and the newer hardware (Droid Incredible, Nexus One, EVO 4g). It’s numbers are growing like crazy. In fact, last quarter, Android outsold iPhone. (Both of which are behind RIM, which itself is waaaay behind Nokia).
> The Android market is disjointed, confused and inconsistent, whilst Apple have created a stable, consistent platform that whilst limiting in some ways, allows users a level of comfort that Android does not.
- Apple-fan boy speak there. I 100% disagree with this statement. It’s precisely Apple’s “stable, consistent platform … limiting in some ways” that has made me have absolutely no interest in doing personal development for iPhone OS. I don’t want someone telling me what i can and can’t put on the market. “Oh, we don’t like your app, sorry”. and people with big public forums or insider clout at apple get their apps through anyway, where the little guy wouldn’t.
- And it’s exactly the disjointed, confused, and inconsistent Android market that excites me. It’s challenging. Yes – you have different screen resolutions and OS versions. All of which are documented in detail and EASY to code for and test in the emulators. It adds maybe an hour of time to do a little testing for different screen sizes. So what? And hey – i can publish anything, anytime. If it’s crap or malware, the market will rate it poorly and nobody will download it.
> Ask older Android handset owners if they enjoy being stuck on Android 1.5
- He has a point here. My response: Get a new phone. How long do people keep their phones on average nowadays? usually the 1-2 year contract from their carriers.
> you can now walk into almost any store anywhere in the world and buy an accessory for an iPhone.
- That is a also a good point. But i have no trouble finding accessories on Amazon. I rarely walk into a store to buy any tech accessories anymore… Plus it’s cheaper. You can get a standard micro-usb cable for $5. You don’t have to pay $30 for a special iphone cable
> Too many form factors. Too much variance in OS versions. Too many product releases, too quickly.
- I think that’s a good thing. Choice. You don’t like phone x? Try phone y. You want something fixed? You won’t have to wait long for it, because the releases happen quickly. Release early, release often.
Both sides of the argument have merit, and i think that both OS’s have a place. iPhone rocks, no doubt about it. But don’t discount android as over and done with. It’s not going anywhere but up. The more choices consumers have, the better.
I’m in a weird slump at work. I enjoy my job, generally. But i’ve really missed coding of late. I rarely have time at work to do anything coding-wise. And usually when i do get some time, it’s a half hour here, an hour there. Not enough to really get into anything. So i write emails, update documentation, go to meetings, wander around and make sure nobody is blocked on something, etc.. Typical managerial life i suppose?
Lately, however, i’ve really been getting the bug to code. It’s what i enjoy most. My only solution is to spend time on the weekends or late at night after everyone is in bed. The problem is … code what? I don’t have any ongoing projects at the moment. My website is stable and does what i want. I’m sick of rehashing my inventory program over and over (although i probably will create a mobile version eventually). So i’m sitting there on Saturday trying to come up with something to do when i decide to play around with the twitter api’s.
They’re really simple – just fetch a url with a couple of parameters and parse the results. Easy peasy. So i decide to start playing around with writing a twitter application that will fetch all of a persons tweets, retweets, mentions, and replies and store them in a local database. It will be smart enough to be able to run incrementally after that to only retrieve new stuff since the last update. Stick it on a cron job, let it run, and the database fills up.
Not sure what i want to do with the data once i have it, but hey – that’s a problem for another day. I could create a webservice to fetch it and display on a webpage. I could integrate it into my blog. I could write a mobile app to view it. Maybe link to something on facebook. Whatever. The important part is to just make sure i have the data now before it’s inaccessible (twitter only lets you go back so far via their api calls).
Great – i did that. But it didn’t satisfy me. I wanted to do more. Enter Chuck Norris. He’s the man. You know all those awesome Chuck Norris “facts” floating around? No … well, go look up “chuck norris facts” on google. Or better yet, do a twitter search for “chucknorris”. Suddenly i’m hit with a great idea.
I want to write a widget for android. A widget is a small app that runs on your homescreen that does some specific function. My widget will be a picture of Chuck Norris’ face. When you click it, it will do a twitter search for “chucknorris”, grab a random quote and display it to the user. How awesome is that? And since i’d already done all the hard work of figuring out how to deal with twitter, that only left learning how to write a widget. Turns out it’s not that hard. I had one up and running in 3 hours.
Next dilemma – free or for-pay on the market? i’ve got a free app already. It’s got around 9,000 downloads currently. People generally seem to like it. Would they pay for a Chuck Norris fact widget? Maybe i’ll make version 1.0 free, and i’ll create a for-pay 2.0 version that adds something, like the ability to share a quote. Hmm … ya – that could work.
I just love my phone. It’s awesome. But why doesn’t it get old after a while? You know – just become something that i use when i need it, and aside from that, it just sits there in my pocket?
I think there are several reasons for this. First is the fact that’s it’s just so useful. I mean, it does so much more than calls. It shows me weather and news, which are constantly updated. I can check movies, sports scores (like i ever do that), order tickets, find a place to eat, play a quick game, read a book, update my facebook status. So reason #1 – it’s a window into the digital world and i’m constantly using it. Thus it never gets old.
But i think, at least personally for me, the number one reason i love my phone is because i can write programs for it. I can have it do whatever i can magine. It’s my “little computer” (as Alex used to so fondly call these things when he was younger). There’s always some new frontier to be conquered. Some new thing to try and make it do. It never gets old, because i’ve never exhausted all the possibilities.
As i was sitting there using my Android phone this morning, and my wife was using her iPhone next to me, i thought of all the great apps that exist for these devices. There are literally over 100,000 apps for the iPhone, and over 20,000 for Android. Of course, probably 80-90% of those are “crapware”, but hey … that still leaves a lot of great apps.
Even so. Think of Palm. Sure, today they’re pretty much a has-been, but Palm was the king of the hill for a LONG time. And during the height of the Treo years, there were tens of thousands of excellent apps written for the Palm. I even have a few that i still run via the desktop emulator now and then.
So let’s combine some thoughts here. I have an NES emulator for my Android phone. It allows me to play literally hundreds of old-school games. It’s amazing, and works perfectly. Why not create a Palm emulator for Android and iPhone? Think of all the great apps everyone would suddenly be able to run!
As a completely unrelated side-note: Why won’t the makers of Pocket God create an Android version? Or even a WiiWare version? I’d buy either (probably both)…
I’ve just discovered the joys of Qik – live streaming video from my phone!
http://www.qik.com/yarell3 You can also subscribe to an RSS feed (which allows you to download the videos locally if you like): http://qik.com/yarell3/latest-videos I can add a title, set location information (if i want), mark the video private/public, and then it will send notifications (if i want) to twitter, facebook, and youtube whenever i stream live video. How cool is that? My Android G1 with its 3.1megapixel camera actually does pretty good (especially in sunlight). This will be great for capturing impromptu moments to share with friends and family. (It might also come in handy if i’m ever in the middle east during a revolution!)Google has made a version of it’s over 1.5million book library available and formatted for mobile devices (specifically the G1 and the iPhone).
Check it out: http://books.google.com/mAndroid Shisensho

For the past few months i’ve been working on an application using the Android platform (the gPhone). It’s a remake of a great game i use to play on my Palm and still play on my desktop in the palm simulator all the time called Shisensho. Since i liked it so much i figured “why not recreate it for my new android phone?”
If programming languages were religions…
For all three of you that read my blog that might appreciate this, here’s a wonderful, funny, and somewhat true statement about many programming languages and how they might translate into religions. This was passed along by one of my fellow code-monkeys. I’ve recreated the list here in case the original site goes away at some point. And yes all of the languages listed below (including LOLCODE) are real.
C would be Judaism – it’s old and restrictive, but most of the world is familiar with its laws and respects them. The catch is, you can’t convert into it – you’re either into it from the start, or you will think that it’s insanity. Also, when things go wrong, many people are willing to blame the problems of the world on it.
Java would be Fundamentalist Christianity – it’s theoretically based on C, but it voids so many of the old laws that it doesn’t feel like the original at all. Instead, it adds its own set of rigid rules, which its followers believe to be far superior to the original. Not only are they certain that it’s the best language in the world, but they’re willing to burn those who disagree at the stake. PHP would be Cafeteria Christianity – Fights with Java for the web market. It draws a few concepts from C and Java, but only those that it really likes. Maybe it’s not as coherent as other languages, but at least it leaves you with much more freedom and ostensibly keeps the core idea of the whole thing. Also, the whole concept of “goto hell” was abandoned. C++ would be Islam – It takes C and not only keeps all its laws, but adds a very complex new set of laws on top of it. It’s so versatile that it can be used to be the foundation of anything, from great atrocities to beautiful works of art. Its followers are convinced that it is the ultimate universal language, and may be angered by those who disagree. Also, if you insult it or its founder, you’ll probably be threatened with death by more radical followers. C# would be Mormonism – At first glance, it’s the same as Java, but at a closer look you realize that it’s controlled by a single corporation (which many Java followers believe to be evil), and that many theological concepts are quite different. You suspect that it’d probably be nice, if only all the followers of Java wouldn’t discriminate so much against you for following it. Lisp would be Zen Buddhism – There is no syntax, there is no centralization of dogma, there are no deities to worship. The entire universe is there at your reach – if only you are enlightened enough to grasp it. Some say that it’s not a language at all; others say that it’s the only language that makes sense. Haskell would be Taoism – It is so different from other languages that many people don’t understand how can anyone use it to produce anything useful. Its followers believe that it’s the true path to wisdom, but that wisdom is beyond the grasp of most mortals. Erlang would be Hinduism – It’s another strange language that doesn’t look like it could be used for anything, but unlike most other modern languages, it’s built around the concept of multiple simultaneous deities. Perl would be Voodoo – An incomprehensible series of arcane incantations that involve the blood of goats and permanently corrupt your soul. Often used when your boss requires you to do an urgent task at 21:00 on friday night. Lua would be Wicca – A pantheistic language that can easily be adapted for different cultures and locations. Its code is very liberal, and allows for the use of techniques that might be described as magical by those used to more traditional languages. It has a strong connection to the moon. Ruby would be Neo-Paganism – A mixture of different languages and ideas that was beaten together into something that might be identified as a language. Its adherents are growing fast, and although most people look at them suspiciously, they are mostly well-meaning people with no intention of harming anyone. Python would be Humanism: It’s simple, unrestrictive, and all you need to follow it is common sense. Many of the followers claim to feel relieved from all the burden imposed by other languages, and that they have rediscovered the joy of programming. There are some who say that it is a form of pseudo-code. COBOL would be Ancient Paganism – There was once a time when it ruled over a vast region and was important, but nowadays it’s almost dead, for the good of us all. Although many were scarred by the rituals demanded by its deities, there are some who insist on keeping it alive even today. APL would be Scientology – There are many people who claim to follow it, but you’ve always suspected that it’s a huge and elaborate prank that got out of control. LOLCODE would be Pastafarianism – An esoteric, Internet-born belief that nobody really takes seriously, despite all the efforts to develop and spread it. Visual Basic would be Satanism – Except that you don’t REALLY need to sell your soul to be a Satanist…
Anyone have any suggestions for Pascal? Dave?
About 4 1/2 years ago i blogged about work on 3D operating systems. Not a lot has really happened in this space between then and now. However, Apple is supposedly working on a 3D OS. Here’s a link to a detailed article about what they’re up to. With much faster processors and better video cards it seems much more tenable to do nowadays. I am still looking forward to a 3D os that’s gamelike. This isn’t quite that, but it would be a great step in that direction.
Ok, almost the coolest app i’ve found yet for my android g1 … the TunesRemote. It connects over wi-fi and allows you to control your itunes music library from your phone. (coolest app is the compareanywhere barcode scanner – which, btw, was written by the same guy). – Tunes Remote
In other android news, i’m making great progress on my game. it’s completely playable, works great, and is quite responsive. the only things left are extras like high score lists, save/restore game state between app runs, an extra tileset, and a page with instructions. hopefully i’ll have it ready to go within a week or two. Oh, also in android market news: here’s a great site to check in addition to the official market: http://www.androidapps.org/


