clouds and compilers and startups
oh my!

now that those rants are out of the way expect stuff about Golang, Compilers, Crypto, and a dash of HPC
Recently a common question I have been asked is "what smartphone should I buy". This post stands to a) state my opinions and b) save me time in the future :).
There has been a lot of hullabaloo about which phone is the "best" phone on the market. Since none of them do everything right (and since there is no answer to this) there is only one real thing that matters: what are you going to use it for. Spending my time around engineers all day, I've seen them all. Each owner raves about which phone they picked and the real reason why they kick and scream is because this helps to stifle the fact that they inevitably had to make compromises when choosing. This post is not concerned with carriers, it is concerned with the technologies employed in the devices that make them specifically good for executing certain tasks.
RIM - Makez the Dataz
People who carry BlackBerrys (and like them) are constantly creating data on the go. It is a hardcore communication device that is primarily designed to create and respond to content and then promptly get out of the way. That's it. Sure security could have been a pre-req, but now days everything is getting hacked into. The BlackBerry is the get in get out phone that is capable of composing a long email on the go with minor frustration. People just don't get them for Angry Birds or the latest social imaging app.
Android - I Can Haz Dataz?
Conversly, Android is excellent at putting data at the finger tips. Sure there is the feel good opensource power to the people concept, but when you get down to what the platform really excels at, it's consuming data. It was designed to be this way right down to the built in functionality. What data you care about and it's presentation is totally customizable. The browser resizes text to the width of the viewable display, services dance in the background polling and pushing data ready to notify you the second something new has arrived. If confronted with the 3am unexpected "shit that condition I wrote yesterday should be an else if, now it could introduce use after free" wake-up call, Android might just be the thing to help you get back to sleep after reading a PDF or two. I'm not saying the others can't do it, I'm just saying doing it on Android instead of going to the computer sucks less.
iPhone - I R Trendy and Pretty
The iPhone is without a doubt the easiest to use, prettiest platform on the market. Users are often very satisfied and it shows. The momentum behind Apple releases is that people like the new shiny, and it will also serve them for what they need (often being more than what they need). The iPhone really shines because companies know that they are most likely to make money off the platform. This really just leads to most mobile development companies deciding that, presuming you're within the bounds of the API, it is the correct platform to debut on. This leads to all these new social applications and high profile games that just can't be found on the other platforms. There are promises that they will come, but it's often six months to a year later. If you like exploring new products instead of just sticking with your bread and butter, there is often no other real choice. Again, their are outliers like Lightbox (which debuted on Android - very well I might add), but more often than not iPhone will see the new stuff. The iPhone does a lot of things, but the fundamentals, be it hardware (keyboard) or software (services and tight integration), have to be so agnostic that it's hard to do everything just right.
These are just my opinions and I expect diehard fans to enumerate long lists of solutions for each case. What remains is that the compitition amongst the mobile space is strong and that is great for the consumer. Just because you read a blow by blow comparison on engadget about why a specific phone is best, doesn't mean that it is for you. Just pick for your damned self and if you're fortunate maybe you wont have to. And please please please realize that while the hardware is so great, the soul of these systems is the software.
Several of the start-ups that I’ve either consulted for or W-2ed for have employed contractors to write chunks of mission critical code quickly. I am currently one of these programmers. From my experience this is almost always a bad idea. Often the start-up either is unable to hire a full time engineer or they simply think that they can get away without it. Mobile applications have become a hot-spot for this kind of behavior since there are several platforms and each often requires a certain level of expertise to get the job done correctly.