Platform shift, platform dilemma, new era?
I figured it was about time I expressed our thinking around platforms here at Folknology, not because I personally wish to illustrate preferences or ways forward, but rather deal with the oncoming emergence of the new platform.
The very nature of our roles at Folknology dictate we have to have some kind of foresight, businesses come to us to seek the benefits from such knowledge. But right now we are facing a somewhat obscured or misty future, even though we have some ideas about it's features and shape, we cannot yet predict its implementation. The reason that it is so difficult to predict the outcome is because we are poised just before a critical fork in the development road. Let me explain what I mean by this, but first some history to put it into perspective.
The last such fork made a huge difference for the development communities, it made and broke businesses building upon it. The last great platform fork occurred decades ago and saw the emergence of Microsoft as the custodian of that new Platform. That shift involved the mass exodus of software development from the mainframe platforms to the PC platform. It didn't happen overnight it took a decade to play out, not only did the hardware part of the platform change but also the accompanying software development on top of it. We saw a move from command line Unix and 'greeen screen' software, to a simpler representation of the emerging pc platform in the form of DOS. DOS was green screen on steroids, quickly graphics evolved around DOS taking software into realms that hadn't been contemplated previously. In the latter part of this period Apple also accelerated this idea by creating the Macintosh platform, which had a graphical user interface (GUI) (much of this stemmed from the research at Xerox Parc). Microsoft realised the greater opportunity offered by an open ecosystem of hardware vendors and combined it with there own GUI - and Windows was born. This in many ways signaled the end of the transformation and the beginning of the new platform. Commercial software development now began to center around Microsoft's development platform and windows applications.
If we peek back at the main players vying for platform acceptance before it was complete, we had the incumbent IBM juggling with their existing installed base (mainframe customers) and it's business model, they also had there fingers into the new DOS/PC business and were working on their new secret weapon OS/2 which they had been partnering with Microsoft to develop (big mistake!). Also early Microsoft had other competition in the form of Digital Research (DR) with their own DOS and later a GUI called GEM. the rest, as they say, is history, Microsoft kicked DR in the balls crippling them and followed up by shafting IBM big time.
So in this transition betwixt the two platform ages we first saw a hardware shift characterised by a commodity manufacturing evolution. This was followed later by a more abstract platform shift that evolved on top of this new landscape - the software development platform. Back to the future and we see a similar transition in play now with internet services. The landscape underneath is the evolution of the internet and through it, the emergence of the virtual machine or virtual hardware if you like. This is in fact akin to the earlier commodity manufacturing change. This transition is already happening all around us, but the second component of that inevitable transition is yet to reveal itself fully - the development platform. Once this visible we will be able to see the road ahead more clearly.
I really can't help but draw comparisons to the previous transition, only the players have changed. Now we see Microsoft as the incumbent with it's old business model, yet getting it's fingers into the new game . But who are the new pretenders you ask? I know your going to come up with with the obvious one which I shall ignore for the moment. Instead I am briefly going to comment on the only player that has actually shown their cards. Amazon has already thrown their first cards down, they have done this by means of S3 and EC2. for those unfamiliar with these services let me explain briefly. S3 is a virtualised storage service, an internet based facility for storing untold amounts of data/files in the sky without physically needing any servers or equipment, you just sign up and use what you want and pay a bill at the end of the month. It also has an API which means you can write software that uses it dynamically, which brings me to their second big card - EC2. EC2 stands for Elastic Compute Cloud, this is the ability to call into being (electronically) a virtual server (a computing node), this can also be achieved via an API, allowing developers to write software that creates and runs on these nodes dynamically. Amazon also has some other cards such as a message queue (a bit like the old Mainframe work/job queues). To date Amazon is the first of the big players vying for this new platform and believe me the things developers are working on around this new paradigm is mind blowing, it's a whole new game that will eclipse what went before it.
But the game has just begun, for this final part of the transition, Microsoft is yet to show their new virtual platform offerings (more coming on this at the end of April, we hope, when Ray Ozzie shows some of Microsofts cards at Mix07). As the incumbent we expect great things from them, but can they move to the new model fast enough, given the drag of their old business model. And then there is Google the big 'G' what do these guys have in store for us, how will they capture the development community, what do they have up their sleeves, what ever it is it has to trump both Amazon (already gaining traction) and Microsoft.
Remember this is a battle for the hearts and minds of the developers and their communities. without these they have nothing. For us (as developers and service integrators) it's a difficult position, because we can see the storm clouds heading our way but do not know which weather front will dominate. We are building a forecast but we cannot possibly know for sure what conditions lie on the other side. Thus this is our platform shift and our platform dilemma. To counter this we build abstract layers on to which we can build solutions in the interim, we can then change the underlying virtual machines and storage etc.. at a later stage. This affords us a little protection at the cost of higher abstraction and possible duplication.
I have also purposely simplified the argument and the players in this post for brevity, in reality there are many other forces at work and varying approaches to the new emerging platform. I am also ignoring the possibility that we may end up with multiple and diverse platforms as I find this unlikely, although not entirely impossible. Also I am very aware that our position here at Folknology is in someways to act as a bridge between the old platform and the new platform, most businesses will have to transition over an extended period of time. That therefore is where we are focusing most of our resources for the foreseeable future here at Folknology. We would like to engage in more conversations with more businesses and more developers to talk about these challenges ahead.
What do you think, who would you back, will there be an emergent platform anyway ?