I’ve been transfixed by Apple’s announcement yesterday that applications developed using translation or compatibility layers need not apply for inclusion on the App Store. My first thought was that this was an obvious stab at Adobe, and my second thought was that this was an attempt to insure that other companies don’t abstract away the iPhone OS. I am reminded of Microsoft’s reaction to Java, specifically the early hype about Java. We all think of Java as a boring server-side language now, but the initial idea behind Java was that software developers could write applications in Java rather than writing them for Windows, and that those applications would work everywhere, thus defanging Microsoft’s desktop OS monopoly. Microsoft took various steps to prevent that from happening, but they lacked a tool like App Store that would enable them to just ban Java. Apple has that card to play, so they’re playing it. Yesterday, John Gruber posted Why Apple Changed Section 3.3.1, and I think he nails the reasoning behind the move, but he declines to analyze whether this move is really good strategy for Apple. I would argue that it’s not. Apple already has very wide latitude in deciding which apps will be approved for the store. If apps are low quality, they can be declined. And Apple can always issue more guidelines to application developers based on the content of the apps rather than on which tools were used to build them, requiring companies who create libraries to help produce iPhone applications to meet certain standards in terms of look, feel, and functionality in order to be included. It’s not necessary to cut everyone off. Secondly, Gruber points out that most applications built using these kinds of intermediate layers suck. That’s the real reason why Java desktop applications were never incredibly successful. It had little to do with Microsoft’s anti-competitive moves and a lot to do with the fact that Java applications were slow, had their own user interface widgets which were different than those of the native platforms, and just looked ungainly. It wasn’t easy to write great applications in Java. That alone assured that Sun wasn’t going to abstract away Windows or the Mac OS. Thirdly, this announcement is freaking out independent iPhone developers in a big way. Nearly all developers use third party libraries to save time when building applications, and every user of third party libraries now has to ask themselves whether these libraries fall into the new prohibited category. What happens if the iPhone application you’ve based a business on is found to depend on a library that is forbidden with iPhone OS 4? Do you start over or give up? A lot of developers are asking themselves that question today. I have no idea whether there’s anything that will run afoul of the law in these license terms, but they should bother people, and Apple should suffer in the court of public opinion for them. This is a paranoid move and a defensive one. Apple’s mobile products are the most popular in their class right now, and they have the best community of developers of any platform vendor. Given their position of strength, they don’t need to act out of insecurity. And yet this is the second big defensive move they’ve made recently, the first being their offensive patent lawsuit against HTC last month. Apple’s innovation impresses me, but their business practices are chilling. Customers need to let them know that they expect more from the company. Apple has shown in the past that it listens to this kind of feedback. Starting in 2003, Greenpeace put pressure on Apple over its environmental practices. Today Apple is regarded as one of the most environmentally responsible electronics makers in the world. I hold out hope that similar pressure over Apple’s ugly business practices can encourage the company to be more responsible on that front as well.