Java goes beyond the server
With mature technologies like JSP, servlets, and Enterprise Java Beans (EJB) in place for some time now, Java has an undeniable server-side presence.
In fact, many developers are increasingly viewing Java as a server-side-only language. Lately, however, Java brewers have been making headway into a surprising area: embedded systems development. Let's take a look at the advantages Java brings to the game, and some of the obstacles it must overcome to achieve more widespread use. First, though, let's consider what embedded systems development actually means.
What constitutes an embedded system?
According to Tom Williams, embedded systems analyst for Evans Data Corporation, the term embedded system is broadly used to refer to anything controlled by a microprocessor. That would include your trusty PDA, many kinds of factory equipment, your set-top cable or satellite TV box, your favorite video-game console, and probably even that dirty microwave oven sitting in your kitchen. Embedded development then, by extension, would refer to the creation of any software meant to control the embedded device. Partly because of the wide range of hardware in use, there is no "typical" embedded development project, nor is there really a "killer application."
The portability advantage
Until recently, creating software to run a microprocessor-controlled device was no mean feat. Doing so usually involved the use of proprietary languages at or below the assembler level, although C could occasionally be used instead. With software tied so tightly to hardware, being cross-platform was a pipe dream. Porting an application from one processor platform to another usually involved rewriting it completely.
Now, embedded systems development appears to be seriously taking off: work on embedded systems has intensified over the last 12 months and is expected to grow substantially, particularly as new "smart" electronics devices are released to the public. With so many new projects cropping up, it simply won't pay to be tied to a single hardware configuration anymore. So Java, with its trademark portability, has become a popular choice for embedded software development.
How popular is it, exactly? Evans Data recently concluded a survey of 444 embedded developers and found that 36 percent of the respondents are either currently using Java or plan to on their next project-up from 26 percent six months ago. Of those developers using Java, nearly 60 percent are using Sun-specific JVM implementations (31.2 percent J2ME and 28 percent J2SE), with an additional 22.6 percent favoring IBM's VisualAge Micro Edition.
Performance problems and potential remedies
"One issue is price," he said. "Another is that you still have to write some specialized code in non-Java languages in order to directly manipulate the underlying hardware." This essentially leaves you with a hybrid solution again. In addition, Williams said, "There are ongoing attempts to make Java more appropriate for real time. Among the companies involved are Intrinsyc, Esmertec, IBM, NewMonics and, of course, Sun."
As it stands now, Williams said, developers have a decision to make.
How is your company using Java? TalkBack below or e-mail us