Java and C# line up for battle atop J2EE and .Net. C/C++ is here to stay. In many ways, it's like last year when it comes to embedded software. The bulk of all development for servers, desktops, DSPs, and MCUs will be in C/C++. C/C++ tools are steadily improving even when it comes to debugging support. But looks can be deceiving.
The Eclipse integrated development environment (IDE) burst on the scene last year and has steadily picked up a number of supporters. It's more open and versatile than Sun ONE Studio, which concentrates on Java. Plus, it has more OS support than Microsoft Visual Studio.
Eclipse will make it easier for RTOS vendors to provide a first-class configuration and development environment. This is particularly true for embedded Linux, which is still growing. Eclipse brings Java and C/C++ support along with a wide range of third-party plug-ins, allowing developers to concentrate on design instead of building tools.
Companies are finally realizing that the real value of Linux is not the freely available source code, but rather its consistent platform and growing number of developers with Linux expertise. Real-time support is still a Chinese menu, but choice is good, especially when the vendors are solvent.
Linux won't be everywhere. The RTOS competition still offers unique features. Linux continues to play catchup in a number of areas, such as multilevel security and authorization. These kinds of advanced features aren't required in most environments, although other commercial RTOSs still offer features that Linux lacks.
Security support will be the next checklist feature after IPv6. On the plus side, developers and hardware vendors are both looking at security. The problem will be choosing a technology and deciding if it should be implemented this year. At least the choice of a dual IPv6/IPv4 stack will be a lot simpler.
>GRAPHICAL OPEN-SOURCE DEVELOPMENT PROJECTS LIKE ECLIPSE will begin to shine as more companies use it as their platform of choice for development tools. The advantage of third-party plug-ins will lure developers and plug-in vendors alike to the benefits of both. In addition, more companies will deliver complete solutions based on Eclipse, thereby providing a common platform that is also expandable.
>THE EMBEDDED LINUX CONSORTIUM'S PLATFORM SPECIFICATION should formalize commonality to the diverse embedded Linux distributions. Embedded Linux will continue its growth pattern as developers begin to understand its advantages and limitations. Embedded Linux licensing terms will be as varied as current proprietary solutions from royalty-free through royalty-based plans.
>C/C++ WON'T BE DISPLACED BY JAVA OR ANY OTHER LANGUAGE as the preferred choice for embedded application development, especially with new fixed-point extensions—Embedded C++ and MISRA subsetting. Java will continue to steal application projects from C and C++, but there will be even more migration from assembler to C and C++, especially in the DSP arena. Compiler improvements will not make the front pages, yet they will continue to carve away at any advantage of using an assembler for optimization.
>ARE THERE TOO MANY EMBEDDED GUIs? Embedded developers can choose from a plethora of embedded graphical interfaces. Some are portable, although most are not. Compatibility when it comes to controls is limited at best, making application migration difficult. Don't expect any improvements in this area.
>THIS IS NOT THE YEAR OF IPv6. Yet this Internet transport protocol will keep taking hold in captive environments such as cell phones. IPv6 will be found in more dual-mode stacks, while IPv4 makes future migration of embedded devices possible without major modifications to these devices. In general, Internet service providers will continue to purchase IPv6-capable routers and switches, but IPv6 support will only be provided to selective customers.
>MATURE J2EE WILL TAKE ON A GROWING WINDOWS .NET presence on the server, significantly affecting the software design for embedded network-based devices. Designers may very well prefer standard protocols like SOAP, UDDI, and UPNP, but variations in framework support on the server side will probably hamper true platform independence.
>BEWARE OF NEW PROGRAMMING TECHNIQUES BEING FOISTED ON THE UNSUSPECTING PROGRAMMER. Techniques like extreme programming and pair programming offer a lot. Nonethe-less, studies have yet to confirm their impact and advantages. These techniques may require programmers with more experience, knowledge, and motivation than the average developer. In the proper hands, the payoff can be great, particularly in reducing time-to-market and improving code quality.
>THE WORLD AWAITS UML 2.O. Its final arrival mid-year will be quickly followed by compatible releases from all UML vendors. Increased use of model-based design tools should improve an application's time-to-market and design quality. This should spur interest for modeling tools in the general embedded development community. Unfortunately, UML's steep learning curve will discourage many self-taught systems designers who are accustomed to more individual, less structured design approaches.
>MOBILE J2ME (JAVA 2 MICRO EDITION) profiles like MIDP 2.0 (Mobile Internet Device Profile) make Java the language and environment of choice for portable applications. Improvements in garbage collection and native code compilation have removed most limitations, imagined or otherwise, that embedded developers had regarding Java. As the year unfolds, Java will make inroads in real-time applications.
>FORGET THE DEPARTMENT OF HOMELAND SECURITY. The security of embedded devices will depend on the fast education of developers and customers. The use of standards like TCPA and SSL will become requirements instead of afterthoughts or options. Unsecured control protocols such as X10 were fine when only a few people owned these devices. But they're not good when a whole apartment complex has dozens of devices per household. Devices without security support will find a permanent home in a nearby trashcan.