J2ME or BREW for wireless development?
Published: 18 Jul 2002 11:59 BST
The BREW distribution system
Qualcomm's BREW distribution system (BDS) allows carriers to manage download of BREW applications by the devices running in their network. The solution manages all the distribution and billing issues, and developers receive their share of revenue for the applications downloaded by users. Each application available for download has to be certified by Qualcomm before it is deployed. Certification achieves two objectives: It adds an extra layer of security for the end user, and it ensures that the developers are known, in case an application needs to be recalled over the network.
The recently released BDS 2002 adds several enhancements, including features that enable distribution and payments for BREW extensions such as virtual machines, browsers, and other interpreters like XHTML, HTML, and JavaScript.
BREW-based Java You can now run J2ME applications on BREW, thanks to the implementation of the J2ME virtual machine over BREW. With BREW conceptually acting as a layer below the JVM, it is possible to develop Java applications that can be downloaded and executed on BREW-enabled devices using the BDS. As mentioned above, BDS 2002 allows for downloading Java midlets and even a JVM -- which, in this case, is just another BREW application. Although no concrete evaluation about performance of J2ME running on top of BREW is available, there will certainly be extra processing requirements because of another layer (BREW) in the execution of J2ME applications. Sources from Qualcomm maintain that this should not be a problem, though, as its new line of chips will have enough processing power.
Which way should the developer go? All in all, BREW doesn't sound much different from Java. To a user, it presents a similar kind of application experience and to a developer, a more or less similar development model. However, some distinctions need to be made between the two:
- The J2ME philosophy is essentially the Java philosophy, which is to enable developers to write applications that can run unaltered on different devices. J2ME therefore targets general consumer and embedded devices. BREW, on the other hand, targets wireless devices exclusively (specifically CDMA phones). As a result, it's more versatile when it comes to wireless phones -- and by the same token, lacks portability.
- J2ME doesn't consist of a specific distribution system corresponding to the BREW BDS. This may be an advantage as well as a shortcoming. Although it enables free distribution of Java applications, some developers may find the managed revenue distribution system that BREW provides more attractive.
- BREW currently lacks the extent of development tools that Java developers have access to.
- Since J2ME is an interpreted language, it should be slower (at least theoretically) than BREW, which is closer to the processor.
- Java garbage collection can be very effective when it comes to memory issues. These issues can sometime be a serious problem with BREW, with its severe memory limitations.
Both J2ME and BREW present developers with exciting opportunities for taking advantage of the convergence of wireless and the Internet. While Java developers may find that J2ME is the right choice for a range of small consumer devices, BREW has its own advantages when targeting wireless phones. In many cases, of course, the choice of one technology over the other will be dictated by the platform that the network operator decides to support.
Have your say instantly in the Tech Update forum.
Find out what's where in the new Tech Update with our Guided Tour.
Let the editors know what you think in the Mailroom.
Full Talkback thread
1 comment












