Enhancing Embedded Development with Ruby
RubyConf 2007
November, 2007
Abstract
Ruby accelerates the development of software even when the shipping product has nothing to do with Ruby. We will discuss the use of various Ruby-based technologies in a C-based embedded development project.
Description
Embedded development has historically been the domain of assembly gurus and bit tweakers. Languages and environments have improved with the use of higher level languages and graphical debugging environments, but testing and development practices have remained remained static. Tools for projects are often limited to an IDE provided by a chip vendor, and an oscilloscope for really tricky problems.
Test driven development, behavior testing (mocks) and continuous integration are a few of the practices that are becoming the standard for application software. The ability to write an acceptance test from a user story, implement the units of code test first, and then ‘hit a button’ to see all your tests run has been missing from the embedded development experience. Plugging in a board, running a flash programmer, and fiddling with buttons and diagnosing LED patterns is still common.
We will discuss how Ruby was used in an embedded development project to provide all the processes and tools that we would expect from any other type of project like Rails or .NET. Build automation, system testing, mock generation, and continuous integration were all available to us through the power of existing Rails tools and custom Rails scripts.
No developer should suffer tedious, repetitive or unrepeatable or manual tasks. The pliable nature of Ruby allows it fill the gaps and add power to any language or environment.

