A big AOL: “me too” to Tim Bray’s post.
Dave Weiner took it badly when Apple murdered his/their baby. Dave and Apple had co-developed this really cool thing AppleScript. Dave had built a sweet tool for developing code for AppleScript. Apple bundling a lame programming environment for AppleScript with the OS. That’s a deadly combination, two products can not live on that real estate together, at least not when one is bundled like that. Dave took it badly. Who can blame him?
When he wrote his famous chinese household essay in 1994 he was still working thru his anger. Plenty of reason to be angry. Still is.
Dave’s essay is facinating. He admits there that developers are subordinate to the platform’s they build on. Stockholm syndrome? Nope.
Platform vendors thrive when they can attract lots of developers to their offering. The platform becomes an essential component of their offering; a supplier they can’t negotiate with. They can only plead their case with the platform vendor and hope for the best. The platform is like real estate and the vendor is like the local zoning board. Except that the local zoning board has both democratic goverance and appeal to the judical system as a fall back on when they misbehave. When the platform vendor cuts off your air supply there is no appeal.
Platform vendors can get lots of developers in two ways. The most durable way is to share big part of the jointly created gains with the developers. Dave’s metaphore, love, is better than “share of jointly created gains”. It is a better metaphore because before you can get to those gains you have to climb over a lot of hurdles, developing a successful product takes years. The commitment to climb over those hurdles demand a tremendous amount of trust.
The other way a platform developer can get a lot of developers is by becoming the dominate standard. Then the platform is so essential that if you want to practice your craft at all you have to go thru them. Microsoft, at least on the desk top, is in that position. If you make a peice of hardware, say a printer, you have to develop drivers for Microsoft. Note that sentence doesn’t say “you have to develop drivers with Microsoft”. Same story on the the software application side of the bridge.
Some people believe these problems can be solved with contracts. That doesn’t scale. For a platform to succeed you need to have tens of thousands of clever developers take a stab at making something neat happen. A few of these will succeed, after years of trying. Insisting that a contract is made prior to each one of those experiments is insane.
There are lots of other solutions to these problems. For example the developers could organize into aggregates – call these guilds or unions – until they have enough power to negotiate. Developers could encourage substitutes – call that open-source. Some developers could become powerful enough to become essential and then negotiate on behalf of their brethren – call that Lotus, Netscape, or Sun. The industry could appeal to the law, say the anti-trust law. Developers could repurpose their skills and go work in some other industry – call it the web, or enterprise systems.
Trust is key. Trust between the platform vendor and the developers. Call it love. Call it an understanding about how joint gains will be shared. When it becomes clear that a platform vendor is too greedy then over time the developers will find a response. Developers aren’t powerless. They create the innovations.
Cooperation requires a regular supply of forgiveness, but some people and some firms abuse that. Walk away.