One of the challenges we face in software startup-land is deciding what platform to develop to. This is not a small decision. What you develop on one platform is often a poor fit for others as each has its own capabilities and nuances that cause ports never to quite work as well as hoped.
I raise this question as over the years we are offered new platforms that will make our product come to market quicker, with greater capabilities, and broader acceptance. This promise is the Holy Grail for software developers. Sun coined the phrase ‘write once, run anywhere’ to describe the Java language in the late 90’s. My company at the time, which became Wesync.com, was an early player in client-side Java. As in so many new technologies, it wasn’t quite as portable as the marketing machines indicated it would be. Someone at the time coined the phrase ‘write once, debug everywhere’ which ultimately got more airtime than the original tagline.
Software development companies are an optimistic lot by nature. We are always looking for the platform we can write to that offers the broadest reach for our products. This is like a grown up form of the ‘greatest common denominator’ from 5th grade division. More on this thought below.
So towards the goal of developing a product that is usable by the greatest number of users, and sticking to our mathematics theme, I see four possible choices:
Write to the hardware -
though this one is silly, it is an alternative. Logically the closer you write to the hardware, the more you are in control of your own destiny. Of course you will run out of money way before you get a product out but I included it so my list would be complete.
Don’t develop to multiple platforms –
a viable alternative in some cases. Certainly there were times – in the pre-Internet age – when this looked to be the obvious solution at least for business solutions. Or, in other cases, perhaps the platform had some inherent capabilities that favored a certain marketplace, such as the Mac’s dominance in graphic design in the 90’s.
Pick one (or pick one, then pick another) –
this is where most development in the 90’s ended up. Based on what market you were after, you would rationalize initially building to Windows or Mac or Unix or Linux or Java or Citrix or Palm or … Then you would attempt to work the miracle of porting to one of the others.
Write browser-based applications – browsers from different providers basically track together pretty well. They have to. Anyone who has tried to take the Web in a proprietary direction has had their head handed to them. I hate to single out anyone, but Netscape’s demise left Microsoft owning the browser which no doubt motivated the Mozilla foundation forward (purely speculation on my part).
Likewise, would OpenID be where it is now without the threat that Passport represented?
Now, this is really where the software business has changed. Simply put, the OS is no longer the platform. The greatest common denominator is no longer owned by anyone. It is the browser and the associated Web back-end services. Much to the regret of a few, and to the joy of many, many more, the browser has won. And there is no going back!
{ 1 comment… read it below or add one }
OpenID was first developed in late 2005 by Brad Fitzpatrick. It quickly gained traction with the identirati at events like the Internet Identity Workshop that following Spring. Why? It was simple, light-weight and it solved a specific problem. It wasn’t the silver bullet and subsequent iterations have fixed a lot of the wrong assumptions that were made in the beginning.
By Spring 2006 Passport was considered a failure in the marketplace by all accounts. Microsoft had already begun work on CardSpace/Infocards based on the lessons learned from Passport.
OpenID’s course was set without much consideration for Passport IMHO. I think it was a technology whose time had come, was needed by a good swath of users (bloggers at the time) and was easy to get up-and-running.