A long time ago in a mind-set far away, I spent a lunch with friends trying to figure out what we'd do if we could reprogram our cellphones. Our ideas were, in retrospect, lame. Maybe we would change the font on the dialer or come up with a screensaver animation. Wouldn't it be cool if we could get flying toasters running on the screen of our cellphone?
The iPhone was still several years away when we came up with those ideas. The millions of ways people would be reprogramming smartphones just a few short years later was beyond our comprehension. The App Store and the effort of tens of thousands of programmers changed that.
[ Beware the 7 myths of programming, and verse yourself in the 10 hard truths developers must accept. | Test your smarts with our programming IQ tests: Round 1 and round 2 and "Hello, world": Programming languages quiz. | Learn how to work smarter, not harder with InfoWorld's roundup of the tips and trends programmers need to know in the Developers' Survival Guide. | Keep up on key application development insights with the Developer World newsletter. ]
The smartphone has proven that a marketplace for delivering code can appear seemingly out of nowhere, and developers would have another choice for showcasing their wares. It's not that the App Store was new -- you could develop for Nokia, Windows Mobile, and Java phones long before it came along. But Apple eased the process and provided enough features that made it worthwhile for developers to start creating.
So when we say that some day in the possible near future you may be targeting your apps at users' shirt pockets, not what they put in them, you may think it's time for the straitjackets. But all it takes is a market. The technology is already there -- sort of.
To help you get a jump on these promising platforms, we did a little digging in what might seem to be unlikely places. In many cases, raw APIs are already well-established, ready for apps to exploit them. Scratch the surface, and you'll get an idea of the potential of porting your wares beyond the smartphone/PC paradigm. You can bet the manufacturers of these products are interested in establishing their own app ecology. And as we've seen with both the PC and smartphone, the first to arrive is often the one whose app gets the most sales.
Emerging development platform No. 1: Your car
The computers buried in your car are better platforms for developing software than your cellphone. While car batteries do run down and cars do run out of gas, they're still more reliable sources of electricity than that tiny battery in your smartphone. The dashboard is already engineered to be at the driver's fingertips, and much of the car is already accepting digital commands through the OBD-II (On-Board Diagnostics) interface built into all new cars. Though you can forget your smartphone when you go on a road trip, you can't forget your car. Automobiles are made for apps, and their manufacturers know it.
Safety comes into play when developing apps for cars, and this is among car builders' greatest detractions in opening up their platforms. While people can manage to change radio stations while driving, changing a CD isn't nearly as safe. Plus, some argue, even the best-designed hands-free interfaces can't solve the cognitive limitations of the human brain. The driver's brain should put driving first; even talking on a hands-free phone can be suspect.
That's just the surface. Computer programmers aren't known for building crash-free products, and in the auto business, the word "crash" has much more ominous overtones. It's one thing to let the curious programmer monkey around with the OBD-II interface to suck down statistics about the combustion efficiency of the engine, but what if that same programmer stumbles onto a switch that changes an important setting irrevocably? Curiosity may not always kill the cat, but it only takes a few high-profile mistakes to sully the platform.