It was great to re-discover through this book just how much of a nerd I am. Roy’s descriptions and exercises painted detailed pictures in my head of my own Nokia Series S60 phone’s internal workings. The software descriptions were so good that I used them to discover very useful menus in my phone’s interface that I had been unaware of before. While I can’t promise that every casual reader will find this book suitable as a user’s guide, I can promise the intent programmer a treasure chest of knowledge not only for understanding what goes on inside your phone, but for enhancing its behavior. Java ME on Symbian OS is a title straight from nerd’s heaven (but more than just that, as I’ll come back to below). Though the title bears two trade names, the meat of the book proudly displays its inclusiveness across the market: Sun, Symbian, Nokia, Samsung, Sony-Ericsson, Motorola... It’s the ultimate mash-up. This is less a book about a niche technology than about a broad phenomenon: not only a technological phenomenon, but a sociological one as well. If you don’t view it that way today, I believe that vision will become clearer over time. To the everyday application programmer I think this book will open a new world of wonder, just as new doors have opened to programmers several times in the past. Twenty years ago someone would have thought you to be drunk if you asked him to take a picture of you using his phone. Today we have lost touch with photographic film and, to a large degree, with those ancillary devices called cameras. We used to have a shelf-full of gadgets for voice dictation on the run, for digital photography, for calendar management, and, yes, even for communication — all of which are converging on single small, convenient computers that are the brain-grand-grand-grand-grand-children of Alexander Graham Bell. At the heart of those boxes lies software — software such as you will find in this book, along with guidance for bringing it to life. It was inevitable that the evolution of consumer programming should turn to the telephone. I remember the visions to unify computers and telephones in the minds of people like Jerry Johnson and Will Smith back in the nascent local digital switching projects in Bell Lab in the 1970s. We can now reflect on the past twenty years and conclude that computers’ primary contribution to society has been not as calculating engines in their own right, but as tiny points on an almost fully-connected network that ties together most of the world’s computers. The phone network is more than just a metaphor for the worldwide web: it is often its backbone. As the pundits predicted, network intelligence has evolved out of the centralized fabric into its periphery, out of its bowels and into its eyes, ears, and fingers. The intelligence hasn’t stopped at the phones. Next year, Nokia and RWE are expected to market a box that extends the phone network to control home heating, window shades, and home security cameras. The possibilities are endless. Programmable phones will replace not only cameras and small dictation machines, but will reach ever further into both our immediate and physically remote realities. Phones have already entered the video game market, complementing our newfound connections to reality with newfound escapes into fantasy. In the not so distant future these two worlds may blend and amplify each other. Whereas yesterday’s plaything was a personal Tamagotchi pet, and today’s Tamagotchi playthings talk via an infrared Tamacom protocol, tomorrow will see our phones as a Tamagotchi-like interface whereby we feed real flesh-and-blood Fido back home, or clean up after him — all with a sequence of a few DTMF tones. Vendors will be writing new hand-held software to oversee these new features. And so will we. Roy’s book takes us on a journey into a land that is more than just nerd-heaven. Everyday folks have been drawn more and more into programming with every passing year. This trend lies squarely in the center of the 1960s vision of people like Alan Kay and Adele Goldberg: that computers should be the sidekicks of human beings from early life, enabling children of all ages to extend their memory and processing power with a combination of wetware and software. This vision of a Dynabook — a truly personal computer, an extension of self — included information tethers to the outside world as one of its central building blocks. Because my Dynabook is part of me, I get to program it. Today, such programming usually means setting a date on my calendar or setting an alarm for a meeting. Those humble acts may not entail using Java, but it’s still programming: As Dan Barstow used to say, “No matter how high-level, it’s still programming.” To me as a C++ programmer Java looks almost like a scripting language. And that’s not even an insult. Java has perhaps finally realized its vision of ubiquitous expression of general-purpose computation that is portable and intelligible enough that Everyperson can begin to approach system programming. I know that such esthetics are difficult to judge from the seat of a professional programmer, but we can at least say that Java code provides a glimpse into such a future. Perhaps even my neighbor, the real-estate salesman, could read some of the code in this book and understand it well enough to play with it. Or my dentist. Or my banker. None of them are professional programmers. But each has a computer on his or her desk: a machine which forty years ago would have terrified most secretaries, and which today still terrifies a few executives. Machine creatures inhabit more and more of the human ecosystem. And today’s technology welcomingly exposes more and more of their inner workings to those wishing to come in and play. It’s interesting to note that such programmability has played out less in desktop phones (yes, they still exist) than in hand-held portable phones. Why? Perhaps it is because only personal cellular phones are continuously close enough to our heart — or some other part of our anatomy — to truly be part of Self. It was a revolution when people who bought the early Ataris and Amigas discovered that they could actually program them themselves. Now we can program an ever-present pixie. We are perhaps on the threshold of a revolution that unleashes powerful programming into the hands of what will be over one billion owners of Symbian phones in two or three years. Even if great programmers arise from only one in a million of these users of small-handheld computers that also take pictures, play games, and even place phone calls, it will be enough to move the world. This book, even as a nerd’s text, is nonetheless a bold foray into Dynabook territory. If nothing else, it will make you realize that if you own a regular personal computer and a mobile phone, that it’s within your reach — today — to write your own software that can be an at-hand extension of yourself any time and anywhere. It is perhaps one small step on the road to a future vision of even further integration between man and machine. Such integration must go forward with intense ethical scrutiny and social care; if we choose such a path, machines can make us even more human, humane, and social than we are today. I leave you with a poem which, when published, was wrongly ascribed to me alone. The attendees at VikingPLoP 2004 wrote it as we pushed the human/computer symbiosis to its limit. Think of Java ME on Symbian OS as an important step on this journey. Nerds, children of all ages, and everybody out there: Happy Programming! Comfortable as blue jeans She fits. Part of me, yet not me; Unplugged: oxygen is her food And the breeze her power adaptor. Her identity mine, yet not me: I put her down, I take her up like a well-worn wallet plump with life’s means and memories. A thin mask worn in life’s play And both of us are players. I call her Self; she does not call me User A curse unique to programmers and other pushers. I and my computer are one But we own each other not. Envision this: my new machine, a soulmate, With whom I talk in whispers unencumbered by flesh and bone Software begotten, not made Of one being with its person. She hears my voice, and perhaps my thoughts rather than the drumming of my fingers that burdened her forebears: 35 calcium levers linking brain to digits, slow and tired machines of the information age. Now, mind to mind, there for tea and sympathy all day, and our night minds together process the day, sharing dreams—yet She slumbers not, nor sleeps. An invisible mask the birthright of all humanity; Her software penned by My soul And like my soul, her hardware Im-mortal, invisible Us together wise. Transparent personae mine, yet not me, That with me loves, and lives, and walks life’s journey— A path both real and virtual at once as only a True and rich life is. With me she dies —our immortality inscribed in the fabric of the network. No duality of community here and Internet there— The Network is the Com- munity: One Web of life. Mørdrup, Danmark 2. juldeag, 2008 |