Showing posts with label apple. Show all posts
Showing posts with label apple. Show all posts

Tuesday, May 04, 2010

Apple versus DOJ-FTC?

Following up on my post from last week covering Steve Jobs scathing response to Adobe regarding Flash on the iPhone, I wanted to further note that today it was announced that the FTC and the DOJ are exploring the option of opening an anti-trust inquiry into the matter.

Let’s consider what appears (to me at least) to be the most arbitrary control exacted by Apple over its mobile platform namely its ban on cross compilers (…sort of a misnomer at it’s more a ban on non-approved programming languages and technologies).

Without getting overly mired down in techno-speak, the “cross” compilers that have been built for the iPhone (primarily Flash CS5 and MonoTouch) allow developers to author an application using a language and environment that they already have significant expertise in (i.e. Flash/Flex/ActiveScript or C#) and compile the application to run on the iPhone.

With these tools, developers (and development shops) that have significant investment in a particular language and set of technologies can immediately become effective and productive coders on Apple’s mobile platform without having to adopt (i.e. learn and re-tool for) its primary language Objective-C or its Xcode development environment.

In an apparent effort to thwart this potential Apple revised its developer agreement adding the following passage:

“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).”

The key here is the fragment “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” which constitutes a direct order prohibiting applications “written” in any other language other than Objective-C, C, C++ or Javascript.

This is an unusual mandate to say the least.

It’s important to understand that the language used to author an application is not the same as the computer code that constitutes the application after compilation.

Developers choose a software language for a number of personal, technical and/or business reasons but after compilation the application consist of generally either a pile of platform-neutral bits (byte code like Java/.Net compilers produce) or platform specific native bits (platform specific low level operations Objective-C, C or C++ compilers produce).

So long as the compiler is only targeting documented platform features (documented APIs), equivalent compilations should produce roughly equivalent compiled code (i.e. two byte code compilers will produce roughly similar byte code and two native code compilers will produce roughly similar native bits… I realize this is a gross simplification so no need to flame).

So what Apple is demanding here is that developers MUST use a specific source language regardless of the outcome of the application bits after compilation.

Theoretically, a development shop could produce a compiler that compiles Pascal (an traditional programming language) to a compiled application that from the computers perspective is indistinguishable from the very same application written in Objective-C yet the Pascal-based application would NOT be allowed on the iPhone since its source language was not Objectvie-C, C, C++ or Javascript.

Anti-trust regulators now need to determine whether this type of mandate (along with other rules set out by Apple) constitutes an anti-competitive business practice.

My sense is that Apple is ABSOLUTELY and without question acting in an anti-competitive manner regarding its mobile platform and further that the new legal language (above cited) was specifically included in the licensing agreement for anti-competitive purposes.

Although they may make a number of relevant arguments for their action, Apple is clearly aware of both the MonoTouch and Flash CS5 initiatives and is likely concerned about the potential to quickly lose control of the development community that writes for their devices.

Even if the applications were delivered through the AppStore, multiple compilers written for more favored, more widely adopted languages and technologies (Flash/Flex, C#, Java etc.) could easily see the current development community being fractured into an organization of multiple third-party technology providers and developers using a host of software languages.

Apple apparently wants to prevent this outcome regardless of the validity of the new technologies being created for their platform.

In any event, this will be a very interesting case to follow as it likely shapes up in the weeks to come.

DISCLOSURE: I am now short of AAPL.

Thursday, April 29, 2010

Thoughts on Apple versus Adobe

…This post is a bit of a departure from my typical macro econ theme but what the heck.

Today, Steve Jobs answered the recent criticisms over the lack of support for Adobe’s Flash technology on Apple’s mobile platform with a sharp and truly cutting response.

Looking at today’s trend for AAPL versus ADBE it appears that the market is siding with Jobs.

From a one point of view (particularly that of a customer), the case Jobs makes is pretty compelling particularly in light of Apple’s present position in the mobile marketplace.

Apple currently holds a premium spot for mobile platforms with its compelling iPhone, iIPad and iPod products and tightly controlling the application architecture clearly allows them, as Jobs argued, to maintain the highest level of quality (power usage) and consistency (application features) across all applications written for their platform.

Jobs argues that the open standards supported by their mobile platform (HTML5, CSS, Javascript and H.264) are sufficient for enabling access to the entirety of the web (ostensibly implying the ongoing evolution of the web as well) including rich content (video, audio) and rich applications (web 2.0 apps).

Further, Jobs details some specific issues that are common when a platform vendor allows support for unfettered application technologies such as slow pass-through of underlying system features through the application technology and stability.

In a sense, Jobs is saying that they have created the platform for the future, it supports fundamental open standards and they have learned from past experience (with Adobe and other third parties) and thus are not about allow unfettered technologies to inhabit their platform.

From a developers point of view though, Jobs argument raises some series issues.

First, Jobs is specifically arguing that Flash is an old, proprietary (closed) and unstable (crashy) technology and further goes on to accuse Adobe of being an inattentive development shop.

Aside from being fighting words (particularly scathing coming from the head of the outfit currently associated with the highest quality technology products), Jobs accusations reveal his intentions for emerging web technologies.

Jobs is essentially indicating that if Apple doesn’t deem a technology to be “open” and compatible with their platform at a fundamental level at which Apple would specifically implement the technology on their platform (i.e. the way they support HTML5, CSS, Javascript, and H.264) themselves, then it likely will not be a technology that they will support.

This has pretty significant consequences for emerging technologies particularly those related to Rich Internet Applications like Flash Flex and Microsoft Silverlight.

Although Apples mobile platform supports HTML5, CSS and Javascript those are only some technologies suitable for development of the next generation of web applications thus, the reason that both Flash Flex and Silverlight are currently being widely adopted by the market.

For the iPhone, IPad and IPod if you want a richer experience for your user that can currently be delivered though HTML based technologies your only option is writing a “native” Cocoa application likely using Objective-C… a seriously antiquated development technology (like stepping back to the stone age of mid-1990s development languages).

Further, if a developer wants to support their application on both a typical OS and Apple mobile platform they now have to either choose to write the application using only HTML based technologies to, more or less, cover all platforms or bring in a Objective-C Cocoa developers to write a specific application for their Apple mobile offering.

For application developers there are some serious limitations and costs associated to both avenues.

Finally, Jobs has in the past stated that Java will never be implemented for the iPhone (although there are backdoors that allow for Java on the iPhone) even though Java is as open and stable a technology as you can get.

This appears to conflict with Jobs Flash argument and really yields the sense that Jobs simply wants to have complete control over the applications that run on his mobile platform.