January 22, 2007

Zune Sighting

The other day I saw a Microsoft Zune music player for the first time.  I think I probably see 20 or more iPods a day walking around the skyways in Minneapolis and riding on the bus, but a Zune? The Zune was a brown one, being used to watch a video of some sort by a guy on the bus.  I have to admit, the Zune sighting surprised me a little.  It just doesn’t seem like a device that makes any sense. OK, so the screen is a little bigger than a current generation iPod and the wireless “squirting” feature could theoretically be appealing if there were as many Zunes as their are iPods, but the downsides are currently so extreme that I can’t understand it.  First, no support for Windows Media files.  Even if you’re a Microsoft person already, your music collection will have to be reencoded or repurchased if it’s in Windows Media format.  That’s just odd.  Second, the absence of video for sale on the Zune store and the limited selection of music compared to iTunes…  it’s just not a compelling device.  Now, I don’t doubt that Microsoft will try to adapt to these issues and future Zunes will be improved (along with the Zune store), but why wouldn’t a person wait before going into this thing?  The iPod will be updated again this year and the Zune will then look even further behind than it already does. Oh well.

January 18, 2007

iPhone Development III - Why No Java?

Last night I was discussing iPhone with my wife and the rather odd decision by Steve Jobs to cut Java out of the iPhone.

My initial thoughts on the iPhone were overwhelmingly positive.  My hopes for development on the device were also positive.  Then I found out that the iPhone would not be open to third party development.  This caused great annoyance on my part.

Then I read last night that Jobs said that Safari on the iPhone would not support Java but might support Flash.  His actual words about Java: “Java’s not worth building in. Nobody uses Java anymore. It’s this big heavyweight ball and chain.“  This REALLY got me annoyed.  Nobody uses Java?  Nearly everybody who has a phone today uses it!  I’m using a Motorola SLVR iTunes phone right now as I type this that has a Java CORELet implementation of the iPod interface, written by Apple themselves.  When I calmed down a bit I thought about what he was actually saying.  He wasn’t talking about the phone specifically, he was talking about the Safari browser within the phone.  Safari on the phone will not support Java because, well, he’s right.  Java applets in the browser aren’t nearly as common today as they used to be.  Average web developers don’t use Java applets much anymore. 

But, applets aside, what about the Java2 Micro Edition (J2ME) that we all have on our phones today to play Tetris or read eBooks, or whatever?  What about websites where we can download JAR and JAD files for out mobiles?  It appears that the iPhone will not participate in that ecosystem.  It will go it’s own way, only running Cocoa OS X apps developed and sold/distributed by Apple themselves.

Why?  That’s the big question I have been wondering.  Why not do all the cool new OS X stuff and ALSO have J2ME?

I think the answer is “the sandbox”.  Java apps run in a “sandbox” that limits their access to the hardware they run on.  This keeps viruses and malicious code from damaging your system via Java.  In order to get outside the sandbox, the apps need to be digitally signed and most Java developers don’t do that.  So, it’s inherently safer.  Cocoa, the development platform for OS X, has no such sandbox.  Cocoa apps can go where they want and do what they want (although User Level security is a limiting factor).  For Apple to allow people to develop apps for the iPhone without a managed code model, they would be taking a risk that developers might write insecure and potentially damaging code.  Apple is well aware that most people buy new apps for the phones from their phone provider and you can bet that apps will be developed and sold by Apple via iTunes and Cingular and it’s what most people probably would have expected anyhow.  The average person doesn’t expand their phone with open-source/free J2ME apps, they buy what Cingular/T-Mobile/Sprint offers them.  They don’t care if it’s Java or Cocoa.  Only people like me, who want to mod their phones and extend their capabilities without buying stuff from our phone providers are miffed about this.

OK, so Apple wants the system closed because Cocoa is not a managed code language.  Why not also support J2ME?  Obvious.  Apple doesn’t want to sell Java apps, they want to sell Cocoa apps.  Only a minority of people get JAR files outside their providers, and the phone providers don’t see any revenue from them anyhow. 

Other factors, no doubt, are that Java needs to be licensed (which costs money) and Java support uses memory/resources that Apple would rather put to use in a different way.

Having thought the issue through, I can now understand the rationale behind the decision to close the phone and the decision to leave Java out of it.  I don’t like it, but I can see why they did it.

My prediction: somebody will figure out how to get apps on the iPhone “unofficially” and a Java 2 ME system will ultimately be available as an installable Cocoa app to run Java apps, even if putting it on your phone voids your warranty.

We shall see, eh?

January 11, 2007

iPhone Development II (Electric Boogaloo)

Well, as Anthony has pointed out, Apple has decided not to allow 3rd party iPhone apps.  So much for my prediction.

At first I was surprised and then I realized that perhaps I just got a little overly optimistic about Apple’s ideals.  After all, they’ve never opened the iPod up for 3rd party development either.  Tech heads with nothing better to do still managed to hack the iPod to the point where they got a Linux distro running on it, so there is yet hope for breaking into the iPhone, but things like this don’t get Apple’s blessing.  Considering that Apple got 200+ patents on the iPhone and intend to defend the hell out of those it doesn’t seem highly likely that they’d want it to be an open platform.  Still, I give it a week before it becomes a “moddable” device, people get sued, and the race is on between the OSS folks to keep it open and Apple to close it up.

I really don’t understand this move at all.  It may even be suicide for the iPhone, despite the incredible innovation it offers because every other smart phone device in the world allows the installation of third party applications.  I have Read Maniac installed on my SLVR for reading books.  It’s a Java2 Micro Edition app that will run on any Java-enabled smart phone in the world (read: almost all of them).  If I move to the iPhone, I will not be able to read books on my phone anymore without some sort of reading software and looking over the Apple site, I can see no reading software on the horizon (or document management software of any sort).  I am certainly not the only bibliophile in the world so an iPhone with no eBooks is a major problem for me. 

What’s more, I play little games in downtimes.  Sudoku, Chess, Tetris, Minesweeper, Scrabble, all of these have a place on my SLVR already.  All free J2ME apps that I downloaded on my iBook and put on my phone via Bluetooth.  No ability to add little games like that to the iPhone (or only to add those that Apple chooses to sell) is again, a huge drawback.

My guess here is that Apple is going to follow the model that all the cellular phone providers are trying already, selling the only software available for their platform directly to the consumer via their iTunes store.  There will be games and apps, but they will all come from Apple unless a user is willing to risk voiding their warranty by making use of the hack methods of getting into their handset that will invariably be discovered. 

I don’t buy my third-party apps for my phone today and I resent the need to buy them tomorrow if I switch to the iPhone.

With this one decision, they have moved me from the “gonna buy” category to the “wait and see” category.  If I get a better screen and experience but have to give up the freedom to add functionality via open software, I might just decide it’s not worth it.



Trumpet Marine