Carlsbad Cubes Wolf Paulus

embedded

Java, C, J2ME, and BREW
By Wolf Paulus <wolf@wolfpaulus.com>

Posted Thursday, October 30th, 2003

Embedded Devices

When working on embedded devices, I occasionally do some C programming. Writing a driver allowing downloading images from a digital camera into an 8-bit Microcontroller required even some assembler coding. Anyway, besides those adventurous expeditions I'm pretty much a hardcore Java coder - if you hadn't heard.

Mobile Devices

Sun Micro's Java Micro Edition (J2ME, Java subset for small consumer and embedded devices with limited capabilities) and Qualcomm's Binary Runtime Environment for Wireless (BREW, runtime environment running at the firmware level (CDMA chipset) and available only to CDMA-based wireless devices sporting Qualcomm processors) are the two technologies at hand when developing an application targeting a mobile device. J2ME and BREW compete on the execution platform (phone, PDA, etc.) but also through different distribution and billing systems as well as through their respective developer communities.

But there is a lot going on currently in the mobile devices space:

As a Java developer, I find that J2ME is the right choice for a range of small devices including mobile phones but I guess BREW has its own advantages when targeting wireless phones. Like afore mentioned, sometimes one has to leave the platform of choice, i.e. to fulfill performance requirements. BREW is tightly integrated with the chipset, which results in performance advantages and access to low-level functionality. But even with the news from esmertec, BREW somehow still has this kind of anti-GSM, anti-Java aura. Even if some operators choose to deploy esmertec's JVM for BREW, which would enable Java developers to take advantage of the BREW distribution system (to easily monetize and distribute their Java applications) will it really make a difference?

Sun, which recently acquired Pixo, has rallied the Java community to standardizing on J2ME. Qualcomm provides the BREW C/C++ SDK easily integrates with Microsoft's Visual C++ development environment, a tool that most Java developers have kissed good-bye a long time ago.

Common Ground

We have seen that with BREW acting as a layer below a JVM, it is possible to download and run Java applications on BREW-enabled devices. However, adding another layer on to embedded devices with limited capabilities should require extra processing requirements. Does this all matter? You tell me!



Disclosure: This blog is written and edited by me, it contains my words and my opinions only, and does not contain any content which might present a conflict of interest.
I am not compensated to provide opinion on products, services, websites and various other topics. This blog does not accept any form of cash advertising, sponsorship, or paid topic insertions. However, I will and do accept and keep free products, services, and other forms of compensation from companies and organizations. All advertising is in the form of advertisements generated by a third party ad network and identified as such.
I will only endorse products or services that I believe, based on my expertise, are worthy of such endorsement. Any product claim, statistic, quote or other representation about a product or service should be verified with the manufacturer or provider.

Published on: Thursday, October 30th, 2003  •  Category: [embedded]

Article URL : http://wolfpaulus.com/journal/embedded/j2mebrew.html