Just thought I'd pass along some new information I received from a source fairly high up the Microsoft command chain. As a former employee, I have special connections to executives at Microsoft that others don't have. It's my own private red phone to Moscow, as it were.
So, without much ado, the following changes are being made, effective immediately. Note the use of "we" when speaking of Microsoft, because I am copying verbatim the email I received from...ummm, let's just give him the code name "Beve Stallmer."
1. Browser alternatives to Internet Explorer are now banned. I know browsers like Firefox and Chrome are currently quite popular, but those products duplicate functionality already present in the the base Windows product. So, we are changing Windows to prevent the installation of browser alternatives, as we feel there is no value in others making HTML renderers that compete with ours. How will we enforce this? Read on.
2. Only applications made available through the Microsoft Application Store™ will be allowed to run on Microsoft platforms. I know that Windows has, historically, been a platform upon which applications can be installed from any source by end-users. But, lots of users have been installing applications that contain viruses. 30% of computer users in the Las Vegas area have installed something they downloaded from gambling sites, which is a bit like taking a bath in the sewer. So, in the interest of security, we will vet all applications centrally, and only allow users to install applications that we know something about.
Oh, and by the way, under this new model, we take 30% of the sale price of each application sold. We also reserve the right to exclude applications that we consider to be "platform features." We consider this to be the case with web browsers, but may extend this to include IM clients, mail clients and other tools made by Microsoft. We can't say when we will do this precisely, however, but as it's our store, we have the right to do it whenever we want.
Regarding the rules governing our decision as to which applications are allowed, we are falling back on the US Supreme Court's old standard for obscenity: we know it when we see it. That standard is also likely to change over time. So, though me may approve your application one day, we reserve the right to change our mind whenever we want.
3. Middle-layer runtimes are banned. As middle layers involve runtimes that we can't control, we feel it jeopardizes the stability of applications atop Windows. Therefore, effective immediately, we ban such middle layers from installation on our products. No application that constitutes a middle-layer runtime will be approved for distribution through the Microsoft Application Store™. This includes runtimes such as Java and Flash.
4. No applications written to non-Windows APIs will be allowed. Some will try to get around the "no runtime" restriction by converting their compiled output to a format we do support. This can certainly be done with Java, standalone Flash applications, and frameworks such as Qt which generate native code that call Windows APIs. These applications, however, rarely feel or act like applications that were expressly designed to run on Windows. So, in the interest of helping our users to have a more pleasing experience atop the most popular desktop platform in existence, we will not allow applications that aren't written directly to Windows APIs (.NET excepted, of course). So, no conversion tools, please.
Think we can't detect this? Most conversion tools leave the equivalent of bread crumbs inside the code that can be detected within milliseconds with the right detection software, so believe you me, we CAN detect it. Further, since users are no longer able to install applications from anywhere but the centrally-controlled Microsoft Application store, we have the ability to scan every application thoroughly before we approve it. We will detect this violation of our new licensing rules, so please, don't bother even trying.
5. We're suing Acer. As you can probably guess, Microsoft owns stacks of patents of relevance to desktop operating systems due to the decades we've spent writing products for this space. Given that foundation, we've decided to sue Acer, a company that offers Linux on its line of netbook products alongside Windows. We are doing this as an indirect way to attack use of Linux on netbooks in general, as the mere cost of defending against our lawsuit is sure to strike fear into other vendors who use Linux in netbooks.
Why aren't we suing Linux vendors directly? For political reasons, we can't. It would make open source programmers more angry than they already are at us, as well as create the risk of being counter-sued by large, well-capitalized Linux backers such as IBM.
I hope customers will understand why we are doing this. Though these moves will make boatloads of cash for us, that isn't usually a strong selling point. It is best if we emphasize that we are just doing it for the good of customers who don't want to deal with nasty things like viruses, applications that are ugly, and the confusion of alternative platform features, among other unpleasant things.
Obviously, none of the licensing changes described above are true. Given that it is easier for many in the IT community to hate Microsoft, I thought it wortwhile consider what the world would look like if Microsoft followed the same playbook as Apple. It shouldn't be too hard to see the parallels.
The truly odd thing about the new licensing rules for iPhone OS 4.0 (which really applies across the board, as its not like there is an OS 4.0-specific app store) is that I don't think Apple has to force developers to learn Objective-C and Cocoa. I usually make it my task to learn some new technology every few months, spending an hour every evening reading something that will help me to learn that technology. What is my current focus? Objective-C and Cocoa APIs, and this from someone who has said he "(now) hates Apple" and clearly favors Microsoft development technology. Why am I doing that? Because Apple is the most interesting technology company in IT today, and unless I'm completely misreading things, they are going to have a large pool of users that I want to target with my applications. I started this project LONG before Apple chose to change its licensing terms for the iPhone last Thursday.
I could use technologies like MonoTouch, a framework for converting .NET applications to iPhone applications, but as Jean-Louis Gassée noted in a recent blog post, cross-platform tools "erase "uncommon" features." I spent a lot of time learning Windows-specific platform features because they make me a better Windows developer, and expect to apply equal effort to learning the same about Apple. John Gruber said the Kindle app on the Mac was crap (the term he used was cruder) because it used a cross-platform framework (which to my mind, is more bad design on Amazon's fault rather than a brush by which to paint all cross-platform apps; Firefox is cross platform, and it is now my default web browser). Irrespective of whether cross-platform apps are truly "crap," I want my applications to be the best they can be, and see value in knowing how to write to competitive differentiators on Apple products.
Apple, like many companies (Microsoft included) before them, are overreacting to the threat posed by cross-platform technology. As proof that the threat is overblown, consider Windows. There are STACKS of cross-platform tools that target the Windows platform, whether it is a managed runtime layer like Java or binary abstraction layers like Qt. Has that affected the dominance of the WIN32 runtime environment? No, it hasn't. The competitive differentiation advantages are obvious, and Microsoft doesn't have to beat people into realizing them.
Apple has created an environment where developers are to be herded like sheep. To my mind, that is unnecessary. Just to extend that analogy in a perverse direction, farmer Jobs seems to think he needs to whip his flock in order to get them to walk to green pastures full of nutritious and tasty grass. Methinks they would head that direction on their own.
Phones are a highly competitive space. Apple is creating a rather caustic environment for developers who target Apple platforms. So long as Apple creates compelling products, developers are unlikely to shun them. Developers go where the money is, and I've worked with many Windows developers who spend their work days coding Windows and their evenings working on non-Windows projects. But, in a competitive space, displeasure can lead to measurable difference in product strategies. I'm not sure that is Apple's intention in its battle with fast-growing competitor Android.