Wednesday, October 19, 2011

Anti-trust and closed mobile platforms

I initially started thinking about this (on the table during acupuncture) in the context of the iPhone... but the same can also be said of pretty much all mobile platforms excluding Android.

What ever happened to the idea of anti-trust in software platforms?

Remember the days of Internet Explorer / Windows anti-trust issues, particularly in Europe.
I believe the whole idea was that by having Internet Explorer shipped with Windows that you are limiting market-share that can be gained by other competing browsers on your platform.

First thing is first, I'm not sure how I felt about this initially. Sure, I hated IE as much as the next person, I still do... it is terrible. It is a battle Microsoft should give up fighting (*cough* along with search *cough*).
But my partial stance was: "hey, Microsoft built the whole freaking platform... leave them alone. Without Windows, there was no where to run Netscape, Firefox, Opera anyway... so quit your bitching. If people thought IE was crap enough, they'll leave"

Leave they did... latest statistics show that not a lot of people actually stick around with IE.
Funny enough (I haven't looked at the details) there seems to be some debate about who is using what. Here and here are some differing stats. Also remember that IE ships inside Windows still in pretty much every other country other than a few in EU.

Side-note: Really interesting to see Firefox usage drop off and Chrome usage pick up. Mozilla did this to themselves with terribly slow start up times back in versions 4 & 5 compared to Chrome.

Back to the main topic of interest now that we are on the same page: the real problem that was unsurfaced is that platform developers have such intimate knowledge of their platforms and can make sweeping changes to their platforms that allow them a significant advantage.

Some that come to mind:
  • Features of third party applications can be adopted in to the operating system/platform, hence cutting the market for the original application (Spotlight & Dashboard for OS X were born like this, as were many features of most Operating Systems these days)
  • Platform developers have access to closed API's not available to third parties, giving them capabilities that others can't get to (well, easilly.... without hacking and warranty voiding)
  • Platforms be altered in a way to cripple third-party applications not preferred by the platform developer
As an example, this is RAMPANT in iOS (and to some degree also in WP7, but I haven't done a lot of investigation).

Examples that have annoyed me in the past, or continue to annoy me today:
  1. Up until iOS 4, the iPod was the only application that was allowed to run in the background to play music. What if I was Pandora and was trying to get my music application to get in to people's pockets... the limitation by the platform developer gives a hard limitation to competing music players and stores.
  2. Platform developers (again, excluding for Android) don't allow other marketplaces in their application deployment life cycle.
  3. I wanted an application like that operations like Siri since I got my hands on the iPhone SDK (even before my first iPhone arrived). I wanted the ability to hold down the home button that would allow me to send speech to a server box (because the MS speech recognition was good) to process. Couldn't do it. We are talking about an application I started to make 3 years ago. The limitation in it's useful was entirely based on the fact that you had to turn on your phone, unlock it, start an app, and then press a button. EWWWW.
    Without access to special API's that the platform developer had/has, I can't compete.
  4. Access to underlying databases (in the name of security) is limited, meaning applications cannot do interesting things with peoples calendars, contacts, or anything like that. Refer to my earlier post about trying to make an ICS reader for Windows Mobile 7.
Let's have another think about what could have been done with the original implementation for Siri (which was an app released quite a while ago that ran on anything > iPhone 3G, and possibly other platforms?).
The thing holding the original Siri back, IMHO, was that you couldn't easily access it (like the one click it is now) and that it had no ability to write to information databases (again, contacts and calendars) on the iOS platform.

What actually ended up happening was that Apple bought the technology from the original developers... and they, of course, have access to all the nuts & bolts needed to make it better. But who is to say that the makers of Siri (had they had access to the underlying APIs that Apple do) may have made a wonderful application that they could have sold to users of iPhones of all breeds from 3G to 4S and made a lot more money than they did selling the technology to Apple (lol, Apple get 30% anyway).
Better yet, they may have also been able to get ports to Windows Phone, Android, PC, Mac, the freaking web/cloud... those guys could be rolling in the coin (more so than they are).

I'm sure there's a whole load of developers out there that are held back by the restrictions of the underlying mobile platform to really letting some of their amazing concepts and ideas shine through. Mobile computing is still in its infancy (coming from someone that once owned a Windows CE 1.0 device). We're only scratching the surface of what is possible.

In the case of Adobe and their concerns about this same problem, I tend to sit on the fence of "go away Flash... stop slowing down my browser and wasting my battery life". (As a Macbook Air user, trying to watch Starcraft 2 streams in flash players makes a 5hr battery last 1hr... I cant wait for more HTML5 adoption!!!). But thumbs up to Adobe for having the right idea.

The only place that we can really show off our freedom is jail breaking, or Android.
Or have tonnes of money and start your own mobile platform?
Smells to me like a form of monopolization that we all have to just put up with... because we don't have the choice.

This comes from someone who loves his iPhone and Windows Mobile 7... and didn't actually take much love to Android's user experience.

Maybe Steve was right, maybe I shouldn't have an opinion?
I'd at least like the choice on whether I am allowed to have an opinion...

Applications are what makes the iOS platform so great... and I actually believe that the tight user interaction guidelines Apple impose make the applications for iOS some of the best available. Imagine what is possible if the chains are taken off the developers...

The other option is to just hope Apple buys up all you're shit... but it still feels a little but like wrong-town to me.

Monday, September 26, 2011

My first disappointment in Windows Phone 7

I was relatively late to the Windows Phone 7 game...
I've been using the portable versions of Windows since Windows CE 1.0 (I had a Casio Cassiopeia A-10) up to and including Windows Mobile 6.0. I got over it all.

I've had a tonne of iPhones, and have been insanely comfortable with them. They did EVERYTHING I wanted to... (or so I'd pretend).
I do love open source, so I picked myself up a Nexus S to explore the apparent bliss that is Android, but it just didn't feel right to me (yet).

So pretty much because my brother in law had this massive beautiful screen on the HD7, and a mate (you Phil) had been talking it up, I eBay'd myself a HTC HD7.
I got it post NoDo (yay, cut & paste) and pretty much jumped straight on to the Mango (I call it Mangoat) Beta. Everything has been pretty freaking awesome with it... its pretty, its well organised.


Ahhh, calendar support for invitations. Balls.
Who doesn't support ICS files natively on the device? :-(
Turns out lots of people.
I get people to send invitations to my Gmail now instead of my MobileMe, but nothing works nicely together. I want my phone to see the ICS and magically work it out for me.
I'm not asking for too much.

So I figure, "hey, screw it, I know C#... I will fix this gaping hole in calendar support by making an app that can load ICS files and populate a new appointment dialog for me. That's close enough"

It wasn't until I started reading through API documentation and reading through StackOverflow questions similar to the ones I had asked that I realised that Microsoft didn't get around to exposing the API's for writing to the calendar or calendar dialogs.

To quote from the Whats new for 7.1 RC on MSDN:
"The Windows Phone SDK 7.1 RC now gives you read-only access to the user’s contacts and calendar data. You can now differentiate your applications by querying and interacting with the user’s data in ways such as letting the user choose from a list of their contacts and sending them emails, searching for contacts’ birthdays, and others."

Makes me sad... I'll still have to keep hacking through event invitations through dodgy web interfaces until then.

Ok two more things I hate. IE9 mobile is terrible (or maybe just that it identifies itself as IE is bad, NO one makes their websites look nice for it. e.g. All the Google stuff doesnt work half as nicely as it should)

And BING... dont get me started on how terrible Bing is.