Developers ramp open source
Embedded developers are increasingly turning to open-source tools for building reliable and flexible systems and software. Open-source code can provide both raw material for building system software and applications, and development tools for creating that software. In particular, open-source development tools such as eclipse and the GNU tool set can be customized and extended to meet the precise needs of the project. Furthermore, embedded vendors use many open-source tools as the foundation for more comprehensive development environments.
Enabling a large and growing part of the embedded-tools ecosystem is Eclipse, the open-source integrated development environment (IDE). This platform, along with associated technologies, is undergoing development by the Eclipse Foundation, a non-profit consortium of software companies focused on leveraging and contributing shared technology.
Two things are driving Eclipse in embedded design and development—the cost and flexibility of the platform, and the community of contributors and plug-in providers. Embedded vendors are scrambling to join the bandwagon or justify why they aren't. Once on, they have to figure out how to make money with free, open-source software.
Eclipse has developed around several projects: the Device Tools Project, the Data Tools Project and the Web Tools Project. They all began at different times, have different version numbers, and in the past, had been only minimally coordinated with one another. A vendor can test and deliver its own tools for specific versions of these components, but would be hard-pressed to guarantee that its own plug-ins will work with others that have different foundation requirements or with later versions of the Eclipse platform itself.
Callisto combines Eclipse and several higher-level plug-ins. It aids the integration of vendors' tools, which can add a long list of components that have to be part of the tested version for developers to ship and support products. With the ability to add plug-ins and new builds of Eclipse as they are ready, vendors face a fine line between the promise of extensibility and the reality of versioning.
In fairness, many vendors' tools work with multiple versions of the Eclipse platform and related plug-ins. Callisto gives vendors using Eclipse the opportunity to ensure that their plug-ins and other enhancements all run on compatible configurations.
Vendors are discovering that Eclipse lets them do what they do best. What is changing is how they value and price that combination of software and expertise.
The winner is the user. It's not clear that free software is driving down the price of tools, but it is opening up choice. While reality may be less than the ideal, most embedded developers using Eclipse can take advantage of unique configurations that better meet their needs than any generic set of tools.
By now, most embedded developers have heard about Eclipse. The benefits of Eclipse are evident and real—it's free and freely downloadable, can be updated simply by downloading the latest version (including nightly builds for the more adventurous), and runs on java, which theoretically makes it accessible on a wide range of platforms.
Any tool implemented as an Eclipse plug-in can easily be installed in the environment. So QNX Momentics, which comes with both C/C++ and Java compilers and other tools, can be supplemented with, say, Klocwork static analysis tools, simply by placing them in the appropriate directory on the development machine.
Few embedded vendors offer tools for team development and source-code control. But the number of such tools with Eclipse plug-ins is large, giving developers a choice of products to use. Eclipse comes with the client plug-in for CVS, the open-source Concurrent Versioning System licensed under the GNU General Public License.
Granted, many third-party plug-ins for Eclipse are geared toward the generic Java developer, which is little help to those building in C++ for a remote target. But the community is growing. A growing number are embedded developers, as attested to by the visible and active presence of both embedded companies and developers at the recent EclipseCon, the conference for Eclipse members and users.
Most software developments mean trade-offs. A tool vendor adopting Eclipse gains in the short term on cost because the platform provides much of the foundation necessary to build an IDE. This is a competitive advantage if other vendors offering IDEs or development tool kits are going that route, as QNX, Accelerated Technology and LynuxWorks can attest. Building a platform that provides common user interface and connectivity characteristics, extensibility and multi-OS support is a significant undertaking that doesn't contribute to the vendor's core expertise. Eclipse makes possible specialized solutions on a common and known foundation.
For years, development tools vendors have sought the holy grail—a logical tool chain from product design through manufacture. This once meant building or buying all the pieces individually and assembling them in one proprietary framework. Or worse, from the standpoint of users, it meant not assembling the tools at all, providing instead a set of tools with different user interfaces that had to be figured out.
With Eclipse hovering in the background, the story is more complex for the vendor, yet more straightforward for the embedded user. The vendor doesn't need the entire tool chain, but it has to enable it. Using Eclipse to host a development environment lets developers add in other tools, depending on their unique needs. Any changes meant to close that platform to such additions would likely result in a user backlash.
The Eclipse software development kit (SDK) adds the Java Development Tools and Plug-in Development Environment, plug-in tools for Eclipse. Together, these pieces form the Eclipse SDK, a development environment for Eclipse-based tools and plug-ins, and the Eclipse itself.