Engineers of a certain age will remember when Mentor Graphics made engineering workstations. Remember those? They were overpriced computers with big monitors that every self-respecting hardware or software designer had on his/her desk, as opposed to a Windows or Macintosh machine that marked you as a receptionist, or worse, a marketing dweeb.
Mentor was just one of many companies making engineering workstations, including Apollo, Daisy, Intergraph, and Sun Microsystems. Remember them? Unlike most of its competitors, however, Mentor Graphics survived. Flourished, even. Mentor is now a big embedded-development company with all kinds of spiffy technology to help hardware and software designers.
I met with the nice people at Mentor Graphics awhile ago, partly because they invited me over but also because I like to stick my nose in their tent from time to time and see what smart people do for a living. Turns out they’ve been busy. Their most recent creation is the “ReadyStart” software package for embedded developers working on multicore or multiprocessor hardware. And these days, that includes just about everyone. And true to the company name, ReadyStart even involves graphics.
The idea behind ReadyStart is that it allows you to get going on your software development without creating everything from scratch. Okay, no real trailblazing there. Plenty of companies make similar promises, and everything from software stacks to cake mixes can save time by pre-mixing standard ingredients.
Mentor has an advantage in this area because the company is primarily a tools supplier, not a hardware supplier, so ReadyStart is hardware-agnostic. The company puts most of its weight behind Android and Nucleus, the real-time operating system it acquired from Accelerated Technology years ago. If you’re planning to use one OS or the other—or better yet, both together—ReadyStart comes prepackaged with most of the ingredients you need.
Mentor says a big portion of its customer base is developing dual-OS systems, with a real-time OS complementing a “user friendly” OS like Linux or Android. ReadyStart is ready-made for such configurations, offering the kernels, protocol stacks, file system, APIs, network management, debug hooks, and all the other goodies you’d need for an Android-meets-Nucleus product base. It even comes in four flavors, depending on what you’re developing. There’s a medical-device version, an industrial version, an automotive version, and a consumer version, all prewired with the relevant and appropriate demos and middleware. Pretty slick, all in all.
But Wait, There’s More
If ReadyStart simplifies the underlying plumbing, a companion product called Inflexion handles the sexier aspect of user interfaces. Mentor Graphics is a big proponent of Android, even acquiring its own Android-development company more than a year ago. Android is useful because it’s easy to customize and offers all the features an RTOS like Nucleus typically doesn’t. Unlike Windows Embedded or other consumer-oriented operating systems, Android doesn’t have a standard user interface. Developers are free to tweak, or even replace, the GUI any way they like. That’s both an opportunity and a pitfall.
The fact is, most embedded developers suck at user interfaces. It’s almost axiomatic: the better a programmer you are, the worse your user interface will be. Don’t take it too hard. They’re just mismatched aptitudes, like Vogon poetry.
That’s where Inflexion comes to the rescue. It’s like Photoshop for Android user interfaces. You drag-and-drop GUI elements, and Inflexion takes care of generating the back-end code. If that seems like a waste of effort to you, then you’re not Inflexion’s target audience. The idea is that Inflexion should be used by GUI designers (i.e., non-programmers) to design a good interface. It’s assumed that Inflexion users won’t know how to hook into the APIs, or they wouldn’t be good GUI designers.
But Inflexion’s magic runs deeper than that. It encodes the GUI in an intermediate and OS-independent way, meaning you can change the GUI without recompiling any code. There’s a complete separation between your GUI code and your application code, so changing the former doesn’t affect the latter. That means you can “re-skin” your GUI as often as you want without recompiling anything or recertifying your applications. You can even let your customers download alternate GUIs.
This goes far beyond just changing the color of the buttons or the alarm tones. With Inflexion, you can create radically different user interfaces, all of which can run on the same hardware. One version might be touch-sensitive and iPhone-like, while another uses cascading drop-down menus, and a third has 3D animation with directed lighting, reflections, and ripple effects. If your hardware has graphics acceleration, Inflexion will take advantage of it. If not, your sexy GUI might run slowly, but it’ll run.
Personally, I think ReadyStart and Inflexion are equally useful, but Inflexion will be a lot more fun to use. I’d still create lousy user interfaces (too much programming experience), but it’d be fun to try, anyway. Like Photoshop or iMovie, Inflexion really shows its power in the hands of a graphic designer with little or no technical background. Maybe there’s gainful employment for those liberal arts majors after all.