Inside Apple's insane developer agreement

Apple's recently released version of its iPhone Developer Program License agreement has caused quite a controversy. Justin James spoke with Appcelerator's Scott Schwarzhoff about what this really means for developers.

Apple recently released a new version of its iPhone Developer Program License agreement, and it has caused quite a controversy.

This is the first time that anyone has ever raised a massive stink about a EULA like folks are putting up about this one, and for good reason. As John Gruber reports, this is the new language in the agreement that has everyone so riled up:

3.3.1 - Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

That's right folks -- Apple is now dictating what language you may write your apps in. Did you use MonoTouch to make your app? Sorry, your app is banned. Oh, you mean to say that you invested months of your time or perhaps invested money making that app? Too bad, have a nice day. But what does this really mean for developers?

I spoke to Scott Schwarzhoff, VP of marketing for Appcelerator to find out. Appcelerator's flagship Titanium product could fall on either side of the line depending on who you ask. Note: Before I go any further, there are two things to keep in mind: (1) I am not a lawyer, and (2) Appcelerator is under a very strict agreement regarding what its employees can and cannot discuss; Scott was very clear about this, and throughout the discussion, we stuck to how they view the situation in general terms.

Appcelerator's belief is that there are four contexts to look at the iPhone Developer Program License agreement:

What does it say? See above. Appcelerator, for example, uses Webkit JavaScript, compiles to Objective C and an XCODE project (Adobe's packager bypasses XCODE completely), and only Objective C links to public, documented APIs with Titanium applications.

What is the intent? Appcelerator's belief is that the agreement is intended to keep Adobe out of the Apple sphere. Adobe announced it is giving up in this market, so it worked. Appcelerator also believes that Apple wants to ensure that applications on the Apple mobile platform look different from other platforms and make use of the unique features of the platform, and "lowest common denominator applications" water down the value of the Apple products. The overall intention is for Apple to control the value chain and dictate what the Apple experience is and not leave it to third parties.

What Apple will try to enforce? Appcelerator thinks that apps that use native widgets and functionality should be accepted, but that platforms that bypass XCODE may be in trouble.

What will the law allow to be enforced? Only time will tell.

Within this set of interpretation, Appcelerator believes that Titanium should be fine, because the applications are written in JavaScript (which is run by WebKit), and Titanium developers have full access to the native APIs and the Titanium system leverages the native APIs. Another positive sign is that Appcelerator has had more than 50 Titanium applications approved in the App Store this month; PhoneGap, which is similar to Titanium, was also approved. Scott summed the situation up with the phrase "cautiously optimistic." In the spirit of competition and innovation, I hope that their optimism is warranted.

So we have this absolutely ridiculous clause, and you know some folks are going to say, "this is to keep the iPhone from crashing, it helps ensure a quality experience." And sure, they can point to Windows and say, "look at how many crashes on Windows are caused by Flash or third-party utilities." They will have a point. But the fact remains, it isn't the language that causes stability problems, it is poor coding. In fact, one could argue that the many of the allowed languages (particularly C and C++) are substantially more prone to have system crashing apps written in them than banned systems such as Flash and MonoTouch.

If you do some searching, you will find that the EFF has a copy of the iPhone developer agreement (unfortunately, this is the one from January 2010, not the most recent one). I read it, and I can tell you that I will never sign it. Once I read it, I realized that I cannot sign it. Why? Because it is ridiculous! For example, back to the quoted 3.3.1 where it says "Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs." Isn't this something that Microsoft got sued over? Or 3.3.10, which says, "Applications must not disable, override or otherwise interfere with any Apple implemented system alerts, warnings, display panels, consent panels and the like...". which rules out the chance of actually customizing the phone to my tastes.

Wow.

Article 4 contains this gem:

Apple may change the Program Requirements or the terms of this Agreement at any time. New or modified Program Requirements will not retroactively apply to Applications already in distribution. In order to continue using the Apple Software or any services, You must accept and agree to the new Program Requirements and/or new terms of this Agreement. If You do not agree to new Program Requirements or new terms, Your use of the Apple Software and any services will be suspended or terminated by Apple.

In other words, they can change the rules any time they want, and if you don't like it, you are out.

But to me, this is the worst insult in the bunch (10.4):

You may not issue any press releases or make any other public statements regarding this Agreement, its terms and conditions, or the relationship of the parties without Apple's express prior written approval, which may be withheld at Apple's discretion.

You read that right. This is the Fight Club of EULAs. "The 10.4th rule of iPhone Club is: You may not talk about iPhone Club." And the magic revocation clause (Article 8) allows Apple to pull the rug out if you violate this.

And if you think you've been hurt by Apple, don't worry. Article 14 covers liability. Apple's maximum liability is $50.

It has been a very, very long time since I used this space as a bully pulpit for personal politics, and for good reason. But I am making a special exception here because I want to ensure that anyone considering iPhone development walks into it with both eyes open. A few months ago, I really wanted to look at iPhone development. I can't do it. I can't sign that agreement. Look, I'm a member of the Microsoft ecosystem, by and large, but I felt like Microsoft dropped the ball on mobile (it remains to be seen if Phone 7 can save them), and I think it's down to Android and iPhone. Long-time readers know that I am no Google supporter from the user perspective (I really hate Google's privacy situation), but as a developer, Google is doing it right, all the way. Apple is nuts to have an agreement like this, and you'd have to be nuts to sign it. There are plenty of ways to make money without signing something like this agreement.

J.Ja

Disclosure of Justin's industry affiliations: Justin James has a contract with Spiceworks to write product buying guides; he has a contract with OpenAmplify, which is owned by Hapax, to write a series of blogs, tutorials, and articles; and he has a contract with OutSystems to write articles, sample code, etc.

Full Bio

Justin, you should have tried Blackberry years ago. Now, they are even encouraging developers to use any tools at hand, especially those provided in Photoshop- ADOBE!! But it seems, that there is colors for every taste, hah?! :-)

Ironic that a company that has as one of its founders a man who sold illegal "blue boxes" to let rich people make free long distance calls in the 60's wants to protect itself from people whom it perceives may want to do the equivalent now. It's that little extra touch of greed that has made Apple the Avis of the computer business.

is that Apple is restricting the language you can use, not just by the compiler and runtime that's available, but in a license. I can't remember the last time I've seen a platform company do that. It'd be like Microsoft telling all its developers, "You can't write anything for Windows without it being originally written in C# or some other .Net language sanctioned by Microsoft. You must only use the FCLs, no private libraries, etc."
I can understand the parts of the license that disallow private libraries, linking to standard libraries and such, but why restrict the source language? I think I know the reason why. They don't want Flash (ActionScript) on the iPhone. What's also obvious is that Apple doesn't care that a language is just a representation of an underlying software architecture, which processes bits of information. For example, other people have managed to write alternative languages that run on the JVM, producing compatible bytecode. The same goes for .Net.
In its effort to kill off Flash it also kills off other languages/platforms. For example, I read about a guy who a couple years ago ported Squeak to the iPhone, and had written about 20 apps. for it on that platform. Now, you can't put Squeak on the iPhone, because it's source language is Smalltalk (It generates its own VM by automatically translating its source code to C and then compiling it--but even this does not meet the license's criteria). Apple doesn't need to restrict the source language to meet its ostensible look and feel/consistency objectives, just the object code that's produced.

Apple had problems grabbing market share in the 80's? They used this very restrictive development practices discouraging people from developing for their system.
Before everyone flames me... This is just what I heard, I don't know if this is a fact, hence I ask the question.

Unlike Microsoft, Apple has always had the ability to forgo backwards compatibility - or any compatibility at all for that matter - and consumers just buy new hardware and software - WILLINGLY!. For reasons beyond my comprehension "Mac" lovers have continued to do this and Apple has prospered.
If you don't like where Apple is going well then tough nuts. This has always been their strategy and I don't know why people are suddenly shocked an appalled now. Did they really think Apple was looking out for them against the nasty Microsoft?
In reality Apple is and always has been more "evil" to developers than Microsoft ever will be because they continue to break backwards compatibility. Breaking compatibility on a known platform like Adobe is just bad juju and I think karma will definitely be back to bite Apple on this one.
As for Adobe - well as a consumer I have always seen them as over priced however as a developer I have embraced the fact that they have a platform I only have to write code for once. This has become increasingly more crucial as the number of Apple products in the work place have risen.

Who wants an iPhone, anyway? In my day when we wanted to talk to someone, we went over to there house and we said, hey Fred, how are you? And making dinner reservations? Momma said be home by 6 or you're eating cold food, alone at the kitchen table. We didn't need GPS, we stopped and said, hey fella, where's Main and 3rd and by golly, that fella would tell you how to get there. you kids and your phones...

I was in the process of starting my companies first project for an enterprise application for the iPhone and iPad. In preparation, my developers and I began refreshing our C skills (we've been .Net and Java for several years now), requested quotes on stylish new Mac laptops for our development machines, and ordered a handfull of iPads for testing. I was planning to enroll in the iPhone developer program this week.
This article has prompted me to put this project on hold while we review the agreement in more detail, and I've cancelled all orders for Apple hardware.
In the meantime, I'm renewing our MSDN subscriptions, and I'll be looking more closely at Android.

You can't teach an old dog new tricks. Here I thought with huge successes with the iPod and iPhone that Big Brother Steve FINALLY caught on to rival Gates & Co.'s marketing strategies but ALAS no..not a chance. Remember folks 100% of NOTHING..still is NOTHING !

But, enjoy today because tomorrow may be worse.
This agreement is nothing new for Steve Jobs and his way of doing business. Unfortunately, the only guy able to pee on Jobs at any time - Bill Gates - had retired.
The way Jobs understands to deal with Adobe - actually the company which put Apple on the desks of media companies -, is absolutely disgusting.
As another reader commented, I am proud not to own a single piece of Apple's products. I can really live without them. Microsoft gives me enough monopolistic headaches. Why should I choose another one?
Are Apple IT products? Pshaw! They are only expensive toys.
As for C and family, I like Java and Python too much for even thinking to go back to that Jurasic ultra-patched so-prone-to-errors language. Android SDK is Java. Even Symbian allows development in Java. And, one of Java?s advantages is that you don't need to maintain a specialized development team for a single platform. Why should a development company specialize on Apple's iPhone? Just to be one day in the same position as Adobe? Or, why should be a development company paying a team to develop for Apple iPhone only?
Steve Jobs knows how to do business in an isolated system ? which doesn?t exist. He is highly disturbed by the competition. He puts some ?bling? on his products which allows him to gain some market share and leverage, and then he screws everybody. I am looking forward for his second layoff from Apple.

People are so desperate to make money with IPhone & Ipad that they are selling their souls.
Even a fool can see this is EVIL !
You have NO RIGHTS, just the work, taxes and risk !
We, developers, are all throwing away decades of Open Source development, our expensive training and studies, to PLAY Apple's Game. On their field, on their rules, with their referee.
Like addicted gamblers, we - and you - are trapped, trying another bet in losing game.

I've been saying this for a while, even before the recent changes. The only thing that makes the iPhone a good market is the user base and the nice 70/30 cut, but even that's nullified by the staggering competition.
Android development is looking a lot better. They don't have the user base that the iPhone has but they do have the same 70/30 cut.

killer app that is virtually cross platform, that is has a little tweak to make it work on all or most of the others, but is not made to work with iPhone because they don't meet the Apple terms, then watch the phone app addicts drop iPhone like a burnt potato becasue it won't run the latest killer app.

You really can't compare with the Microsoft monopolization. That was because MS leveraged the internal API to create unfair advantage for their own products, especially MSOffice. Apple have *verY* few apps of their own. But, if they try to do the same, they should be legally liable in the same way.
As far as I can tell, this agreement does not really cause a problem for developers, but for those who supply developers.
Some of the points you make seem almost crazy. Why should they not prohibit private APIs? So long as they don't use them for profit, this stabilises the platform for users. Should they really allow direct access to underlying C libraries which might get updated/replaced in a later OS release? Why should they not stop you from bypassing important messages, which might include the fact that a user is about to get billed.
Sorry, most of this agreement comes across to me as protecting the iPhone user at the cost of those who supply to developers, and at the cost of good practice on the part of the developer. Can't see anything wrong in that myself.

Remember when Microsoft developed Internet Explorer and gave it away for free in order to destroy Netscape?
They were able to do this by leveraging their Windows monopoly.
Today Google is leveraging their Internet Search monopoly in an attempt to destroy all other mobile platforms especially the iPhone. Even worse, they blatantly copied the iPhone OS and gave it away for free, that's free. It's a play right out of Bill Gate's playbook.
I can almost guarantee you that if Andriod doesn't gain enough traction, Google will give phones away for free.

This was "my day" too. As a department head, however, don't you think you need to re-examine this nostalgia and work within the framework of modern technology in a more positive and workable way? My analogy as a social argument fits here, that of the French Marginot line just as the Germans were headed through the low countries of Holland and Belgium. Eg> Nostalgia, while a treasured memory, does not win victories against modern technologies.

I know what you mean. We had planned to develop a second iPhone app but we are developing it for the Android instead. Although the new changes don't really affect us, it's a matter of principle. I don't trust Apple (never did to be honest).
Some other developers I know think it's fine because apparently they aren't enforcing the agreement to it's fullest extent but I try to explain that either way it doesn't matter. It's really dangerous to start investing money in a business plan with that kind of EULA hanging over your head.
Current EULA aside, the type of things Apple is doing is making them untrustworthy to do business with. How can you trust them if they are known to do stuff like this? The only way you can really be safe is to code the whole thing in raw Objective-C, which isn't an appealing option.

They make great software like Photoshop but FLASH sucks. This year I decided to ban the installation of ANY Browser plugins in my IT dept. I'm tired of supporting FLASH. So far its worked out great for out Dept!

Apple may be the leader today, but what about tomorrow? With practices like this, the next killer app won't be developed for the iPhone.
Microsoft has known for a long time that a success of a platform really depends on developers making programs for it that people want to use. This is why, historically, Microsoft has been a lot friendlier towards developers.

deadly, i think that's kind of what PhoneGap is intended to do.
it's interesting that they say there can't be an intermediary, but that's kind of exactly what phonegap does... it translates code in between so it's easier to be cross platform. they've specifically allowed it though, so i guess the real question is are they specifically creating this new language to ban certain other products that are out there that they don't like? If so, which?

As far as I can tell, this agreement does not really cause a problem for developers, but for those who supply developers.
How do you figure? Please elaborate.
Some of the points you make seem almost crazy.
Maybe you only think so because you haven't through it all through very much, and thus don't understand Justin James' points. See below:
Why should they not prohibit private APIs? So long as they don't use them for profit, this stabilises the platform for users.
I can understand the rationale behind prohibiting private APIs as you presented it, but in the context of the rest of what the developer agreement says I don't think that's Apple's reasoning. Elsewhere in this discussion, the idea that "look and feel", the "boutique" cachet, and other factors unrelated to stability strike me as far more important reasons for Apple's decisions in this regard.
Then, of course, there's the simple fact that it's difficult to argue for the ethics of prohibiting "private APIs" with a straight face, considering the iPhone is supposedly a retail product and not a rental.
Why should they not stop you from bypassing important messages, which might include the fact that a user is about to get billed.
See elsewhere in this discussion again, this time where people talk about wanting to customize the appearance and behavior of the operating environment. If you don't want software that hides billing messages, don't buy software that hides billing messages.
If Apple doesn't want software to be able to hide billing messages, it should write code that doesn't allow software to hide billing messages. This really looks like an attempt to license away security vulnerabilities, rather than fix them -- which fits perfectly with Apple's typical behavioral patterns.
Sorry, most of this agreement comes across to me as protecting the iPhone user
It looks to me like Apple does just enough to "protect" the user that it can make the claim that it's for the user's protection without looking like a bald-faced liar.

First you say.....
Remember when Microsoft developed Internet Explorer and gave it away for free in order to destroy Netscape?
They were able to do this by leveraging their Windows monopoly.
ok, so we have a garbage product provided free with your operating system, the one you HAVE to have. And then you compared that to a search engine monopoly. One definite difference there, the search engine works well. Another, you don't have to use it at all, ever, even on android phones. Having owned multiple Android phones and used iPhones I have to point out that they are not the same. Also, it's been a long time coming. They didn't just look up and say let's copy the iPhone. The open handset alliance has been around for a while. If you catch the open part of that name it means open source. free.
and finally, if google wanted to give away phones they would have started with the Nexus one. Android has enough traction already. there aren't as many apps or users on it, no. The quality of the apps, the functionality of the phone, and the just plain ease of use is all there, with every major cell phone provider.
If you want to slam Google for providing quality products and being associated with quality products I can understand your reasoning to some extent. Apple provides glitzy mediocre outofdate crap so you have to attack what google does differently.

. . . the Android software is open source, while IE was closed source proprietary software that was used to ensure people couldn't use anything other than MS Windows if they wanted to keep using IE. That sounds more like an Apple move than a Google move.
Google is giving away free stuff and letting people play with it, and enticing them to use its services by making them nice and handy. Apple is making people pay through the nose to get anything, acting like a tremendous bully smacking people around, and trying to use the law to prevent people from using anything else or from using its hardware and software in any way it doesn't like even after it has "sold" the hardware and software to them.
Actually, come to think of it, neither is much like Microsoft. Microsoft tricked people into selling their souls. Apple charges people to give their souls away. Google gives away freebies and lets people drive around in its sweet ride, lets them keep their souls, and posts videos of them on the Internet (sometimes when they don't want videos of themselves on the Internet).
I don't think the analogy works either way.

I can and do program in Objective C, C++, Perl, Java, Pascal, and even some COBOL as well as a number of other languages but that isn't the point and I won't bother to fuel your obvious troll posts any further.
The point is that Apple in general has never kept any kind of backwards compatibility and has never had compatibility on it's list of things it is looking to offer - and why would they?
What they have offered forever is an environment that is pretty much very unstable for third party developers in the sense that you don't know how long your app will work before they decide to pull the rug out from under you or they decide to throw out their current platform for a new one. All this while they had a relatively small market share vs Microsoft. Now they actually have a decent market share of the smart phone market - only time will tell what they decide to do with it.

Objective C (I think) is only supported by the GNU C compiler (The GNU C compiler is like a Swiss army knife, supporting many languages). It's the compiler that Apple uses on the Mac. GNU C also exists for other platforms like Linux. Of course the question arises, "How much open source/cross-platform library support is there for it?" I honestly don't know. I've heard of OpenStep, which is a cross-platform, open source version of NeXTStep, and I think it uses Objective C. That's as much as I know.
I think what jhoward was getting at was he wanted a platform that he could write an app. for once and have it run on multiple phones. Flash offers that ability. It would be a challenge with Obj-C I think, but I could be wrong.

Flash was Macromedia, originally. And, from the beginning, I wasn't so happy with it. But, since we haven't had any problems with it, we continue to support it.
Adobe Acrobat Reader is, indeed, a bloated product. We consider Adobe products to be over-inflated and over-priced so, we replaced the PDF creator and viewer with PDF-xChange - which is faster, slimmer and cheaper.
Anyway, not the Reader is the problem with Apple's anger, but Flash. Flash apps are guilty of being portable on any mobile device supporting Flash. So, a Flash app may be run on iPhone or on a competitor. And, IMO, this is not in the Steve Jobs's market vision. He dreams of a market with a single player. Proves are numerous and I would only mention the case of Mac clones. Why should he allow a platform independent technology - like Flash, Java or any other - to run on his beloved iPhone, eh? How else can he milk the iPhone's users for their last penny using an open technology?
Coming back to Adobe, it looks like they took the same business training as Steve Jobs. They also tend to close the users in their products and over-charge them. I couldn't care less about this divorce. I am just mesmerized that Apple kicked its brother's @ss. Plus, the alert signals regarding this company?s behavior which seems unable to cut with the past similar actions. Fortunately, I can live well without any of their products.

This may be old news, but I think Adobe ruined Acrobat Reader. It was originally a decent product, but over time they turned it into a lumbering beast. It had many upgrades for security, the browser plug-in crashed a lot (very annoying. I don't remember it doing this when it first came out), it was slow, and it took up a lot of memory. I ended up going with FoxIt's Acrobat reader and was much happier.

I've only made an income with closed source programs that I sell for profit.
Your lack of imagination and business acumen is not my problem.
Keeping the source closed has never been a requirement of any development work I've ever done for profit.

This is why I have an Android smartphone, which covers both my cellphone and digital music player needs. The major reason I haven't started any serious effort toward writing code for it myself is the fact it's all Java based.
That's the one and only thing for which I kinda envy the iPhone: the ability to develop in languages like C and Objective C.

70/30 (70 to the developer) is actually a pretty good rate compared to what else is out there.
I can only speak in terms of game distribution channels but this is what the other options are:
Steam (PC game distribution): 50/50
XBOX Live Arcade: If I recall correctly,this one is quite scandalous. Microsoft takes 100% of the revenue of the first 1200 copies and then it's a 60/40 (60 going to the developers)
I don't know what Wii and PS3 give but I am sure they are not 70/30.
Web portals usually 40-60% to developers.

Flash is the lowest common demoninator. It's like Socialism. It will never produce the highest quality apps. Period. And don't get me started with JAVA (yuck!).
While I wouldn't choose socialism as an analogy for Flash, I otherwise agree with this statement of yours. Both Java and Flash are pretty craptastic. As bad as Flash is, it is amazingly better at applets than Java, despite the fact that Java's initial rise to stardom was largely because of its suitability for applet-centric development. ActionScript (the language behind Flash) has a more developer-friendly syntax than Java, too -- because, of course, it's just a tarted-up ECMAScript.
By contrast, C is pretty much the best language for what it does best, and Objective C is by design pretty much what C++ should have been. By pursuing those lines of language choice for native platform development languages, Apple has demonstrated its technical acumen as a software developer and vendor organization.
That's pretty much where the good news ends, though.
And what's wrong with making money! Our company makes a few widgets and we agressively try to squash our competition. It's about profit!!!
That's called "anticompetitive" or "monopolistic" behavior. Rather than try "squashing" the competition, just try to do a good enough job that you'll keep making money regardless of whether the "competition" also succeeds or not. Success isn't about making other people fail, after all, unless you just want to be a successful bully.
That doesn't mean that a competitor failing makes you a bully. It does, however, mean that if your goal is to make the other guy fail just because you think you have to be on top and put everyone else down, then you are a bully. This is why people hate corporations like Microsoft and Apple -- because they're basically bullies who crush people even when those people are unlikely to negatively affect their revenue in the long run.
I'm not an Apple troll.
Several of your comments in this discussion have been pretty surprisingly trollish for someone who is not a troll. In fact, I think this is the first from you I've seen here that hasn't appeared very trollish.
I lost all respect for Google with Android. Where is the innovation. They are just a bunch of copycats!
On the other hand, Google gives us things we desperately need:
1. a more secure, open platform
2. a developer-friendly application store
3. physical keyboards (because at least some of us like them)
4. more than one mobile phone service carrier
5. the ability to interface with other platforms more easily and flexibly
6. a managing entity for the OS that doesn't rule its users with tyrannical glee
Sometimes, it's not about being first-to-market with a device. Sometimes it's all about providing a similar service, but with actual service as part of the package.
All of that is why my smartphone is an Android smartphone.
I have my beefs with Google, too. Those complaints about Google don't make Android a worse choice for me than the iPhone, though -- not by a long shot.

The languages we program in are chosen by businesses. They were not chosen based on quality, but available libraries, re-usability, and an IDE that makes cookie cutting possible. Successive years of that sort of mindset, have turned out a pile of cheap glorified clerks, who could n't program in C if their life depended on it.
Aside from that if a higher level, or domain specific language will do the job, then it should be chosen.
As for quality you have got to be taking the p1ss, we live in the land of good enough, and then throw more hardware at it....
You are making an arse of your own argument, if it's about business then C is far from a good choice. Quicker, cheaper, buggy and charge for fixing it later is the corporate mantra.

Flash is the lowest common demoninator. It's like Socialism. It will never produce the highest quality apps. Period. And don't get me started with JAVA (yuck!).
And what's wrong with making money! Our company makes a few widgets and we agressively try to squash our competition. It's about profit!!!
BTW, I'm not an Apple troll. In our IT dept. we are 100% Microsoft and I love their latest servers and clients. But at least Apple INNOVATES and I support that. I lost all respect for Google with Android. Where is the innovation. They are just a bunch of copycats!
No offense meant, I'm just debating here...

Yeah, Apple has had a mixed history with games. Back in the Apple II days it used to be a hot gaming platform, even though the hardware support for graphics and sound sucked. There were some games for the original Mac, but I think they were more the "adventure game" variety, something it could handle. I remember there being some decent games for the Mac II, which supported color. After that, yeah it fell off. I remember when Jobs introduced the iMac he said, "Somehow we lost track of games." He said Apple developed a relationship with game developers and they included better HW support for gaming. He invited John Carmack on to demonstrate some stuff. The big demo was Halo by Bungee. At the time it was only being developed for the Mac. Shortly after that Microsoft bought Bungee, and they killed off the Mac version, as I recall. Instead it was going to be an exclusive for the XBox.
Since then I saw that some games were being put out for both Windows and the Mac, but it seems now that's less and less the case. Macs still have hardware support in them for games. I don't know that field well, so I don't know what's killing it. I know that the economics of game development are pretty rough.

While FLASH has it's drawbacks - bloat etc. similar to java - I can write code once and not have to worry about whether or not it will work on X platform. Not that I particularly like Adobe but they also don't manufacture the phones or computers their software runs on so they at least have an interest in compatibility.
I personally think this is a loss for the iPhone because there are a ton of FLASH game developers out there and gaming has a way of making a product very popular - more so than a media player like iTunes.
I would venture to say games are one of the top 3 reasons why Mac hasn't been able to grab that huge market share in the PC world right next to office productivity and price point.