Microsoft's Eugenio Pace has challenged my assertion in a ZDNet blog posting earlier this week that the demise of PaaS provider Coghead highlights "the lack of any standard for transferring not just data but application logic between such platforms." I had argued such standards were "essential" to avoid developers spurning PaaS providers for fear of getting locked out in circumstances like those of Coghead. But Pace proposed a more pragmatic stance:
"Coghead could have chosen to offer app hosting for .NET and/or Java based apps (or PHP or COBOL for that matter), and attract 10,000's of ISVs that have already bet on those platforms ... So, if Coghead had chosen say .NET (I'm biased of course :-)) as their underlying programming model, barriers of entry would have been much lower for many reasons."
In other words, Coghead could have chosen to be another Heroku or Engine Yard, merely acting as a host for someone else's development platform. Or perhaps it could have combined some resources of its own with an existing development language, like Google AppEngine (which released pricing this week, by the way). Another approach is to offer a licensed version of the platform, as Bungee Labs does, so that customers have the option of choosing to put it on their own servers (or on Amazon, for that matter).
My gripe is that, while I can see the advantage of harnessing developers' existing skills as well as providing an escape route if the PaaS provider folds or otherwise becomes unusable, it still locks the application to a specific platform, and I don't believe that's desirable. Maybe I'm fed up with the constraints I face when writing COBOL applications and I want to move to one of these new declarative platforms that plugs into all the easy extensibility and scalability of the Web? But rather than rewriting all my COBOL code from scratch, I'd like to automatically migrate the business logic to the new platform. Then I can have a try-out and if I don't like it, I'm free to migrate yet again, painlessly and automatically, to some other platform.
Fortunately others agree with this vision. In fact, a Coghead rival called Wolf Frameworks has actually released some code that takes a Coghead application definition file, parses the XML and converts it into the Wolf equivalent, to "restore all entities, screens, business rules, complete application design & even import data." Like me, situational apps expert Jonathan Sapir argues for automated migration standards: "if all the vendors could come up with a single standard XML definition for situational application platforms, we could completely eliminate the lock-in problem!"