The Palm Pre 2 Developer Phone Setting our own Direction; Ben and I to move on from Palm
Oct 21

“What is just as important is what isn’t in the system”; Apple, Java, and the Mac App Store

Apple, JavaScript, Tech Add comments

opticaldrive

As always, I am an incredibly torn individual after yet another Stevenote and recent Apple news. Apple is incredibly proud not just about what they manage to put into their products, but what they manage to keep out of them. Steve mentioned this again as he discussed the innards of the new Macbook Air products. The other example that comes to mind is their remote, which is laughable when placed next to TV remotes.

We have been opining for a long time about the obvious merge of iOS and OS X. For awhile people would argue about which side would win out, where “win out” means having the most DNA in the future. With Lion, we got just a glimpse on the next round of evolution. The first iOS DNA to get in is that of the app store (pre-Lion even), some look and feel (did you see the toolbar icons on the top of the Mac App Store app?), and the developer features around auto-save, resume where you left off, etc. Having OSX and iOS merge makes total sense to me. As much as I like the Mac, it is a workstation operating system. It was only when I gave my Mum an iPad that I felt like she felt safe and not scared of her computing environment. When I put on a certain consumer hat, I am so looking forward to the Mac App Store. Finally an install and discovery process that makes sense for my Mum. The Mac has arguably the easiest system, but even with DMG’s the process goes wrong every time:

“Wait, you have to double click on the DMG which will mount a drive. No…. don’t launch the app from within there you need to drag it out. No…. don’t drag it to the desktop, you have to put it in the Applications folder”

You can certainly argue that the controlled experience that we are about to get on the Mac will be good for consumers in a large number of ways. Apple is getting ~20% market share at this point, so they may be able to head the virus war at the pass by controlling the apps. And we can see what they have in mind with this control by looking at the review guidelines for the store Here are some of the functional guidelines:

  • Apps that crash, exhibit bugs or do not perform as advertised by the developer will be rejected, as will be apps that are “beta”, “demo”, “trial”, or “test” versions. Apps that use non-public APIs or include undocumented or hidden features inconsistent with the description of the app will be rejected.
  • Apps that duplicate apps already in the App Store may be rejected, particularly if there are many of them. Apps that are not very useful or do not provide any lasting entertainment value may be rejected. Apps that are primarily marketing materials or advertisements will be rejected. Apps that are intended to provide trick or fake functionality that are not clearly marked as such will be rejected.
  • Apps that encourage excessive consumption of alcohol or illegal substances, or encourage minors to consume alcohol or smoke cigarettes, will be rejected. Apps that provide incorrect diagnostic or other inaccurate device data will be rejected. Developers ’spamming’ the App Store with many versions of similar apps will be removed from the Mac Developer Program.
  • Apps must be packaged and submitted using Apple’s packaging technologies included in Xcode – no third party installers allowed. Apps must be self-contained, single application installation bundles, and cannot install code or resources in shared locations. Apps that download or install additional code or resources to add functionality or change their primary purpose will be rejected.
  • Apps that download other standalone apps will be rejected. Apps that install kexts (kernel extensions) will be rejected. Apps that require license keys or implement their own copy protection will be rejected. Apps that present a license screen at launch will be rejected. Apps may not use update mechanisms outside of the App Store.
  • Apps must contain all language support in a single app bundle (single binary multiple language). Apps that spawn processes that continue to run after a user has quit the app without user consent will be rejected. Apps that use deprecated or optionally installed technologies (e.g., Java, [PowerPC code requiring] Rosetta) will be rejected.
  • Apps that do not run on the currently shipping OS will be rejected. Apps that are set to auto-launch or to have other code automatically run at startup or login without user consent will be rejected. Apps that request escalation to root privileges or use setuid attributes will be rejected.
  • Apps that add their icons to the Dock or leave short cuts on the user desktop will be rejected. Apps that do not use the appropriate Mac OS X APIs for modifying user data stored by other apps (e.g bookmarks, Address Book or Calendar entries) will be rejected. Apps that do not comply with the Mac OS X File System documentation will be rejected.

