Originally Posted by Sue Denim
In the early 1990's Apple's stagnant platform sales, lack of fixing OS issues were making most developers want to develop for both platforms/markets at once (diversify or die). QuickDraw GX or PowerTalk didn't add enough value to justify massive redevelopment costs for little returns (because it was completely incompatible with everything else, and was quite buggy originally, and the examples and documentation was a bit anemic). Instead of lowering the barrier to entry, or working with developers on what their customers wanted, Apple blames 3rd party developers because Apple failed to find the market-demand before implementing something that was incompatible with everything else.
Apple then pulled those same technologies out on a whim, screwing all the developers that were naive enough to have trusted Apple and committed to them -- putting many out of business, or at least setting their product back years. Apple blames 3rd party developers for not adopting them, instead of themselves for not following through on promises.
Apple repeated that with OpenDoc, Bedrock, Newton, MacApp, and about 50 other technologies. But wonders why the few companies that survived all that are reluctant to jump on Apple's latest and greatest promises at first blush.
All big software companies do cross platform development. They abstract the core business logic from the UI, and the lowest level (I/O) in a somewhat MVC type design. More Platform UI edge -> Core functionality -> Hardware edge type design. The easier this is to do (the more the platform does to help), the more time/money they have to spend on platform specific features. Microsoft is slow moving and stable, and doesn't break things every release. Apple goes for a fast-moving, fast-changing and high-breakage model, that means with equal resources, developers spend their time fixing or adapting instead of adding features that the market wants. Apple blames 3rd party developers for this.
Apple had to do the same thing (platform abstraction) and solved problems like QuickTime by porting the MacToolbox to Windows and putting QuickTime on top of that. Instead of sharing that with their developers, which many developers would have used and allowed Apple to drive the market, they kept this proprietary.
Actually, MacApp created a Windows version using that technology and got it to release: Steve Jobs killed it a year later, because it helped developers too much and used Carbon.
There was a version of Cocoa (OpenStep) that ran on top Windows. This would allow developers to write on Mac first and run on Windows. Apple wouldn't release it.
Apple started up many different failed efforts to do the same things (Taligent, Dylan, OpenDoc / ODF, Bedrock, MacApp for Windows, not counting OpenStep for Windows, and YellowBox). Apple systematically killed them, usually after a few developers were stupid enough to trust Apple and get on board. Heck look at QuickTime today and Apple's lackluster support for the Windows version or 64 bit versions. Then they wonder why instead of trusting Apple for a base technology platform, large businesses built their own abstractions or used Windows/MFC and built porting layers for the Mac? This is all everyone but Apple's fault.
Then Apple goes and does the same things it is accusing Adobe of doing:
1) Apple first attacked Adobe by making incompatible Fonts (TrueType) just to undermine Adobe's licensing -- then is reluctant to work back to join OpenType effort.
2) Adobe had Acrobat and PDF which supports the full standard. Apple does what? They create Preview App which can't handle many PDF things like forms, scripting, security, and so on. They make an incompatible version and won't let users know when Apple's failing at interpreting the spec.
3) Apple create iPhone which can't work with standard browser plug-ins, mime types, and so on. It's like a standard, where Apple defines what's standard and leaves out the parts that anyone else thinks is important.
4) Apple uses an open ePub (eBook) format, but instead of licensing the standard DRM or making it compatible with others, they make a proprietary implementation that is incompatible with everyone else. (Defeating the purpose of open or standard).
And this never stops. Apple tells everyone one year that 64 Bit Carbon is coming, the next year they pull it out -- costing developers a year of wasted effort that they have to redo. Apple implemented 64 bit in a much harder to port sort of way.
EA just got burned by Apple's iPhone policy, gosh, do you think that'll mean more or less EA games in the future?
Apple is their own worst enemy when it comes to their developer community. Ask any developers that left, why. There's a constant influx of new young wannabe-fanboys, that are rabid enthusiasts for a few years. And there a constant outflux of burned companies that are put out of business by Apple's policies.
Someone said there are two kinds of Mac developers - those who've been screwed by Apple, and those waiting their turn. The irony is that Apple blames everyone else for it, and too much of the community worship "the Steve" and don't realize what Steve's policies are costing them.