There’s a long and interesting piece on InformationWeek today about the fragmented landscape of mobile device programming. It’s a landscape that’s getting more fragmented as time goes on, not consolidating as one might expect. The recent major shake-up, of course, is the advent of the iPhone, and, more importantly, of the iPhone App Store. The App Store illustrates all too starkly why Java didn’t come to dominate the handset market despite the fact that J2ME is on a huge percentage of smart phones: there were simply no easy avenues by which individual consumers could get the apps onto their phones. Generally speaking, you had to hope for some kind of distribution deal with whatever company was selling the phones to get it pre-installed. The App Store is the real game changer, and both Google and Microsoft are coming up with similar concepts (which, unlike the iPhone store, will accept Java apps). Of course, mobile Java apps have never quite lived up to their “write once, run anywhere” promise, perhaps because mobile devices span a much broader range of capabilities than Java ME’s architects ever imagined. This has spawned a cottage industry of workarounds that are a sort of insult to the original Java dream, but they get the job done. There are tools that will just brute-force your Java code into platform-native code, for instance. Not sure how good the quality of the result is. Yahoo’s new Blueprint initiative flips this concept around: apps are written in declarative XML, which then spawns either mobile-oriented Website widgets or standalone mobile apps written in Java or in native device code. Supposedly Yahoo’s in “negotiations” with Apple to get Blueprint to work with the iPhone — but surely it could be modified to churn out Objective-C without any such corporate OK? Something seems off in that story. Technology IndustryProgramming Languages