Wow, if we are both writing an application that does “the same thing” right now and I get it in the store before you, there is a chance yours could be blocked? I know that they are probably putting this in place to stop a million fart apps, but wow!

No way to handle beta apps and the like? Most of the apps that I run are actually beta (Chrome dev channel, Evernote beta, etc). At this point I would expect you to say “No one is forcing you to use the Mac App Store! You can buy and install apps just as you do now. Nothing has been taken away.” Absolutely, but it isn’t a huge leap to a see a future where this isn’t the case, and even in the meantime, it will be a pain to manage some apps via the store, and some outside of that process. It won’t be a great experience.

There is another way that the policies poke me. If we think back to when the iPhone came out with app support, they were actually more open than many of the alternatives. It was hell getting your apps provisioned on many of the platforms and the carriers had control. There is also a feeling of “hey, this is my phone, I really need someone testing things at my back as I can’t have my phone compromised in any way.” But on the desktop, even though these “devices” are all merging, it feels different. Feeling like the control is being taken from me feels weird. Do you feel that too?

alexjvm

Then we have Java. I actually wanted Sun to take over the OSX version of Java awhile ago, so it makes sense that the Apple team has deprecated its support. The Mac team was tiny and thus it wasn’t able to get much love, even though the engineers (we met them) were awesome. Now Oracle can hopefully step up and give us something great. This isn’t a great solution if you ship Swing apps (as my Mum won’t have Java installed, who knows if they will get anything that looks native etc), but fine if you are a Java developer who wants to develop on a Mac. I do wonder if any developers will reconsider Linux or even Windows as an alternative, and I am also thinking about what the Enterprise will think of this. For Apple, they have got rid of a support burden which didn’t bring them any great apps that they care about, and there is less of an attack surface area. Again, taking things out is good for Apple.

The much bigger news for Java fans is the fact that Java developers won’t be able to put their wares into the Mac App Store.

This may bolster the Web. Will the destiny pan out where it can be the unifying cross platform solution? For now, you can hopefully even write Cocoa apps using JavaScript, and of course the full Web stack is available. But what about the flip side?

beltznersafari

I know. Those Mozilla hippies over-reacting again right. This will never happen. Apple loves the Web. How much do they love the Web as they need it (a) because uses want it, b) because it gives them a foil to the restrictions “look, we support the standard Web!”) and is there a chance we will be misaligned in the future? They may not cut Safari off at the knees, but what about a softer approach of not investing in WebKit as much (thanks for open source here!) and not shipping great versions.

If you look forward a few years and see that on the App Store they are bringing in 30% of revenue from their native environment, suddenly successful Web apps are losing them direct money. Hmm.

I think it is natural and smart for us to think about what is happening in the industry, and it isn’t fair to be called out as “over reacting” when someone brings up a “what if?”. We need to think critically. History has shown us time after time that alignments change.

That being said, Apple is building terrific product, and they offer real value to consumers (versus pure business lock in on crappy product, which we have seen in the past!). They have made computing so much better for so many people. They are providing opportunity for developers. They push the entire industry which is in such an exciting time. I can’t wait to see what happens next.

Where do we go from here?

apt-buy

2 Responses to ““What is just as important is what isn’t in the system”; Apple, Java, and the Mac App Store”

  1. Brad Says:

    Apple software is already just a shell. Once you’ve installed it, Apple Update will download the whole thing twice again before you can open it. It is clear that they already consider the internet backbone as primarily a means for proprietary distribution. Not a big leap for them to drop the standards web altogether, I’m afraid.

  2. Michael Mahemoff Says:

    “The Mac has arguably the easiest system”

    This is indeed very arguable. I’d argue Windows installs are easier for novices, not requiring the drag-to-Applications dance and generally being more consistent. A distro with a nice GUI built on top of apt-get is probably even easier.

Leave a Reply

Spam is a pain, I am sorry to have to do this to you, but can you answer the question below?

Q: What is the number before 3? (just put in the digit)