Sponsored Link •
A billion Java-enabled devices in use, and the many more non-PC devices through which billions of people will experience the Internet, represent a potentially big opportunity for developers. Yet, relatively few developers work on Java ME applications today. What makes it hard to develop for mobile Java devices?
At this year's JavaOne conference, I was invited by Sun's JCP program office to moderate a panel discussion on the future of Java ME. While by no means an ME expert, I always had great interest in Java on devices. As Sun CEO Jonathan Schwartz pointed out in his JavaOne keynote, non-PC devices are the mechanism most people around the world would use to connect to the Internet. Indeed, we at Artima hope to one day reach our readers on cell phones, PDAs, and other devices.
And Java ME means much more than phones and PDAs. When I first got interested in Jini some years ago, it was primarily because of the great promise of billions of connected devices, some as tiny as mobile sensors and RFID tags, all either running Java or proxied by Java objects—a notion very much at the heart of early Jini excitement.
As I was fielding questions and moderating the panelists' replies, I could not help but feel the tiny push in my pocket from my own cell phone, reminding me that while the JVM on my cell phone is perhaps the VM I spend the most time with in terms of physical proximity, I never managed to develop any sense of intimacy with that VM—certainly nothing close to the relationship I have with the JVM on my laptop, for example. Although I chose this phone partly because it came with a JVM, developing a useful application for it seemed hard. And the prospect of distributing that application so that anyone with a Java-enabled phone could download and use it, loomed like a Byzantine path not be explored by the uninitiated.
In his 2006 JavaOne keynote, Jonathan Schwartz suggested that the over one billion Java-enabled mobile devices represented opportunities to developers orders of magnitude bigger than desktop and enterprise Java did. That may well be so. But the cell phone in my pocket still has the same number of Java applications it had when I purchased the phone. And that's not because of my lack of interest in mobile Java. If that phone represents a developer's opportunity, no one has taken advantage of that opportunity yet.
In a 1986 speech at Bell Labs, You and Your Research, Richard Hamming noted that it is helpful to ask three basic questions to guide one's career: What is the most important problem in your field today? What have you been working on lately? If the two are not the same, why?
Paraphrasing Hamming's admonition, mobile Java seems like the biggest opportunity for Java developers today, yet my sense is that relatively few developers work on Java ME applications compared to the number of developers working on enterprise and even desktop Java applications.
In this blog post, I'd like to ask, why. From your perspective, what are the main challenges in developing for mobile Java devices today? What are your Java ME pain points, really?
|Frank Sommers is a Senior Editor with Artima Developer. Prior to joining Artima, Frank wrote the Jiniology and Web services columns for JavaWorld. Frank also serves as chief editor of the Web zine ClusterComputing.org, the IEEE Technical Committee on Scalable Computing's newsletter. Prior to that, he edited the Newsletter of the IEEE Task Force on Cluster Computing. Frank is also founder and president of Autospaces, a company dedicated to bringing service-oriented computing to the automotive software market.
Prior to Autospaces, Frank was vice president of technology and chief software architect at a Los Angeles system integration firm. In that capacity, he designed and developed that company's two main products: A financial underwriting system, and an insurance claims management expert system. Before assuming that position, he was a research fellow at the Center for Multiethnic and Transnational Studies at the University of Southern California, where he participated in a geographic information systems (GIS) project mapping the ethnic populations of the world and the diverse demography of southern California. Frank's interests include parallel and distributed computing, data management, programming languages, cluster and grid computing, and the theoretic foundations of computation. He is a member of the ACM and IEEE, and the American Musicological Society.