Java: the New Straightjacket
I first learned to program on a home computer in Basic. At first it was fun, but after a point it became frustrating, when I realized that I was living inside a walled garden. Many interesting programs, such as those interfacing with the display controller, simply could not be written in standard Basic. Luckily, this limitation forced me to move to Pascal, assembly code, and C.
History seems to repeats itself. I was very pleased that my Sony Ericsson K700i cell phone supported Java; I thought I could use it for many interesting experiments. After browsing at the SDK’s API I was very disappointed. As far as I can tell, there is simply no way to access the built-in radio, the infrared port, the Bluetooth controller, the serial port, the camera’s sensor, the microphone or the built-in web browser. Yes I can write an eye or ear-candy midlet to show 3D animation on the screen, play funny sounds, or capture a picture and send an SMS but that’s it. With direct access to the camera’s sensor, Bluetooth and the microphone I could program the phone to act as a wireless web camera. With access to the web browser and Bluetooth I could also set up an HTTP connection over Bluetooth to the home’s media server to select and play music. Using direct access to the infrared port I could write a universal infrared remote control.
All I needed to do these things would be half-decent hardware documentation and the ability to load and run native programs, something supported on most operating systems since 1950. Thanks to the phone’s Java environment all these applications are just dreams. The required APIs are missing (some are not even defined), and there appears to be no easy way to escape this new walled garden.
Read and post comments